之前分享了一款实时vad是webrtcvad,但在实际使用中发现如下问题:
- 每次判断chunk是否是vad,chunk的长度有限制,webrtcvad只支持10ms、20ms以及30ms的判断,但我希望能一次判断100ms的chunk,无法满足。
- 无噪声情况下webrtcvad的效果还是不错的,并且速度也很快,但实际情况中,噪声还是很常见的,而webrtcvad对这种噪声是无法过滤的,此处的噪声指的是场景白噪声(通俗来说就是麦克风在收音时录制的环境噪声,类似滋滋滋这种),而此类噪声也是很常见的~
为了解决这个问题,基本的想法是使用神经网络训练一个vad模型,但考虑到数据和周期性,无法满足,偶然发现GitHub现存一款性能很好的vad,完全可以替代webrtcvad,此处贴上官方的地址,模型转化为了onnx,我对此vad的使用做了一个简化,代码如下:
rom utils_vad import OnnxWrapper,