我想要建立一个类似于Tunatic或Midomi的东西(如果您不确定它们是做什么的,请尝试使用它们),我想知道我需要使用哪些算法;我对此类应用程序的工作原理的想法如下:
- 有一个大型数据库包含多个歌曲
- 对于1.中的每首歌曲,降低质量/比特率(例如降至64kbps)并计算声音“哈希”
- 有您想要识别的音乐的声音/摘录
- 对于3.中的歌曲,再次降低质量/比特率(再次降至64kbps)并计算声音“哈希”
- 如果4.中的声音哈希在任何2.中的声音哈希中,则返回匹配的音乐
我考虑降低质量/比特率是由于环境噪声和编码差异。
我在这条路上吗?有人能提供给我任何具体的文档或示例吗?Midori甚至可以识别“嗡嗡声”,这真的很令人印象深刻!他们是如何做到的?
是存在声音哈希还是我只是编造了它?如果存在,我该如何计算它们?更重要的是,我该如何检查child-hash
是否在father-hash
中?
我该如何使用Python(可能是内置模块)或PHP构建类似的系统?
一些示例(最好是Python或PHP)将不胜感激。谢谢!