Text to Speech versus Text to Dialogue WebSockets
ElevenLabs biedt twee groepen WebSocket-producten voor het streamen van gesynthetiseerde spraak. Elke groep heeft een variant met één stream en een variant met meerdere contexten, die verschillende onafhankelijke streams via één verbinding multiplexeert. Ze lossen verschillende problemen op, accepteren verschillende berichtstructuren en zijn gericht op verschillende modellen.
Welke WebSocket moet ik gebruiken?
Gebruik de Text to Speech (TTS)-WebSocket wanneer je gewone tekst streamt voor één stem per verbinding (de stem is vastgelegd in de URL) en je niet-v3-modellen wilt gebruiken, zoals Flash of Multilingual v2, optionele SSML, chunkschema’s of de variant met meerdere contexten voor het afhandelen van onderbrekingen in agentstijl.
Gebruik de Text to Dialogue (TTD)-WebSocket wanneer je Eleven v3-dialooggedrag nodig hebt: expressieve weergave, **voice_id per chunk **, beurtgrenzen (new_turn) en dezelfde op dialoog gerichte buffering die op de server voor v3 wordt gebruikt.
Gebruik de TTD-WebSocket met meerdere contexten wanneer je hetzelfde Eleven v3-dialooggedrag nodig hebt én meerdere gelijktijdige of door elkaar lopende streams op één verbinding — bijvoorbeeld voor een conversationele agent die een dialoog moet onderbreken en opnieuw starten zonder telkens een nieuwe socket te openen.
Gebruik voor batch- of HTTP-streaming van dialoog (de volledige request in één aanroep) Create dialogue of Stream dialogue in plaats van een WebSocket.
Vergelijking
Wanneer de TTS-WebSocket beter past
- Je integreert al Flash of Multilingual v2 vanwege latentie of taalondersteuning.
- Je wilt één vertelstem per verbinding en een eenvoudig tekst-per-frame-protocol.
- Je hebt multi-context-orkestratie nodig voor onderbrekingen en parallelle uitingen (multi-context-gids).
Zie Audio in realtime genereren voor een volledige uitleg van de TTS-WebSocket.
Wanneer de TTD-WebSocket beter past
- Je richt je op Eleven v4-dialoog (expressieve tags, conversationeel tempo, regels met meerdere sprekers).
- Je streamt gescripte of door een LLM gegenereerde dialoog waarbij de sprekende stem per regel kan veranderen zonder een nieuwe verbinding te openen.
- Je wilt stapsgewijze input in WebSocket-vorm met dialooggeneratie die alleen voor v4 beschikbaar is op de server.
Gebruik voor een praktische uitleg Realtime Text to Dialogue. Protocolinformatie vind je in de API-referentie.
WebSockets met meerdere contexten
Beide producten bieden een variant met meerdere contexten, die verschillende onafhankelijke streams via één WebSocket-verbinding multiplexeert. Elke context wordt geïdentificeerd door een door de client gekozen context_id, buffert zijn eigen tekst en stuurt audiochunks met die context_id. TTS-contexten delen de voice_id uit de URL van de verbinding, terwijl TTD-contexten hun eigen stemmen en instellingen registreren. Gebruik deze indeling wanneer je gelijktijdige of door elkaar lopende generatie met onderbrekingsafhandeling nodig hebt — bijvoorbeeld voor een spraakagent die een lopende uiting moet annuleren en een nieuwe moet starten zonder de verbinding te verbreken.
Wanneer de TTD-WebSocket met meerdere contexten beter past
- Je hebt Eleven v3-dialooggedrag nodig (expressieve weergave,
voice_idper chunk, beurtgrenzen) én gelijktijdige of door elkaar lopende streams op één verbinding. - Je bouwt een conversationele agent die een dialoog moet onderbreken en opnieuw starten zonder telkens een nieuwe socket te openen.
- Je wilt verschillende onafhankelijke v3-dialoogsessies via één geauthenticeerde verbinding distribueren — bijvoorbeeld parallelle scènes of sprekers.
Zie voor de TTD-WebSocket met één stream Realtime Text to Dialogue. Zie voor de TTS-WebSocket met meerdere contexten de gids voor de WebSocket met meerdere contexten. Protocolinformatie voor het TTD-endpoint met meerdere contexten vind je in de API-referentie.