1先听两个产品目标
本地播放版是干净、精修的声音:低噪声、强 body、更亲密的 pulse。它是你作为音频产品去判断的版本。
在线播放版是给流媒体平台的。它可能保留更多宽频心跳上下文,因为平台编码器需要这些上下文。它不是简单更响或更干净,而是任务不同。
2Peak normalization:为什么最高点不够
Peak 是波形里最高的单个采样点。Peak normalization 会找到这个最高点,然后把整条文件按比例缩放,让这个点达到目标值。
问题是:如果某一下心跳特别高,它就会决定整条录音的增益。弱心跳相对它还是弱,因为整条文件只是一起移动。
Limiter 也不是魔法。它能挡住最高峰,但如果你把所有东西都推进去,强心跳会变平,安静残留也会跟着 makeup gain 一起上来。
更好的单位是一次 heartbeat event。真正弱的心跳可以被抬高;如果只是上一下心跳的尾巴,就不应该被提拔成假的主心跳。
最高峰值决定全部缩放,较弱的心跳仍然偏弱。
每次心跳都根据自身角色和剩余空间计算。
3为什么 heartbeat-event 响度更好
Heartbeat event 指的是一次有意义的心跳动作:开始、击打、body 和尾巴。它可能包含 S1、S2 或 split detail,但核心问题永远是:这个声音在节奏里是什么角色?
如果一个完整心跳很弱,它可能应该被加大。如果上一个心跳后面的小尾巴很弱,它通常就应该继续当尾巴。全文件工具分不清这两者。
Event-level loudness 更自然,因为它不是奖励每一个安静的东西,而是先判断它是不是应该变强的心跳。
4Pipeline、marker、unit:事件级响度背后的术语
Pipeline 就是有顺序的处理工作流:识别心跳、找到 footprint、判断 event 角色、塑形、控制响度、导出产品。
Marker 是时间标签。比如:这里是 onset 开始,这里是 attack peak,这里是 body 结束。Marker 本身不发声,它只是告诉处理器声音区域在哪里。
Enriched event 是补充了时间、角色、peak time、S1/S2/split 信息的心跳事件。Heartbeat unit 是响度判断用的分组,避免主心跳和很近的依附细节被当成互不相关的声音。
一句话:marker 是标签,enriched event 是带标签的心跳动作,unit 是防止响度工具放大错误碎片的分组。
5闭式 event gain
闭式计算的意思是:算法直接算出增益,而不是一遍一遍试。
对每个 eligible heartbeat,我们知道当前波形,也知道想额外加进去的贡献。算法会问:最大的 gain 是多少,才能保证每个采样点都低于目标 peak?
这样每个 event 都能一次得到答案,比递归试参数更稳定,也避免把 limiter 当成主要音量工具。
6为什么 close attack 和 split tail 要保护
Close attack 是离上一下心跳很近的第二个击打或细节。Split tail 是真实存在、但属于上一下心跳形状的小 S2 或尾巴细节。
如果响度系统把这种依附细节误认为完整的新心跳,它就会被放大太多。听众会听到奇怪的电流感或合成感,因为一个尾巴被变成了假的主心跳。
更安全的工作流会把很近的 hit 分成一组。在这一组里,只有 dominant heartbeat 进入主增益;dependent detail 会被保护,而不是被吹大。
7纯净增强版的响度目标不同
纯净增强版是精修版本。它可以使用 adaptive enhancement 和 soft limiter,因为它追求的是文件本身好听,而不是一定要扛住最严苛的在线播放转码。
但最终 fullband normalization 可能会抬起每次心跳旁边的细小高频残留。更好的策略是先增强真实 heartbeat event,再轻轻接住峰值,最后减少高频残留。
原则是一致的:有目的地增强真实心跳,而不是把文件里每个安静东西都抬起来。
