一、功能概述
TTS 段采用 Provider + Params 接入模式,支持:
·TRTC 自研 TTS(trtc,默认):即开即用,无需开通第三方服务,推荐绝大多数场景直接使用。
·第三方 TTS(minimax / azure ):满足指定音色、特定厂商音质的需求。
·自定义 TTS(custom):自研 TTS、私有化部署 TTS,基于 OpenAI TTS 标准协议对接。
注意:说明:
注意:S2S(端到端)模式下,音频由端到端模型直接生成,不存在独立的 TTS 段,无需配置 TTSConfig。
二、配置结构
创建 AI 对话任务时,通过 TTSConfig 指定 TTS 配置:
| 字段名 | 必选 | 类型 | 描述 |
| Provider | 是 | String | TTS 厂商标识:trtc(默认)/ minimax / azure / custom。 |
| Params | 是 | String | 厂商专属参数,JSON 字符串。 |
三、Params 参数说明(Provider = trtc)
| 字段名 | 类型 | 必选 | 描述 |
| Model | String | 是 | 音色模型(TTS 模型参数,仅支持填写"flow_02_turbo")。 |
| VoiceId | String | 是 | 音色 ID。对于不同的语言,需要填写特定的音色 ID,详细参见 VoiceId 音色说明。 |
| Speed | Float | 否 | 语速,默认 1.0。 |
| Volume | Float | 否 | 音量,范围 0.0-2.0,默认 1.0。 |
| Pitch | Float | 否 | 音高(半音),默认 0.0。 |
四、VoiceId 音色说明
VoiceId 为音色 ID,不同语言需填写对应的音色 ID,支持的音色如下:
| 语言 | 男生音色 | 女生音色 |
| 中文(zh) | v-male-s5NqE0rZ | v-female-R2s4N9qJ |
| 英语(en) | v-male-X6h4TvP9 | v-female-P6q9LmR2 |
| 日语(ja) | v-male-J3n8DxK2 | v-female-J3k7NxR2 |
| 粤语(yue) | v-male-D7p4XcL2 | v-female-C5t1QxH9 |
| 印度尼西亚语(id) | v-male-B5f2CnS3 | v-female-W5n8HgB2 |
| 泰语(th) | v-male-B5f2CnS3 | v-female-W5n8HgB2 |
| 越南语(vi) | v-male-B5f2CnS3 | v-female-W5n8HgB2 |
| 马来语(ms) | v-male-Q6p8ZxL3 | v-female-C8k4NxL6 |
注意:说明:
注意:印度尼西亚语(id)、泰语(th)、越南语(vi)共用同一组音色。
五、配置示例
"TTSConfig": { "Provider": "trtc", "Params": "{\\"Model\\":\\"flow_02_turbo\\",\\"VoiceId\\":\\"v-female-R2s4N9qJ\\",\\"Speed\\":1.0}"}
六、第三方 TTS 接入
将 Provider 设置为对应厂商标识(minimax / azure ),并在 Params 中传入该厂商的专属参数(鉴权、模型、音色、语速等),参数规范以对应厂商文档为准。如需接入其他 TTS 厂商,请联系商务。
七、Minimax 接入示例(Provider = minimax)
点击查看 Minimax 页面文档 。
配置示例:
"TTSConfig": { "Provider": "minimax", "Params": "{\\"provider\\":\\"minimax\\",\\"api_key\\":\\"<your-api-key>\\",\\"model\\":\\"speech-2.6-hd\\",\\"url\\":\\"https://api.minimaxi.com/v1/t2a_v2\\",\\"voice_setting\\":{\\"voice_id\\":\\"male-qn-qingse\\"}}"}
八、Azure 接入示例(Provider = azure)
Params 字段说明:
| 字段名 | 含义 |
| subscription_key | 密钥。 |
| url | API 地址。 |
| voice | 音色 ID。 |
| lang | 语言。 |
| rate | 语速。 |
| volume | 音量。 |
| pitch | 语调。 |
| style | 情感风格。 |
点击查看 Microsoft 页面。
配置示例:
"TTSConfig": { "Provider": "azure", "Params": "{\\"voice\\":\\"zh-CN-XiaoxiaoNeural\\",\\"subscription_key\\":\\"<your-subscription-key>\\",\\"url\\":\\"https://southeastasia.api.cognitive.microsoft.com\\"}"}
九、自定义 TTS 接入(Provider = custom)
客户可提供自研 TTS、私有化部署 TTS 或第三方 TTS 服务作为 AI 对话的语音合成模块。接口协议基于 OpenAI TTS 标准协议构建,并针对实时对话场景做了必要扩展(如 PCM 流式输出、采样率/声道控制)。
十、协议规范
| 项目 | 要求 |
| 请求方式 | HTTP POST |
| 请求路径 | /v1/audio/speech(OpenAI TTS 标准路径) |
| 请求格式 | JSON Body |
| 鉴权 | Authorization: Bearer {api_key}(api_key 由 Params 透传) |
| 响应格式 | HTTP 200 + PCM 音频二进制流(Chunked Transfer Encoding) |
| 音频格式 | 有符号 16-bit Little-Endian PCM |
十一、Params 参数说明(Provider = custom)
| 字段名 | 类型 | 必选 | 描述 |
| url | String | 是 | TTS 服务 HTTP 接入点。 |
| api_key | String | 否 | 鉴权密钥(映射为 Authorization: Bearer)。 |
| model | String | 是 | 模型标识(如 cosyvoice-v1)。 |
| voice | String | 否 | 音色 ID。 |
| speed | Float | 否 | 语速,范围 0.25-4.0,默认 1.0。 |
| sample_rate | Integer | 否 | 采样率:8000 / 16000(默认)/ 24000 / 48000。 |
| channel | Integer | 否 | 声道:1(默认,单声道);2(双声道)。 |
| custom_headers | Object | 否 | 自定义请求头。 |
| custom_fields | Object | 否 | 厂商扩展参数黑盒透传。 |
十二、配置示例
"TTSConfig": { "Provider": "custom", "Params": "{\\"url\\":\\"https://your-tts-service/v1/audio/speech\\",\\"api_key\\":\\"<your-api-key>\\",\\"model\\":\\"cosyvoice-v1\\",\\"voice\\":\\"your-voice-id\\",\\"speed\\":1.0,\\"sample_rate\\":16000,\\"channel\\":1}"}
十三、接入要点
1. TRTC 侧对 Params 做 JSON 合法性校验但不解析内部字段语义,具体字段映射关系由 AI 后台的自定义 TTS 适配器实现。
2. 建议业务侧 TTS 服务做好流式输出,避免首包延迟过大影响对话体验。
3. 自定义 TTS 服务需按协议返回 HTTP 200 + PCM 二进制流(Chunked),非 200 响应视为合成失败。
十四、音频回传房间
TTS 合成的音频由后台通过回推机器人推入 TRTC 房间,回推机器人通过 AgentConfig.TTSPushRoomParams 指定:
| 字段名 | 必选 | 类型 | 描述 |
| UserId | 是 | String | 回推机器人的 UserId,长度 1-120(UserSig 由后台自动生成)。 |
"AgentConfig": { "UserId": "ai-bot-001", "TTSPushRoomParams": { "UserId": "tts-bot-001" }}
注意:说明:
注意:对话机器人(AgentConfig.UserId)与回推机器人(TTSPushRoomParams.UserId)需使用不同的用户 ID,客户端订阅回推机器人的音频流即可听到 AI 的回复。
十五、播报内容控制
除 LLM 回复文本外,以下文本同样经 TTS 合成播报:
| 内容 | 配置位置 | 说明 |
| 欢迎语 | DialogConfig.WelcomeMessage | 主播进房后自动播报。 |
| 静音追问 | DialogConfig.SilenceFollowUpText | 静音超时后 Bot 主动追问。 |
| LLM 失败兜底 | LLMConfig.FailureMessage | LLM 调用失败时播报,避免对话断档。 |
| 括号内容过滤 | AgentConfig.FilterBracketsContent | 过滤 (微笑)、[开心] 等动作情绪标记,避免被 TTS 念出,详细参见 LLM 配置 > 输出控制。 |
十六、注意事项
1. TTS 配置不支持热更新:任务创建后无法通过修改任务接口变更 TTSConfig;如需更换音色或厂商,请结束当前任务并重新创建。
2. 仅 Cascade 模式需要配置:S2S 模式由端到端模型直接生成音频,无需 TTSConfig。
3. 音色与语言需匹配:VoiceId 需填写与对话语言对应的音色 ID,语言与音色不匹配会导致合成失败或发音异常。
4. 打断配合:TTS 播报中收到打断指令(自动 / 手动 / 关键词打断)会立即停止播放并清空待播队列,详细参见 (客户端)打断指令。