决定数字音频数据是否剪裁的算法?

时间:2008-09-09 22:04:03

标签: algorithm audio heuristics

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

5 个答案:

答案 0 :(得分:6)

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

- 亚当

答案 1 :(得分:5)

简单的答案是,如果任何样本具有最大值或最小值(对于16位样本分别为-32768和+32767),则可以将其视为剪切。这并不严格,因为该值实际上可能是正确的值,但是没有办法判断+32767是否真的应该是+33000。

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

也就是说,即使在低于最大值(并且高于最小值)的值下,也有音频设备可以听到很好的声音。由于这个原因,典型的建议是将音乐控制在峰值-0.3 dB而不是0.0 dB。您可能需要考虑该级别之上的任何样本进行裁剪。这一切都取决于你需要它。

答案 2 :(得分:2)

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

答案 3 :(得分:2)

对于数字音频数据,术语“限幅”并不具有除“最大幅度”之外的许多含义。在模拟世界中,音频数据来自某些通常包含“剪切寄存器”的硬件,这使您可以获得最大幅度而不会被剪切。

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

答案 4 :(得分:2)

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

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