音乐指纹识别如何工作(对于 Shazam 和 Lala.com 等网站)?
-
20-09-2019 - |
题
我的大型(120GB)音乐收藏包含许多重复的歌曲,我一直在尝试对曲目进行指纹识别,希望能够检测到重复的歌曲。由于我是计算机科学专业的学生,我很好奇外面做了什么?我所做的任何事情都无法达到 Shazam 或 Lala.com 等网站的准确性。他们如何“散列”曲目?我已经对我的所有文件(26,000 个文件)运行了标准 MD5 哈希,并且在不同的轨道上发现了数百个相同的哈希,因此这是行不通的。
我对 Lala.com 更感兴趣,因为它们使用完整文件,与 Shazam 不同,但我假设两者都使用类似的技术。谁能解释如何生成音乐的唯一标识符?
解决方案
在音频指纹的开创性论文是由Haitsma和Kalker 2002-03的工作。对于音频的每个帧,它预处理(跨时间帧和频带的差异),然后存储该帧的频谱的一个二值化版本。
此过程将鲁棒性。如果整个信号被在时间上偏移,它仍然有效(至少,就可以得出对性能劣化的下限)。这是很强大的环境噪声。公司自成立以来,已经出现了低级别的音乐相似多篇论文,所以没有单一的答案。
你有完全相同的文件,即,信号被时间对准,位深度是相同的,采样率是相同的?然后,我会觉得像MD5哈希应该工作。但是,如果其中任何参数的改变,所以将哈希值。在这种情况下,像前面提到的一个程序将更好地工作。
看看在ISMIR程序可免费在线。好玩的东西。 http://www.ismir.net/
其他提示
在一些调查研究(虽然这还没有定论可言!),我碰巧在整个维基在MusicBrainz.org,详细介绍一些他们使用的方法之一:
不隶属于 StackOverflow