是否有算法或启发式方法来确定数字音频数据是否是 剪裁?

有帮助吗?

解决方案

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

-亚当

其他提示

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

对于更复杂的答案:有一种样本计数削波检测器,要求 x 个连续样本处于最大/最小值才能被视为削波(其中 x 可能高达 7)。这里的理论是,仅在几个样本中进行削波是听不到的。

也就是说,有些音频设备即使在低于最大值(和高于最小值)的值下也能清晰地听到声音。因此,典型的建议是将音乐的峰值控制在 -0.3 dB,而不是 0.0 dB。您可能希望将高于该级别的任何样本视为削波。这完全取决于您需要它的用途。

对于数字音频数据,术语“削波”除了“最大幅度”之外并没有真正的含义。在模拟世界中,音频数据来自某些通常包含“限幅寄存器”的硬件,它允许您获得不限幅的最大幅度。

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

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

例如在 大胆:
分析查找剪辑...

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top