以时间间隔分析属性的音频数据
Posted
技术标签:
【中文标题】以时间间隔分析属性的音频数据【英文标题】:Analysing audio data for attributes at time intervals 【发布时间】:2011-09-09 04:23:36 【问题描述】:我一直想玩音频解析有一段时间了,但我真的无法找到适合我想要做的事情的库。
我基本上只是想解析一个声音文件并在歌曲的特定时间(比如每 10 毫秒左右)获取振幅/频率和其他相关信息,以便我可以绘制数据,例如歌曲加速的地方很多,它变得非常响亮。
我已经看过很多 OpenAL,但它看起来并没有提供这种能力,除了我没有找到从哪里开始的运气。如果有人这样做或使用了可以做到这一点的库,那么我们将不胜感激。谢谢!
【问题讨论】:
注意:这个问题将在关于信号处理的讲座中结束。我不给,我没有资格。 @Chris 你是什么意思? 您询问将数字(量化)音频源转换为有意义的东西(例如找到歌曲加速的位置),这本身就是一个完整的研究领域。 @Chris 啊,好吧,我想我知道这是怎么回事了。所以它在很大程度上是解析一个表示 Hz 值的二进制数据流或一些东西来找到隐含的数据,如频率和幅度? 请注意,现在有一个 信号处理 StackExchange 站点,可能会更好地提出这个问题:dsp.stackexchange.com 【参考方案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 是一个出色的可视化工具,而且由于它是开源的,您可以在其中构建自己的测试。
祝你好运!
【讨论】:
以上是关于以时间间隔分析属性的音频数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 5 中使用 AV 音频播放器在特定时间间隔内快进或快退音频(如歌曲)?