按时间间隔分析属性的音频数据

时间:2011-09-09 04:23:36

标签: c++ audio signal-processing

我一直想要使用音频解析一段时间,但我还没有真正找到正确的库来完成我想做的事情。

我基本上只想解析声音文件并在歌曲中的某些时间获取振幅/频率和其他相关信息(例如每10毫秒左右),这样我就可以绘制数据,例如歌曲加速的数据很多,它变得非常响亮。

我已经看了很多OpenAL,但它看起来并没有提供这种能力,除了我没有太多运气找到从哪里开始。如果有人这样做或使用了可以做到这一点的图书馆,那么我们将非常感谢正确的方向。谢谢!

1 个答案:

答案 0 :(得分:1)

对于解析和解码音频文件,我在{/ 3}}上取得了良好的效果,它在Windows / OSX / Linux上运行并且是开源的(LGPL许可证)。这个库不支持mp3(作者希望避免许可问题),但它确实支持FLAC和Ogg / Vorbis。

如果使用封闭源库对您来说不是问题,那么一个有趣的选项可能是来自Apple的libsndfile。此SDK适用于OSX和Windows,对注册开发人员免费(您也可以免费注册为Apple开发人员)。使用QT SDK,您可以解析Quicktime Player支持的所有文件格式,包括.mp3。 SDK允许您访问QuickTime安装的所有编解码器,因此您可以读取.mp3文件并将其解码为PCM。请注意,要使用此SDK,您必须安装免费的QuickTime Player。

至于信号处理库我老实说不能推荐任何,因为我已经编写了自己的功能(用于语音识别,以防你好奇)。 Quicktime SDK中列出了一些有趣的开源项目。

我建议您从简单开始,例如处理振幅数据,这些数据可以从PCM样本中轻松获得,而无需进行任何处理。能够可视化数据是非常有用的,我发现this page是一个很好的可视化工具,因为它是开源的,你可以在其中构建自己的测试。

祝你好运!