Vai alla navigazione

WebSocket Text to Speech e Text to Dialogue

Questa guida ti mostra come scegliere il WebSocket giusto per lo streaming del parlato e in cosa differiscono i due protocolli.

ElevenLabs offre due diversi prodotti WebSocket per lo streaming del parlato sintetizzato. Risolvono problemi diversi, accettano formati di messaggio diversi e sono destinati a modelli diversi.

Quale WebSocket devo usare?

Usa il WebSocket Text to Speech (TTS) quando trasmetti testo semplice per una voce per connessione (la voce è fissa nell’URL) e vuoi usare modelli non v3 come Flash o Multilingual v2, SSML facoltativo, pianificazioni dei blocchi o la variante multi-contesto per la gestione delle interruzioni in stile agente.

Usa il WebSocket Text to Dialogue (TTD) quando hai bisogno del comportamento di dialogo di Eleven v3: interpretazione espressiva, **voice_id per blocco **, confini di turno (new_turn) e lo stesso buffering orientato al dialogo utilizzato per v3 sul server.

Per dialoghi batch o in streaming HTTP (richiesta completa in una sola chiamata), utilizza invece Crea dialogo o Trasmetti dialogo anziché un WebSocket.

Confronto

WebSocket Text to SpeechWebSocket Text to Dialogue
Riferimento APIInput stream TTSWebSocket TTD
URLwss://api.elevenlabs.io/v1/text-to-speech/{voice_id}/stream-inputwss://api.elevenlabs.io/v1/text-to-dialogue/stream-input
Selezione della voceUn voice_id nel path; tutto il testo trasmesso usa quella voceIl primo messaggio registra una o più voices tramite ID; ogni voce in inputs[] indica un voice_id
ModelliFlash, Multilingual v2 e altri modelli TTS supportati. Nessun eleven_v3 o eleven_v4 su questo endpoint.model_id deve iniziare con eleven_v3 o eleven_v4 (ad esempio eleven_v4 o eleven_v4_turbo)
Primo messaggio del clientInizializza con uno spazio e voice_settings / generation_config facoltativi (consulta la guida TTS in tempo reale)Deve includere voices (e le credenziali, se non sono già state inviate tramite header o query)
Testo successivoInvia una stringa text (in genere con uno spazio finale); flush, try_trigger_generation ecc. facoltativiInvia inputs: oggetti { text, voice_id, new_turn? }; flush, close_socket, keep_alive facoltativi
Buffering / pianificazionePianificazione della lunghezza dei blocchi e relativi controlli del WebSocket TTSIl server esegue il buffering finché non è presente abbastanza testo (circa 40 caratteri e 8 parole) prima di emettere l’audio, a meno che non usi flush
Più parlanti su un socketUsa il WebSocket multi-contesto per più contesti TTS paralleli, non per la semantica di dialogo multi-parlanteFino a 10 voci registrate per eleven_v4; eleven_v4_turbo consente una sola voce registrata
Inattivitàinactivity_timeout configurabile (query del WebSocket TTS)20 s fissi tra i messaggi del client, a meno che non invii keep_alive
ConcorrenzaSolo il tempo di generazione attivo conta ai fini del limite di concorrenza del tuo piano; un socket aperto inattivo non contaOgni connessione aperta occupa una sessione di dialogo da un pool separato per tutta la sua durata; la generazione sulla connessione non consuma la concorrenza standard
Allineamentosync_alignment facoltativo (nomenclatura dei campi TTS nel riferimento API)sync_alignment facoltativo; JSON usa campi in snake_case nelle risposte (ad esempio is_final, char_start_times_ms)

Quando il WebSocket TTS è la scelta migliore

  • Hai già integrato Flash o Multilingual v2 per la latenza o la copertura linguistica.
  • Vuoi una voce narrante per connessione e un semplice protocollo con testo per frame.
  • Ti serve l’orchestrazione multi-contesto per barge-in 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

  • Il tuo obiettivo sono dialoghi Eleven v4 (tag espressivi, ritmo conversazionale, battute con più parlanti).
  • Trasmetti dialoghi scritti o generati da LLM in cui la voce parlante può cambiare per ogni battuta senza aprire una nuova connessione.
  • Vuoi input incrementali in formato WebSocket con generazione di dialoghi solo v4 sul server.

Per una guida pratica, utilizza Text to Dialogue in tempo reale. I dettagli del protocollo sono nel riferimento API.

Guide correlate