如果大模型生成的文本中包含非对话指令(如动作指令或情绪标识)、Markdown 符号或 LaTeX 公式,直接进行语音合成会导致播报生硬、不易懂。支持在合成之前,对上述文本进行过滤或转译,以确保智能体语音回复自然且符合人类听感。
功能 | 说明 |
|---|---|
过滤非对话内容 | 过滤“(点头)”、“【沉思】”等状态词,避免 TTS 朗读非对话内容,提升沉浸感。 |
过滤 Markdown 标签 | 自动去除 |
LaTeX 公式朗读 | 将 LaTeX 公式(如 |
通过识别并忽略特定括号内的文本,实现“只读对话,不读旁白”。适用于过滤 LLM 返回的情绪标记(如“开心”)、动作描写(如“点头”)或场景备注,避免 TTS 将这些辅助信息朗读出来,提升对话的沉浸感。
说明
...我知无不言!(自信满满)。 → (自信满满)。不会显示在字幕中。...我知无不言(自信满满)! → (自信满满)! 会显示在字幕中。在 LLM 的 Prompt 中,引导大模型将不需要朗读的内容(如心理活动、动作)放入指定的括号中。
目前支持的括号包括:中文括号
()、英文括号()、中文方括号【】、英文方括号[]和英文花括号{}。
Prompt 示例
## Role 你是《西游记》中的孙悟空,请按照孙悟空的口吻回答问题。 ## 技能 你的答复中如果有关于内心情绪的描写或者动作的描写,用()进行标记。
调用 StartVoiceChat 接口,配置Config.TTSConfig.IgnoreBracketText 字段。支持多选,系统将过滤数组中指定符号内的所有内容。
符号类型 | IgnoreBracketText 取值 |
|---|---|
中文括号 |
|
英文括号 |
|
中文方括号 |
|
英文方括号 |
|
英文花括号 |
|
请求示例:
// 过滤中文括号()和英文括号()内的内容 { "TTSConfig": { "IgnoreBracketText": [1, 2], // 其他 TTS 配置... } }
俺老孙明日就要前往东海龙宫(激动),对那定海神针铁早已是馋得不行(兴奋)!俺老孙明日就要前往东海龙宫,对那定海神针铁早已是馋得不行!俺老孙明日就要前往东海龙宫(激动),对那定海神针铁早已是馋得不行(兴奋)!自动过滤 LLM 返回文本中的 Markdown 格式符号(如 **、# 等),防止智能体将其作为普通文本读出,从而确保语音播报的流畅自然。
说明
配置参数:调用 StartVoiceChat 接口时,将 ProviderParams.Additions 中的 disable_markdown_filter 设置为 true。
配置示例:
{ "TTSConfig": { "Provider": "volcano_bidirection", "ProviderParams": { "Additions": { "disable_markdown_filter": true } } } }
效果演示:
请执行 **grep** 命令查看日志。请执行 grep 命令查看日志。请执行 **grep** 命令查看日志。将 LLM 回复文本中的 LaTeX 公式转译为适合语音播报的自然语言文本后,再进行语音合成。
说明
a^2 + b^2 = c^2),播放的语音为转换后的自然语言。配置参数:
StartVoiceChat 接口时,将 ProviderParams.Additions 中的 disable_markdown_filter 设置为 true。enable_latex_tn 设置为 true。配置示例:
{ "TTSConfig": { "Provider": "volcano_bidirection", "ProviderParams": { "Additions": { "disable_markdown_filter": true, // 必须开启 "enable_latex_tn": true // 开启公式朗读 } } } }
效果演示:
根据公式 a^2 + b^2 = c^2 可知...根据公式 a 的平方加上 b 的平方等于 c 的平方 可知...根据公式 a^2 + b^2 = c^2 可知...