Skip to navigation

Text to Speech vs. Text to Dialogue-WebSockets

In deze handleiding lees je hoe je de juiste WebSocket kiest voor het streamen van spraak en waarin de twee protocollen verschillen.

ElevenLabs biedt twee verschillende WebSocket-producten voor het streamen van gesynthetiseerde spraak. Ze lossen verschillende problemen op, accepteren verschillende berichtindelingen 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 staat vast in de URL) en je niet-v3-modellen zoals Flash of Multilingual v2, optionele SSML, chunkschema’s of de variant met meerdere contexten voor het afhandelen van onderbrekingen in agentstijl wilt gebruiken.

Gebruik de Text to Dialogue (TTD)-WebSocket wanneer je Eleven v3-dialooggedrag nodig hebt: expressieve voordracht, **voice_id per chunk **, beurtgrenzen (new_turn) en dezelfde op dialoog gerichte buffering die op de server voor v3 wordt gebruikt.

Gebruik voor batch- of HTTP-streaming van dialoog (volledige request in één aanroep) Dialoog maken of Dialoog streamen in plaats van een WebSocket.

Vergelijking

Text to Speech-WebSocketText to Dialogue-WebSocket
API-referentieTTS stream-inputTTD WebSocket
URLwss://api.elevenlabs.io/v1/text-to-speech/{voice_id}/stream-inputwss://api.elevenlabs.io/v1/text-to-dialogue/stream-input
StemselectieEén voice_id in het pad; alle gestreamde tekst gebruikt die stemHet eerste bericht registreert één of meer voices op ID; elk inputs[]-item noemt een voice_id
ModellenFlash, Multilingual v2 en andere ondersteunde TTS-modellen. Geen eleven_v3 of eleven_v4 op dit endpoint.model_id moet beginnen met eleven_v3 of eleven_v4 (bijvoorbeeld eleven_v4 of eleven_v4_turbo)
Eerste clientberichtInitialiseer met een spatie en optionele voice_settings / generation_config (zie de realtime TTS-handleiding)Moet voices bevatten (en inloggegevens als die nog niet via headers of de query zijn verzonden)
Doorlopende tekstVerzend een text-string (meestal met een spatie aan het einde); optionele flush, try_trigger_generation, enzovoortVerzend inputs: objecten van { text, voice_id, new_turn? }; optionele flush, close_socket, keep_alive
Buffering / planningChunklengteschema en gerelateerde TTS-WebSocket-besturingselementenDe server buffert totdat er voldoende tekst aanwezig is (ongeveer 40 tekens en 8 woorden) voordat audio wordt verzonden, tenzij je flush gebruikt
Meerdere sprekers op één socketGebruik de WebSocket met meerdere contexten voor meerdere parallelle TTS-contexten, niet voor dialoogsemantiek met meerdere sprekersMaximaal 10 geregistreerde stemmen voor eleven_v4; eleven_v4_turbo staat slechts één geregistreerde stem toe
InactiviteitConfigureerbare inactivity_timeout (TTS-WebSocket-query)Vaste 20 s tussen clientberichten, tenzij je keep_alive verstuurt
ConcurrencyAlleen actieve generatietijd telt mee voor de concurrencylimiet van je abonnement; een inactieve open socket telt niet meeElke open verbinding houdt gedurende de volledige levensduur één dialoogsessie uit een aparte pool bezet; generatie via de verbinding verbruikt geen standaard concurrency
UitlijningOptionele sync_alignment (TTS-veldnaam in de API-referentie)Optionele sync_alignment; JSON gebruikt snake_case-velden in responses (bijvoorbeeld is_final, char_start_times_ms)

Wanneer de TTS-WebSocket beter past

  • Je integreert al Flash of Multilingual v2 voor latency of taalondersteuning.
  • Je wilt één vertelstem per verbinding en een eenvoudig protocol met tekst per frame.
  • Je hebt multi-context-orkestratie nodig voor onderbrekingen en parallelle uitingen (multi-context-handleiding).

Zie Audio 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, gesprekstempo, 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 incrementele invoer in WebSocket-vorm met dialooggeneratie op de server die alleen voor v4 beschikbaar is.

Gebruik voor een praktische uitleg Realtime Text to Dialogue. Protocolgegevens vind je in de API-referentie.

Gerelateerde handleidingen