0

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

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

我希望很清楚。

使用 sox 可以做到这一点吗?如何,我需要合并它们吗?如果是这样,那么如何合并它们?

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

4

1 回答 1

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
于 2013-08-28T08:04:38.080 回答