语音活动检测(VAD)
VAD (Voice Activity Detection) 用于检测音频中是否有语音。
- 当有语音输入时,会触发 Speaking 事件
- 或一段时间没有语音输入时, 会触发 Silence 事件。
vad 在 Invite(呼叫)/Accept(接听) 的 CallOption 中的 vad 字段中配置, 格式为: VADOption。
参数
type
选择 vad 的实现:
samplerate
采样率,默认 16000。和 ASR 相同,需要配置和 Track 采样率相同:
- SIP 呼叫默认为 16000hz
- WebRTC 呼叫依据编解码器决定:
- G722 16000hz
- Opus 48000hz
- 其他 8000hz
voice_threshold
触发阈值,默认 0.5。设置较高的值更加严格,但可能漏报。设置较低的值更加宽松,但可能误报。
speech_padding
语音开始 speechPadding 毫秒后开始检测,默认 250。
silence_padding
Silence 持续时间超过 silence_padding 毫秒后。
silence_timeout
静音检测超时,单位毫秒,默认为空。
事件
Silence 事件
- t1 > speech_padding 且 t2 > silence_padding
- t2 > silence_timeout (日股票配置了 silence_timeout)
Speaking 事件
- 第一次说话
- 距离上一次说话超过 speech_padding + silence_padding 毫秒
- 距离上一次说话超过 silence_timeout 毫秒 (配置了 silence_timeout 的情况下)