sox合并两个不同长度的文件

时间:2013-08-28 07:07:39

标签: file audio merge sox

我有两个长度为X的音频文件A和另一个长度为Y的音频文件(X> Y)。现在我想用文件B替换文件A的最后Y部分。

例如文件A的长度为60秒,文件B的长度为43秒。我需要用文件B替换文件A的最后43个。

我希望很清楚。

是否可以使用sox执行此操作?怎么样,我需要合并它们吗?如果是,那么如何合并呢?

还有什么方法可以实现自动化吗?就像我不必手动确定两者的长度等。

1 个答案:

答案 0 :(得分:1)

您可以连接两个文件,然后删除不需要的部分:

sox A B O trim 0 17 43

在bash shell中,这可以完全自动化,如下所示:

sox A B O trim 0 $(( $(soxi -s A) - $(soxi -s B) ))s $(soxi -s B)s

此处,soxi -s file用于确定样本中的文件长度。另一种可能性,在管道特殊输入文件中使用第二个sox实例:

sox "| sox A -p trim 0 -$(soxi -s B)s" B O