If any of you ever tried either one of these Apps, I'm sure you were just as amazed as I was on how accurate, consistent and fast they were at identifying songs that I threw at it.... even the weird obscure ones with heavy background noise. It left me scratching my head and wondering how exactly does it work?
Lets take Shazam for example... from the users point of view, all we have to do is turn the App on, hold the phone up and WHAM! it usually identifies the musician and song no problemo... It's what's happening behind the scenes that is remarkable. 'It relies on fingerprinted music based on the spectogram...'
1. Beforehand, Shazam fingerprints a comprehensive catalog of music, and stores the fingerprints in a database. 2. A user "tags" a song they hear, which fingerprints a 10 second sample of audio. 3. The Shazam app uploads the fingerprint to Shazam's service, which runs a search for a matching fingerprint in their database. 4. If a match is found, the song info is returned to the user, otherwise an error is returned.How exactly 'Fingerprinting' works...
You can think of any piece of music as a time-frequency graph called a spectrogram. On one axis is time, on another is frequency, and on the 3rd is intensity. Each point on the graph represents the intensity of a given frequency at a specific point in time. Assuming time is on the x-axis and frequency is on the y-axis, a horizontal line would represent a continuous pure tone and a vertical line would represent an instantaneous burst of white noise. Here's one example of how a song might look:
....read more at the link below.