You need to enable JavaScript to run this app.
文档中心
实时音视频

实时音视频

复制全文
下载 pdf
开发指南
传递自定义指令
复制全文
下载 pdf
传递自定义指令
您可通过 System Prompt 引导 LLM 在回复文本中生成指定格式的指令(如动作、情绪)。同时,结合 IgnoreBracketText 功能,这些指令不会被 TTS 播报,且会随字幕下发至客户端,用于实现本地业务逻辑,触发客户端 UI 等。​
如果您使用的是第三方大模型,可通过客户端传递自定义信息。具体操作,请参见方式二:通过客户端动态透传。​
使用限制​
该功能仅在使用火山引擎豆包语音的 TTS 服务时生效。​
实现原理​
  1. 生成指令:在 System Prompt 中预先定义好规则,引导 LLM 在回复文本中生成目标指令,并包裹在指定的括号内。例如 (action:wave)。​
  1. TTS 播报过滤:TTS 在处理文本时,会识别并跳过 IgnoreBracketText 指定的括号及其内部内容,只朗读括号外面的文本。​
  1. 指令下发:利用实时字幕功能,将包含完整指令(含括号内容)的文本实时下发至客户端。​
  1. 客户端解析:客户端接收并解析字幕消息,提取括号内的指令,并执行相应的业务逻辑。​
实现步骤​
步骤 1:在 Prompt 中定义规则​
在 LLM 的系统提示词(LLMConfig.SystemMessages)中,明确指示 LLM 将特定信息(如情绪、动作、指令)放入指定的括号中。​
  • 支持的括号类型:中文括号 ()、英文括号 ()、中文方括号 【】、英文方括号 [] 和英文花括号 {}。​
  • 内容长度限制:单组括号内的内容长度不应超过 500 字符,否则可能无法被正确过滤。​
Prompt 示例​
​
## 角色​
你是一位名叫“小乐”的智能客服。​
​
## 技能​
1. 回答用户关于产品的问题。​
2. 当你的回复表达积极情绪时,在句末加上(happy);表达歉意时,在句末加上(sorry)。​
3. 当需要引导用户查看某个具体订单时,使用格式【show_order: "订单号"】。​
​
## 约束​
- 括号内的内容是给程序执行的指令,你不能直接读出来。​
- 单个括号内的内容不能超过 500 字符。​
​
步骤 2:开启过滤功能​
调用 StartVoiceChat 接口,在 Config.TTSConfig.IgnoreBracketText 字段中配置需要被过滤的括号类型。​
​
{​
"Config": {​
"TTSConfig": {​
// 索引对应关系:1:(), 2: (), 3:【】, 4: [], 5: {}​
"IgnoreBracketText": [1, 2] // 同时过滤中英文圆括号内的内容​
// ...​
}​
}​
}​
​
步骤 3:在客户端解析字幕​
在客户端监听实时字幕消息回调。获取全量文本后,通过正则表达式或字符串匹配提取括号内的指令,并执行对应的业务逻辑。如何获取字幕消息,请参见实时字幕(对话记录)。​
注意事项​
通常被过滤的内容会显示在字幕里。若括号内容位于回复的最末端,且被判定为独立句子(其后无包含真实语义内容),它不会出现在最终的字幕里。​
  • 会显示:...我知无不言(自信满满)! → 字幕会包含 (自信满满)!​
  • 不显示:...我知无不言!(自信满满)。 → 字幕不包含 (自信满满)。​
​
最近更新时间:2026.09.22 11:07:49
这个页面对您有帮助吗?
有用
有用
无用
无用