テキスト読み上げとテキストtoダイアログのWebSocketの比較

このガイドでは、ストリーミング音声に適したWebSocketの選び方と、2つのプロトコルの違いを説明します。

ElevenLabsでは、合成音声をストリーミングするための2種類のWebSocketプロダクトを提供しています。それぞれ解決する課題、受け付けるメッセージ形式、対象モデルが異なります。

どのWebSocketを使うべきですか?

接続ごとに1つの音声(音声はURLで固定)でプレーンテキストをストリーミングし、FlashやMultilingual v2などのv3以外のモデル、任意のSSML、チャンクスケジュール、またはエージェント型の割り込み処理向けのマルチコンテキストバリアントを使いたい場合は、テキスト読み上げ(TTS)WebSocketを使用してください。

表現力豊かな出力、チャンクごとの**voice_id**、ターン境界(new_turn)、サーバー上のv3で使われるのと同じ対話向けバッファリングなど、Eleven v3の対話機能が必要な場合は、テキストtoダイアログ(TTD)WebSocketを使用してください。

バッチまたはHTTPストリーミングによる対話(1回の呼び出しでリクエスト全体を送信)には、WebSocketではなくダイアログを作成またはダイアログをストリーミングを使用してください。

比較

テキスト読み上げWebSocketテキストtoダイアログWebSocket
APIリファレンスTTS stream-inputTTD WebSocket
URLwss://api.elevenlabs.io/v1/text-to-speech/{voice_id}/stream-inputwss://api.elevenlabs.io/v1/text-to-dialogue/stream-input
音声の選択パス内のvoice_idは1つ。ストリーミングされるすべてのテキストでその音声を使用最初のメッセージで1つ以上のvoicesをIDで登録。各inputs[]エントリでvoice_idを指定
モデルFlash、Multilingual v2、その他の対応TTSモデル。このエンドポイントではeleven_v3は使用不可です。model_idはeleven_v3で始まる必要があります(例:eleven_v3またはeleven_v3_conversational)
最初のクライアントメッセージスペースと任意のvoice_settings/generation_configで初期化(リアルタイムTTSガイドを参照)**voices**を含める必要があります(認証情報がヘッダーまたはクエリですでに送信されていない場合は、それらも含めます)
継続中のテキストtext文字列(通常は末尾にスペース)を送信。任意でflush、try_trigger_generationなども使用可能inputsを送信:{ text, voice_id, new_turn? }オブジェクト。任意でflush、close_socket、**keep_alive**を使用可能
バッファリング/スケジューリングチャンク長スケジュールおよび関連するTTS WebSocketコントロールサーバーは十分なテキスト(およそ40文字かつ8語)が揃うまでバッファリングしてからオーディオを出力します。ただし、**flush**した場合を除きます
1つのソケットで複数話者複数の並列TTSコンテキストにはmulti-context WebSocketを使用。複数話者の対話セマンティクス用ではありませんeleven_v3では最大10個の音声を登録可能。eleven_v3_conversationalでは登録できる音声は1つのみ
非アクティブ時設定可能なinactivity_timeout(TTS WebSocketクエリ)クライアントメッセージ間は固定で20秒。**keep_alive**を送信した場合を除く
同時実行数アクティブな生成時間のみがプランの同時実行数上限にカウントされます。アイドル状態で開いているソケットはカウントされません開いている各接続は、接続中ずっと別プールのダイアログセッションを1つ使用します。接続経由の生成は標準の同時実行数を消費しません
アラインメント任意のsync_alignment(APIリファレンス内のTTSフィールド名)任意のsync_alignment。JSONレスポンスではsnake_caseフィールドを使用します(例:is_final、char_start_times_ms)

TTS WebSocketが適している場合

  • レイテンシーまたは対応言語のために、すでにFlashまたはMultilingual v2を統合している。
  • 接続ごとに1つのナレーター音声を使用し、フレームごとにテキストを送るシンプルなプロトコルが必要。
  • 割り込みや並列発話のためにマルチコンテキストオーケストレーションが必要(マルチコンテキストガイド)。

TTS WebSocketの詳細な手順は、リアルタイムでオーディオを生成を参照してください。

TTD WebSocketが適している場合

  • Eleven v3の対話(表現タグ、会話的なテンポ、複数話者のセリフ)を対象にしている。
  • 新しい接続を開かずに、話す音声を行ごとに変更できる、スクリプト化またはLLM生成の対話をストリーミングする。
  • サーバー上でv3専用の対話生成を行い、WebSocket形式で入力を段階的に送信したい。

実践的な手順については、リアルタイムテキストtoダイアログを参照してください。プロトコルの詳細はAPIリファレンスに記載されています。

関連ガイド