合并音频文件

时间:2014-01-03 06:19:32

标签: php linux audio sox

我想合并多个音频文件。我使用linux sox命令。

shell_exec('/usr/bin/sox 1.wav 2.wav combined.wav ');

它工作正常并生成组合音频文件。

我的1.wav和2.wav文件长度分别为90秒,50秒。这里sox命令生成combined.wav,长度为140秒。

这里,在2.wav中,前20秒的音频已经在最后20秒音频的1.wav中可用。所以我想合并,以便我的combined.wav应该是120秒。所以,我想删除combined.wav中的重复音频,这在1.wav中持续几秒钟,在2.wav中开始几秒钟。

这里我只给出第二个例子。在我的实际代码中,秒数不固定。我只有音频文件。

有没有办法用Linux命令或PHP类做到这一点?

2 个答案:

答案 0 :(得分:0)

你应该使用

sox的-p选项用于管道

sox的-p选项用于管道 - 基本上,它告诉sox使用stdout作为输出。使用 - 作为第二个sox的输入实际上是说输入是stdin(恰好是前一个sox的stdout,因为我们正在使用|)。 pad 30 0在开始时告诉pad 20秒,在结束时告诉pad 0秒。

因为你想要填充第二个30秒的第二个音频

$ sox 1.wav  | sox - -m 2.wav -p pad 30 0 combined.wav

答案 1 :(得分:0)

@Naveen Kumar:Sox的-p选项:在预览模式下运行并快速运行。当输出格式具有不同数量的通道和不同于输入文件的速率时,这将在某种程度上加速SoX。