Text to Speech jämfört med Text to Dialogue WebSockets
Den här guiden visar hur du väljer rätt WebSocket för att streama tal och hur de två protokollen skiljer sig åt.
ElevenLabs erbjuder två familjer av WebSocket-produkter för streaming av syntetiserat tal. Varje familj har en variant med en ström och en variant med flera kontexter som multiplexar flera oberoende strömmar över en anslutning. De löser olika problem, accepterar olika meddelandeformat och riktar sig till olika modeller.
Vilken WebSocket ska jag använda?
Använd Text to Speech (TTS) WebSocket när du streamar vanlig text för en röst per anslutning (rösten är fast i URL:en) och vill använda modeller som inte är v3, till exempel Flash eller Multilingual v2, valfri SSML, chunkscheman eller varianten med flera kontexter för hantering av avbrott i agentliknande arbetsflöden.
Använd Text to Dialogue (TTD) WebSocket när du behöver dialogbeteendet i Eleven v3: uttrycksfull leverans, **voice_id per chunk **, turgränser (new_turn) och samma dialoginriktade buffring som används för v3 på servern.
Använd TTD WebSocket med flera kontexter när du behöver samma dialogbeteende i Eleven v3 och flera samtidiga eller sammanflätade strömmar på en enda anslutning — till exempel en konversationsagent som måste avbryta och starta om dialog utan att öppna en ny socket varje gång.
För batch- eller HTTP-streaming av dialog (hela begäran i ett anrop) använder du i stället Skapa dialog eller Streama dialog för en WebSocket.
Jämförelse
När TTS WebSocket passar bättre
- Du integrerar redan Flash eller Multilingual v2 för latens eller språkstöd.
- Du vill ha en berättarröst per anslutning och ett enkelt text-per-frame-protokoll.
- Du behöver orkestrering med flera kontexter för avbrott och parallella yttranden (guide för flera kontexter).
Se Generera ljud i realtid för en komplett genomgång av TTS WebSocket.
När TTD WebSocket passar bättre
- Du använder Eleven v4-dialog (uttrycksfulla taggar, samtalsanpassat tempo, repliker med flera talare).
- Du streamar skriptad eller LLM-genererad dialog där rösten kan ändras för varje rad utan att öppna en ny anslutning.
- Du vill ha WebSocket-liknande inkrementell inmatning med dialoggenerering som är endast för v4 på servern.
För en praktisk genomgång använder du Text to Dialogue i realtid. Protokollinformation finns i API-referensen.
WebSockets med flera kontexter
Båda produkterna har en variant med flera kontexter som multiplexar flera oberoende strömmar över en enda WebSocket-anslutning. Varje kontext identifieras av ett context_id som klienten väljer, buffrar sin egen text och skickar ljudchunks taggade med det context_id. TTS-kontexter delar voice_id från anslutningens URL, medan TTD-kontexter registrerar egna röster och inställningar. Använd detta format när du behöver samtidig eller sammanflätad generering med avbrottshantering — till exempel en röstagent som måste avbryta ett pågående yttrande och starta ett nytt utan att stänga anslutningen.
När TTD WebSocket med flera kontexter passar bättre
- Du behöver dialogbeteende i Eleven v3 (uttrycksfull leverans,
voice_idper chunk, turgränser) och samtidiga eller sammanflätade strömmar på en anslutning. - Du bygger en konversationsagent som måste avbryta och starta om dialog utan att öppna en ny socket varje gång.
- Du vill fördela flera oberoende v3-dialogsessioner — till exempel parallella scener eller talare — över en enda autentiserad anslutning.
För TTD WebSocket med en ström, se Text to Dialogue i realtid. För TTS WebSocket med flera kontexter, se guiden för WebSocket med flera kontexter. Protokollinformation för TTD-endpointen med flera kontexter finns i API-referensen.