微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从输入音频流中提取频率信息使用PortAudio?

如何解决如何从输入音频流中提取频率信息使用PortAudio?

您想要的可能是音频数据的傅立叶变换。有几个软件包可以为您计算出来。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绑定的库。)

我将非常感谢您的帮助!甚至音频分析智慧的模糊相关小知识也受到赞赏。:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。