use*_*522 3 audio signal-processing
我有一个关于混合多个PCM样本的简单问题.
我读到混合多个音频PCM样本的最佳方法是每帧取样本的平均值.
因此,如果我在加上一起说5个16位样本然后除以5,显然很可能它会有一个大于16位短的值可以容纳的值.
因此,当将多个16位样本混合在一起时,我是先将它们全部存储在int中并添加它们并将它们平均,然后转换回短路?
如果您想混合音频样本,只需将它们添加到一起即可.建立平均值不是正确的方法.
想一想:如果有人拉小提琴而第二把小提琴加入音乐,第一把小提琴会变得不那么响亮吗?不,不会.第二把小提琴只是增加了信号.
添加PCM样本时,您必须处理整数溢出.一种方法是使全局"主体积"应用于混合PCM样本.使用这样的全局乘法器可以帮助您确保最终信号大多在输出数据的16位内.
您可能还需要每通道音量控制.
最后,溢出仍然会在这里和那里发生,处理它们的最佳方法是将输出值钳位到16位输出流的最大和最小可表示值.耳朵会忍受这种情况,只要它不经常发生就会被忽视.
| 归档时间: |
|
| 查看次数: |
2372 次 |
| 最近记录: |