袜子效应:可重复使用的沉默

时间:2016-05-03 08:14:17

标签: audio threshold sox

要检测语音,我正在使用此sox命令:

rec voice.wav silence 1 5 30% 1 0:00:02 30%

每当输入音量提高到30%的阈值时它应该开始录音,并且在音频低于相同的阈值2秒后停止。

有效。但如果它可以“重新触发”会好得多。我的意思是:在音频低于阈值并且音频再次上升之后,它应该继续注册(即用户仍在说话)。

只有当它检测到整整2秒的静音时才会停止。 或者你推荐任何其他“VOX”工具吗?

1 个答案:

答案 0 :(得分:2)

我花了很多时间尝试使用SOX来做VOX并且让它运行得相当好。我一直在使用Audacity来查看合成的波形,并确定了以下SOX命令......

rec snd.wav silence 1 .5 2.85% 1 1.0 3.0% vad gain -n  : newfile : restart

这将:

  • 等到听到超过阈值的活动半秒钟,然后开始录音(沉默1.5。2.85%)
  • 当听觉活动降至零一秒钟时停止录音(... 1 1.0 3.0%)
  • 修剪任何初始静音直到语音检测(vad)
  • 规范化增益(增益-n)
  • 将结果存储到新文件(snd001.wav,snd002.wav)
  • 重启流程

获得"沉默"正确的数字涉及大量的试验和错误,并将取决于环境噪音以及麦克风的灵敏度。我通过USB在Raspberry Pi上使用Logitech QuickCam IM中的麦克风。

另一方面,整件事抱怨以下......

rec FAIL formats: can't open input  `default': snd_pcm_open error: No such file or directory

...直到我在环境中创建了这个变量:

export AUDIODEV=hw:1,0

再次 - 这涉及对"沉默"的价值的大量尝试,并且需要对您的环境进行一些调整。