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) | |