繁体   English   中英

合并音频文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM