在 sox 中将多个音频文件合并,并在每个音频文件之间设置静音

在 sox 中将多个音频文件合并,并在每个音频文件之间设置静音

我文件夹中大约有 20 个音频文件(.wav),这是我合并这些波形文件的方法

sox *.wav output.wav

我想在每波之间添加延迟或静音。

我已尝试过pad,但它只是在开始和结束时设置了静音output.wav

答案1

您需要插入静音曲目之间每条轨道都按照你指定的顺序排列,最后你会得到类似这样的结果:

sox track1.wav silence.wav track2.wav silence.wav ... output.wav 

您可以手动执行此操作(如上所述),或者我们可以使用内联 for 循环来循环当前目录。类似这样的操作应该可以工作:

sox -n -r 44100 -c 2 /tmp/silence.wav trim 0.0 2
sox $(for f in *.wav; do echo -n "$f /tmp/silence.wav "; done) output.wav

沉默生成器是从这里偷来的

答案2

产生 2 秒的(立体声)静默

sox -n -r 44100 -c 2 silence.wav trim 0.0 3.0

合并文件

sox silence.wav filetopad.mp3 silence.wav output.wav

来源http://activearchives.org/wiki/Padding_an_audio_file_with_silence_using_sox

另一个可能的解决方案

引自https://stackoverflow.com/questions/5587135/sox-merge-two-audio-files-with-a-pad

sox starts-last.mp3 -p pad 2 0 | sox - -m starts-second.mp3 -p pad 2 0 | sox - -m starts-first.mp3 combined.mp3

相关内容