Audio 音量标准化

Audio 音量标准化,audio,pcm,audio-player,Audio,Pcm,Audio Player,我正在写一个音乐播放器,我想标准化不同歌曲的音量 我可以想出一些不同的方法,例如: 检查所有PCM样本,假设浮点为-1到1,并选择m=maxabssample。然后将系数1/m应用于所有PCM样本。这将使峰值位于1 通过PCM流,针对每个位置,取其周围一定宽度的汉宁窗口,计算绝对样本的平均值,并从这些数据中选取最大值并对所有数据进行归一化 与2相同,但可以通过其他方式获得某种平均值 2和3的缺点是,我可能需要一些剪辑,从而失去了一些质量。不过,通过不规范化为1而是0.95左右,我可能可以在某种程

我正在写一个音乐播放器,我想标准化不同歌曲的音量

我可以想出一些不同的方法,例如:

检查所有PCM样本,假设浮点为-1到1,并选择m=maxabssample。然后将系数1/m应用于所有PCM样本。这将使峰值位于1

通过PCM流,针对每个位置,取其周围一定宽度的汉宁窗口,计算绝对样本的平均值,并从这些数据中选取最大值并对所有数据进行归一化

与2相同,但可以通过其他方式获得某种平均值

2和3的缺点是,我可能需要一些剪辑,从而失去了一些质量。不过,通过不规范化为1而是0.95左右,我可能可以在某种程度上避免这种情况。但我认为2和3的优点是,这可能是用户更自然的规范化。也有一些关于这方面的信息和提及,或者用来测量歌曲的响度


其他像iTunes这样的流行音乐播放器是如何做到这一点的?

iTunes使用声音检查技术。Sound Check是苹果公司的专有技术,其功能类似于ReplayGain。它可以在iTunes和iPod中使用。从维基百科看来,这对我来说不是解决办法

看来重播是最常见的技术。对算法进行了说明。示例实现是从mp3gain派生的GPL或GPL。我有BSD执照

另请参见这些项目及其实现:


1是规范化的定义。忘掉第二条和第三条吧。@BjornRoche:我不知道你说的那句话是什么意思。据我所知,大多数音乐播放器使用ReplayGain或类似的方法来测量响度。你可以在任何地方看到1并不是你想要的解决方案。对不起,让我再试一次:当视听专业人士谈到音频标准化时,他们指的是1。虽然它可能是一个合理的第一近似值,但它并不能完全实现您想要的结果,但它在a/V世界中确实有意义。2和3没有意义。@BjornRoche:看来你有一些专业的音频背景,所以我可能会相信你。请注意,Wikipedia将此称为峰值规范化,并像我一样使用规范化本身。我们都是对的:如果您说文件是在没有任何其他限定符的情况下进行规范化的,那么您指的是峰值规范化,即0dBFS或+/-1,具体取决于文件类型。为了得到其他的意思,你必须说:规范化,我的意思是。。。。或者响度标准化为XXXX,但都在标准化。指向该算法的链接将指向一个停驻的域。可供选择的消息来源是和官方的