File size: 801 Bytes
7b786dd
c3ca602
7b786dd
 
c3ca602
7b786dd
 
c3ca602
7b786dd
 
 
 
 
 
 
 
 
 
 
 
 
 
8eef934
 
29e4c2a
8eef934
 
 
be8583c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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()