16

I'm developing an application to recognize the music played by speakers. It records 32 seconds of the sound played and send a request via an API of music recognition. So far I used Echonest. But my api_key has been banned because of too many requests since I published my freeware, used by more than 200 users.

So I looked at MusicBrainz but it needs the exact duration of the entire song to receive an acceptable response, duration that my application can't guess.

So I'm looking for a free music recognition API so my freeware works. Do you know one?

Note: I used Echonest by :

  • capturing 32 seconds with ffmpeg
  • sending this command via cURL :

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

I tried to use MusicBrainz by :

  • capturing 32 seconds with ffmpeg
  • generating the fingerprint using Chromaprint with this command :

    fpcalc sound.mp3 > fingerprint.txt

  • sending this command via cURL :

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

1
  • What about adding some caching to bring down the number of requests?
    – liftarn
    Jun 23 '14 at 11:28
7

I suggest ACRCloud, which is a comprehensive audio recognition services providers. Music recognition is one of the solutions, with 40m tracks as its music catalogue. Offers Android, iOS, Java and Python SDKs.

4

How about just requiring your users to get an API Key? Without full details on your use case I can't say if this would be a good option but I think that it most cases it would be. It is not an odd thing to do and is done by some very popular open source projects - such as Responsive File Manager

1
  • I think this is your best bet for any service you find if you want a free service Dec 17 '15 at 15:24
3

A test has been made to compare Gracenote and ACRCloud and it turns out ACRCloud's music recognition service is much better than Gracenote. Please refer to: Music Recognition Competition: Gracenote vs ACRCloud.

1

Another option possibly more in the spirit of the question. Gracenote has one of the best recognition databases around. I've only used it from an end-user perspective rather than a developer but I have found it pretty accurate.

As noted here it takes only the first few seconds to generate an audio fingerprint. They do have a non-commercial developer program.

1
  • Gracenote is a huge pain in the ass if you want to implement it in Python.
    – Epoc
    Aug 26 '16 at 21:40
0

Most of the suggestions seem to cost something. This github project could let you do your own in house solution maybe even local to the client's machine. Downside is you would have to create your own database but at the end of the day it meets your request for a free solution. https://github.com/worldveil/dejavu

-1

There's music recognition API. It gives you 300 music recognition requests for free (you may also require your users to get their own API tokens).

I think that's the best music recognition API available: the DB contains >60 million songs (most of the songs you can find on the music platforms), it's easy to implement in your project. There are also code examples and everything. Check out the docs for using music recognition API.

Disclosure: I work at AudD, the creators of the API.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.