你如何比较音乐数据

时间:2010-12-25 21:39:32

标签: java audio

我想编写一个应用程序来重命名排序和整理我的音乐库(mp3,wav,flac)。我想拍一部分歌曲,比如前几分钟,然后将它与数据库进行比较,然后检索歌曲名称和标签信息。我听说你可以用last.fm做到这一点,但看看他们的api信息没有帮助。我的问题是,这叫什么,所以我可以更好地谷歌?我想要的只是帮助很多。这将类似于shazam Android应用程序。我的首选语言是Java,所以我可以在一些操作系统上更轻松地运行它,但这可能会有所改变,具体取决于我是如何做到的。

5 个答案:

答案 0 :(得分:3)

好的,我不知道你是否需要实用或技术性的答案。

实际上最好的音乐数据库是MusicBrainz。

他们开发了一种指纹识别技术,可以计算出我认为称之为PUID的东西。

数据库是Huge(它是最大的数据库),并且有可用的工具。它是免费的。

Picard Tagger是一个跨平台的工具,可以完全满足您的需求。

从技术上讲,有很多不同的方法。特别是在音频片段中,确实有很多方法。大多数都依赖于频谱分析。但也要考虑到Rythm,并随着时间的推移发展某些特征,当然还有诸如长度等的琐碎参数。

搜索音频指纹识别应该会给你带来很多结果。

答案 1 :(得分:2)

查看this paper详细说明Shazam算法的工作原理。

答案 2 :(得分:2)

我强烈建议Echo Nest API执行此类任务。他们的客户正是像你一样的app建设者。它有一个大型数据库,易于使用,可以检索你想要的歌曲信息。

答案 3 :(得分:1)

你考虑过atunes吗? 源代码位于source forge。可以识别用Java编写的歌曲。

祝你好运。

答案 4 :(得分:0)

这是一篇相当容易理解的文章:

http://www.soyoucode.com/2011/how-does-shazam-recognize-song