Come funziona Shazam

Come funziona Shazam, l'applicazione per riconoscere le canzoni con il proprio smartphone

Arrivi prima del previsto al cinema, ti accomodi in sala mentre lo schermo è ancora bianco e dalle casse esce solo la musica e ti rendi conto di stare ascoltando una canzone che hai già sentito, ma non conosci il titolo o chi la canta. Oppure non l’hai mai sentita, ma è bellissima, al primo ascolto. Oppure esce dall’autoradio e quello sciagurato del deejay chissà se poi ricorderà il titolo. E insomma forse non la sentirai mai più, non hai nessuno a cui chiedere, però forse hai la risposta in tasca. Tiri fuori il tuo cellulare, avvii Shazam e dopo pochi istanti l’applicazione ti dice che titolo e interprete di quello che stai ascoltando, evitandoti di rimuginarci sopra durante tutto il film e di andare a casa canticchiando per chiedere al tuo amico esperto prima che ti passi di mente. Merito di un complesso sistema di riconoscimento delle canzoni che in pochi anni si è aggiunto al già ricchissimo cambiamento del nostro rapporto con la fruizione della musica e delle canzoni.

Gizmodo ieri ha ripreso un articolo pubblicato lo scorso anno da Bryan Jacobs, uno sviluppatore di software, per capire come funziona Shazam. Un tempo era disponibile come servizio telefonico: tu chiamavi un numero e aspettavi che il sistema ti dicesse il titolo del brano che stavi ascoltando. Poi Shazam è diventato un’applicazione per diversi tipi di telefoni cellulari come gli iPhone, i BlackBerry, i Nokia e gli smartphone animati da Android, il sistema operativo di Google. L’applicazione consente di riconoscere al volo una canzone che si sta ascoltando, anche nel rumore di un locale affollato, e anche di condividere la propria scoperta su internet o comprare la canzone online.

Shazam riesce a fare tutto questo grazie a un particolare algoritmo che confronta i diversi spettrogrammi delle canzoni. Uno spettrogramma è la rappresentazione grafica dell’intensità di un suono in funzione della frequenza e del tempo. In pratica, immaginate un grafico impostato su tre assi: un asse rappresenta il tempo, l’altro la frequenza e il terzo l’intensità del suono. Ogni punto che viene segnato nel grafico rappresenta quindi l’intensità di un suono con una data frequenza in un specifico momento temporale. Ogni canzone ha uno spettrogramma tutto suo che la distingue dalle altre, una specie di impronta digitale univoca.

L’algoritmo di Shazam trova la traccia di una canzone realizzando un grafico basato sui tre assi e identifica le frequenze in corrispondenza delle quali ci sono dei “picchi di intensità”. Per ognuno di questi picchi il sistema registra la frequenza e la quantità di tempo trascorsa dall’inizio della canzone. […] Shazam costruisce il proprio catalogo di tracce musicali come una tabella hash [un insieme strutturato di dati che consente di mettere in corrispondenza di un certo valore una certa chiave] dove la chiave è la frequenza.

Quando si avvia il riconoscimento, l’applicazione crea uno spettrogramma di alcuni secondi della canzone, segnando i picchi e il tempo in cui si verificano. Poi confronta questo dato nella tabella e appena trova una corrispondenza trova anche la canzone di cui si vuole conoscere il titolo. L’algoritmo che si occupa di questo calcolo utilizza poi altre funzionalità più complesse di contorno, una sorta di sistema di controllo per ridurre il numero di errori o la segnalazione scorretta di una canzone. Il sistema è un po’ come la ricetta della Coca-Cola: si sa grossomodo che cosa lo fa funzionare, ma non tutti i dettagli sono noti per evitare che la concorrenza se ne salti fuori con un prodotto migliore in tempi brevi.

L’applicazione di Shazam viene distribuita gratuitamente per buona parte degli smartphone. Esiste anche una versione a pagamento dello stesso programma, offre sostanzialmente le medesime funzionalità, ma non mostra un piccolo banner pubblicitario come la versione gratuita. L’applicazione tiene anche traccia delle precedenti ricerche e ha numerose funzionalità per condividere le proprie scoperte con gli amici sui social network come Twitter e Facebook, o per vedere i videoclip corrispondenti alla canzone ricercata su YouTube.

Una soluzione simile a Shazam esiste anche per computer e può essere utilizzata attraverso un comune browser. Si chiama Midomi, è sufficiente caricare il sito web, cliccare sul tasto di ricerca e attendere che il sistema riconosca la canzone che si sta ascoltando. A differenza di Shazam, Midomi è anche in grado di riconoscere le canzoni cantate o mugugnate direttamente dagli utenti. Su iPhone e Android ci sono sia l’applicazione di Midomi che un’altra, che si chiama SoundHound ed è una delle principali concorrenti di Shazam.

(photo credit)