像这样在python中给出音频字节数组数据
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()
我如何检测数字限幅,数据必须超过哪个值才能确保已被数字限幅?
最佳答案
过载基本上是增益失真。它将电压升高到驱动器刚切断顶端的程度,从而使信号失真。如果您需要以数字方式进行测试,将很难进行裁剪。因此,您将需要搜索通过最大阈值的值。对于16位音频文件,剪辑的性质将为0db。因为如果没有更多要保存的位,则该软件将自动将其切掉,最大保留16位整数。不幸的是,如果音轨先前已经变形,然后降低了音量以便更好地融合到混音中,那么您可能找不到。除非那样,否则您要检查的是轨道上唯一的声源,在这种情况下,只需找到轨道的最大值并将其设置为阈值即可。我可以说虽然硬限幅显示为方波,但您可以在比普通可听波更长的时间段内连续搜索相同的值(以忽略合法的方波音调)。那就是我能为您做的最好的。