Cum funcționează Shazam pentru a identifica (aproape) orice cântec pe care i-l arunci

Shazam logoEști în mașină, la supermarket sau pe o terasă și auzi o melodie care-ți place pe loc dar nu știi cine o cântă pentru a o descărca de pe torente (pardon, am vrut să spun „cumpăra”) și  reasculta până la saturație. Nu știu dacă voi ați pățit chestia asta dar mie mi se întâmplă destul de des. Norocul meu este că, odată cu creșterea în popularitate a smartphoneurilor, au început să apară și aplicații care identifică piesele interesante dar necunoscute.

Una dintre aceste aplicații (probabil și cea mai folosită în prezent) este Shazam, care lucrează în tandem cu serviciul omonim din Nor pentru identificarea pieselor muzicale în decursul a doar câtorva zeci de secunde. Shazam este disponibil pentru Windows Mobile, Android,  iPhone, Blackberry și Nokia.

Modul de funcționare al aplicației este foarte intuitiv: după instalarea și lansarea acesteia, trebuie doar apăsat butonul „Tag now” („etichetează acum”), gest urmat de poziționarea microfonului cât mai aproape de sursa sunetului. După înregistrarea unei mostre a cântecului, urmează analiza acesteia și, în cele mai multe cazuri (cu excepția ultimelor manele), Shazam va afișa numele cântecului, informații despre artist cât și un link înspre o pagină de unde poți cumpăra albumul muzical.

Shazam a reușit să mă impresioneze atât prin acuratețea identificării chiar și a unor cântece obscure cât și prin modul în care reușește să filtreze zgomotul de fond (am identificat niște melodii într-o pizzerie și chiar într-un club aglomerat).

Întrebarea care m-a frământat chiar de la prima mea întâlnire cu Shazam a fost „Cum reușește să identifice cântărețul/formația/numele cântecului?”

Curios din fire cum mă știu, am început să caut informații despre principiul de funcționare a lui Shazam și, din fericire, am dat peste un document explicativ scris chiar de către unul dintre dezvoltatorii aplicației. Bineînțeles că anumite detalii cheie sunt omise din rațiuni de copyright dar ideea de bază este similară cu ceea ce bănuiam și eu: Shazam „amprentează” muzica pe baza unei spectrograme.

Iată pașii de bază:

  1. Înainte de orice, Shazam „amprentează” un catalog comprehensiv de muzică, stocând aceste amprente într-o bază de date;
  2. Un utilizator etichetează un cântec care-l interesează prin amprentarea unei mostre de 10 secunde din acesta;
  3. Aplicația Shazam uploadează amprenta către serviciul Shazam, responsabil de căutarea acesteia în baza de date amintită la punctul „1” în vederea găsirii unei amprente similare;
  4. Dacă această amprentă este găsită, informațiile despre melodie sunt returnate utilizatorului, în caz contrar fiind afișată o eroare;

Cum funcționează amprentarea:

Gândește-te la orice bucată muzicală ca la un grafic timp-frecvență denumit spectogramă. Pe o axă este reprezentat timpul, pe cealaltă frecvența iar pe o a treia axă intensitatea. Fiecare punct de pe grafic reprezintă intensitatea frecvenței la un anumit moment în timp. Presupunând că timpul este reprezentat pe axa „x” și frecvența pe axa „y”, o linie orizontală ar însemna un ton pur și continuu iar una verticală ar fi o explozie instantaneee de zgomot alb. Așa arată un astfel de grafic (stânga):

Shazam spectogram 3D

Frequencygraph shazamAlgoritmul de amprentare muzicală folosit de Shazam generează acest grafic 3D și identifică vârfurile de „intensitate maximă”. Pentru fiecare vârf de intensitate maximă, Shazam ține minte frecvența și timpul scurs de la începutul cântecului. Astfel, un exemplu de amprentare pe o mostră de 10 secunde ar putea arăta așa (dreapta):

Shazam își construiește baza de date cu amprentele muzicale sub forma unei tabele hash, în care cheia este frecvența. Când Shazam primește o amprentă ca și cea din exemplul de mai sus, folosește prima cheie (în acest caz 823,44) pentru a căuta toate cântecele care se potrivesc. Este posibil ca tabela hash existentă la Shazam să arate așa:

Shazam frequencygraph

Aceasta ar fi o privire de ansamblu în bucătăria internă a lui Shazam, concluzia mea fiind că în spatele magiei petrecute chiar în fața ochilor mei se află o întreagă uzină (lucru deloc neobișnuit, de altfel).

Un alt serviciu similar este SoundHound despre care unii utilizatori sunt de părere că identifică melodia într-un timp mai scurt decât Shazam, în timp ce alții se plâng de rateurile dese pe care le dă acesta.

Share on Facebook
Share on LinkedIn

Publicat în: Analize

Etichete:

Despre autor: Deși pare uneori cam supărat pe viață, de obicei se abține de la critici gratuite, preferând să publice cu preponderenţă analize obiective ale diverselor trenduri din IT. Cu toate că este o fire destul de agitată, totuși nu prea deschide gura decât când știe exact ce vorbește. După cum se poate vedea și din gravatarul lui, nu mai are toate țiglele pe casă... Umblă vorba prin sat că Şopârloiul şi TransMix ar fi una şi aceeaşi persoană.

RSSComentarii

Comentează | URL trackback

  1. Flavius spune:

    salut !
    exista Shazam si pentru pc ?

  2. Denis spune:

    Salut, baza de date la care se conecteaza, este construita de shazam sau se conectea la “youtube” de exemplu ?

Comentează




Dacă vrei să apară o poză la comentariul tău, fă-ți rost de un Gravatar.