> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# テキスト読み上げとテキストto会話のWebSocket

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

## どちらのWebSocketを使うべきですか？

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

Eleven v3の対話動作（表現豊かな読み上げ、**チャンクごとの `voice_id`**、ターン境界（`new_turn`）、サーバー上のv3と同じ対話向けバッファリング）が必要な場合は、**テキストtoダイアログ（TTD）WebSocket** を使用してください。

**バッチまたはHTTPストリーミング** のダイアログ（1回の呼び出しでリクエスト全体を送信）には、WebSocketではなく [ダイアログを作成](/docs/ja/api-reference/text-to-dialogue/convert) または [ダイアログをストリーミング](/docs/ja/api-reference/text-to-dialogue/stream) を使用してください。

## 比較

|                      | テキスト読み上げWebSocket                                                                                                                                     | テキストtoダイアログWebSocket                                                                                                          |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **APIリファレンス**        | [TTS stream-input](/docs/ja/api-reference/text-to-speech/v-1-text-to-speech-voice-id-stream-input)                                                    | [TTD WebSocket](/docs/ja/api-reference/text-to-dialogue/ttd-websocket)                                                        |
| **URL**              | `wss://api.elevenlabs.io/v1/text-to-speech/{voice_id}/stream-input`                                                                                   | `wss://api.elevenlabs.io/v1/text-to-dialogue/stream-input`                                                                    |
| **音声の選択**            | パス内の `voice_id` は1つ。ストリーミングされるすべてのテキストでその音声を使用                                                                                                        | 最初のメッセージで1つ以上の `voices` をIDで登録。各 `inputs[]` エントリで `voice_id` を指定                                                              |
| **モデル**              | Flash、Multilingual v2、その他の対応TTSモデル。このエンドポイントでは `eleven_v3` と `eleven_v4` は **使用できません**。                                                               | \*\*`model_id` は `eleven_v3` または `eleven_v4` で始める必要があります \*\*（例：`eleven_v4`、`eleven_v4_turbo`）                                |
| **最初のクライアントメッセージ**   | スペースと任意の `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コンテキスト** には [マルチコンテキストWebSocket](/docs/ja/eleven-api/guides/how-to/websockets/multi-context-web-socket) を使用します。複数話者ダイアログのセマンティクスには対応していません | `eleven_v4` では最大 **10** の音声を登録可能。**`eleven_v4_turbo` では登録できる音声は1つのみ**                                                         |
| **非アクティブ状態**         | 設定可能な `inactivity_timeout`（TTS WebSocketクエリ）                                                                                                          | クライアントメッセージ間は **固定で20秒**。**`keep_alive`** を送信した場合を除く                                                                          |
| **同時実行数**            | アクティブな生成時間のみがプランの [同時実行数制限](/docs/ja/overview/models#concurrency-and-priority) にカウントされます。アイドル状態で開いているソケットはカウントされません                                   | 各オープン接続は、その存続期間を通じて別プールの [ダイアログセッション](/docs/ja/overview/models#text-to-dialogue-concurrency) を1つ保持します。接続経由の生成は標準の同時実行数を消費しません |
| **アラインメント**          | 任意の `sync_alignment`（APIリファレンス内のTTSフィールド名）                                                                                                            | 任意の `sync_alignment`。JSONレスポンスでは **スネークケース** のフィールドを使用します（例：`is_final`、`char_start_times_ms`）                                 |

## TTS WebSocketが適している場合

* レイテンシーや対応言語のために、すでに **Flash** または **Multilingual v2** を統合している。
* 接続ごとに **1つのナレーター音声** を使用し、フレームごとにテキストを送るシンプルなプロトコルが必要。
* 割り込みや並列発話のために **マルチコンテキスト** オーケストレーションが必要（[マルチコンテキストガイド](/docs/ja/eleven-api/guides/how-to/websockets/multi-context-web-socket)）。

TTS WebSocketの詳細な手順は、[リアルタイムでオーディオを生成](/docs/ja/eleven-api/guides/how-to/websockets/realtime-tts) を参照してください。

## TTD WebSocketが適している場合

* **Eleven v4** のダイアログ（表現タグ、会話のテンポ、複数話者のセリフ）を対象にしている。
* 新しい接続を開かずに、**行ごとに話す音声を変更できる** **スクリプト化された、またはLLMが生成したダイアログ** をストリーミングする。
* WebSocket形式の増分入力と、サーバー上の **v4専用** ダイアログ生成が必要。

実践的な手順は、[リアルタイムテキストtoダイアログ](/docs/ja/eleven-api/guides/how-to/websockets/realtime-tdd) を参照してください。プロトコルの詳細は [APIリファレンス](/docs/ja/api-reference/text-to-dialogue/ttd-websocket) にあります。

## 関連ガイド

#### [リアルタイムテキストtoダイアログ](/docs/ja/eleven-api/guides/how-to/websockets/realtime-tdd)

接続、音声の登録、`inputs` のストリーミング、TTD WebSocketからのオーディオ保存を行います。

#### [リアルタイムTTS WebSocket](/docs/ja/eleven-api/guides/how-to/websockets/realtime-tts)

標準TTS WebSocketの接続とメッセージ送信をステップごとに解説します。

#### [マルチコンテキストWebSocket](/docs/ja/eleven-api/guides/how-to/websockets/multi-context-web-socket)

エージェントワークフロー向けに、1つの接続で複数のTTSコンテキストを扱えます。

#### [テキストtoダイアログのクイックスタート](/docs/ja/eleven-api/guides/cookbooks/text-to-dialogue)

複数音声によるダイアログのHTTPリクエスト例です。

#### [テキストtoダイアログの機能](/docs/ja/overview/capabilities/text-to-dialogue)

ダイアログ生成のプロダクト中心の概要です。