Python + Qt组合可以生成实时光谱分析工具吗?

我想开发一个可以完成以下工作的工具。 录制现场录音 产生实时频谱图 显示时域信号 输出从光谱分析中提取的少量值 所有这些都必须在录制语音时在窗口中保持更新。 我和numpy一起工作过。但我对Qt和其他GUI构建工具完全不熟悉。在这种情况下,最好的方法是什么?在我向他们解释任务之后,我的同行推荐了Qt。如果有人知道有一个更好的工具与python一起用于此任务,请告诉我。另外,请帮助我了解如何捕获实时流并在python中处理它的技术细节,这将在GUI窗口中显示。一个给我一些希望的链接是http://www.swharden.com/blog/2010-03-05-realtime-fft-graph-of-audio-wav-file-or-microphone-input-with-python- scipy-and-wckgraph /。但要理解它有点困难。可能是一个不那么密集的解决方案将帮助我入门。     
已邀请:
在Qt 4.6中,添加了QAudioInput API。这提供了用于获得音频输入信号的跨平台抽象,因此将用于实现点(1)。 至于(2)和(3),Qt附带的频谱分析仪演示可能是有意义的。 在Symbian上运行的Spectrum Analyzer演示的屏幕截图http://labs.trolltech.com/blogs/wp-content/uploads/2010/05/spectrum.png 实现是使用C ++而不是Python,但它可以用作参考。基本上你需要的是(2)是计算输入信号的快速傅立叶变换。您可能希望使用提供FFT实现的库而不是编写自己的库 - 这是我在编写演示时采用的方法:) 至于(3),这在概念上非常简单,但需要一些思考才能获得平滑的滚动波形。在演示中查看Waveform类中使用的平铺方法以获取一些提示。 我认为(4)你的意思是:将FFT输出中的大量点减少到少量值。这是演示用于绘制光谱条形图的内容。再次,参考演示代码,了解如何实现频率幅度的分级。     
在一个脚本中使用PyAudio,scipy,Chaco的实时音频频谱分析仪的另一个例子可以在Chaco的示例列表中找到。 (在我的Precise上开箱即用)。     
在Linux上,这绝对是可行的。其他平台也是,但我真的只能回答Linux。 Python不一定是用于实时DSP的最清晰的工具,但是在适当的现代机器和适当的适度目标上你会很好。 首先,您需要一个Linux音频驱动程序的接口。 ALSA非常普遍。 ALSA库有几种不同的Python包装器,请参阅Python In Music中的libs列表和使用它们的应用程序。 然后进行光谱分析。 SciPy和NumPy拥有这一切。 然后你进入你的Qt窗口。我的专长是GTK,但您可能想要创建一个QtCanvas(教程),这是一个面向对象的绘图区域,专为此类用途而设计。 或者你可以使用SciPy,它可能被说服完成所有这些!特别是AudioLab看起来可能是一个很大的帮助。     

要回复问题请先登录注册