VAD(语音端点检测)
简介
VAD 是用于检测音频中有无语音信号的模块。
AIVoice 提供了一个基于神经网络的 VAD 算法,可以用于语音增强、识别等语音系统中。
配置
VAD 可配参数
- sensitivity:
提供预先调好阈值的三档灵敏度,灵敏度越高,越容易检测到语音,但误报也越多。
- left_margin:
添加到语音段开头的时间边距,使起始点早于原始的预测点。该值仅影响 VAD 输出的 offset_ms,不会影响状态 1 的事件触发时间。
- right_margin:
添加到语音段结尾的时间边距,使结尾点晚于原始的预测点。该值同时影响 VAD 输出的 offset_ms 和状态 0 的事件触发时间。
详情请参考 ${aivoice_lib_dir}/include/aivoice_vad_config.h
。
备注
left_margin 参数仅影响 VAD 返回的 offset_ms 数值, 无法影响 VAD 状态的改变时间。如果需要保留 left_margin 区间内的音频,请在外部通过音频缓存实现。
参数调整建议
left_margin 调整建议
left_margin 越大,截取区间往左边扩得越多,音频起点附近包含的信息越丰富,可以减少起点处语音截取不全的情况,但 left_margin 设置较大也容易引入噪声(包含背景噪声或者是前面说的无关语音),且需要预留更大的缓存空间。
情况一:适当增加 left_margin,可以减少前段语音被裁剪的情况
情况二:过度增加 left_margin,可能引入无关语音
right_margin 调整建议
right_margin 越大,截取区间往右边扩得越多,音频尾点附近包含的信息越丰富,可以减少尾点处语音截取不全的情况,但 right_margin 设置较大也容易引入噪声(包含背景噪声或者是后面说的无关语音),且会增加延迟。
情况一:适当增加 right_margin,可以减少尾段语音被裁剪的情况
情况二:过度增加 right_margin,可能引入无关噪声
情况三:长句场景,增加 right_margin 可以减少语音长句由于停顿被切分的情况
一般情况下, left_margin 和 right_margin 不宜过大,调整到可覆盖大部分语音区间即可。对于长句对话场景, right_margin 应调大一些,以防止算法在用户说话中间停顿时过早结束区间截取,但增大 right_margin 也会增加延迟,因此需要针对实际情况做出合理的调整。