Python或Matlab:同步音频播放和数据可视化(波形/STFT频谱图等)

Python或Matlab:同步音频播放和数据可视化(波形/STFT频谱图等),python,matlab,audio,fft,visualization,Python,Matlab,Audio,Fft,Visualization,我想做一个python或matlab项目,在与回放同步的同时可视化音频数据 具体来说,这意味着在GUI中,我有两个主要区域,一个用于数据可视化,另一个用于音频播放。数据可视化的形式可以具体定义,例如波形或STFT谱图。当我点击音频播放按钮时,我不仅可以听音乐,而且在数据可视化区域有一个实时的光标,它与音频播放同步,并指示播放的时间位置。我想指出的是,我不希望它看起来像一个数字示波器,它能在每次缓冲时间刷新频谱或波形。我希望显示整个音频时间范围内的数据可视化,只有光标与音频播放动态同步/移动 所以

我想做一个python或matlab项目,在与回放同步的同时可视化音频数据

具体来说,这意味着在GUI中,我有两个主要区域,一个用于数据可视化,另一个用于音频播放。数据可视化的形式可以具体定义,例如波形或STFT谱图。当我点击音频播放按钮时,我不仅可以听音乐,而且在数据可视化区域有一个实时的光标,它与音频播放同步,并指示播放的时间位置。我想指出的是,我不希望它看起来像一个数字示波器,它能在每次缓冲时间刷新频谱或波形。我希望显示整个音频时间范围内的数据可视化,只有光标与音频播放动态同步/移动


所以我想问你们,你们知道有任何现有的项目或软件包可以实现我所描述的类似功能吗?或者你对我如何从零开始把这个想法变成现实有什么建议吗?

原则上,这是相对简单的。您可能希望使用:

  • GUI库,如PyQT
  • STFT和其他数学图书馆;SciPy和NumPy是你在这里的朋友
  • 用于读取和播放音频数据的音频库
此外,您还需要使用线程,因为您希望同时播放音频和更新GUI等。因此,了解多线程非常有用

虽然从某种意义上说这是没有问题的,但有很多细节需要纠正。如果你在某些或所有这些领域都没有经验,那么你需要学习很多东西。当然,这可能是一件积极的事情

最大的问题可能是音频数据的可视化。Matplotlib是一个流行的绘图库,但是要集成到PyQt应用程序中有点棘手,而且可能实时性要求使事情变得更加困难