关于数字音频的制式以及相应的响度关系的探讨。
常见的表头有三种:
响度感知是心理声学的研究范畴,其影响因素众多。频率、波形包络、动态变化、声场、混响、听音者的年龄、心情状态等都会影响最终的感知。
单一频率等响曲线:
人耳对于4k左右的频段是最为敏感的,而在100Hz以下则快速衰减。
响度感知受音频的瞬态影响。由于人体构造,从声音发出,被耳蜗听觉神经接收并传到脑干,Localization定位,到建立响度感知的总延迟在400ms左右。因此对于响度的测量和分析往往都需要持续最少400ms,低于这个值的分析意义不大。这也可以解释为什么很多RMS窗口,ITU-R,EBU的算法都以400ms做为默认配置。
声场、空间感会影响人耳对响度的感知。一个典型的例子就是在Wwise中对Stereo素材做Conversion到Mono后,即便电平上相差不大,听感上响度都会有所下降。同样的素材,加入混响后响度会提高。
听音者的心态,健康状况,听觉疲劳状况,背景噪声等因素都会影响响度感知,具体情况可以参考心理声学相关专题。
LKFS算法是广电游戏等领域广泛使用的响度评估算法。根据ITU-R BS.1770-4 建议书中的算法,大致分析一下这套标准到底都考虑了上述哪些影响因素。 整体结构如下:
可以看到这个Demo是5.0声道的例子。每个声道的采样,先通过K-滤波器 —— 一个二级FIR滤波电路;然后做均方处理,窗口为400ms,混叠为75%;然后对所有声道做带权叠加,再取对数得到响度值。
1) 频率加权滤波电路的第一级是2kHz左右的4dB的搁架提升,补偿等响曲线中人耳对4k左右高频的敏感度;第二级为70Hz左右的低切,削弱低频信号的权重。这两级滤波可以看成是对等响曲线的比较粗略的近似。
2) 均方根的计算,以400ms为窗口进行积分
\[z_i=\frac{1}{T}\int^T_0y^2_idt\]3) 通道加权如下表,可以看到对环绕的加权较高,为啥?
通道 | 加权,Gi |
---|---|
左边(GL) | 1.0 (0 dB) |
右边 (GR) | 1.0 (0 dB) |
中间 (GC) | 1.0 (0 dB) |
左边环绕 (GLs) | 1.41 (~ +1.5 dB) |
右边环绕 (GRs) | 1.41 (~ +1.5 dB) |
4) 最终的响度值为:
\[L_K=–0.691+10 log_{10}\sum_iG_i·z_i\]这个算法大致兼顾了响度感知中频响、瞬态和声场的影响因素。但是有诸多问题。频率部分:对于4kHz以上的高频估测值大于等响曲线给出的数值,对于100-2kHz的频段,估值同样是粗略不准确的。考虑到整体的补偿,可以理解为对于全幅的响度感知是接近真实值的,而对于局部频段是不准确的,不适用于频段较为集中的声音。瞬态部分:采用了400ms的窗口和75%的混叠,因此算法不适用于单个音效的响度判断,而是适合长时间的整体响度评价。
综上,LKFS可以用来评价音乐、游戏制品、广播电视的整体响度情况,不适合用来评价较短素材和非全频段的素材响度。
经常在网上看到这么几张图,以及这样的解释:模拟的VU表的0dB对应数字24bit采样的-18dB,云云。
完全没有这回事好吧。。
也许在模拟领域上存在映射关系,在数字上,没有说24bit的0dB响度要比16bit的高6dB的说法,都是一样响的。数字的0dB只是你的声卡按当前的总线推子设定输出最大电平的相对值,不管你的比特深度是多少,都是一样响的。哪怕是32bit浮点,过了0dB,该爆音的一样爆音。而且前面已经论述了,VU表的数值和数字采样的比特量化数值没有对应关系,根本就没有可比性。