🤖 给 AI 的参考
查看 .md 原文
这是 Hearo(听见)的《交互模式与 VAD》文档,可作为开发参考。文档链接:https://hearo.apps.aisp24.com/docs/modes.md

交互模式与 VAD

三种标准交互模式 + 服务端 TEN VAD 调参

交互模式决定「谁来判断一句话的起止」。它是智能体的参数(邀请 AI 时选择),服务端是权威来源。三种标准模式:

模式谁决定起止适用
ptt(按住说话)客户端:按下开始、松开结束嘈杂环境、对讲、明确边界
multi_turn(多轮对话)点击启动,云端 VAD 判断每句结束,自动续轮;空闲超时结束问答、客服、回合式
natural(自然对话)服务端持续判断,随时打断最自然的全双工对话

VAD 来源(vad_source)

多轮/自然模式下,语音端点检测有两种来源:

vad_source说明特点
serverGo Runtime 调用私有 TEN VAD sidecar音频留在服务内网;打断由 VAD 权威决定,换 ASR 行为一致
asr用 ASR 自带的断句/部分结果省一次 VAD 计算;打断灵敏度随 ASR 厂商不同

💡 自我打断 / 换 ASR 行为不一致?:用 vad_source=server。VAD 成为唯一的打断裁判,换 ASR 厂商不再改变打断;并用下面的参数过滤 TTS 回声导致的「自我打断」。

VAD 调参

参数默认说明
vad_threshold0–1(默认 0.5)语音概率阈值。↑ 更不敏感、更抗回声;↓ 更灵敏
vad_min_speech_ms120触发打断所需的持续语音时长。↑ 过滤短回声/杂音,但打断略迟
vad_min_silence_ms600判定一句结束的静音时长。↑ 不易被中途截断;↓ 收尾更快
vad_speech_pad_ms160起点前保留的预卷,避免吃掉首字

抗「自我打断」建议

AI 自己的 TTS 声音回灌进麦克风时,VAD/ASR 会把它当成人声而打断自己。处理顺序:①在浏览器采集约束中开启回声消除(WebRTC(实验)客户端也应显式请求);②外放场景建议戴耳机;③调高 vad_threshold(0.6-0.7)与 vad_min_speech_ms(200-300)。

在演示页实时调

控制台「演示」页连上后,邀请 AI 的面板里就有模式选择VAD 灵敏度滑块(阈值 / 最短语音),邀请时带上、连接中还能「应用到当前对话」实时生效。对应到 智能体规格vad.* 字段。

json
// 连接中实时调 VAD(通过控制消息发给智能体)
{ "type": "config",
  "vad": { "source": "server", "threshold": 0.6, "min_speech_ms": 240 } }