2009-08-15 52 views
4

最近我开始在我的iPhone上使用Shazam app。对于那些不知道的人来说,这款应用通过聆听歌曲中的一小段歌曲来识别歌曲。我很惊讶它的准确性和速度,所以我决定做一点挖掘。什么是从音频文件中提取数据的一些好的库?

我发现他们的开发者之一here写的一篇论文。在这篇论文中,开发人员详细描述了Shazam中使用的指纹算法。

作为一个宠物项目编号喜欢做自己的歌曲指纹应用程序,所以我可以得到一些音频编程的经验。

什么是一些音频库,可以帮助您提取音频片段或mp3歌曲的频率,幅度和其他特征,例如音频片段或音乐的持续时间?

我使用.NET,但我打开其他语言库。我对开源和付费图书馆也很好。只要我可以可靠地提取音频特征,我会很高兴。

参见:
How Shazam Works
Shazam Journal Paper

+1

神奇的文章,谢谢你。我一直想知道Shazam如何工作,现在我知道了。我在C#中做了很多音频编程,包括FFT和其他DSP,我很乐意帮助你。您可以通过我的个人资料中的网站与我联系。 – MusiGenesis 2009-08-16 00:44:52

回答

-1

ffmpeg库支持大量的音频编解码器,但它是相当有,恕我直言对接的痛苦。

对于提取音频属性,您应该考虑适合信号分析的体面库。例如,您将特别需要快速傅里叶变换(FTT),以便从音频样本中提取频率数据。 A search在该主题上给出了很多结果。

/编辑:对于.NET,我确信有一个ffmpeg接口。你也可以找到.NET的信号分析工具。

+0

他正在寻找的是提取所谓“音频特征”或“音频描述符”的工具箱。音频描述符的设计是名为“音乐信息检索”的研究领域的一部分。 – lizzie 2013-07-22 05:52:30

2

试试看NAudio。它可能没有提供所有的音频分析,但您的音频分析具有很强的扩展性,并且如果您使用.Net语言,它将是一个很好的开始。

+0

同意。 NAudio是一个开始的好地方。 – Noldorin 2009-08-15 22:14:28

0

要开始使用音频功能,首先应该阅读this paper

许多实验室都开发了自己的库来提取音频功能。 你可以看看yafee,aubio,jaudio ....

+1

如果对投票者回应这个问题,可以发表评论 – lizzie 2013-07-22 12:40:26

+1

+1 - 看到有人在没有任何反馈的情况下低估了我们的问题/回答令人激动。我们怎样才能提高我们的Qn/Ans而不知道它的问题是什么(我没有低估你) – 2013-09-27 04:35:48

+0

最糟糕的是这是MrMage低估了我的答案,因为我确实低估了他的......但至少当我这样做时,我解释了为什么我答案没有被占用! – lizzie 2013-09-27 08:38:55