テキスト読み上げとテキストtoダイアログのWebSocket比較
このガイドでは、ストリーミング音声に適したWebSocketの選び方と、2つのプロトコルの違いを説明します。
ElevenLabsは、合成音声をストリーミングするための2種類のWebSocketプロダクトを提供しています。各プロダクトには、単一ストリーム版と、複数の独立したストリームを1つの接続で多重化するマルチコンテキスト版があります。これらは異なる課題を解決し、異なるメッセージ形式を受け付け、対象モデルも異なります。
どのWebSocketを使うべきですか?
接続ごとに1つの音声(音声はURLで固定)でプレーンテキストをストリーミングし、FlashやMultilingual v2などのv3以外のモデル、任意のSSML、チャンクスケジュール、またはエージェント形式の割り込み処理向けのマルチコンテキスト版を利用したい場合は、テキスト読み上げ(TTS)WebSocketを使用してください。
表現力豊かな音声、チャンクごとのvoice_id、ターン境界(new_turn)、サーバー側でv3に使用されるダイアログ向けバッファリングなど、Eleven v3のダイアログ動作が必要な場合は、テキストtoダイアログ(TTD)WebSocketを使用してください。
同じEleven v3のダイアログ動作に加え、1つの接続上で複数の同時または交互のストリームが必要な場合は、TTDマルチコンテキストWebSocketを使用してください。たとえば、毎回新しいソケットを開かずにダイアログを中断・再開する必要がある会話型エージェントで利用できます。
バッチまたはHTTPストリーミングによるダイアログ(1回の呼び出しでリクエスト全体を送信)には、WebSocketではなくダイアログを作成またはダイアログをストリーミングを使用してください。
比較
TTS WebSocketが適している場合
- レイテンシまたは対応言語のために、すでにFlashまたはMultilingual v2を統合している。
- 接続ごとにナレーター音声1つを使用し、フレームごとにテキストを送るシンプルなプロトコルが必要。
- 割り込みと並列発話のためにマルチコンテキストのオーケストレーションが必要(マルチコンテキストガイド)。
TTS WebSocketの詳しい手順は、リアルタイムでオーディオを生成を参照してください。
TTD WebSocketが適している場合
- Eleven v4のダイアログ(表現タグ、会話に適したテンポ、複数話者のセリフ)を対象としている。
- 新しい接続を開かずに、行ごとに話す音声を変更できる台本ベースまたはLLM生成のダイアログをストリーミングする。
- サーバー側でのv4専用ダイアログ生成に対して、WebSocket形式の増分入力を使用したい。
実際に試す手順は、リアルタイムテキストtoダイアログを参照してください。プロトコルの詳細はAPIリファレンスにあります。
マルチコンテキストWebSocket
どちらのプロダクトにも、複数の独立したストリームを1つのWebSocket接続で多重化するマルチコンテキスト版があります。各コンテキストはクライアントが選択したcontext_idで識別され、独自のテキストをバッファリングし、そのcontext_idが付いたオーディオチャンクを出力します。TTSコンテキストは接続URLのvoice_idを共有しますが、TTDコンテキストは独自の音声と設定を登録します。割り込み処理を伴う同時または交互の生成が必要な場合に、この形式を使用してください。たとえば、接続を切断せずに進行中の発話をキャンセルして新しい発話を開始する必要がある音声エージェントに適しています。
TTDマルチコンテキストWebSocketが適している場合
- Eleven v3のダイアログ動作(表現力豊かな音声、チャンクごとの
voice_id、ターン境界)と、1つの接続での同時または交互のストリームが必要。 - 毎回新しいソケットを開かずにダイアログを中断・再開する必要がある会話型エージェントを構築している。
- 1つの認証済み接続上で、複数の独立したv3ダイアログセッションを分岐させたい。たとえば、並列のシーンや話者など。
単一ストリームのTTD WebSocketについては、リアルタイムテキストtoダイアログを参照してください。TTSマルチコンテキストWebSocketについては、マルチコンテキストWebSocketガイドを参照してください。TTDマルチコンテキストエンドポイントのプロトコル詳細は、APIリファレンスにあります。