3

当我混合四个音轨时,声音会下降很多,我尝试过 mix-volume 和 mix。我怎么做才能使音量不变?

我试过-M after "sox --combine mix-power"了,但最终文件的长度为 0 秒。

4

2 回答 2

10

只需在每个输入文件之前添加 -v 1 - 就像这样: -v 1 file.wav

于 2014-05-01T14:44:24.533 回答
4

我怎么做才能使音量不变?

简短的回答

你不能,你只能得到估计的相似度。估计可能来自在收听最终结果时调整增益,也可能来自根据输出的 RMS 电平调整增益。

如果你很幸运,@Yuki 的回答可能不会导致任何剪辑并给你一个合理的结果。

更长的答案

当您混合曲目时,它们基本上是相互添加的。这意味着很容易超过样本可以具有的最大值,从而导致削波。为了避免这个问题sox,在添加之前将每个轨道除以轨道总数

假设您有 4 个名为1.wav、和的文件2.wav,这里有几种实现合理结果的简单方法(取决于您的情况):3.wav4.wav

在混合之前标准化每个文件

sox --combine mix "|sox 1.wav -p gain -n" \
                  "|sox 2.wav -p gain -n" \
                  "|sox 3.wav -p gain -n" \
                  "|sox 4.wav -p gain -n" \
                  out.wav

标准化最终结果

sox --combine mix 1.wav 2.wav 3.wav 4.wav out.wav gain -n

为最终结果增加增益

sox --combine mix 1.wav 2.wav 3.wav 4.wav out.wav

现在添加带有gain效果的增益,除了 normalize-flag ( -n) 它还接受 dB 值,例如添加 6 dB 增益:

sox out.wav out-with-gain.wav gain +6

play(1)您可以使用或通过将输出文件设置为来收听结果-d,例如:

play out.wav gain +6

或者:

sox out.wav -d gain +6
于 2012-09-24T12:38:30.283 回答