WebSockety Text to Speech a Text to Dialogue
Ten przewodnik pomoże ci wybrać odpowiedni WebSocket do strumieniowania mowy i wyjaśnia różnice między tymi dwoma protokołami.
ElevenLabs oferuje dwie rodziny produktów WebSocket do strumieniowania syntezowanej mowy. Każda rodzina ma wariant pojedynczego strumienia i wariant wielu kontekstów, który multipleksuje kilka niezależnych strumieni przez jedno połączenie. Rozwiązują różne problemy, przyjmują różne formaty wiadomości i obsługują różne modele.
Którego WebSocketu użyć?
Użyj WebSocketu Text to Speech (TTS), gdy strumieniujesz zwykły tekst dla jednego głosu na połączenie (głos jest ustalony w URL) i potrzebujesz modeli innych niż v3, takich jak Flash lub Multilingual v2, opcjonalnego SSML, harmonogramów chunków albo wariantu wielu kontekstów do obsługi przerwań w stylu agenta.
Użyj WebSocketu Text to Dialogue (TTD), gdy potrzebujesz działania dialogów Eleven v3: ekspresyjnego sposobu mówienia, **voice_id dla każdego chunku **, granic tur (new_turn) i tego samego buforowania zorientowanego na dialog, którego serwer używa dla v3.
Użyj WebSocketu TTD z wieloma kontekstami, gdy potrzebujesz tego samego działania dialogów Eleven v3 oraz kilku równoczesnych lub przeplatanych strumieni w jednym połączeniu — na przykład agenta konwersacyjnego, który musi przerwać i wznowić dialog bez otwierania nowego socketu za każdym razem.
W przypadku wsadowego lub strumieniowanego przez HTTP dialogu (pełne żądanie w jednym wywołaniu) użyj Create dialogue lub Stream dialogue zamiast WebSocketu.
Porównanie
Kiedy lepszy jest WebSocket TTS
- Masz już integrację z Flash lub Multilingual v2 ze względu na opóźnienia albo obsługę języków.
- Potrzebujesz jednego głosu narratora na połączenie i prostego protokołu tekstu na klatkę.
- Potrzebujesz koordynacji wielu kontekstów dla wtrąceń i równoległych wypowiedzi (przewodnik po wielu kontekstach).
Pełny opis WebSocketu TTS znajdziesz w Generate audio in real-time.
Kiedy lepszy jest WebSocket TTD
- Korzystasz z dialogów Eleven v4 (ekspresyjne tagi, konwersacyjne tempo, kwestie wielu mówców).
- Strumieniujesz dialog napisany w skrypcie lub wygenerowany przez LLM, w którym głos mówiący może zmieniać się w każdej kwestii bez otwierania nowego połączenia.
- Potrzebujesz przyrostowego wejścia w formacie WebSocketu z generowaniem dialogu wyłącznie w v4 na serwerze.
Aby przejść przez proces krok po kroku, użyj Realtime Text to Dialogue. Szczegóły protokołu znajdziesz w dokumentacji API.
WebSockety wielu kontekstów
Oba produkty oferują wariant wielu kontekstów, który multipleksuje kilka niezależnych strumieni przez jedno połączenie WebSocket. Każdy kontekst jest identyfikowany przez wybrane przez klienta context_id, buforuje własny tekst i emituje chunki audio oznaczone tym context_id. Konteksty TTS współdzielą voice_id z URL połączenia, natomiast konteksty TTD rejestrują własne głosy i ustawienia. Użyj tego formatu, gdy potrzebujesz równoczesnego lub przeplatanego generowania z obsługą przerwań — na przykład agent głosowy, który musi anulować trwającą wypowiedź i rozpocząć nową bez zamykania połączenia.
Kiedy lepszy jest WebSocket TTD wielu kontekstów
- Potrzebujesz działania dialogów Eleven v3 (ekspresyjnego sposobu mówienia,
voice_iddla każdego chunku, granic tur) oraz równoczesnych lub przeplatanych strumieni w jednym połączeniu. - Tworzysz agenta konwersacyjnego, który musi przerwać i wznowić dialog bez otwierania nowego socketu za każdym razem.
- Chcesz rozdzielić kilka niezależnych sesji dialogowych v3 — na przykład równoległe sceny lub mówców — przez jedno uwierzytelnione połączenie.
Informacje o jedno-strumieniowym WebSockecie TTD znajdziesz w Realtime Text to Dialogue. Informacje o WebSockecie TTS wielu kontekstów znajdziesz w przewodniku po WebSockecie wielu kontekstów. Szczegóły protokołu endpointu TTD wielu kontekstów znajdziesz w dokumentacji API.