我需要创建一个合作音乐识别服务。每个用户都可以选择对歌曲进行指纹识别,并将其连同其元信息发送到服务器。在开始时,服务数据库将为空,并且每次收到音乐指纹时,歌曲的元数据将被更新(如果不同的用户将为同一指纹发送不同的信息,则服务器将根据多数选择将元数据分配给指纹)。
我需要计算整个歌曲的指纹,我不需要从一小部分中识别出一首歌。
指纹不应100%准确。我会很高兴,如果两个歌曲文件将收到相同的指纹,只要同一文件是以不同的压缩率编码。低水平的噪音独立将是一个好处。
沉默在开始或结束的歌曲将不会是一个问题,我应该删除他们使用标准的沉默抑制算法(而且在这种情况下,不需要非常精确的结果)。
我知道有一些开源库,比如:http://echoprint.me/和https://acoustid.org/,但是这些库满足了我的需要,因为如果我正确理解,它们可以从一部分中识别出一首歌,这将创建一个庞大的数据库。我需要一个算法,将给我一个不太重(一些kb)指纹整个歌曲。
哪一种算法是我能使用的最简单、最快的算法?
感谢所有
发布于 2016-11-27 23:30:04
我建议您使用AcoustID项目。你的描述在很多点上都符合这个项目。只有他们的一些方法与你的建议不同。
该服务能识别短音频片段吗? 不,不能。这项服务是为识别完整的音频文件而设计的。我们希望最终也支持这个用例,但目前它并不是一个优先事项。请注意,即使这将被实现,它仍然是为了匹配原始音频(例如,为了跟踪一个长的音频流),而不是在电话上记录背景噪声的音频。
查看他们的邮件列表,以获得更好的解释:https://groups.google.com/forum/#!forum/acoustid
https://stackoverflow.com/questions/40768246
复制相似问题