|
import os |
|
|
|
from fastrtc import (ReplyOnPause, Stream, get_stt_model, get_tts_model) |
|
from openai import OpenAI |
|
|
|
sambanova_client = OpenAI( |
|
api_key=os.getenv("key"), base_url="https://api.deepinfra.com/v1" |
|
) |
|
stt_model = get_stt_model() |
|
tts_model = get_tts_model() |
|
|
|
def echo(audio): |
|
prompt = stt_model.stt(audio) |
|
response = sambanova_client.chat.completions.create( |
|
model="mistralai/Mistral-Small-24B-Instruct-2501", |
|
messages=[{"role": "user", "content": prompt}], |
|
max_tokens=200, |
|
) |
|
prompt = response.choices[0].message.content |
|
for audio_chunk in tts_model.stream_tts_sync(prompt): |
|
yield audio_chunk |
|
|
|
Stream( |
|
handler=..., |
|
rtc_configuration=get_cloudflare_turn_credentials, |
|
modality="audio", |
|
mode="send-receive" |
|
) |
|
|
|
stream.fastphone() |