我的大型(120GB)音乐收藏包含许多重复的歌曲,我一直在尝试对曲目进行指纹识别,希望能够检测到重复的歌曲。由于我是计算机科学专业的学生,​​我很好奇外面做了什么?我所做的任何事情都无法达到 Shazam 或 Lala.com 等网站的准确性。他们如何“散列”曲目?我已经对我的所有文件(26,000 个文件)运行了标准 MD5 哈希,并且在不同的轨道上发现了数百个相同的哈希,因此这是行不通的。

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

有帮助吗?

解决方案

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

此过程将鲁棒性。如果整个信号被在时间上偏移,它仍然有效(至少,就可以得出对性能劣化的下限)。这是很强大的环境噪声。公司自成立以来,已经出现了低级别的音乐相似多篇论文,所以没有单一的答案。

你有完全相同的文件,即,信号被时间对准,位深度是相同的,采样率是相同的?然后,我会觉得像MD5哈希应该工作。但是,如果其中任何参数的改变,所以将哈希值。在这种情况下,像前面提到的一个程序将更好地工作。

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

其他提示

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

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

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

看看他声学指纹页面。它具有一些文件,以及链接到实现参考文献(包括开源 fdmf )。

在一些调查研究(虽然这还没有定论可言!),我碰巧在整个维基在MusicBrainz.org,详细介绍一些他们使用的方法之一:

http://musicbrainz.org/doc/Audio_Fingerprint

http://musicbrainz.org/doc/How_PUIDs_Work

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top