Post Image

Se ti sei sempre chiesto come funziona la stupenda app Shazam (o un clone come Midomi) qui troverai la spiegazione tecnica!

Disclaimer

Questo articolo è stato scritto nel 2010, e nonostante i ripetuti restyling di questo sito ho deciso di mantenerlo pubblicato poiché genera ancora discreto interesse e traffico al sito.

Prendetelo quindi con le dovute “pinze”.

Grazie 🙂

Introduzione

Questo articolo è roba per curiosoni.. per chi come me si chiede sempre “Ma come funzionerà ‘sta cosa!?” dopo esserne rimasto affascinato!

Se cercate invece una guida all’uso del software in oggetto, la potete trovate qui

A cosa serve Shazam?

Esistono diverse applicazioni per smartphone evoluti e sempre connessi ad Internet che consentono agli utenti di identificare una canzone facendo “ascoltare” al telefonino alcuni secondi della stessa.
Spesso e volentieri queste applicazioni sono in grado di riuscire a captare una canzone anche in un ambiente affollato e rumoroso come un pub o una pizzeria.

Una delle applicazioni in oggetto più conosciuta è senza dubbio Shazam (e già che ci sono, vi segnalo il “clone” che funziona benissimo sul mio Acer s200 con Windows Mobile, Midomi).

Essendo io molto curioso, e non riuscendomi ad accontentare del fatto che dietro questa “magia” ci fosse qualcosa a me ignaro, ho iniziato a cercare su Internet il principio di funzionamento alla base di queste apps.

Analisi dello spettrogramma e fingerprinting

L’idea di base è questa: effettuare una ricerca attraverso un’analisi dello spettrogramma e il conseguente “fingerprinting musicale” (una sorta di procedura di tagging avanzato).

  1. Anzitutto Shazam “prende le impronte digitali” (fingerprints appunto) di un nutrito numero di brani musicali, che indicizza in un database
  2. Successivamente l’utente “tagga” la canzone che sta ascoltando attraverso il fingerprint di un campione di circa 10 secondi di audio
  3. L’applicazione carica il fingerprint al servizio Shazam, che effettua una ricerca sul database di un fingerprint simile sul proprio database
  4. Una volta trovata la corrispondenza, Shazam ritorna all’utente le informazioni sulla canzone ascoltata

Abbastanza chiaro fin qui, no?

Passiamo a una spiegazione un po’ più tecnica

Pensate a un qualsiasi pezzo musicale come un grafico tempo/frequenza chiamato spettrogramma. Su un asse c’è il tempo, sull’altro la frequenza, e su un terzo si trova l’intensità.
Ogni punto del grafico rappresenta l’intensità di una data frequenza a un punto specifico nel tempo. Assumendo che il tempo si trovi sull’asse delle x, e la frequenza su quello delle y, una linea orizzontale rappresenterebbe un tono continuo puro, e una verticale invece un’esplosione istantanea di rumore bianco.

Come funziona Shazam - Lo spettrogramma

L’algoritmo di Shazam applica un’impronta digitale ad una canzone generando un grafico 3D come questo, e identifica le frequenze attraverso l’intensità dei picchi. Per ognuno di questi punti di picco tiene traccia della frequenza e del quantitativo di tempo trascorso dall’inizio della traccia audio.

Frequenza in Hz — Tempo in secondi

823.441.054
1892.311.321
712.841.703
. . . . . .
819.719.943

Ancora più nel dettaglio

Shazam costruisce il suo catalogo di fingerprint attraverso una tabella hash, dove la chiave è la frequenza. Quando Shazam riceve un fingerprint come quello qui sopra, utilizza la prima chiave (823.44 nell’esempio..), e ricerca tutte le canzoni corrispondenti.

Una tabella hash di Shazam potrebbe essere una cosa del genere:

Frequenza — Tempo — Canzone
823.4353.352“Song A” by Artist 1
823.4434.678“Song B” by Artist 2
823.45 108.65“Song C’ by Artist 3
. . . . . .
1892.3134.945“Song B” by Artist 2

Ulteriore approfondimento, in inglese

Arrivato a questo punto, mi fermo. Se siete interessati, vi rimando a questo articolo in inglese (da cui ho preso tutte le info qui sopra) per ulteriori dettagli.

Subscribe
Notificami
guest

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

8 Commenti
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
ENEA
ENEA
10 anni fa

Grazieeee…prima di leggere la tua spiegazione, pensavo che centrassero le note musicali

salvo
salvo
11 anni fa

bello ma nn capisco una cosa ti trova i tittoli e una volta trovati nn te la fa sentire???grazie

Laura e Marco
Laura e Marco
12 anni fa

Complimenti per l’articolo!!! GRAZIE!!!!!

Gianluca
Gianluca
13 anni fa

Davvero interessante, hai soddisfatto la mia curiosità…ce ne fossero di articoli così!