【发布时间】:2015-07-12 10:48:34
【问题描述】:
目前,我是这样使用 sox 的:
sox -d -e u-law --endian little -b 8 -c 1 -r 8000 -t ul - silence 1 0.3 1% 1 0.3 1%
作为参考,这是从默认麦克风录制音频并以 8 位和 8k 速率输出 little endian、ulaw 格式的音频。效果过滤器会修剪音频,直到噪音达到阈值 0.3 秒,然后继续录制,直到有 0.3 秒的静音。所有这些流到标准输出,我用它流到远程服务器。
我正在使用所有这些来录制一些声音,并在我说完后结束。为了触发 sox,我使用专门的硬件来触发录制的开始。只要支持即时格式化/编码,我就可以切换到使用几乎任何音频格式或编解码器。我的目标平台是 raspberry pi 2 B 上的 raspbian。
我理想的解决方案是在用户说完后使用 vad 停止录音。我希望这即使在背景聊天的情况下也能奏效。但是,关于 vad 效果的 sox 文档指出:
推荐使用规范效果,但请记住,两者都不是 reverse nor norm 适合与流式音频一起使用。
我无法将参数拼凑在一起以使 vad 和流式传输正常工作。是否可以使用 vad 效果来停止音频的录制,同时仍然保持 stdin->sox->stdout 管道?有更好的选择吗?
【问题讨论】:
标签: audio raspberry-pi audio-recording sox voice-recording