Audio Sox:使用pad合并两个音频文件
我正在使用Audio Sox:使用pad合并两个音频文件,audio,merge,delay,sox,pad,Audio,Merge,Delay,Sox,Pad,我正在使用sox工具,我想合并两个音频文件,比如long.ogg和short.ogg来输出一个文件output.ogg。 这非常容易使用$sox-m long.ogg short.ogg output.ogg 问题是,我希望short.ogg在n秒后播放(而long.ogg应该从头开始)。为此,我发现了pad效应。但是我不理解只延迟short.ogg输入文件而不是long.ogg输入文件的语法 我找到了一种(肮脏的)方法(n=6): 我希望不必创建中间文件。提前感谢您的帮助。您应该能够执行以下操
sox
工具,我想合并两个音频文件,比如long.ogg
和short.ogg
来输出一个文件output.ogg
。
这非常容易使用$sox-m long.ogg short.ogg output.ogg
问题是,我希望short.ogg
在n秒后播放(而long.ogg
应该从头开始)。为此,我发现了pad效应。但是我不理解只延迟short.ogg
输入文件而不是long.ogg
输入文件的语法
我找到了一种(肮脏的)方法(n=6):
我希望不必创建中间文件。提前感谢您的帮助。您应该能够执行以下操作:
sox short.ogg -p pad 0 6|sox - long.ogg output.ogg
-p
sox的选项用于管道-基本上,它告诉sox使用stdout作为输出。使用-
作为第二个sox的输入实际上是说输入是stdin(这恰好是前一个sox的stdout,因为我们使用|
)<代码>键盘0 6在开始时告诉键盘0秒,在结束时告诉键盘6秒
希望这能有所帮助。多亏了icyrock,我终于找到了解决方案。我正在使用:
$ sox short.ogg -p pad 6 0 | sox - -m long.ogg output.ogg
对于多音轨(奥兰多的学分):
下面是另一个得益于使用双引号的解决方案。它使命令更具可读性,并且非常易于扩展:
sox −−combine sequence "|sox input/odin.wav -p pad 0 1" "|sox input/dva.wav -p pad 0 1" "|sox input/tri.wav -p pad 0 1" output/test.wav
这将连接所有三个文件,每个文件后都会有1秒的暂停(odin、silence、dva、silence、tri、silence)
应用于原始帖子,我们会得到:
sox −−combine sequence "|sox long.ogg -p pad 0 6" "|sox short.ogg -p pad 0 1" newfile.ogg
(在Windows上的SoX 14.4.1上测试正常。)
我几乎没有见过任何使用双引号的SoX示例,所以我希望这对某些人有所帮助 也遇到了延迟命令 您可以执行以下操作: sox.exe-m short.ogg long.ogg delay 6
这将合并两个文件,short.ogg将从6秒开始变成long.ogg,因为我还不允许发表评论,我只想说我喜欢Fabien的答案,因为它也可以与“NULL”声音文件一起使用:例如
sox --combine concatenate "|sox -n -p synth 1 sine 300" "|sox -n -p synth 1 sine 400" useful.wav
将在300Hz下写入1秒的正弦音,然后在400Hz下写入1秒的正弦音,并将其写入文件“有用的.wav”
将仅在400 Hz时向文件“farts.wav”写入1秒正弦波。文件缺少300 Hz时的第一个正弦波。谢谢!实际上,我不得不添加混音选项
-m
,因为没有它,整个声音都会延迟。请查看我的编辑。我没有阅读问题-我写的内容将播放short.ogg,等待6秒,然后播放long.ogg,将整个结果写入output.ogg。不管怎样,很高兴你找到了解决办法!我建议添加它作为一个答案,并正式选择它作为解决方案-对于其他有相同问题的人。如何使用多个轨道来解决这个问题?3,4,5个曲目用于多个曲目:sox starts-last.mp3-p pad 2 0 | sox--m starts-second.mp3-p pad 2 0 | sox--m starts-first.mp3组合
sox −−combine sequence "|sox long.ogg -p pad 0 6" "|sox short.ogg -p pad 0 1" newfile.ogg
sox --combine concatenate "|sox -n -p synth 1 sine 300" "|sox -n -p synth 1 sine 400" useful.wav
sox -n -p synth 1 sine 300 | sox --combine concatenate - farts.wav synth 1 sine 400