Spaces:
Running
Running
| from openai import OpenAI, APIStatusError | |
| import os | |
| AUDIO_CHAT_MODEL = os.getenv("STEP_AUDIO_CHAT", "step-1o-audio") | |
| TTS_MODEL = os.getenv("STEP_AUDIO_TTS", "step-tts-mini") | |
| ASR_MODEL = os.getenv("STEP_AUDIO_ASR", "step-asr") | |
| STEP_BASE_URL = os.getenv("STEP_BASE_URL", "https://api.stepfun.com/v1") | |
| client = OpenAI( | |
| base_url=STEP_BASE_URL, | |
| ) | |
| def call_audiochat(messages): | |
| try: | |
| completion = client.chat.completions.create( | |
| model=AUDIO_CHAT_MODEL, | |
| messages=messages, | |
| presence_penalty=1, | |
| ) | |
| return completion.choices[0].message.content | |
| except APIStatusError as e: | |
| print(e) | |
| raise RuntimeError(e) | |
| except Exception as e: | |
| raise e | |
| def call_tts(text, audio_path, voice="jingdiannvsheng"): | |
| response = client.audio.speech.create(model=TTS_MODEL, voice=voice, input=text) | |
| response.stream_to_file(audio_path) | |
| return True | |
| def call_asr(audio_path): | |
| with open(audio_path, "rb") as audio_file: | |
| response = client.audio.transcriptions.create( | |
| model=ASR_MODEL, | |
| file=audio_file, | |
| response_format="json", | |
| ) | |
| return response.text | |
| if __name__ == "__main__": | |
| messages = [{"role": "user", "content": "介绍下你自己"}] | |
| res = call_audiochat(messages) | |
| print("call audiochat: ", res) | |
| audio_path = "test.mp3" | |
| text = "hello, 阶跃" | |
| call_tts(text, audio_path) | |
| res = call_asr(audio_path) | |
| print("call asr:", res) | |