[英]Merge audio files
我想合并多个音频文件。 我使用linux sox
命令。
shell_exec('/usr/bin/sox 1.wav 2.wav combined.wav ');
它工作正常并生成组合的音频文件。
我的1.wav和2.wav文件长度分别为90秒和50秒。 在这里,此sox
命令生成时长为140秒的Combined.wav。
此处,在2.wav中,音频的前20秒已在最后20秒音频的1.wav中可用。 所以我想合并,使我的Combined.wav应该是120秒 。 因此,我想删除Combine.wav中的重复音频,这在1.wav中是最后几秒钟,在2.wav中是开始几秒钟。
在这里,我仅举第二例。 在我的实际代码中,秒是固定的。 我只有音频文件。
使用Linux命令或PHP类有什么办法吗?
你应该用
sox的-p选项用于管道
sox的-p选项用于管道传输-基本上,它告诉sox使用stdout作为输出。 使用-作为第二个sox的输入实际上是说输入为stdin(正好是前一个sox的stdout,因为我们使用|进行管道传递)。 pad 30 0告诉pad在开始时为20秒,在结尾时为0秒。
由于您想填充第二个音频的前30秒
$ sox 1.wav | sox - -m 2.wav -p pad 30 0 combined.wav
@Naveen Kumar:Sox的-p选项:在预览模式下运行并快速运行。 当输出格式与输入文件具有不同数量的通道和不同速率时,这将在一定程度上加快SoX的速度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.