混合PCM音频样本

use*_*522 3 audio signal-processing

我有一个关于混合多个PCM样本的简单问题.

我读到混合多个音频PCM样本的最佳方法是每帧取样本的平均值.

因此,如果我在加上一起说5个16位样本然后除以5,显然很可能它会有一个大于16位短的值可以容纳的值.

因此,当将多个16位样本混合在一起时,我是先将它们全部存储在int中并添加它们并将它们平均,然后转换回短路?

Nil*_*nck 6

如果您想混合音频样本,只需将它们添加到一起即可.建立平均值不是正确的方法.

想一想:如果有人拉小提琴而第二把小提琴加入音乐,第一把小提琴会变得不那么响亮吗?不,不会.第二把小提琴只是增加了信号.

添加PCM样本时,您必须处理整数溢出.一种方法是使全局"主体积"应用于混合PCM样本.使用这样的全局乘法器可以帮助您确保最终信号大多在输出数据的16位内.

您可能还需要每通道音量控制.

最后,溢出仍然会在这里和那里发生,处理它们的最佳方法是将输出值钳位到16位输出流的最大和最小可表示值.耳朵会忍受这种情况,只要它不经常发生就会被忽视.

  • "建立平均值+1不是正确的方法." (3认同)