webrtc vad,用于查找发声(可能很短)的开始

时间:2019-04-25 11:38:11

标签: webrtc text-to-speech voice-recognition

我们想知道在音频文件中何时开始发声。话语可以是整个句子,也可以很短,例如一个字。可能会有一些背景噪音(呼吸,吱吱作响,风扇等)。当前,我们正在使用一种简单的阈值方法(如果声音很大,则用户开始讲话),但有时如果声音足够大则失败。

我们一直在尝试使用webrtc-vad(hsjs),但它似乎给1 / True(“是声音”)答案的噪声与声音的频率相同。

在使用webrtc-vad的示例代码中,我看到它们经常在一个时间段内连续地或在mozilla's webrtcvad_js example code中查找1-answer序列,但是这样做似乎对我们没有多大帮助。测试照亮时不断写出答案,例如这里的第一个1是我说“ i”,第二个是我仔细地把我的咖啡杯放在桌子上:

  

00000000000000000001111111000000000000000000001111111100000000000000

序列的长度大致相同:(玩激进的玩法似乎只会使其变得更糟。

webrtc-vad根本不适合该任务吗?还是作为第一个过滤器仍然有用?也许第二个过滤器应该检查大多数声音是否在50–300 Hz范围内? (我知道我可以通过完整的文本转语音管道发送它,并查看它是否能够将其转换为清晰易懂的内容,但这对于找出何时开始有人说话似乎有点过头了……” )

1 个答案:

答案 0 :(得分:1)

有更多使用机器学习的高级VAD,它们的性能会更好:

https://github.com/jtkim-kaist/VAD

  

我知道我可以通过完整的文本转语音管道发送它,并查看它是否能够将其转换为清晰易读的内容,但是对于仅仅找出某人何时开始说话似乎有些过分了

不是,这不是矫kill过正,这实际上是正确的做法,它还有助于识别器正确估计噪声,从而提高准确性。