我正在开发一个应用程序,以识别扬声器播放的音乐。它记录播放的32秒声音,并通过音乐识别API发送请求。到目前为止,我使用Echonest。但是自从我发布免费软件以来,我的api_key已被禁止,有200多个用户使用了我的免费软件。可接受的响应,我的应用程序无法猜测的持续时间。

所以我正在寻找免费的音乐识别API,因此我的免费软件可以运行。

注意:我使用Echonest的方法是:


用ffmpeg捕获32秒

通过cURL发送此命令:

curl -F "api_key=XXX" -F "filetype=mp3" -F "track=@sound.mp3" "http://developer.echonest.com/api/v4/track/upload" > info.txt


我尝试通过以下方式使用MusicBrainz:


用ffmpeg捕捉32秒

通过以下命令使用Chromaprint生成指纹:

fpcalc sound.mp3 > fingerprint.txt


通过cURL发送此命令:

curl -F "client=XXX" -F "meta=recordings" -F "duration=32" -F "fingerprint=ABC" "http://api.acoustid.org/v2/lookup" > info.txt



评论

如何添加一些缓存以减少请求数量呢?

#1 楼

我建议ACRCloud,这是一个全面的音频识别服务提供商。音乐识别是解决方案之一,其音乐目录为40m曲目。提供Android,iOS,Java和Python SDK。

#2 楼

仅要求您的用户获得API密钥怎么办?如果没有有关您的用例的完整详细信息,我不能说这是否是一个好选择,但我认为大多数情况下都是这样。这不是一件奇怪的事情,它是由一些非常流行的开源项目完成的,例如响应文件管理器

评论


我想如果您想要免费服务,这是您找到的任何服务的最佳选择

–保罗·泰勒(Paul Taylor)
15/12/17在15:24

#3 楼

已经进行了测试以比较Gracenote和ACRCloud,事实证明ACRCloud的音乐识别服务比Gracenote更好。请参阅:音乐识别竞赛:Gracenote与ACRCloud。

#4 楼

本问题实质可能是另一种选择。 Gracenote拥有周围最好的识别数据库之一。我只是从最终用户的角度而不是开发人员的角度使用它,但是我发现它非常准确。

如此处所述,仅需最初几秒钟即可生成音频指纹。他们确实有一个非商业开发人员计划。

评论


如果要在Python中实现,Gracenote会给您带来极大的痛苦。

– Epoc
16年8月26日在21:40

#5 楼

有AudD音乐识别API。 AudD免费为您提供300个音乐识别请求(您可能还要求您的用户获得自己的API令牌)。
我认为这是目前最好的音乐识别API:数据库包含超过6,000万首歌曲(大部分歌曲)您可以在音乐平台上找到它),很容易在您的项目中实现。还有代码示例和所有内容。查看有关使用音乐识别API的文档。

#6 楼

大多数建议似乎要花一些钱。这个github项目可以让您做自己的内部解决方案,甚至可以在客户端计算机本地进行。缺点是您必须创建自己的数据库,但最终它可以满足您对免费解决方案的要求。
https://github.com/worldveil/dejavu

#7 楼

AudD是为开发人员创建的免费音乐识别API。它从其42,5+百万首歌曲数据库中识别音乐(它们也有3 + m首带有歌词的曲目)。您可以轻松地将文件发布到AudD API或发送文件的url。我真的可以推荐。