【问题标题】:Algorithm to decide if digital audio data is clipping?确定数字音频数据是否剪辑的算法?
【发布时间】:2010-09-08 08:32:49
【问题描述】:

是否有算法或启发式方法来确定数字音频数据是否为clipping

【问题讨论】:

标签: algorithm audio heuristics


【解决方案1】:

简单的答案是,如果任何样本具有最大值或最小值(对于 16 位样本,分别为 -32768 和 +32767),您可以认为它是裁剪的。这并不完全正确,因为该值实际上可能是正确的值,但无法判断 +32767 是否真的应该是 +33000。

对于更复杂的答案:有这样的事情,例如样本计数剪辑检测器,需要 x 个连续样本处于最大值/最小值才能将它们视为剪辑(其中 x 可能高达 7)。这里的理论是,只剪辑几个样本是听不见的。

也就是说,即使在低于最大值(和高于最小值)的值下,音频设备的剪辑也非常可听。出于这个原因,典型的建议是将音乐的峰值控制在 -0.3 dB 而不是 0.0 dB。您可能希望将高于该级别的任何样本视为裁剪。这完全取决于您需要它的用途。

【讨论】:

  • 这是目前最好的答案。
  • 控制在 -0.3 dB 是不切实际的 - 你希望你的作品尽可能响亮而不失真。
  • 我不建议这是绝对真理。响度战争应该已经结束了——重点是保持动态范围。是的,主控绝对不应该达到 0 dBFS,因为当它转换为 MP3 时,它可能会因 MP3 编解码器而剪辑......所以是的,我绝对建议永远不要超过 -0.3 dBFS 甚至-0.5 分贝。 YMMV。
【解决方案2】:

如果您曾经收到最大值或最小值的值,那么根据定义,您就是剪裁。这些值代表了它们的特定值以及超出的所有值,因此它们最好用作边界检测器。

-亚当

【讨论】:

  • -1:有点不准确:不是根据定义;最大值和最小值可能恰好是基础信号波的最大值和最小值。
【解决方案3】:

对于数字音频数据,“削波”一词除了“最大幅度”之外并没有太多意义。在模拟世界中,音频数据来自某些硬件,这些硬件通常包含一个“削波寄存器”,它允许您获得未被削波的最大幅度。

可能更适合数字音频的是根据输出 D/A 的限制设置一些阈值。如果您正在使用 VOIP,则选择一些典型的手机或手机阈值,如果您的数字音频超过该阈值,则将其称为“剪辑”。如果您要输出到高端家庭影院系统,那么您可能不会有任何“剪辑”。

【讨论】:

    【解决方案4】:

    我刚刚注意到甚至有一些不错的实现。

    例如在Audacity:
    分析查找剪辑...

    【讨论】:

      【解决方案5】:

      亚当所说的。您还可以添加一些逻辑来检测一段时间内的最大幅度值并仅标记这些值,但本质是确定信号是否/何时达到最大幅度。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多