音乐指纹是如何工作的(比如Shazam和Lala.com)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (26)

我的大型(120GB)音乐集合包含许多重复的歌曲,并且我一直试图通过指纹来检测重复。 而且因为我主修CS,所以我很好奇在那里做了什么? 我做的没有几乎像Shazam或Lala.com的准确性。 他们如何“散列”轨道? 我对所有的文件(26,000个文件)都运行了标准的MD5哈希,并且在不同的轨道上发现了数百个相同的哈希值,所以这是行不通的。

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

提问于
用户回答回答于

关于音频指纹的开创性论文是海特玛和卡尔克在2002-03年的作品。对于每一帧音频,它预处理(不同时间帧和频带的差异),然后存储帧的频谱的二元化版本。

这个过程增加了鲁棒性。如果整个信号在时间上被移动,它仍然工作(至少可以导出性能退化的下限)。它对环境噪音相当健壮。自其诞生以来,就有许多关于低层次音乐相似性的论文,因此没有单一的答案。

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

看看在网上免费提供的Ismir程序。有趣的东西。http://www.ismir.net/

用户回答回答于

声学指纹识别有很多算法。其中一些比较受欢迎的是:

  1. AMG LASSO
  2. AudioID
  3. LibFoolD

实际上libfooId是开源的,所以你可以查看它的代码!!!

扫码关注云+社区