20

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

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

4

4 回答 4

10

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

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

您是否有完全相同的文件,即信号是时间对齐的、位深度相同、采样率相同?然后我认为像 MD5 这样的哈希应该可以工作。但是,如果这些参数中的任何一个发生了变化,那么哈希值也会发生变化。在这种情况下,像前面提到的那样的程序会更好。

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

于 2010-01-18T05:45:04.680 回答
5

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

  1. AMG 套索
  2. 音频ID
  3. LibFooID

事实上 libfooId 是开源的,所以你可以在 google-code 中查看它的代码!!

于 2010-01-12T04:58:32.030 回答
3

看看维基百科上的声学指纹页面。它有一些论文的参考资料以及实现的链接(包括开源fdmf)。

于 2010-01-12T04:58:06.770 回答
0

经过更多研究(尽管这根本不是结论性的!),我偶然发现了 MusicBrainz.org 上的 wiki,其中详细介绍了他们使用的一些方法:

http://musicbrainz.org/doc/Audio_Fingerprint

http://musicbrainz.org/doc/How_PUIDs_Work

于 2010-01-12T04:58:59.560 回答