Shell/cron 脚本将一个长音频文件拆分为多个音频文件,以静音分隔,使用文件名约定,包括从开始的时间?

问题描述

我运行了一个流媒体音频服务器,它使用 Darkice 将来自两个无线电接收器的音频转储到流媒体服务中。 darkice 应用程序还会转储到本地 .mp3 文件存储库。 我从 2014 年左右就开始这样做了。这么长时间的 24x7x365 正在耗尽磁盘..

我构建了一个脚本来使用 sox 在一天结束时查看每个文件,并使用来自“无信号”记录的噪声配置文件..我切断了文件的静音(添加了一些缓冲区)修剪掉文件中不必要的内容。基本上是将 ~560M 的日常文件转换为 ~20-~45M 的 .mp3(取决于那天收音机的收听量......)。

每晚,我都会通过 cron 旋转 .mp3 文件

service darkice stop
sleep 1
touch /home/audio/.darkice-stopped.flag
sleep 1
service darkice start
sleep 1
touch /home/audio/.darkice-started.flag
sleep 1

以上是开始和停止黑暗的位,在午夜丢弃 2 秒的音频(不在乎!)和触摸标志文件(我的手动 t-shooting 开始/重新启动时间以供以后检查的方式..是的从未学会如何登录到系统日志。再次“伟大的敌人已经足够好了”)

此位处理输入的“原始”文件,并使用带有静音去除部分的 sox 'noised' 滤波器去除静音,并根据输入信号特征使用我调整过的选项(这需要一段时间)。

sox /home/audio/raw/repeaters-`date -d "-1 day" +'%Y%m%d'`_*.mp3 /home/audio/DropBox/Shared/Repeateraudio/`date -d
 "-1 day" +'%Y'`/repeaters-`date -d "-1 day" +'%Y%m%d'`_cut.mp3 noisered /home/audio/noise.prof 0.21 silence -l
1 0.1 0.2% -1 1.5 0.2% pad 1

上面还创建了“去噪”(以及无时基!)文件到与组共享的 DropBox 文件夹。然后将原始文件移动到另一个文件(符号链接到更大的磁盘,因为我是空间不足!):

mv /home/audio/raw/repeaters-`date -d "-1 day" +'%Y%m%d'`_*.mp3 /home/audio/scans/2020/original/

我的问题是:我/仍在保留/所有“原始”.mp3 文件.. 长度为 24 小时,文件名带有日期标记。 原因:一旦静音被修整,关于白天无线电信号何时进入的上下文就丢失了。

呜呜... 我想使用 sox 噪声过滤器将大型 .mp3 文件“切割”为较小的文件,而不是仅仅将一个“巨大”文件减少为“一个较小的”文件而没有时间基础......

我想获取 24 小时文件(例如“repeaters-20200821_000043.mp3”)并有一个脚本来处理它,我最终会得到这样的结果:

$ ls -l repeaters-20200821/
repeaters-20200821_000043+000231.mp3
repeaters-20200821_000043+001333.mp3
repeaters-20200821_000043+010211.mp3

... etc

因此所需的格式是“repeaters-YYYYMMDD_HHMMSS+HHMMSS”,其中+后面的小时、分钟、秒表示从曲目开始的时间,或“进入”原始曲目的时间。这样,通过将 +time 添加文件名开始时间,您就可以了解一天中发生无线电通信的时间。

我想尝试做一些编码魔术,比如每 30 秒获取一次播放时间并以某种方式在 mp3 文件中对其进行编码,例如 DUV 或其他任何内容,以便使用 DUV 解码器可以获得时间戳。 (我什至考虑过构建某种 GPS 接收器来生成音频 DUV 并将其注入到输入路径中。但在这里懒惰占据了我。而且时间不够。)

在这一点上,我认为这超出了我的技能水平,如果我能解决一些基本的挑战,我认为这会奏效。

无论如何,有没有人知道在脚本中使用 sox/noisered 完成上述任务的方法? 所以那个巨大的文件

repeaters-20200821_000043.mp3

成为目录“repeaters-20200821”并带有一堆标记的、分离的.mp3文件

$ ls -l repeaters-20200821/
repeaters-20200821_000043+000231.mp3
repeaters-20200821_000043+001333.mp3
repeaters-20200821_000043+010211.mp3

谢谢!!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)