> 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.

# 文本转语音与文本转对话 WebSocket 对比

ElevenLabs 提供两种不同的 WebSocket 产品，用于流式传输合成语音。它们解决的问题不同，接受的消息格式不同，面向的模型也不同。

## 应该使用哪种 WebSocket？

当你为 **每个连接使用一个音色**（音色固定在 URL 中）流式传输纯文本，并且需要 **非 v3** 模型（如 Flash 或 Multilingual v2）、可选 SSML、分块计划，或用于智能体式打断处理的 **多上下文** 变体时，请使用 **文本转语音（TTS）WebSocket**。

当你需要 **Eleven v3** 对话能力时，请使用 **文本转对话（TTD）WebSocket**：富有表现力的语音、**每个分块的 `voice_id`**、轮次边界（`new_turn`），以及与服务器端 v3 相同的面向对话的缓冲机制。

如需进行 **批量或 HTTP 流式传输** 对话（一次调用提交完整请求），请使用[创建对话](/docs/zh/api-reference/text-to-dialogue/convert)或[流式传输对话](/docs/zh/api-reference/text-to-dialogue/stream)，而不是 WebSocket。

## 对比

|                      | 文本转语音 WebSocket                                                                                                       | 文本转对话 WebSocket                                                                                            |
| -------------------- | --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| **API 参考文档**         | [TTS stream-input](/docs/zh/api-reference/text-to-speech/v-1-text-to-speech-voice-id-stream-input)                    | [TTD WebSocket](/docs/zh/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`；所有流式文本均使用该音色                                                                                       | 首条消息通过 ID 注册一个或多个 `voices`；每个 `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`**                                                |
| **单个 socket 上的多说话人** | 对多个**并行 TTS 上下文**使用[多上下文 WebSocket](/docs/zh/eleven-api/guides/how-to/websockets/multi-context-web-socket)，而非多说话人对话语义 | `eleven_v4` 最多注册 **10** 个音色；**`eleven_v4_turbo` 仅允许注册一个**音色                                                |
| **不活动**              | 可配置 `inactivity_timeout`（TTS WebSocket 查询参数）                                                                          | 两条客户端消息之间固定为 **20 秒**，除非发送 **`keep_alive`**                                                                |
| **并发**               | 仅活跃生成时间计入套餐的[并发限制](/docs/zh/overview/models#concurrency-and-priority)；空闲的开放 socket 不计入                                | 每个开放连接在整个生命周期内都会占用独立资源池中的一个[对话会话](/docs/zh/overview/models#text-to-dialogue-concurrency)；通过该连接生成内容不会消耗标准并发 |
| **对齐**               | 可选 `sync_alignment`（API 参考文档中的 TTS 字段命名）                                                                              | 可选 `sync_alignment`；JSON 响应使用 **snake_case** 字段（例如 `is_final`、`char_start_times_ms`）                       |

## 何时更适合使用 TTS WebSocket

* 你已集成 **Flash** 或 **Multilingual v2**，以满足延迟或语言覆盖需求。
* 每个连接需要**一个旁白音色**，并希望使用简单的每帧文本协议。
* 需要用于打断和并行话语的 **多上下文** 编排（[多上下文指南](/docs/zh/eleven-api/guides/how-to/websockets/multi-context-web-socket)）。

有关 TTS WebSocket 的完整操作说明，请参阅[实时生成音频](/docs/zh/eleven-api/guides/how-to/websockets/realtime-tts)。

## 何时更适合使用 TTD WebSocket

* 面向 **Eleven v4** 对话（表现力标签、自然对话节奏、多说话人台词）。
* 流式传输**脚本化或由 LLM 生成的对话**，并且无需新建连接即可**按行切换说话音色**。
* 希望使用 **WebSocket 形式的**增量输入，以及服务器端仅适用于 **v4** 的对话生成。

如需实际操作指南，请参阅[实时文本转对话](/docs/zh/eleven-api/guides/how-to/websockets/realtime-tdd)。协议详情请参阅 [API 参考文档](/docs/zh/api-reference/text-to-dialogue/ttd-websocket)。

## 相关指南

#### [实时文本转对话](/docs/zh/eleven-api/guides/how-to/websockets/realtime-tdd)

连接、注册音色、流式传输 `inputs`，并保存 TTD WebSocket 中的音频。

#### [实时 TTS WebSocket](/docs/zh/eleven-api/guides/how-to/websockets/realtime-tts)

标准 TTS WebSocket 的分步连接和消息发送说明。

#### [多上下文 WebSocket](/docs/zh/eleven-api/guides/how-to/websockets/multi-context-web-socket)

在一个连接中使用多个 TTS 上下文，适用于智能体工作流。

#### [文本转对话快速入门](/docs/zh/eleven-api/guides/cookbooks/text-to-dialogue)

多音色对话的 HTTP 请求示例。

#### [文本转对话功能](/docs/zh/overview/capabilities/text-to-dialogue)

面向产品的对话生成概览。