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

标签 python audio python-2.7 audio-recording

像这样在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位整数。不幸的是,如果音轨先前已经变形,然后降低了音量以便更好地融合到混音中,那么您可能找不到。除非那样,否则您要检查的是轨道上唯一的声源,在这种情况下,只需找到轨道的最大值并将其设置为阈值即可。我可以说虽然硬限幅显示为方波,但您可以在比普通可听波更长的时间段内连续搜索相同的值(以忽略合法的方波音调)。那就是我能为您做的最好的。

关于python - 检测音频信号中的数字削波,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16618584/

相关文章:

python - 如何获得正在运行的 Python 脚本的列表?

python - 从父目录导入失败,出现 ImportError

python - matplotlib 散点图甚至 x 和 y 抛出错误,表明它们不是

actionscript-3 - Soundchannel的AS3限制?

javascript - Android - 当互联网中断时继续使用 HTML5 javascript 播放音频 - 获取、blob

python - 通过 python 运行整个 SQL 脚本

python - 如何获取 Python 函数的源代码?

python - 转换具有缺失值的日期字符串

jquery - 使用jquery和html5音频播放歌曲列表

python - 如何正确 pickle 命名元组实例