Cum funcționează Shazam
Shazam vă permite să trimiteți o înregistrare făcută pe telefon a aproape oricărui cântec, iar Shazam vă va spune numele cântecului, numele artistului și alte date despre acel cântec. Aceste alte date includ adesea linkuri către locurile de unde puteți cumpăra melodia, precum și datele viitoarelor turnee ale artistului respectiv. În ultimii ani, Shazam și-a extins biblioteca pentru a include reclame și televiziune. De exemplu, puteți să Shazam o reclamă și să primiți informații suplimentare despre produs, inclusiv un link pentru a cumpăra acel produs.
Fondat în 1999, Shazam este mai vechi decât smartphone-ul. La începuturile lui Shazam, utilizatorii apelau la un dispozitiv care arăta astfel
O căutare Shazam este capabilă să găsească o potrivire chiar și în medii zgomotoase, cum ar fi barurile sau cluburile de noapte, atâta timp cât melodia respectivă se află deja în baza de date a Shazam. O înregistrare de cel puțin cinci secunde va da cele mai bune rezultate. Puteți începe înregistrarea în orice punct al melodiei, iar Shazam vă va trimite o potrivire în câteva secunde. Pentru ca acest serviciu să funcționeze bine, Shazam are o bază de date în creștere de peste 8 milioane de melodii/fișiere audio. Presupunând că un fișier audio mediu are o durată de trei minute, ar fi nevoie de peste 45 de ani pentru a le asculta pe fiecare dintre ele una după alta!
Cu o bază de date de o asemenea dimensiune au o acoperire mare, dar cum reușește Shazam să găsească o potrivire atât de repede într-o bază de date atât de mare? În primul rând, fișierele audio propriu-zise nu sunt ceea ce se caută atunci când faci Shazam o melodie. În schimb, Shazam are o amprentă audio pentru fiecare fișier audio din baza de date. Înregistrarea pe care o trimite un utilizator Shazam este, de asemenea, transformată într-o amprentă audio, ceea ce îi permite să facă comparații precise și rapide. Aceste amprente audio constau în colecții de date numerice. Dacă vă întrebați cum se transformă în numere această melodie molipsitoare pe care o faceți Shazaming, următoarea secțiune este pentru dumneavoastră.
Cum funcționează sunetul
La definiția sa cea mai elementară, sunetul reprezintă particule care vibrează. Există trei elemente care fac ca fiecare sunet să fie unic: Amplitudinea, frecvența și timpul. Amplitudinea este mărimea vibrației, pe care noi o percepem ca fiind intensitatea sunetului. Frecvența este rata la care se produce vibrația. Frecvența unui sunet este ceea ce noi percepem ca înălțime. Frecvența se măsoară în Hertz (Hz), care reprezintă de câte ori se repetă o undă sonoră pe secundă. Urechea umană poate auzi sunete care variază între 20Hz și 20.000Hz. Pentru a oferi o perspectivă, cea mai joasă notă de pe un pian tradițional cu 88 de clape, A0, are o frecvență de 27,5Hz. Frecvența unui ton muzical la fiecare octavă crește logaritmic. Cu alte cuvinte, frecvența fiecărei octave este de două ori mai mare decât cea a octavei de sub ea. De exemplu, frecvența notei A1 este de 55Hz, frecvența notei A2 este de 110Hz, iar frecvența notei A3 este de 220Hz.
În graficul de mai sus, puteți vedea că multe instrumente pot reda aceleași note, dar o notă la vioară și aceeași notă la pian vor suna diferit. Această diferență în calitatea tonală este cunoscută sub numele de timbru. Timbrul unui sunet este creat de frecvențele din cadrul sunetului care sunt mai înalte (se repetă într-un ritm mai rapid) decât înălțimea percepută a sunetului. Aceste frecvențe sunt cunoscute sub numele de supratonuri. Priviți această înregistrare care începe cu o notă (C4 261,23Hz) la un pian, urmată de fiecare dintre supratonurile din cadrul sunetului redate una câte una și se încheie cu aceeași notă cu care a început.
Aceste frecvențe supratonale sunt cele care conferă unui instrument timbrul său caracteristic.
Timpul este important pentru că ne oferă nu numai durata de timp în care are loc, ci și momentul în care apare un sunet în raport cu alte sunete. Un anumit cântec poate fi alcătuit din mai multe instrumente care variază în frecvență și amplitudine pe măsură ce se deplasează în timp în raport unul cu celălalt. Din cauza complexității amplitudinii, frecvenței și timpului, precum și a capacității de a le măsura cu precizie, două versiuni diferite ale aceluiași cântec vor genera totuși o amprentă audio unică.
Cum se realizează o amprentă audio
Pentru a realiza o amprentă audio, un fișier audio este convertit într-o spectrogramă în care axa y reprezintă frecvența, axa x reprezintă timpul, iar densitatea umbrelor reprezintă amplitudinea (Fig 1A).
Pentru fiecare secțiune a unui fișier audio, se aleg cele mai puternice vârfuri și spectrograma se reduce la un grafic de dispersie. În acest punct, amplitudinea nu mai este necesară (Fig 1B).
Acum avem toate datele de bază pentru a potrivi două fișiere care au fost supuse procesului de amprentare. Cu toate acestea, este posibil să le potrivim doar dacă un utilizator Shazam a început să înregistreze la milisecunda exactă în care a început o melodie. Deoarece acest lucru nu se întâmplă aproape niciodată, există pași suplimentari pentru amprentarea audio. Printr-un proces numit hashing combinatoriu, punctele de pe graficul de dispersie sunt alese pentru a fi puncte de ancorare care sunt legate de alte puncte de pe grafic care apar după punctul de ancorare în timpul unei ferestre de timp și frecvență cunoscute sub numele de zonă țintă (Fig. 1C).
Care pereche de puncte de ancorare este stocată într-un tabel care conține frecvența ancorei, frecvența punctului și timpul dintre ancoră și punct, cunoscut sub numele de hash. Aceste date sunt apoi legate de un tabel care conține timpul dintre ancoră și începutul fișierului audio. Fișierele din baza de date au, de asemenea, ID-uri unice care sunt folosite pentru a prelua mai multe informații despre fișier, cum ar fi titlul melodiei și numele artistului.
Cum găsim o potrivire
Acum că am creat amprente pentru ambele fișiere audio, fiecare dintre perechile de puncte de ancorare din înregistrarea utilizatorului Shazam este trimisă în baza de date Shazam pentru a căuta perechi de puncte de ancorare corespunzătoare. Această căutare va returna amprentele audio ale tuturor melodiilor care conțin orice potrivire hash. Odată ce avem toate posibilele potriviri pentru înregistrarea utilizatorului Shazam, trebuie să găsim decalajul de timp dintre începutul înregistrării utilizatorului Shazam și începutul uneia dintre aceste posibile potriviri din baza de date. Acest decalaj în timp poate fi calculat prin scăderea timpului de apariție a perechii de puncte de ancorare în înregistrarea utilizatorului Shazam din timpul de apariție a hash-ului corespunzător în fișierul audio din baza de date Shazam. Dacă o cantitate semnificativă de hash-uri de potrivire are același decalaj de timp, se determină că melodia respectivă este o potrivire!
Când este cartografiată pe un grafic de dispersie în care axa y reprezintă momentul în care apare hash-ul în înregistrarea utilizatorului Shazam, iar axa x reprezintă momentul în care apare hash-ul în fișierul audio din baza de date Shazam, hash-urile de potrivire vor forma o linie diagonală (figura 3A). Într-o histogramă a acelorași date în care axa y reprezintă momentele de decalaj, iar axa x reprezintă cantitatea de potriviri, va exista un vârf mare la momentul de decalaj corect (Fig. 3B).
Leave a Reply