问题描述
您想要的可能是音频数据的傅立叶变换。有几个软件包可以为您计算出来。scipy并且numpy是其中的两个。它通常被称为“快速傅立叶变换”(FFT),但这仅是算法的名称。
这是其用法的一个示例:https : //svn.enthought.com/enthought/browser/Chaco/trunk/examples/advanced/spectrum.py
解决方法
我想使用PortAudio(PyAudio)录制声音(语音)并在屏幕上输出相应的声波。就像我一样,我无可救药,无法从音频流中提取频率信息,因此无法以Hz /时间形式绘制它。
这是一个示例代码片段,可在五秒钟内记录并播放录制的音频,以防任何情况:
p = pyaudio.PyAudio()
chunk = 1024
seconds = 5
stream = p.open(format=pyaudio.paInt16,channels=1,rate=44100,input=True,output=True)
for i in range(0,44100 / chunk * seconds):
data = stream.read(chunk)
stream.write(data,chunk)
我希望从上面的变量“数据”中提取所需的信息。(或者将其他高级方法用于PortAudio或其他具有Python绑定的库。)
我将非常感谢您的帮助!甚至音频分析智慧的模糊相关小知识也受到赞赏。:)