要检测语音,我正在使用此sox命令:
rec voice.wav silence 1 5 30% 1 0:00:02 30%
每当输入音量提高到30%的阈值时它应该开始录音,并且在音频低于相同的阈值2秒后停止。
有效。但如果它可以“重新触发”会好得多。我的意思是:在音频低于阈值并且音频再次上升之后,它应该继续注册(即用户仍在说话)。
只有当它检测到整整2秒的静音时才会停止。 或者你推荐任何其他“VOX”工具吗?
答案 0 :(得分:2)
我花了很多时间尝试使用SOX来做VOX并且让它运行得相当好。我一直在使用Audacity来查看合成的波形,并确定了以下SOX命令......
rec snd.wav silence 1 .5 2.85% 1 1.0 3.0% vad gain -n : newfile : restart
这将:
获得"沉默"正确的数字涉及大量的试验和错误,并将取决于环境噪音以及麦克风的灵敏度。我通过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
再次 - 这涉及对"沉默"的价值的大量尝试,并且需要对您的环境进行一些调整。