我需要创建一个合作音乐识别服务。每个用户都可以选择对歌曲进行指纹识别并将其连同其元信息一起发送到服务器。一开始服务数据库是空的,每次收到音乐指纹时,歌曲的元数据都会更新(如果不同的用户发送不同的信息,服务器将根据多数选择将元数据分配给指纹)相同的指纹)。
我需要为整首歌曲计算指纹,我不需要从一小部分中识别歌曲。
指纹不应该是 100% 准确的。如果相同的文件以不同的压缩率编码,如果两个歌曲文件将收到相同的指纹,我会很高兴。低水平的噪音独立性将是一个优势。
歌曲开头或结尾的静音不是问题,我应该使用标准静音抑制算法将它们删除(在这种情况下也不需要非常精确的结果)。
我知道有一些开源库,例如:http ://echoprint.me/和https://acoustid.org/但这些库对我的需求来说是多余的,因为如果我理解正确,它们可以从一部分中识别出一首歌曲,这将创建一个沉重的数据库。我需要一种算法,它会给我一个不太重(一些 kb)的整首歌指纹。
我可以使用哪种最简单、最快的算法?
谢谢大家