FFT实时音频处理

时间:2020-09-24 11:13:23

标签: python-3.x pyaudio real-time-data

所以我正在用Python进行实时音频处理。好消息是,我发现了这个link,它可以帮助我从PC麦克风中收集数据,并实时绘制所有数据,这真是太棒了。

我还从其他链接中找到了此代码,可以在给定时间内将数据从麦克风流式传输到扬声器。

    self.stream=self.p.open(format=pyaudio.paInt16,channels=self.CHANNELS,rate=self.RATE,input=True,
              output=True,frames_per_buffer=self.CHUNK)

   def stream_data(self):
        for i in range(0, int(self.RATE / self.CHUNK * self.RECORD_SECONDS)):
            data = self.stream.read(self.CHUNK)
            self.stream.write(data, self.CHUNK)

我的想法与上面的链接有所不同的是,我想先将FFT应用于麦克风数据,然后再发送给扬声器。如果我从上面的代码中打印出“数据”,我会发现很多六角形杂物必须转换为十进制格式。从前面的链接中,我也知道如何做到这一点

data = np.frombuffer(self.stream.read(self.CHUNK),dtype=np.int16)

我拥有所需的十进制格式的数据。但是现在我有了这些数据,在处理后如何将其转换回六进制格式,“ self.stream.write”可以理解并输出到扬声器。我不确定如何完成。

1 个答案:

答案 0 :(得分:0)

我相信我已经找到了答案。因此,如果这也可能对其他人有所帮助,那么这篇论文对我有所帮助。

Real-Time Digital Signal Processing Using pyaudio_helper and the ipywidgets