python实时音频处理_Python中的实时音频处理

我正在写一个程序来检查电脑记录的音频信号中是否有小故障。在检测到音频后,我想检查数据的前5秒是否有问题(以44.1kHz的采样率对应220500个样本),继续到下一个5秒的数据并检查其中是否有问题,然后接下来的5秒等等。我有一个while循环,在检测到音频后开始,它开始读取音频从一个流采样到一个数组,直到它在数组中有220500个样本,然后它进入一个if语句,开始检查220500个样本中的问题(然后删除数组中的所有元素)。我的问题是,当这种情况发生时,计算机仍在记录音频,但它没有从流读取到数组中,当我退出if语句并重新启动while循环时,我已经错过了几秒钟的音频数据。在while 1:

# little endian, signed short

snd_data = array('h', stream.read(1500))

if byteorder == 'big':

snd_data.byteswap()

r.extend(snd_data)

if len(r) == 220500 or silent:

r = trim(r)

data = pack('

data = np.fromstring(data,dtype=np.int16)

glitch detection carried out here...

我正在使用PyAudio录制音频

^{pr2}$

我想知道有没有办法让我继续从音频流读入阵列,同时执行if语句中的故障检测?如果没有,我还有别的办法吗?在

你可能感兴趣的:(python实时音频处理)