功能概述
在 Cascade(三段式) 模式下,TTS(文本转语音)是对话链路的第三段,也是 AI 机器人的“嗓音”:接收 LLM 流式输出的回复文本,实时合成语音并回传到 TRTC 房间播报,同时支持被打断。
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 字符串。 |
TRTC 自研 TTS
Params 参数说明(Provider = trtc)
字段名 | 类型 | 必选 | 描述 |
Model | String | 是 | 音色模型(TTS 模型参数,仅支持填写"flow_02_turbo")。 |
VoiceId | String | 是 | |
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)
配置示例:
"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 | 情感风格。 |
配置示例:
"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 |
注意事项
1. TTS 配置不支持热更新:任务创建后无法通过修改任务接口变更
TTSConfig;如需更换音色或厂商,请结束当前任务并重新创建。2. 仅 Cascade 模式需要配置:S2S 模式由端到端模型直接生成音频,无需
TTSConfig。3. 音色与语言需匹配:
VoiceId 需填写与对话语言对应的音色 ID,语言与音色不匹配会导致合成失败或发音异常。4. 打断配合:TTS 播报中收到打断指令(自动 / 手动 / 关键词打断)会立即停止播放并清空待播队列,详细参见 (客户端)打断指令。