1

我有一个正在尝试使用 rtl_fm 和 SoX 捕获的直播电台。源随机爆发几个小时,事件之间有几天或几周的间隔。我想将每个事件捕获到它自己的音频文件中,同时忽略事件之间的数小时沉默。

根据我所做的研究,以下应该有效。

‘rtl_fm -f _____0000 -M fm -s 24k -l 45 -p 0 -g 38 | sox -r 24k -e signed -b 16 -c 1 -V1 -t raw - ~/___/___/____Radio_Recording_$(date+%Y-%m-%d_%H:%M:%S).mp3 silence 1 0.1 0.1% 1 00:02:00 0.1% : newfile : restart ‘ 

它应该在检测到 1/10 秒的音频后开始录制,在 2 小时不间断的静音后停止录制,保存文件,创建一个新文件,然后再次开始收听音频。

问题是保存第一个文件后它不会重新启动。它等待声音,录制并完美保存第一个文件,但不会创建第二个文件或重新开始录制。唯一的例外是,如果它重置之前的等待时间正好是 1 秒,那么它将按预期循环:等待声音、录音、保存和重新启动。

如果您对为什么 1 秒有效而没有其他静默期有任何想法,或者对如何纠正它有任何想法,我们将不胜感激。

或者,如果您知道一种完全不同的自动化此过程的方法,只需要很少的处理能力,我愿意接受建议。在概念测试中,我确实使用了 GQRX-PulseAudio-Audacity 设置,但它使用的系统资源比我想要的要多,而且使用起来不是很自动化或用户友好。

4

0 回答 0