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).
- Anzitutto Shazam “prende le impronte digitali” (fingerprints appunto) di un nutrito numero di brani musicali, che indicizza in un database
- Successivamente l’utente “tagga” la canzone che sta ascoltando attraverso il fingerprint di un campione di circa 10 secondi di audio
- L’applicazione carica il fingerprint al servizio Shazam, che effettua una ricerca sul database di un fingerprint simile sul proprio database
- 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.
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.44 — 1.054
1892.31 — 1.321
712.84 — 1.703
. . . . . .
819.71 — 9.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.43 — 53.352 — “Song A” by Artist 1
823.44 — 34.678 — “Song B” by Artist 2
823.45 — 108.65 — “Song C’ by Artist 3
. . . . . .
1892.31 — 34.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.
Grazieeee…prima di leggere la tua spiegazione, pensavo che centrassero le note musicali
🙂 eheh
Felice di esserti stato d’aiuto allora!
bello ma nn capisco una cosa ti trova i tittoli e una volta trovati nn te la fa sentire???grazie
Su iPhone ti fa sentire l’anteprima… 🙂
Complimenti per l’articolo!!! GRAZIE!!!!!
@L&M: Grazie a voi! Che piacere mi fa… 🙂
Davvero interessante, hai soddisfatto la mia curiosità…ce ne fossero di articoli così!
Grazie mille Gianluca, son contento!! 🙂
Se ti va, condividi l’articolo via Facebook o Twitter, mi farebbe molto piacere! Buona domenica..