我需要创建合作音乐识别服务。每个用户都可以选择指纹歌曲并将其与元信息一起发送到服务器。在开始时,服务数据库将是空的,并且每次接收到音乐指纹时,将更新该歌曲的元数据(如果不同的用户将发送不同的信息,则服务器将基于多数选择将元数据分配给指纹。相同的指纹)。
我需要计算整首歌的指纹,我不需要从一小部分中识别出一首歌。
指纹不应该100%准确。如果同一个文件以不同的压缩率编码,两个歌曲文件将收到相同的指纹,我将很高兴。低水平的噪音独立性将是一个优势。
在歌曲的开头或结尾处保持沉默不会有问题,我应该使用标准的静音抑制算法将其删除(在这种情况下也不需要非常精确的结果)。
我知道有一些开源库如:http://echoprint.me/和https://acoustid.org/但是这些库对我的需求来说太过分了,因为如果我理解正确,他们可以从一个部分识别一首歌,这将是创建一个繁重的数据库我需要一种算法,它会给我一首不太重(一些kb)的整首歌的指纹。
我可以使用哪种最简单,最快的算法?
感谢所有
答案 0 :(得分:2)
我建议您使用AcoustID项目。您的描述在很多方面与此项目相匹配。只有他们的一些方法与你的建议不同。
服务可以识别短音频片段吗?
不,它不能。该服务旨在识别完整的音频 文件。我们想最终也支持这个用例,但是 目前它不是优先事项。请注意,即使这样 实现后,它仍将用于匹配原始音频 (例如,为了跟踪列出长音频流的目的),而不是音频 背景噪音记录在手机上。
查看他们的邮件列表以获得更好的解释:https://groups.google.com/forum/#!forum/acoustid