How Does Shazam Work Coding Geek
How Does Shazam Work Coding Geek
com/how-shazam-works/
Menu
by Chr ist ophe | updat ed: August 6, 2015 | post ed: May 23, 2015
91 Com m ent s
1,755 369
1 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
the last part s) . If you already know what the words “ oct aves” ,
“ frequencies” , “ sam pling” and “ spect ral leakage” m ean you can
skip t he first part s.
Since it ’s a long and t echnical art icle ( 11k words) feel free to
read each part at different t im es.
2 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
You can check t he range of your ears with youtube videos like
this one t hat displays all the pure tones from 20 Hz t o 20k Hz,
in m y case I can’t hear anything above 15 kHz.
Not e: This fun fact will have consequences at the end of the
art icle.
pure sinewave at 20 Hz
Pure t ones doesn’t nat urally exist but every sound in the world
is the sum a m ult iple pure t ones at different am plit udes.
3 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
M usica l N ot e s
4 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
C4 ( or Do3) = 261.63Hz
D4 ( or Re3) = 293.67Hz
G4 ( or Sol3) = 392Hz
A4 ( or La3) = 440Hz
Hum an ears will be able t o det ect the sam e num ber of notes.
Tim bre
5 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Spe ct rogra m
A m usic song is played by m ultiple inst rum ents and singers. All
those inst rum ents produce a com binat ion of sinewaves at
m ultiples frequencies and t he overall is an even bigger
com binat ion of sinewaves.
6 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
00:00
Anot her int erest ing fact is t hat t he int ensit y of t he frequencies
changes t hrough tim e. I t ’s another part icularit y of an
instrum ent that m akes it unique. I f you take the sam e artist but
you replace t he piano, t he evolution of frequencies won’t
behave the sam e and t he result ing sound will be slight ly
different because each art ist/ instrum ent has its own style.
Technically speaking, these evolutions of frequencies are
m odifying t he e n v e lop e of the sound signal ( which is a part of
the t im bre) .
7 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Unless you’re a vinyl disk lover, when you list en t o m usic you’re
using a digit al file ( m p3, apple lossless, ogg, audio CD,
what ever ) . But when art ists produce m usic, it is analogical ( not
represent ed by bits) . The m usic is d ig it a liz e d in order t o be
st ored and played by elect ronics devices ( like com put ers,
phones, m p3 players, cd players …) . I n t his part we’ll see how
to pass from an analog sound t o a digit al one. Knowing how a
digit al m usic is m ade will help us t o analyse and m anipulat e
this digit al m usic in t he next part s.
Sa m pling
Analog signals are continuous signals, which m eans if you take
one second of an analog signal, you can divide this second into
[ put the great est num ber you can t hink of and I hope it’s a big
one ! ] part s t hat last a fract ion of second. I n t he digital world,
you can’t afford t o st ore an infinite am ount of inform at ion. You
need t o have a m inim um unit , for exam ple 1 m illisecond.
During t his unit of t im e t he sound cannot change so t his unit
needs t o be short enough so t hat the digit al song sounds like
the analog one and big enough t o lim it t he space needed for
st oring t he m usic.
For exam ple, t hink about your favorit e m usic. Now think about
it wit h the sound changing only every 2 seconds, it sounds like
nothing. Technically speaking the sound is a lia se d . In order t o
be sure that your song sounds great you can choose a very
sm all unit like a nano ( 10^ - 9) second. This tim e your m usic
sounds great but you don’t have enough disk space t o st ore it,
too bad.
8 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
In the first chapter I told you that hum ans can hear sounds from
20Hz to 20kHz. A theorem from Nyquist and Shannon st at es
that if you want t o digit alize a signal from 0Hz t o 20kHz you
need at least 40 000 sam ples per second. The m ain idea is that
a sine wave signal at a frequency F needs at least 2 points per
cycle to be ident ified. If t he frequency of your sam pling is at
least t wice than the frequency of your signal, you’ll end up wit h
at least 2 point s per cycle of the original signal.
Let ’s try to underst and with a picture, look at t his exam ple of a
good sam pling:
9 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
This case also shows som et hing else: if you want t o digit alize a
signal bet ween 0Hz and 20 kHz, you need rem ove from t he
signal its frequencies over 20kHz before t he sam pling.
Ot herwise those frequencies will be t ransform ed int o
frequencies bet ween 0Hz and 20Khz and t herefore add
unwanted sounds ( it’s called a lia sin g ) .
Not e2: The frequency of the sam pling rate needs t o be st rict ly
superior of 2 tim es t he frequency of t he signal to digitalize
because in the worst case scenario, you could end up wit h a
10 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
11 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
quant ization)
Though t he result ing sound is still alt ered, it looks ( and sounds)
m ore like t he original sound.
12 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
channels.
There are m ult iple PCM form at s but the m ost used one in audio
is the ( linear) PCM 44,1kHz, 16- bit dept h st ereo form at. This
form at has 44 100 sam ples for each second of m usic. Each
sam ple t akes 4 bytes:
2 byt es ( 16 bit s) for t he int ensit y ( from - 32, 768 t o 32, 767)
of t he left speaker
2 byt es ( 16 bit s) for t he int ensit y ( from - 32, 768 t o 32, 767)
of t he right speaker
In a PCM 44, 1kHz 16- bit depth stereo form at , you have 44100
sam ples like this one for every second of m usic.
13 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
14 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
For exam ple, for an audio signal with a 4096- sam ple window
this form ula m ust be applied 4096 t im es:
That m eans t hat the DFT can’t dissociate 2 frequencies that are
closer t han 10.77Hz. For exam ple notes at 27Hz, 32Hz and
37Hz ends up in t he sam e bin. I f t he note at 37Hz is very
powerful you’ll j ust know that the 3 rd bin is powerful. This is
problem at ic for dissociating not es in the lowest oct aves. For
exam ple:
15 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
a A1 ( or La - 1) is at 55Hz whereas a B1 ( or Si - 1) is at
58. 27Hz and a G1 ( or Sol - 1) is at 49 Hz.
Wit h 16384 sam ples, the window durat ion is 0. 37 sec and
the frequency resolution is 2.7 Hz: you can detect a
change every 0. 37 sec.
The X+ 2048 t h bin will give the sam e inform ation as the Xt h
bin
..
If you want t o know why the bin resolut ion equals” t he sam pling
rat e” divided by “ t he size of t he window” or why this form ula is
so bizarre, you can read a 5- part art icle on Fourier Transform
on this very good websit e ( especially part 4 and part 5) which
is the best art icle for beginners t hat I read ( and I read a lot of
16 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
The problem
For the third 0.1 second you are applying the Fourier
t ransform on t he full one- second signal m ult iplied by a
funct ion t hat equals 1 bet ween 0.2 and 0.3 second, and 0
for t he rest
17 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
18 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Fourier( window ( t ) )
You ca n ’t a v oid sp e ct ra l le a k a g e b u t y ou ca n h a n d le h ow
t h e le a k a g e w ill b e h a v e by choosing t he right window
funct ion: inst ead of using a rect angular window funct ion, you
can choose a t riangular widows, a Parzen window, a Blackm an
window, a Ham m ing window …
19 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
20 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
In t his figure, you can m ult iply t he audio signal wit h one of t he
3 window t ypes t o get t he part of the signal bet ween 0. 333sec
and 0. 666 sec. As I said, using a rectangular window is like
cutt ing t he signal bet ween 0. 333sec and 0.666sec whereas wit h
the Ham m ing or t he Blackm an windows you need t o m ult iply
the signal wit h t he window signal.
21 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
This figure shows t hat all windows m odify t he real spect rum of
the sound. We clearly see t hat a part of t h e p ow e r of t h e re a l
fre q u e n cie s is sp re a d t o t h e ir n e ig h b ou rs. The spect rum
from t he rect angular window is t he worst since t he spectrum
leakage is m uch higher than the 2 ot hers. I t ’s especially true
bet ween 40 and 160 Hz. The Blackm an window gives the
closest spect rum from t he real spectrum .
22 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
the problem
23 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
For exam ple, let’s assum e you have a three- m inut e song at
44, 1 kHz and you com pute t he spectrogram of t he song with a
4096- sam ple window. You’ll have t o com pute 10.7
( 44100/ 4096) DFT per second so 1938 DFTs for the full song.
Each DFT needs 3. 35* 10^ 7 operat ions ( 2* 4096^ 2) . To get t he
spectrogram of t he song you need to do 6, 5* 10^ 10 operat ions.
downsam pling
24 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Downsam pling a 44.1 kHz song t o a 11. 025 kHz one is not very
difficult: A sim ple way to do it is t o t ake t he sam ples by group
of 4 and to t ransform this group into j ust one sam ple by t aking
the average of t he 4 sam ples. The only t ricky part is t hat before
downsam pling a signal, you need t o filt er t he higher
frequencies in t he sound t o avoid aliasing ( rem em ber the
Nyquist - Shannon t heorem ) . This can be done by using a digit al
low pass filter.
FFT
But let ’s go back t o the FFT. The sim plest im plem ent at ion of t he
FFT is t he radix 2 Cooley–Tukey algorit hm which is a divide a
conquer algorit hm . The idea is that inst ead of direct ly
com put ing the Fourier Transform on t he N- sam ple window, t he
algorithm :
25 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
The last part only cost s N operat ions using a m at hem at ical t rick
on the root s of unit y ( the exponent ial term s) .
M=N/2
l=[ even[k] + exp(‐2j*pi*k/N)*odd[k] for k in ran
r=[ even[k] ‐ exp(‐2j*pi*k/N)*odd[k] for k in ran
return l+r
For m ore inform at ion on the FFT, you can check this art icle on
Wikipedia.
Not e: From now on, I assum e t hat you read the part s on
m usical not es, FFT and window funct ions. I’ll som etim es use
the words “ frequency” , “ bin” , ” not e” or t he full expression “ bin
of frequencies” but it’s t he sam e concept since we’re dealing
wit h digit al audio signals.
Globa l ov e rv ie w
An a u d io fin g e rp rin t is a digit al sum m ary t hat can be used t o
identify an audio sam ple or quickly locat e sim ilar it em s in an
26 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
audio database. For exam ple, when you’re hum m ing a song to
som eone, you’re creating a fingerprint because you’re
ext racting from t he m usic what you think is essential ( and if
you’re a good singer, t he person will recognize t he song) .
On t he server side:
On t he client side:
27 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
I told you before t hat to get the spect rogram of a digit al sound
you need to apply a FFT. For a fingerprinting algorithm we need
a good frequency resolution ( like 10. 7Hz) to reduce spect rum
leakage and have a good idea of t he m ost im portant notes
played inside t he song. At t he sam e t im e, we need t o reduce
the com putation t im e as far as possible and t herefore use t he
28 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
On t he server side ( Shazam ) , the 44. 1khz sam pled sound ( from
CD, MP3 or what ever sound form at) needs t o pass from st ereo
to m ono. We can do t hat by t aking t he average of the left
speaker and t he right one. Before downsam pling, we need t o
filt er t he frequencies above 5kHz t o avoid aliasing. Then, t he
sound can be downsam pled at 11. 025kHz.
from 0 Hz t o 5000Hz
Filtering
29 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
st ep1 – For each FFT result, you put t he 512 bins you inside 6
logarithm ic bands:
st ep4 – You keep the bins ( from t he 6 ones) that are above this
m ean ( m ult iplied by a coefficient) .
30 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
..
But this algorithm has a lim itation. I n m ost songs som e parts
are very weak ( like t he beginning or t he end of a song) . If you
analyze t hese part s you’ll end up wit h false st rong frequencies
because t he m ean value ( com puted at st ep 3) of t hese part s is
very low. To avoid that , instead of taking the m ean of t he 6
powerful beans of the current FFT ( t hat represents only 0.1sec
of the song) you could take t he m ean of t he m ost powerful bins
of t he full song.
31 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
This figure ( st ill from the Shazam research art icle) is a filt ered
spectrogram . Only t he strongest frequencies from t he previous
figure are kept . Som e part s of the song have no frequency ( for
exam ple between 4 and 4.5 seconds) .
32 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Pre- st ep: I precom put e a dat abase of filt ered spect rogram s for
all t he songs in m y com puter
33 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
And I need t o do t his for each song unt il I find a perfect m at ch.
34 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Target zones
Inst ead of com paring each point one by one, the idea is to look
for m ultiple point s at t he sam e t im e. I n t he Shazam paper, this
group of point is called a t a rg e t z on e . The paper from Shazam
doesn’t explain how t o generat e t hese t arget zones but here is
a possibility. For t he sake of com prehension I ’ll fix t he size of
t he t arget zone at 5 frequency- t im e point s.
In order t o be sure t hat bot h the record and the full song will
generat e the sam e target zones, you need an order relat ion
bet ween t he tim e- frequency points in a filt ered spect rogram .
Here is one:
Here is what you get if you apply t his order on t he sim plified
spectrogram we saw before:
35 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
In t his sim plified spect rogram , you can see the different t arget
zones generat ed by t he previous algorit hm . Since t he t arget
size is 5, m ost of the point s belong t o 5 t arget zones ( except
the point s at t he beginning and t he end of t he spectrogram ) .
Not e: I didn’t underst and at first why for the record we needed
to com pute that m uch target zones. We could generate target
zones wit h a rule like “ for each point whose label is a m ultiple
of 5 you need t o create a group com posed of t his frequency and
the 4 frequencies after it ” . Wit h t his rule, t he num ber of t arget
zones would be reduced by 5 and so t he search t im e ( explained
in t he next part ) . The only reason I found is t hat com puting all
the possible zones on both t he record and t he song increases a
lot t he noise robust ness.
36 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Address generation
In t his pict ure I plot t ed 2 t arget zones wit h their anchor points.
Let ’s focus on t he purple target zone. The address form ula
proposed by shazam is following one:
37 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
If you apply t he sam e logic for all the point s of all the t arget
zones of all the song spectrogram s, you’ll end up with a very
big table wit h 2 colum ns:
t he addresses
Th is t a b le is t h e fin g e rp rin t d a t a b a se of Sh a z a m . I f on
average a song contains 30 peak frequencies per second and
the size of t he t arget zone is 5, t he size of t his t able is 5 * 30
* S where S is t he num ber of seconds of the m usic collect ion.
If you rem em ber, we used an FFT wit h 1024 sam ples which
m eans t hat there are only 512 possible frequency values. Those
frequencies can be coded in 9 bit s ( 2^ 9 = 512) . Assum ing t hat
the delt a t im e is in m illiseconds, it will never be over 16
seconds because it would im ply a song wit h a 16- second part
wit hout m usic ( or very low sound) . So, t he delta t im e can be
coded in 14 bit s ( 2^ 14 = 16384) . Th e a d d re ss ca n b e cod e d
in a 3 2 - b it in t e g e r:
38 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
t he list of 64- bit s int egers is all t he couples for t his address
.
Search
39 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
For exam ple, let’s suppose our search has ret urned:
40 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Our 10- second record has ( approxim at ely) 300 t arget s zone. I n
the best case scenario:
We rem ove all the couples ( i.e. the key of t he hash table)
t hat appear less than 4 t im es ( in ot her words we rem ove
all t he points t hat doesn’t form a t arget zone) *
41 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
key in the hash t able ( i.e we count t he num ber of com plet e
t arget zones in t he song. Since t he couple com e from t he
search, those t arget zones are also in t he record)
Tim e coherency
42 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
t o com put e for each rem aining song t he not es and t heir
absolut e tim e posit ion in t he song.
43 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
44 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
This search is really m ore com plicated t hat the sim ple one we
first saw, let’s see if this is worth it . The enhanced search is a
st ep by st ep approach t hat reduces t he com plexit y at each
st ep.
For t he sake of com prehension, I ’ll recall all the assum pt ions
( or choices) I m ade and m ake new ones t o sim plify the
problem :
45 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Since N< < M, the real cost of t his search is M = ( 300 * 300 *
30* S) * ( 5 * 5) / ( 512 * 512 * 2)
If you rem em ber, the cost of t he sim ple search was: 300 * 300
* 30* S.
Th is n e w se a rch is 2 0 0 0 0 t im e s fa st e r
Im provem ent s
I n st e a d of h a v in g 1 fin g e rp rin t d a t a b a se y ou ca n
h a v e D d a t a b a se s, each of them cont aining 1/ D of t he
full song collect ion
Th e w h ole p roce ss is D t im e s fa st e r.
46 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Tradeoffs
If you read carefully, you not iced t hat I used a lot of thresholds,
coefficient s and fixed values ( like t he sam pling rat e, the
duration of a record, …) . I also chose/ m ade m any algorithm s
( t o filter a spectrogram , t o generat e a spect rogram , …) . They all
have an im pact on t he noise resist ance and t he t im e
com plexit y. The real challenge is t o find the right values and
algorithm s t hat m axim ize:
You should be able to code your own Shazam . You can look at
this very good art icle t hat focuses m ore on how to code a
sim plified Shazam in Java t han t he concept s behind it . The
sam e author m ade a present at ion at a Java conference and t he
slides are available here. You can also check t his link for a
Mat Lab/ Oct ave im plem ent at ion of Shazam . And of course, you
can read by yourself the paper from Shazam co- founder
Avery Li- Chun Wang by clicking right here.
47 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
The world of m usic com puting is a very int erest ing field with
touchy algorit hm s t hat you use every day without knowing it.
Though Shazam is not easy to underst and it ’s easier than:
1,755 369
48 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Leave a Reply
Reply - Share
Reply - Share
49 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Reply - Share
Reply - Share
Reply - Share
Reply - Share
Reply - Share
50 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Top 10 articles
What is a good
applicat ion?
51 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
Categories
Algorit hm ( 3)
Java ( 2)
JVM ( 2)
Methodology ( 3)
review ( 2)
Tool ( 1)
Tags
big dat a
HashTable j vm
Liskov LSP m achine learning
m em or y m ooc m usic
prot ot ype
work
Sear ch
52 of 53 11/30/2016 12:26 PM
How does Shazam work - Coding Geek http://coding-geek.com/how-shazam-works/
53 of 53 11/30/2016 12:26 PM