我的大型(120gb)音乐收藏包含许多重复的歌曲,我一直在尝试指纹,以期检测重复。既然我是CS专业,我很好奇在那里做了什么?我所做的一切几乎都没有Shazam或Lala.com这样的准确性。他们如何“哈希”曲目?我已经在我的所有文件(26,000个文件)上运行了标准的MD5哈希,我在不同的轨道上发现了数百个相等的哈希,所以这不起作用。
我对Lala.com更感兴趣,因为他们使用完整的文件,不像Shazam,但我假设两者都使用类似的技术。任何人都可以解释如何为音乐生成唯一标识符吗?
答案 0 :(得分:10)
关于音频指纹识别的开创性论文是Haitsma和Kalker在2002 - 03年的工作。对于每个音频帧,它进行预处理(跨时间帧和频段的差异),然后存储帧频谱的二值化版本。
此过程增加了稳健性。如果整个信号在时间上移位,它仍然有效(至少,可以得出性能下降的下限)。它对环境噪音非常强劲。自成立以来,已有很多关于低级音乐相似性的论文,因此没有单一答案。
你有完全相同的文件,即信号是时间对齐的,比特深度是一样的,采样率是一样的吗?然后我会认为像MD5这样的散列应该可行。但是如果这些参数中的任何一个被改变,那么哈希也会改变。在这种情况下,像前面提到的那样的程序会更好。
查看免费在线提供的ISMIR程序。好玩的东西。 http://www.ismir.net/
答案 1 :(得分:5)
答案 2 :(得分:3)
查看维基百科上的Acoustic Fingerprint页面。它包含一些论文的参考资料以及实现的链接(包括开源fdmf)。
答案 3 :(得分:0)
经过一些更多的研究(虽然这根本没有结论!),我在MusicBrainz.org的维基上发生了一些详细介绍了他们使用的方法: