0

我需要创建一个合作音乐识别服务。每个用户都可以选择对歌曲进行指纹识别并将其连同其元信息一起发送到服务器。一开始服务数据库是空的,每次收到音乐指纹时,歌曲的元数据都会更新(如果不同的用户发送不同的信息,服务器将根据多数选择将元数据分配给指纹)相同的指纹)。

我需要为整首歌曲计算指纹,我不需要从一小部分中识别歌曲。

指纹不应该是 100% 准确的。如果相同的文件以不同的压缩率编码,如果两个歌曲文件将收到相同的指纹,我会很高兴。低水平的噪音独立性将是一个优势。

歌曲开头或结尾的静音不是问题,我应该使用标准静音抑制算法将它们删除(在这种情况下也不需要非常精确的结果)。

我知道有一些开源库,例如:http ://echoprint.me/和https://acoustid.org/但这些库对我的需求来说是多余的,因为如果我理解正确,它们可以从一部分中识别出一首歌曲,这将创建一个沉重的数据库。我需要一种算法,它会给我一个不太重(一些 kb)的整首歌指纹。

我可以使用哪种最简单、最快的算法?

谢谢大家

4

1 回答 1

2

我建议你使用AcoustID项目。你的描述在很多方面与这个项目相匹配。他们只有一些方法与您的建议不同。

该服务能否识别短音频片段?

不,它不能。该服务旨在识别完整的音频文件。我们希望最终也支持这个用例,但目前这不是优先事项。请注意,即使这将被实现,它仍将用于匹配原始音频(例如,用于跟踪长音频流的目的),而不是与手机上录制的背景噪声的音频相匹配。

查看他们的邮件列表以获得更好的解释:https ://groups.google.com/forum/#!forum/acoustid

于 2016-11-27T23:30:04.017 回答