如何用Python实时读取/写入原始音频数据?

6 投票
1 回答
6241 浏览
提问于 2025-04-17 12:27

我想要能够实时地动态读取和写入音频数据。我注意到有一个叫做"audioscope"的Python工具,它可以打开unix/linux系统中的/dev/dsp文件,并从中读取原始字节数据。

不过,我现在使用的是Mac OSX 10.5.8,双启动Linux系统有点麻烦(我试过了)。我在想有没有什么“标准”的Python模块可以读取和写入音频数据(也许可以把数据快照存储在numpy数组中)。我打算用一个线程来读取和存储数据,另一个线程来发送新的信号。

目前,我想使用我电脑上的音频插孔,但将来我希望能够以类似的方式使用USB声卡。到那时,我希望能够控制多个信号(使用USB端口扩展器)。

我已经找了一段时间了,发现了一些用于音频处理的库,但它们通常是围绕读取和写入文件,而不是动态数据处理。也许最好的库根本就不是音频库。我实际上打算用这个来控制电路,但谷歌让我觉得音频是使用电脑的最佳方式。

总之,我希望能得到一些建议。

1 个回答

3

Enthought工具套件里有一些实时音频处理的例子。这些例子在chaco/advanced示例文件夹里,包括spectrum.pyspec_waterfall.py。它们使用了chaco绘图库和pyaudio来实现实时音频处理。(这里还有一个基于pyaudio和WCK图形库的实时FFT的例子。)这些例子非常棒,可以实时反馈你麦克风上发生的事情。你可以在数据到达时对其进行修改,想怎么处理就怎么处理,然后再显示出来。

你想要实现的最终目标是什么?你提到要“控制电路”,你想控制什么样的电路呢?如果你能分享一下你的想法,可能会有人想到更好的方法。

撰写回答