sox 效果:可重新触发的静音
Posted
技术标签:
【中文标题】sox 效果:可重新触发的静音【英文标题】:sox effect: retriggerable silence 【发布时间】:2016-05-03 08:14:17 【问题描述】:要检测我正在使用这个 sox 命令播放的语音:
rec voice.wav silence 1 5 30% 1 0:00:02 30%
它应该在输入音量提高到大约 30% 的阈值时开始录制,并在 2 秒后停止音频低于相同的阈值。
它有效。但是,如果它可以“可重新触发”,那就更好了。我的意思是:在音频低于阈值并且音频再次上升之后,它应该继续注册(即用户仍在说话)。
只有在检测到整整 2 秒的静音时才会停止。 或者你有没有推荐其他的“VOX”工具?
【问题讨论】:
文档说:“对于低于周期,持续时间指定在不再复制音频之前必须存在的一段静默时间。通过指定更高的持续时间,可以在音频。例如,如果您有一首歌曲,预期中间有 1 秒的无声,结尾有 2 秒的无声,则可以使用 2 秒的持续时间跳过中间的无声。所以它应该像我预期的那样工作。 【参考方案1】:我花了很多时间尝试用 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) 归一化增益 (gain -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
再一次 - 这涉及到对“静音”值的大量实验,并且需要针对您的环境进行一些调整。
【讨论】:
以上是关于sox 效果:可重新触发的静音的主要内容,如果未能解决你的问题,请参考以下文章