Text to Speech vs. Text to Dialogue WebSockets

Diese Anleitung zeigt Ihnen, wie Sie den passenden WebSocket für das Speech-Streaming auswählen und worin sich die beiden Protokolle unterscheiden.

ElevenLabs bietet zwei verschiedene WebSocket-Produkte für das Streaming synthetisierter Sprache. Sie lösen unterschiedliche Probleme, akzeptieren unterschiedliche Nachrichtenformate und sind für unterschiedliche Modelle ausgelegt.

Welchen WebSocket sollte ich verwenden?

Verwenden Sie den Text to Speech (TTS) WebSocket, wenn Sie einfachen Text für eine Stimme pro Verbindung streamen (die Stimme ist in der URL festgelegt) und keine v3-Modelle wie Flash oder Multilingual v2, optionales SSML, Chunk-Zeitpläne oder die Multi-Context-Variante zur Behandlung von Unterbrechungen im Agentenstil benötigen.

Verwenden Sie den Text to Dialogue (TTD) WebSocket, wenn Sie das Dialogverhalten von Eleven v3 benötigen: ausdrucksstarke Wiedergabe, **voice_id pro Chunk **, Sprecherwechselgrenzen (new_turn) und dieselbe dialogorientierte Pufferung, die auf dem Server für v3 verwendet wird.

Für Batch- oder HTTP-Streaming von Dialogen (vollständige Anfrage in einem Aufruf) verwenden Sie statt eines WebSockets Dialog erstellen oder Dialog streamen.

Vergleich

Text to Speech WebSocketText to Dialogue WebSocket
API-ReferenzTTS stream-inputTTD WebSocket
URLwss://api.elevenlabs.io/v1/text-to-speech/{voice_id}/stream-inputwss://api.elevenlabs.io/v1/text-to-dialogue/stream-input
StimmauswahlEine voice_id im Pfad; jeder gestreamte Text verwendet diese StimmeDie erste Nachricht registriert eine oder mehrere voices per ID; jeder Eintrag in inputs[] gibt eine voice_id an
ModelleFlash, Multilingual v2 und andere unterstützte TTS-Modelle. Nicht eleven_v3 auf diesem Endpunkt.model_id muss mit eleven_v3 beginnen (zum Beispiel eleven_v3 oder eleven_v3_conversational)
Erste Client-NachrichtInitialisieren Sie mit einem Leerzeichen und optionalen voice_settings / generation_config (siehe Echtzeit-TTS-Leitfaden)Muss voices enthalten (sowie Anmeldedaten, falls diese nicht bereits per Header oder Query gesendet wurden)
Fortlaufender TextSenden Sie einen text-String (üblicherweise mit abschließendem Leerzeichen); optional flush, try_trigger_generation usw.Senden Sie inputs: Objekte vom Typ { text, voice_id, new_turn? }; optional flush, close_socket, keep_alive
Pufferung / PlanungChunk-Längenplan und zugehörige TTS-WebSocket-SteuerungenDer Server puffert, bis genügend Text vorhanden ist (etwa 40 Zeichen und 8 Wörter), bevor er Audio ausgibt, sofern Sie nicht flush verwenden
Mehrere Sprecher auf einem SocketVerwenden Sie den Multi-Context WebSocket für mehrere parallele TTS-Kontexte, nicht für Dialogsemantik mit mehreren SprechernBis zu 10 registrierte Stimmen für eleven_v3; eleven_v3_conversational erlaubt nur eine registrierte Stimme
InaktivitätKonfigurierbares inactivity_timeout (TTS-WebSocket-Query)Fest 20 s zwischen Client-Nachrichten, sofern Sie nicht keep_alive senden
ParallelitätNur die aktive Generierungszeit zählt zum Parallelitätslimit Ihres Plans; ein inaktiver offener Socket zählt nichtJede offene Verbindung reserviert für ihre gesamte Laufzeit eine Dialog-Sitzung aus einem separaten Pool; die Generierung über die Verbindung verbraucht keine Standardparallelität
AlignmentOptionales sync_alignment (TTS-Feldbenennung in der API-Referenz)Optionales sync_alignment; JSON verwendet in Antworten snake_case-Felder (zum Beispiel is_final, char_start_times_ms)

Wann der TTS WebSocket besser geeignet ist

  • Sie integrieren bereits Flash oder Multilingual v2 für geringe Latenz oder Sprachabdeckung.
  • Sie möchten eine Sprecherstimme pro Verbindung und ein einfaches Text-pro-Frame-Protokoll.
  • Sie benötigen Multi-Context-Orchestrierung für Unterbrechungen und parallele Äußerungen (Multi-Context-Leitfaden).

Im Leitfaden Audio in Echtzeit generieren finden Sie eine vollständige Anleitung zum TTS WebSocket.

Wann der TTD WebSocket besser geeignet ist

  • Sie verwenden Eleven v3 für Dialoge (ausdrucksstarke Tags, Gesprächsrhythmus, Zeilen mit mehreren Sprechern).
  • Sie streamen skriptbasierte oder LLM-generierte Dialoge, bei denen die Sprecherstimme pro Zeile wechseln kann, ohne eine neue Verbindung zu öffnen.
  • Sie möchten inkrementelle Eingaben im WebSocket-Format mit nur für v3 verfügbarer Dialoggenerierung auf dem Server.

Eine praktische Anleitung finden Sie unter Echtzeit-Text to Dialogue. Protokolldetails finden Sie in der API-Referenz.

Zugehörige Leitfäden