3 ms·
If you can point to any blog post that shows how one would implement Shazam, I'd love to read it. I read somewhere that the Pixel 2's on-device index of 10,000
by habosa 9y ago
If you can point to any blog post that shows how one would implement Shazam, I'd love to read it.
I read somewhere that the Pixel 2's on-device index of 10,000 popular songs was only ~60MB. That blew my mind.
- choochootrain 9y agothe original paper is quite readable: https://www.ee.columbia.edu/~dpwe/papers/Wang03-shazam.pdf https://www.ee.columbia.edu/~dpwe/papers/Wang03-shazam.pdf shazam's value is obviously in how it scaled this method to millions of users and songs but implementing it for yourself on a limited catalog of songs is a couple days of work once you have the theory. in fact this was a lab project for the intro signal processing class at berkeley that i ta'd.
- epberry 9y agoThanks for the link. I thought these things involved a lot of markov models and gaussian functions but this is mostly just some pretty slick engineering. The 1000x search speed seems very good.
- Scea91 9y agoI can imagine that at the shazam's scale it's just a completely different ball game.
- bluedino 9y agoCheck out this article that was on HN before: http://royvanrijn.com/blog/2010/06/creating-shazam-in-java/ http://royvanrijn.com/blog/2010/06/creating-shazam-in-java/
- eggie5 9y agoA few others have posted references. We did it as a lab in my undergrad signal processing class. Theory is simple: transform time into frequency domain and you have a fingerprint of the song. I guess the value is in the execution, a la Shazam.
- jakobegger 9y agoTransform from time into frequency domain and you have the Fourier transform of the song, not a fingerprint. Fingerprinting is a lot more involved than that.
- Cyph0n 9y agoWell, it's still not difficult. You just need a good bucket size for the FFT, some filtering, and a hash function. Voila.
- djrogers 9y agoSo now you’ve fingerprinted an entire song. How do you go about matching that to the 7 seconds of music and loud background noise I actually present you with?
- Cyph0n 9y agoNo idea. I'm sure that's where it gets challenging. Off the top of my head: lots more noise analysis and reduction (ML?) + partial spectrum matching (some kind of common tones/beat fingerprinting?). But I still stand by my response to the original comment.
- onurcel 9y agohttp://coding-geek.com/how-shazam-works/ http://coding-geek.com/how-shazam-works/
- fredguth 9y agoSearch for “python fingerprinting dejavu”. The article linked in the GitHub repo is a must read.
- deleted 9y ago[deleted]