检测音频信号中的数字削波

时间:2013-05-17 22:04:37

标签: python audio python-2.7 audio-recording

在python中给出音频字节数组 data ,如此

inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK, card)

# Set attributes: Mono, 48000 Hz, 16 bit little endian samples
inp.setchannels(1)
inp.setrate(48000)
inp.setformat(alsaaudio.PCM_FORMAT_S16_LE)
l, data = inp.read()

如何检测数字剪辑,数据必须超过哪个值才能确保数字剪辑?

1 个答案:

答案 0 :(得分:1)

Overdrive基本上是增益失真。它将电压升高到驱动器刚刚切断顶部并因此使信号失真的程度。如果你需要在数字意义上进行测试,那就很难裁剪。因此,您需要搜索通过最大阈值的值。使用16位音频文件时,剪辑的性质将为0db。因为如果没有更多的位要保存到,那么软件会自动将其切断为最大16位整数可以保存。不幸的是,如果赛道先前​​已被扭曲,然后降低音量以便更好地融入混音,那么你可能无法找到它。除非是这样,你正在检查的是轨道上唯一的声源,它在哪种情况下找到轨道的最大值并将其设置为阈值。我可以说,尽管硬剪辑显示为方波,因此您可以搜索连续相同的值,持续时间长于普通的可听波(以忽略合法的方波音)。这就是我能为你做的最好的事情。