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

时间:2020-03-05 18:50:23  来源:igfitidea点击:

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

解决方案

回答

如果我们收到的是最大值或者最小值,那么按照定义,就是削波。这些值代表它们的特定值以及超出范围的所有值,因此,它们最好用作边界检测器。

-亚当

回答

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

回答

对于数字音频数据,除"最大幅度"外,术语"削波"实际上并没有很多含义。在模拟世界中,音频数据来自通常包含"削波寄存器"的某些硬件,这使我们可以将最大幅度不削波。

可能更适合数字音频的是根据输出D / A的限制设置一些阈值。如果我们要进行VOIP,请选择手机或者手机的典型阈值,如果数字音频超过此阈值,则将其称为"削波"。如果要输出到高端家庭影院系统,则可能不会有任何"削波"。

回答

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

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

回答

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

对于一个更复杂的答案:诸如样本计数限幅检测器之类的事情要求x个连续样本的最大值/最小值处于被视为限幅的状态(其中x可能高达7)。这里的理论是仅听不到几个样本的声音是听不到的。

就是说,有一种音频设备即使在低于最大值(而高于最小值)的值时也可以截取声音。出于这个原因,典型的建议是将音乐的峰值控制在-0.3 dB而不是0.0 dB。我们可能要考虑高于该水平的任何样本都是削波的。这一切都取决于我们需要什么。