适用版本:tcpv2.3+
mode:vad:{JWT_TOKEN}##mode:vad##input_audio_format:pcm{
"taskid": "abc12345",
"type": "listen",
"state": "start"
}{
"taskid": "abc12345",
"type": "listen",
"state": "detecting",
"mode": "vad"
}{
"taskid": "abc12345",
"type": "listen",
"state": "stop",
"mode": "vad"
}[##START][MessageType:8][task_id:8字节][seq:0000][JSON消息体][##END]{
"taskid": "abc12345",
"type": "listen",
"state": "start",
"interrupt": false // 可选,默认 false
}interrupt(可选):是否同时打断当前 TTS 下发false(默认):只更新输入侧 task_id,不打断 TTS(适用于 realtime 正常流程)true:同时更新 TTS task_id,立即停止旧音频下发(适用于 auto 模式按键打断)interrupt=true,同时打断正在进行的 TTS 输出注意:正常流程中客户端不需要发送此消息。VAD 模式下,语音结束的判定由服务端完成。
此消息仅用于客户端主动取消录音的特殊场景(如用户点击"取消"按钮)。
{
"taskid": "abc12345",
"type": "listen",
"state": "stop"
}| 发送方 | 触发条件 | 后续行为 |
|---|---|---|
| 客户端 | 用户主动取消 | 丢弃数据,不处理,不回复 |
| 服务端 | VAD检测到语音结束 | 通知客户端,开始STT/LLM/TTS处理 |
{
"taskid": "abc12345",
"type": "listen",
"state": "detecting",
"mode": "vad"
}reason 字段区分原因:{
"taskid": "abc12345",
"type": "listen",
"state": "stop",
"mode": "vad"
}VAD_MAX_FRAMES > 0):{
"taskid": "abc12345",
"type": "listen",
"state": "stop",
"mode": "vad",
"reason": "timeout"
}reason 或 reason 非 "timeout":正常流程,等待接收回复reason: "timeout":超时取消,不会有回复,可发送新的 LISTEN start 开始新会话VAD_MAX_FRAMES 配置值