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