Fino a qualche tempo fa era praticamente impossibile riconoscere un brano musicale sconosciuto riprodotto alla radio od in tv. Con l’avvento degli smartphone, dei tablet e delle connessioni dati sempre disponibili, anche in mobilità, sono nate applicazioni in grado di riconoscere una musica o una canzone semplicemente registrandone un breve frammento. Si tratta di programmi, generalmente disponibili per le varie piattaforme mobili (Android, Apple iOS, Windows Phone,…), che, su richiesta dell’utente, registrano un breve spezzone del brano musicale in fase di riproduzione e lo inviano ai rispettivi server. Grazie ad uno speciale algoritmo di riconoscimento, di solito l’applicazione è in grado di stabilire il brano musicale.
Non importa da quale sorgente sonora la musica o la canzone venga riprodotta: l’applicazione, installata sullo smartphone o sul tablet, dovrebbe essere in grado di risalire al titolo del brano ascoltato. Alcuni software sono più abili nel riconoscere i brani musicali anche in presenza di disturbi o di voci che si sovrappongono alla sorgente sonora.
Di recente Google stessa ha aggiornato il suo assistente digitale Now integrando la funzionalità “Che canzone è?”. Basta un “tap” sul pulsante “Che canzone è?” per avere un identikit di qualsiasi brano musicale in fase di riproduzione.
Il capostipite dei software in grado di riconoscere brani musicali è però Shazam. L’applicazione consta infatti di un database ricchissimo, che permette al programma (compatibile con tutti i principali dispositivi mobili) di riconoscere correttamente anche i pezzi italiani e stranieri meno noti.
Il funzionamento di Shazam è molto simile su tutte le piattaforme mobili supportate: dopo aver installato l’applicazione (in figura, la schermata principale su Android), basta “tappare” sull’icona centrale per avviare l’acquisizione del flusso audio:
Shazam inizierà a registrare il brano musicale quindi provvederà ad inviarlo ai suoi server:
Dopo qualche istante (il riconoscimento è generalmente velocissimo), Shazam fornirà il responso mostrando titolo della canzone, cantante, copertina dell’album insieme con altre informazioni addizionali:
Selezionando la scheda Miei tag, si accede all’elenco delle canzoni sottoposte a riconoscimento. Si tratta di una sorta di “cronologia”, simile a quella proposta dalla funzionalità “Che canzone è?” di Google Now:
Accendendo al singolo brano musicale, si può avviarne una condivisione sui principali social network, attraverso Bluetooth, su Drive, Dropbox, posta elettronica od altri servizi.
Come funziona Shazam
Certamente interessante è capire come funziona Shazam. Come può essere così abile, un’applicazione, a riconoscere qualunque tipo di canzone semplicemente registrandone un breve estratto? Shazam è infatti capace di effettuare con successo un riconoscimento acnhe in ambienti affollati quali possono essere negozi e ristoranti.
Il funzionamento del software, chiarito nel dettaglio in questo documento ufficiale, poggia sull’assegnazione di un’impronta digitale (fingerprint) ai vari brani musicali. Tale impronta ha una lunghezza prefissata ed è pensabile come una sequenza di bit che contiene informazioni sulle caratteristiche intrinseche di ogni canzone. Tutte le impronte digitali vengono memorizzate ed organizzate nel ricco database conservato sui server di Shazam.
Quando un qualunque utente di Shazam avvia il riconoscimento di un brano musicale, l’impronta digitale della canzone – generata istantaneamente – viene trasmessa ai server dell’applicazione che paragonano le informazioni raccolte con quelle contenute nei database. Se dovesse essere rilevata una corrispondenza tra l’impronta digitale inviata dallo smartphone o dal tablet dell’utente con le fingerprint stivate sui server, Shazam fornirà immediatamente il titolo del brano insieme con le altre informazioni (viene mostrato anche il testo completo dell’opera).
Il meccanismo di fingerprinting, ossia il sistema che calcola l’impronta digitale di ciascun brano, sfrutta il grafico tempo/frequenza detto spettrogramma. Sul primo asse (quello delle ascisse), viene annotato il tempo (di riproduzione del brano musicale), sul secondo asse (ordinate) la frequenza mentre sul terzo asse viene riportata l’intensità sonora.
Ciascun punto sul grafico “tridimensionale”, quindi, rappresenta l’intensità del suono, ad una certa frequenza in corrispondenza di un momento ben preciso (tempo).
Shazam genera lo spettogramma di ciascun brano musicale individuando le frequenze sonore ove si verificano le intensità di picco. Per ciascuno di questi punti, identificati sullo spettrogramma, Shazam tiene traccia del tempo trascorso dall’inizio della riproduzione del brano.
Il catalogo delle impronte digitali, così generate, viene approntato costruendo una tabella hash ove la chiave è la frequenza sonora. Dopo aver ricevuto in ingresso, dallo smartphone o dal tablet dell’utente, un’impronta digitale contenente le intensità di picco con frequenza in Hz e tempo, Shazam prende in esame la prima frequenza ed utilizzandola come chiave effettua una ricerca di tutte le canzoni che possono corrispondere.
Ovviamente non viene preso in considerazione un solo punto rilevante dello spettrogramma ma un insieme di essi, ove si sono precedentemente rilevate le intensità sonore di picco.
Alternative a Shazam
Oltre alla nuova funzionalità integrata da Google nel suo assistente digitale Now, ricordiamo anche SoundHound, un servizio che pur non disponendo di una base dati così vasta come Shazam, è particolarmente abile nel riconoscere brani musicali riprodotti in situazioni proibitive (ad esempio, ambienti disturbati) o a volume piuttosto basso.
SoundHound, inoltre, è capace di risalire al titolo di una canzione anche canticchiandola a voce. È disponibile solo nelle versioni per Android ed Apple iOS.
Molto valida è anche MusixMatch che è compatibile con Android, Apple iOS e Windows Phone e consente non solo di riconoscere i brani musicali riprodotti ma anche di ottenere la visualizzazione del testo delle canzoni in modalità karaoke.