音乐指纹识别是如何工作的(对于像Shazam和Lala.com这样的网站)?

时间:2010-01-12 04:49:55

标签: classification categorization fingerprinting

我的大型(120gb)音乐收藏包含许多重复的歌曲,我一直在尝试指纹,以期检测重复。既然我是CS专业,我很好奇在那里做了什么?我所做的一切几乎都没有Shazam或Lala.com这样的准确性。他们如何“哈希”曲目?我已经在我的所有文件(26,000个文件)上运行了标准的MD5哈希,我在不同的轨道上发现了数百个相等的哈希,所以这不起作用。

我对Lala.com更感兴趣,因为他们使用完整的文件,不像Shazam,但我假设两者都使用类似的技术。任何人都可以解释如何为音乐生成唯一标识符吗?

4 个答案:

答案 0 :(得分:10)

关于音频指纹识别的开创性论文是Haitsma和Kalker在2002 - 03年的工作。对于每个音频帧,它进行预处理(跨时间帧和频段的差异),然后存储帧频谱的二值化版本。

此过程增加了稳健性。如果整个信号在时间上移位,它仍然有效(至少,可以得出性能下降的下限)。它对环境噪音非常强劲。自成立以来,已有很多关于低级音乐相似性的论文,因此没有单一答案。

你有完全相同的文件,即信号是时间对齐的,比特深度是一样的,采样率是一样的吗?然后我会认为像MD5这样的散列应该可行。但是如果这些参数中的任何一个被改变,那么哈希也会改变。在这种情况下,像前面提到的那样的程序会更好。

查看免费在线提供的ISMIR程序。好玩的东西。 http://www.ismir.net/

答案 1 :(得分:5)

有许多声学指纹识别算法。一些比较流行的是:

  1. AMG LASSO
  2. AudioID
  3. LibFooID
  4. 实际上libfooId是开源的,所以你可以用google-code查看它的代码!!

答案 2 :(得分:3)

查看维基百科上的Acoustic Fingerprint页面。它包含一些论文的参考资料以及实现的链接(包括开源fdmf)。

答案 3 :(得分:0)

经过一些更多的研究(虽然这根本没有结论!),我在MusicBrainz.org的维基上发生了一些详细介绍了他们使用的方法:

http://musicbrainz.org/doc/Audio_Fingerprint

http://musicbrainz.org/doc/How_PUIDs_Work