2011-09-09 44 views
2

我一直想玩一段时间的音频解析,但我一直没有真正能够找到我想要做的正确的库。按时间间隔分析属性的音频数据

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

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

+0

单挑:这个问题将在关于信号处理的讲座中结束。我不会放弃,我没有资格。 –

+0

@Chris你是什么意思? – bobl

+0

你问关于如何将数字(量化)音频源转化为有意义的东西(比如找到歌曲加速的地方),这就是整个研究领域。 –

回答

1

对于解析和解码音频文件,我使用libsndfile,它在Windows/OSX/Linux上运行,并且是开源的(LGPL许可证),所以我获得了很好的结果。这个库不支持mp3(作者想避免授权问题),但它支持FLAC和Ogg/Vorbis。

如果使用封闭源代码库对您来说不是问题,那么Apple的Quicktime SDK可能是一个有趣的选项。此SDK可用于OSX和Windows,并且对于注册开发人员是免费的(您也可以免费注册为Apple开发人员)。使用QT SDK,您可以解析Quicktime Player支持的所有文件格式,其中包括.mp3。该SDK让您可以访问QuickTime安装的所有编解码器,因此您可以读取.mp3文件并将其解码为PCM。请注意,要使用此SDK,您必须安装免费的QuickTime Player。至于信号处理库,我真的不能推荐任何,因为我写了自己的函数(对于语音识别,如果你好奇)。在this page中列出了一些看似有趣的开源项目。

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

祝你好运!

+0

感谢您的参考,这是我想开始玩的非常有趣的话题。 – bobl