是否有一种算法或一些启发式方法来确定数字音频数据是否正在剪辑?
5 回答
如果您曾经收到最大值或最小值的值,那么根据定义,您就是裁剪。这些值代表它们的特定值以及超出的所有值,因此它们最好用作外部边界检测器。
-亚当
简单的答案是,如果任何样本具有最大值或最小值(对于 16 位样本,分别为 -32768 和 +32767),您可以将其视为裁剪。这并不完全正确,因为该值实际上可能是正确的值,但无法判断 +32767 是否真的应该是 +33000。
对于一个更复杂的答案:有这样一种东西,例如样本计数剪辑检测器,它需要 x 个连续样本处于最大值/最小值才能将它们视为剪辑(其中 x 可能高达 7)。这里的理论是,仅剪辑几个样本是听不见的。
也就是说,即使在低于最大值(和高于最小值)的值下,音频设备的剪辑也非常可听。出于这个原因,典型的建议是将音乐的峰值控制在 -0.3 dB 而不是 0.0 dB。您可能希望将高于该级别的任何样本视为裁剪。这完全取决于您需要它来做什么。
亚当所说的。您还可以添加一些逻辑来检测一段时间内的最大幅度值并仅标记这些值,但本质是确定信号是否/何时达到最大幅度。
对于数字音频数据,“削波”一词除了“最大幅度”之外并没有真正的意义。在模拟世界中,音频数据来自一些硬件,这些硬件通常包含一个“削波寄存器”,它允许您获得未削波的最大幅度。
可能更适合数字音频的是根据输出 D/A 的限制设置一些阈值。如果您正在使用 VOIP,则选择一些典型的手机或手机阈值,如果您的数字音频超过该阈值,则将其称为“剪辑”。如果您要输出到高端家庭影院系统,那么您可能不会有任何“剪辑”。