Live data from Hacker News

Creating Shazam in Java

redcode.nl

41–49 of 49 posts

Re: Creating Shazam in Java

#41

After using Shazam, I was kind of hoping there was more to it than just a time windowed frequency domain peak-pick algorithm. The algorithm itself is pretty basic from a signal processing perspective, but I think the key insight here was that the results are unique enough to store off and compare other samples against at some later point in time.

Well I'm sure they must be using a few tricks in their implementation. I've always been interested in knowing how Shazam actually works and had in mind that they must somehow split a song in intervals and "hash" every interval, then store them in some kind of indexed database for fast retrieval. Seems I was not too far off:)

Re: Creating Shazam in Java

#42

After using Shazam, I was kind of hoping there was more to it than just a time windowed frequency domain peak-pick algorithm. The algorithm itself is pretty basic from a signal processing perspective, but I think the key insight here was that the results are unique enough to store off and compare other samples against at some later point in time.

Yeah, the magic (if there is any) is doing the match across a silly amount of songs in a relatively short time. Not groundbreaking exactly, but operationally quite interesting.

I actually remember first using this by dialling 2580 about 10 years ago. At the time it felt truly magical.

Re: Creating Shazam in Java

#43
We had a 'build your own Shazam' as a lab for Berkeley's Intro. Signals & Systems class this semester. Super cool to see it working and quite an interesting application of Signals & Systems

Re: Creating Shazam in Java

#44

After using Shazam, I was kind of hoping there was more to it than just a time windowed frequency domain peak-pick algorithm. The algorithm itself is pretty basic from a signal processing perspective, but I think the key insight here was that the results are unique enough to store off and compare other samples against at some later point in time.

Are there other uses for this algorithm/technique, when applied to signals other than audio? I mean apart from identifying a source from a small clip.

Re: Creating Shazam in Java

#45

After using Shazam, I was kind of hoping there was more to it than just a time windowed frequency domain peak-pick algorithm. The algorithm itself is pretty basic from a signal processing perspective, but I think the key insight here was that the results are unique enough to store off and compare other samples against at some later point in time.

Are there other uses for this algorithm/technique, when applied to signals other than audio? I mean apart from identifying a source from a small clip.

This type of analysis is commonly used in tons of things, like communications systems, image processing, radar, etc. I used a similar technique when trying to identify an underutilized wifi channel in the vicinity of my apartment.

Re: Creating Shazam in Java

#47

After using Shazam, I was kind of hoping there was more to it than just a time windowed frequency domain peak-pick algorithm. The algorithm itself is pretty basic from a signal processing perspective, but I think the key insight here was that the results are unique enough to store off and compare other samples against at some later point in time.

Are there other uses for this algorithm/technique, when applied to signals other than audio? I mean apart from identifying a source from a small clip.

IIRC there have been a number of papers on using a similar technique with speech to text applications.

Re: Creating Shazam in Java

#48

Update: I posted a link to some source code that implements the Shazam algorithm: https://news.ycombinator.com/item?id=5724442 About the patent lawsuit thing: As I understand it, Shazam sold their patent to Landmark Digital Services, which are a part of BMI the record label. They kept an exclusive license to make Shazam-like software for phones. You can imagine BMI wanting it to make money from how a service such as…

" you may contribute to someone infringing our patents in any part of the world." Oh really? What a dolt. Patents are, by definition , public. (not before they are accepted, though)

    Patents are, by definition, public.
That's actually the telling sign of the dysfunctional patent system. Companies want to use patents to prevent everybody else from doing something similar, and in this case, even from just talking about it (which is obviously ridiculous).

Patents used to be a framework for sharing technological progress without giving up ownership, i.e. make it easier for everybody else to build on other's progress - that's long gone.

Post reply on HN