WebSocket Text to Speech e Text to Dialogue
ElevenLabs offre due famiglie di prodotti WebSocket per lo streaming del parlato sintetizzato. Ogni famiglia include una variante a stream singolo e una variante multi-contesto che multiplexa diversi stream indipendenti su un’unica connessione. Risolvono problemi diversi, accettano formati di messaggio diversi e sono pensati per modelli diversi.
Quale WebSocket devo usare?
Usa il WebSocket Text to Speech (TTS) quando trasmetti in streaming testo semplice per una voce per connessione (la voce è fissa nell’URL) e vuoi usare modelli non v3 come Flash o Multilingual v2, SSML opzionale, pianificazioni dei chunk o la variante multi-contesto per gestire le interruzioni in stile agente.
Usa il WebSocket Text to Dialogue (TTD) quando ti serve il comportamento di dialogo di Eleven v3: resa espressiva, **voice_id per chunk **, confini di turno (new_turn) e lo stesso buffering orientato al dialogo usato dal server per v3.
Usa il WebSocket TTD multi-contesto quando ti serve lo stesso comportamento di dialogo di Eleven v3 e diversi stream simultanei o intercalati su un’unica connessione, ad esempio per un agente conversazionale che deve interrompere e riavviare il dialogo senza aprire ogni volta un nuovo socket.
Per il dialogo batch o in streaming HTTP (richiesta completa in un’unica chiamata), usa invece Crea dialogo o Trasmetti dialogo in streaming anziché un WebSocket.
Confronto
Quando il WebSocket TTS è la scelta migliore
- Hai già integrato Flash o Multilingual v2 per latenza o copertura linguistica.
- Vuoi una voce narrante per connessione e un semplice protocollo con testo per frame.
- Ti serve l’orchestrazione multi-contesto per interruzioni e enunciati paralleli (guida multi-contesto).
Consulta Generare audio in tempo reale per una guida completa al WebSocket TTS.
Quando il WebSocket TTD è la scelta migliore
- Usi il dialogo di Eleven v4 (tag espressivi, ritmo conversazionale, battute con più speaker).
- Trasmetti in streaming dialoghi scritti o generati da LLM in cui la voce parlante può cambiare a ogni battuta senza aprire una nuova connessione.
- Vuoi input incrementali in formato WebSocket con generazione di dialogo solo v4 sul server.
Per una guida pratica, usa Text to Dialogue in tempo reale. I dettagli del protocollo sono nel riferimento API.
WebSocket multi-contesto
Entrambi i prodotti offrono una variante multi-contesto che multiplexa diversi stream indipendenti su un’unica connessione WebSocket. Ogni contesto è identificato da un context_id scelto dal client, gestisce il proprio buffer di testo ed emette chunk audio contrassegnati con quel context_id. I contesti TTS condividono il voice_id dall’URL della connessione, mentre i contesti TTD registrano le proprie voci e impostazioni. Usa questo formato quando ti serve una generazione simultanea o intercalata con gestione delle interruzioni, ad esempio per un agente vocale che deve annullare un enunciato in corso e avviarne uno nuovo senza chiudere la connessione.
Quando il WebSocket TTD multi-contesto è la scelta migliore
- Ti serve il comportamento di dialogo di Eleven v3 (resa espressiva,
voice_idper chunk, confini di turno) e stream simultanei o intercalati su un’unica connessione. - Stai creando un agente conversazionale che deve interrompere e riavviare il dialogo senza aprire ogni volta un nuovo socket.
- Vuoi distribuire diverse sessioni di dialogo v3 indipendenti, ad esempio scene o speaker paralleli, su un’unica connessione autenticata.
Per il WebSocket TTD a stream singolo, consulta Text to Dialogue in tempo reale. Per il WebSocket TTS multi-contesto, consulta la guida al WebSocket multi-contesto. I dettagli del protocollo per l’endpoint TTD multi-contesto sono nel riferimento API.