你的表头在峰值上骗了你,原因是算术

9 分钟阅读每个数字都有出处

一个最高采样读作 0.0 dBFS 的文件,并不是一个信号达到 0 dB 的文件。在任意两个采样之间,重建出来的波形都可能高过它们两个,而采样峰值表在结构上就没有能力看见这一点。接着,一个有损编解码器——每一家流媒体服务在任何人听到之前都会施加在你母带上的那个东西——还会把这些越界推得更高。结果就是一份在你的 DAW 里测起来干干净净、播放时却失真的母带,而这一切都不是意见问题。它是采样音频如何被重建的必然结果。

本文讲清楚采样峰值和真峰值到底是什么、为什么过采样是测量后者的唯一途径、一个 4× 的表头能看见什么又看不见什么,以及三种标准化响度表分别回答哪一个问题。各家服务公布的目标是什么、安静的母带会怎样,另文讨论,见你的母带究竟经历了什么

采样峰值是文件里最高的那一点。真峰值不在文件里。

采样峰值表报告的是文件中绝对值最大的采样值。那是一个真实的数,而且很容易算——你把每个采样看一遍,留下最大的那个。

但采样是一条连续波形上的点,不是波形本身。穿过这些点的波形,在它们之间可以高过它们两个。重建出来的模拟波形可以超过文件中最高的采样,而采样峰值表没有任何机制能检测到这件事。这些越界就是采样间峰值。包含它们在内的重建波形的电平,就是真峰值,以 dBTP 表示。

正因如此,「没有东西被削波」和「不会有东西被削波」是两个不同的主张。一份采样最高只到 −0.1 dBFS、在数字上安全的文件,其真峰值完全可能远高于 0 dBTP。文件里没有任何东西过载。而下游每一个重建波形的环节——DAC、采样率转换器、有损解码器——都可能把它削掉。

实用的判据很直接:一个没有明确的真峰值或 dBTP 模式的表头就是采样峰值表,无论它的手册暗示了什么。这包括 DAW 内置的大多数电平表,也包括相当多限制器上的天花板(ceiling)控件。

有损编码为什么让情况更糟,而不是中性

流媒体交付给听众的不是你的 WAV。它交付的是它的 AAC、Ogg Vorbis 或 MP3 编码版本,而有损编解码器不会逐采样地复现你的波形。它复现的是一条感知上相似的波形。解码器的输出经常会过冲编码器的输入。

这个过冲不是某个特定编码器的 bug。它是量化并丢弃频谱细节所带来的不可避免的后果,而且——这才是对母带处理决策真正要紧的部分——它随源素材被限幅得多狠而放大。你把信号往天花板上压得越猛,编解码器在出来的路上产生的过冲就越多。

于是一份恰好停在 0.0 dBTP 的母带,解码出来的峰值高于 0 dBFS,解码器就把它们削掉了。你在自己的文件上永远听不到这个。你只会在听众拿到的那个版本上听到。

每一份处理过这个问题的已公布规范都得出同一个结论。AES TD1008 写道:「For all content, it is recommended that the Maximum True Peak level not exceed −1 dBTP at the codec input of lossy-encoded streams.」Spotify 要求你把真峰值保持在「below −1dB TP (True Peak) max」,而对响度高于 −14 LUFS 的母带则要「keep True Peak below −2dB to avoid extra distortion.」

Spotify 的第二个数字才是有意思的那个。它之所以存在,恰恰是因为被限幅得更狠的素材在编解码器里过冲更多。这个天花板不是一条固定的迷信;它随素材变密而收紧。

过采样在做什么,以及 4× 看不见什么

要测量一个不在文件里的峰值,你必须把采样之间的波形重建出来。ITU-R BS.1770 规定的做法是过采样——插入额外的采样点,然后测量这条更密的信号的峰值。

这份建议书定下的是 48 kHz 下至少 4× 过采样,并指出「Higher sampling rates and over-sampling ratios are preferred.」

请照字面读。4× 是一条合规底线,不是准确答案。一个 4× 的表头保证能抓到比采样峰值表更多的东西,但不保证能抓到全部;在 4× 下,测量结果仍可能把真实峰值低读零点几个 dB。而那零点几,恰恰就是人们想从天花板上刮下来的余量的量级。

你在用的是什么它报告什么它漏掉什么
采样峰值表文件中最大的采样值每一个采样间峰值;以及编解码器过冲这整个问题
4× 真峰值表BS.1770 合规底线上的重建峰值仍可能把真实峰值低读零点几个 dB
8× 或 16× 真峰值表对重建峰值更接近的估计越来越少,代价只是微不足道的 CPU

如果你的表头提供 8× 或 16× 过采样,就用它。多出来的 CPU 开销微不足道,多出来的准确度则不然。

限制器那一侧还有一个配套的陷阱。一个设为 −1.0 dBTP 的真峰值天花板,只有在限制器确实在做真峰值限幅时才有意义。很多限制器的天花板控件是采样峰值的,把它设到 −1.0,你得到的采样间峰值会落在 −0.5 dBTP 以上某处——编解码器还没碰到文件,你的余量就没了一半。

你的表头引用的是标准的哪一版

BS.1770 有六个版本:2006、2007、2011、2012、2015 和 2023。BS.1770-4(October 2015)是多数已部署表头引用的版本;BS.1770-5(November 2023)是当前生效的版本。本文所述的 4× 过采样底线、各滤波级和两道门限,均对照 BS.1770-5 已公布文本核实过。

知道这一点,主要是为了让你正确地读你表头的文档。一个引用 -4 的表头并不因此就是错的,但 -5 才是现行文本,也是你拿某个说法去对照文件时该称引的那一版。

瞬时、短时、积分:三种表,三个问题

问题的另一半是,大多数人在做某个决定时读的是错的那块响度表。EBU Tech 3341 定义了三种时间窗,而它们回答的是三个确实不同的问题。

瞬时(M)——400 ms,无门限。与 BS.1770 的门限块同一种窗。瞬时响度追踪的是单个事件:一记军鼓、一个人声辅音、一次强拍。用它来东西——一个比周围高出 6 LU 的底鼓、一个跳出来的段落。不要用它来做电平决策。它太神经质了,而追着瞬时表跑,产出的正是播放归一化会惩罚的那种过压缩结果。

短时(S)——3 s,无门限。三秒大致是一个乐句。短时响度是曲目内部做平衡决策时该用的表,因为三秒正是听众真正把某个段落感知为响或轻的时间尺度。用它来比较主歌和副歌,检查桥段有没有塌下去,并把你编排的形状看成一个数。

积分(I)——整段节目,双重门限。这就是各家服务据以归一化的那个数,也是唯一属于交付规范的那个数。它是在整条曲目上测量的,从第一个采样到最后一个,而不是在某个选定段落上。积分响度是一项交付规范,不是一件混音工具;如果你在工作过程中盯着它,那你盯错了表。

时间窗门限它回答的问题
瞬时400 ms刚才发生了什么?
短时3 s这一段和那一段平衡吗?
积分整段节目绝对 −70 LKFS,再相对 −10 LU服务在交付时会测出什么?

由此得出的规则:按短时来混音和做母带,用积分来核验,用瞬时来追查异常。

这实际造成的那个错误

常见的错误是:一边做母带一边盯着积分响度,然后不断加限幅,直到它读出别人告诉你要达到的那个数。这个行为里叠着两个各自独立的失败。

第一个是,积分响度是双重门限的,而门限意味着它测的并不是人们以为的东西。低于 −70 LKFS 的块被直接丢弃。然后计算存活块的均值,从中减去 10,低于这条相对阈值的块也一并被丢弃。相对门限位于经绝对门限后的均值之下 10 LU,而不是整个文件未经门限的均值之下 10 LU。这对你的工作流程有直接后果:你曲目的积分响度,实际上是它响的部分的平均响度,而不是整条曲目的。一首带着 40 秒气声前奏和一段音墙副歌的歌,几乎完全是按它的副歌被测量的。给一份已完成的母带加一段安静的前奏,几乎不会挪动积分读数,而指望它挪动的工程师会感到意外。

第二个失败是,响度范围用的又是另一道门限。LRA 定义于 EBU Tech 3342,是短时响度分布的第 10 与第 95 百分位数估计值之差,而 Tech 3342 把它的相对阈值定在经绝对门限后的响度电平之下 −20 LU,不是 −10 LU。这道更宽的门限是刻意的——LRA 刻画的是变化,所以它必须放进那些积分测量刻意要排除的较安静段落。那些把积分的 −10 LU 门限拿来复用给 LRA 的表头,报出的数值会系统性地偏小。如果你的表头在同一个文件上报出的 LRA 明显低于另一个表头,那就怀疑它在该用 −20 LU 的地方用了 −10 LU。

这个你几分钟就能测出来。在曲目主体之后接上 20 秒比主体低 15 LU 的素材。一个正确的实现,其 LRA 会显著上升。一个坏掉的实现几乎不动。

究竟该交付什么

指引很短,而且其中每一个数字都是公布过的。

  1. 先把天花板定死:−1.0 dBTP,真峰值,开过采样。这是这份清单里唯一真正硬性的约束。如果你的母带积分响度高于 −14 LUFS,就用 −2.0 dBTP——这个更紧的数字之所以存在,是因为被限幅得更狠的素材在编解码器里过冲更多。
  2. 为音乐做母带。在限制器尽可能少干活的前提下把平衡、音色和动态做对,这个阶段不要去看积分表。
  3. 测量结果。你最终落到的那个积分响度就是你的候选值。如果它大致落在 −14 到 −9 LUFS 之间,那么每一个公布过的目标和每一个被转述的数字,都在离你几个 LU 的范围内。如果比 −9 LUFS 还响,就问问那些限幅到底买到了什么。
  4. 要调整就改母带处理,而不是加限幅。靠不断加限幅直到表头读数正确来达成某个 LUFS 数值,正是归一化被设计出来要让其失去意义的那种行为。

有两件事不要做。−0.1 dBTP 的天花板对流媒体来说是一个交付错误,不是一种风格选择。另外,不要为不同的服务切不同的母带——公布的和被转述的目标一共只跨约 2 LU,精确命中某个数在听感上什么都不改变,而一份 −1 dBTP、动态合理的母带在任何地方都是对的。

如果你想在交付之前检查一个成品文件,Mazufa 提供一个免费的响度与真峰值检查器,在 /loudness-checker。它完全在你自己的浏览器中运行,不上传任何音频。

参考来源

ITU-R BS.1770 —— 测量算法、K 加权、门限、真峰值

  • Recommendation ITU-R BS.1770-5 (11/2023), Algorithms to measure audio programme loudness and true-peak audio level(全文 PDF):https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-5-202311-I!!PDF-E.pdf
  • BS.1770 建议书页面与版本沿革(BS.1770-0 至 BS.1770-5):https://www.itu.int/rec/R-REC-BS.1770/en

EBU —— 表的时间窗与响度范围

  • EBU Tech 3341, Loudness Metering: EBU Mode metering to supplement EBU R 128(瞬时 400 ms,短时 3 s):https://tech.ebu.ch/publications/tech3341
  • EBU Tech 3342, Loudness Range: A measure to supplement EBU R 128 loudness normalisation(−20 LU 门限;第 10/95 百分位数),PDF:https://tech.ebu.ch/docs/tech/tech3342.pdf

AES —— 编解码器输入端的真峰值天花板

  • AES TD1008.1.21-9, Recommendations for Loudness of Internet Audio Streaming and On-Demand Distribution(编解码器输入端 −1 dBTP),PDF:https://aes2.org/wp-content/uploads/2024/01/20210924_TD1008_v3.13.pdf
  • AES TD1008 文档页面:https://aes.org/technical-council/technical-document-aestd1008/

Spotify —— 已公布的真峰值上限

  • Spotify for Artists, Loudness normalization(−1 dBTP;响度高于 −14 LUFS 的母带为 −2 dBTP):https://support.spotify.com/us/artists/article/loudness-normalization/
免费工具

Mazufa 做的每一个工具都在你的浏览器中运行,不收费,也不需要账户。

打开工具箱 ⇥