【发布时间】:2012-02-26 20:50:10
【问题描述】:
我正在尝试将 2 个波形文件合并为一个文件。这两个文件应该在新文件的开头开始播放。与声音长度无关。运行以下命令不会给我这个结果。
sox -M new_input.wav myrecording.wav output_test.aiff
还有其他方法可以通过 sox 或其他命令行库来实现吗?
【问题讨论】:
我正在尝试将 2 个波形文件合并为一个文件。这两个文件应该在新文件的开头开始播放。与声音长度无关。运行以下命令不会给我这个结果。
sox -M new_input.wav myrecording.wav output_test.aiff
还有其他方法可以通过 sox 或其他命令行库来实现吗?
【问题讨论】:
只需更改-M with -m
-M = merge
-m = mix
【讨论】:
对于像 Calmarius 要求的情况:
sox -m in1.wav in2.wav out.wav trim 0 `soxi -D in1.wav`
这在 in1.wav 的长度处停止,对于您知道较短的情况。否则只需添加一个比较器。
【讨论】:
soxi -D in1.wav的作用是什么?
soxi -D in1.wav 以秒为单位输出 in1.wav 的长度。但是,要在 mix 命令中运行此命令,您需要使用:sox -m in1.wav in2.wav out.wav trim 0 "$(soxi -D in1.wav)"
嘿嘿。抱歉回复晚了=) 命令应该是这样的
sox file1 file2 file3
上面将合并前两个文件,并在第三个之后命名。
您可能还想查看文档 http://sox.sourceforge.net/sox.html
【讨论】:
'soxi -D in1.wav' 获取文件长度(in1.wav)
【讨论】: