class TTS(tts.TTS): def __init__( self...
# ask-ai
a
class TTS(tts.TTS): def __init__( self, *, api_key: str | None = None, model: TTSModels | str = “sonic-2”, language: str = “en”, encoding: TTSEncoding = “pcm_s16le”, voice: str | list[float] = TTSDefaultVoiceId, speed: TTSVoiceSpeed | float | None = None, emotion: TTSVoiceEmotion | str | list[TTSVoiceEmotion | str] | None = None, volume: float | None = None, sample_rate: int = 24000, word_timestamps: bool = True, http_session: aiohttp.ClientSession | None = None, tokenizer: NotGivenOr[tokenize.SentenceTokenizer] = NOT_GIVEN, text_pacing: tts.SentenceStreamPacer | bool = False, base_url: str = “https://api.cartesia.ai”, api_version: str = API_VERSION, ) -> None: pourquoi c est ca le default de cartesia plugin y pas le lien websocket …
✅ 1
t
Thanks for reaching out, Ruben. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
Merci — je réponds à votre question sur pourquoi le
TTS
du plugin Cartesia a
https://api.cartesia.ai
comme valeur par défaut pour
base_url
au lieu d’un lien WebSocket. • La valeur par défaut
https://api.cartesia.ai
est l’endpoint HTTP REST du service Cartesia. Le plugin est configuré par défaut pour des requêtes HTTP (request/response) plutôt que pour du streaming WebSocket. • Le choix reflète un usage typique synchrone/non‑streaming où on envoie du texte et on reçoit un fichier audio ou des données en retour via HTTP. • Le framework LiveKit supporte des architectures de streaming (certains autres TTS montrent des flux WebSocket en interne), donc le fait que Cartesia utilise HTTP par défaut ne veut pas dire que le streaming est impossible — juste que ce n’est pas la configuration initiale documentée. • Si vous avez besoin de streaming WebSocket pour la synthèse vocale, cela peut être fait via une configuration personnalisée du plugin (le WebSocket n’est pas le comportement par défaut). Souhaitez‑vous : • que je vous montre comment configurer le plugin Cartesia pour utiliser WebSocket (si l’API Cartesia le permet dans votre accès), ou • que je vous propose une alternative déjà orientée streaming (ex. une autre TTS qui expose WebSocket) ? Donnez-moi votre préférence et je vous guide étape par étape. Sources: Building an Automated IVR Menu Caller | LiveKit Documentation | Cartesia TTS | LiveKit Documentation | Build a salary negotiation coach with a LemonSlice avatar | LiveKit | examples/voice_agents | livekit/livekit_composite | DeepWiki, with interactive elements
a
oui avec websocket
t
Parfait — vous voulez utiliser WebSocket. Voici l’essentiel et comment l’activer rapidement avec le plugin Cartesia TTS. Résumé rapide • Le plugin Cartesia prend en charge le streaming WebSocket pour la synthèse vocale en temps réel. • Appeler la méthode de streaming sur l’instance TTS active le flux WebSocket automatiquement — vous n’avez pas besoin de remplacer
base_url
par un ws:// dans l’init. Exemple minimal (Python) 1. Instanciez le TTS. 2. Ouvrez le stream et poussez du texte.
Copy code
from livekit.plugins import cartesia

tts = cartesia.TTS(model="sonic-3")   # utilise WebSocket pour le streaming
stream = tts.stream()                 # ouvre la connexion WebSocket en interne
stream.push_text("Bonjour, ceci est un test de streaming.")
# Traitez les frames audio renvoyées par le stream selon votre pipeline
Points utiles • Le stream gère la tokenisation, l’envoi des morceaux de texte, la réception d’audio (souvent en base64 PCM) et la conversion en frames audio pour lecture. • Vous pouvez contrôler le comportement du streaming via options comme
streamingLatency
,
chunkLengthSchedule
ou
autoMode
si vous avez besoin d’ajuster latence/taille des chunks. • L’endpoint HTTP (
https://api.cartesia.ai
) reste le default pour les appels REST ; mais la méthode
.stream()
utilise WebSocket en interne pour le streaming temps réel. Souhaitez‑vous que je : • vous donne un exemple complet montrant la réception/décodage des frames audio et la lecture (ou sauvegarde en fichier), ou • vous montre comment ajuster
streamingLatency
/
chunkLengthSchedule
pour réduire la latence ? Dites‑moi ce dont vous avez besoin et je vous fournis l’exemple adapté. Sources: examples/voice_agents | livekit/livekit_composite | DeepWiki, with interactive elements