Jak działa Shazam

Shazam pozwala wysłać nagranie wykonane na telefonie prawie każdej piosenki i Shazam powie Ci nazwę piosenki, nazwę artysty i inne dane o tej piosence. Te inne dane często zawierają linki do miejsc, gdzie można kupić piosenkę, jak również nadchodzące daty wycieczek dla tego artysty. W ostatnich latach Shazam rozszerzył swoją bibliotekę o reklamy i telewizję. Na przykład, można Shazam reklamy i uzyskać dodatkowe informacje na temat produktu, w tym link do zakupu tego produktu.

Założony w 1999 roku, Shazam jest starszy niż smartphone. We wczesnych dniach Shazam, użytkownicy dzwonili na urządzenie, które wyglądało tak

Wyszukiwanie Shazam jest w stanie znaleźć dopasowanie nawet w głośnych środowiskach, takich jak bary lub kluby nocne, o ile utwór znajduje się już w bazie danych Shazam. Najlepsze rezultaty daje nagranie trwające co najmniej pięć sekund. Możesz rozpocząć nagrywanie w dowolnym momencie w utworze i Shazam wyśle Ci mecz w ciągu kilku sekund. Aby ta usługa działała dobrze, Shazam ma rosnącą bazę danych ponad 8 milionów piosenek/plików audio. Zakładając, że średni plik audio ma trzy minuty długości, zajęłoby to ponad 45 lat, aby odtworzyć każdy z nich z powrotem do tyłu!

Z bazą danych tej wielkości mają wielki zasięg, ale jak Shazam znaleźć mecz tak szybko w tak dużej bazie danych? Po pierwsze, rzeczywiste pliki audio nie są tym, co jest przeszukiwane, gdy Shazam utwór. Zamiast tego, Shazam ma audio fingerprint dla każdego pliku audio w bazie danych. Nagranie, które przesyła użytkownik Shazam, jest również tworzone jako odcisk palca audio, co pozwala na dokładne i szybkie porównanie. Te dźwiękowe odciski palców składają się z kolekcji danych liczbowych. Jeśli zastanawiasz się, jak ta chwytliwa melodia, którą Shazamujesz, zostaje zamieniona w liczby, następna sekcja jest dla Ciebie.

Jak działa dźwięk

W swojej najbardziej podstawowej definicji, dźwięk to wibrujące cząsteczki. Istnieją trzy elementy, które sprawiają, że każdy dźwięk jest wyjątkowy: Amplituda, Częstotliwość i Czas. Amplituda to wielkość wibracji, którą postrzegamy jako głośność dźwięku. Częstotliwość to szybkość, z jaką występują wibracje. Częstotliwość dźwięku jest tym, co postrzegamy jako wysokość dźwięku. Częstotliwość jest mierzona w hercach (Hz), które określają, ile razy fala dźwiękowa powtarza się w ciągu sekundy. Ludzkie ucho może usłyszeć dźwięki o częstotliwości od 20 Hz do 20 000 Hz. Aby dać pewną perspektywę, najniższa nuta na tradycyjnym 88-klawiszowym pianinie, A0, ma częstotliwość 27,5Hz. Częstotliwość dźwięków muzycznych w każdej oktawie wzrasta logarytmicznie. Innymi słowy, częstotliwość każdej oktawy jest dwa razy większa niż oktawy poniżej. Na przykład, częstotliwość A1 wynosi 55Hz, częstotliwość A2 wynosi 110Hz, a częstotliwość A3 wynosi 220Hz.

Na powyższym wykresie widać, że wiele instrumentów może grać te same nuty, ale nuta na skrzypcach i ta sama nuta na fortepianie będą brzmiały inaczej. Ta różnica w jakości tonalnej jest znana jako barwa dźwięku. Barwa dźwięku jest tworzona przez częstotliwości w dźwięku, które są wyższe (powtarzają się w szybszym tempie) niż postrzegana wysokość dźwięku. Częstotliwości te nazywane są overtonami. Sprawdź to nagranie, które zaczyna się od nuty (C4 261.23Hz) na fortepianie, po którym każdy z podtekstów w dźwięku grany jeden po drugim i kończy się tą samą nutą, od której się zaczął.

Te częstotliwości podtekstowe są tym, co daje instrumentowi jego charakterystyczną barwę.

Czas jest ważny, ponieważ nie tylko daje nam długość czasu, w którym występuje, ale także w jakim czasie dźwięk występuje w stosunku do innych dźwięków. Dana piosenka może składać się z wielu instrumentów, które różnią się częstotliwością i amplitudą, jak poruszają się w czasie w stosunku do siebie. Ze względu na złożoność amplitudy, częstotliwości i czasu oraz możliwość ich precyzyjnego pomiaru, dwie różne wersje tej samej piosenki nadal będą generować unikalny odcisk palca.

Jak powstaje odcisk palca

Aby stworzyć odcisk palca, plik audio jest przekształcany w spektrogram, gdzie oś y reprezentuje częstotliwość, oś x reprezentuje czas, a gęstość cieniowania reprezentuje amplitudę (Rys. 1A).

Dla każdej sekcji pliku audio wybierane są najsilniejsze szczyty, a spektrogram jest redukowany do wykresu rozrzutu. W tym momencie amplituda nie jest już potrzebna (Rys. 1B).

Teraz mamy wszystkie podstawowe dane do dopasowania dwóch plików, które przeszły proces fingerprintingu. Jednak ich dopasowanie jest możliwe tylko wtedy, gdy użytkownik programu Shazam rozpoczął nagrywanie dokładnie w tej samej milisekundzie, w której rozpoczął się utwór. Ponieważ prawie nigdy nie ma to miejsca, istnieją dodatkowe kroki w procesie fingerprintingu audio. W procesie zwanym combinatorial hashing, punkty na wykresie rozproszenia są wybierane jako kotwice, które są połączone z innymi punktami na wykresie, które występują po punkcie kotwicy w oknie czasu i częstotliwości znanym jako strefa docelowa (Rys. 1C).

Każda para kotwica-punkt jest przechowywana w tabeli zawierającej częstotliwość kotwicy, częstotliwość punktu oraz czas pomiędzy kotwicą a punktem zwany haszem. Dane te są następnie połączone z tabelą, która zawiera czas pomiędzy punktem zakotwiczenia a początkiem pliku audio. Pliki w bazie danych mają również unikalne identyfikatory, które są używane do pobierania dalszych informacji o pliku, takich jak tytuł utworu i nazwa wykonawcy.

Jak znaleźć dopasowanie

Teraz, gdy utworzyliśmy odciski palców dla obu plików audio, każda z par punktów zakotwiczenia z nagrania użytkownika Shazam jest wysyłana do bazy danych Shazam w celu wyszukania pasujących par punktów zakotwiczenia. To wyszukiwanie zwróci odciski palców wszystkich utworów, które zawierają jakiekolwiek dopasowania hash. Gdy mamy już wszystkie możliwe dopasowania dla nagrania użytkownika Shazam, musimy znaleźć przesunięcie czasowe pomiędzy początkiem nagrania użytkownika Shazam a początkiem jednego z tych możliwych dopasowań z bazy danych. To przesunięcie w czasie może być obliczone przez odjęcie czasu wystąpienia pary punktów kotwiczących w nagraniu użytkownika Shazam od czasu wystąpienia pasującego hasha w pliku audio z bazy danych Shazam. Jeśli znaczna ilość pasujących haszy ma takie samo przesunięcie czasowe, utwór jest określany jako pasujący!

Po odwzorowaniu na wykresie rozrzutu, gdzie oś y przedstawia czas, w którym hash występuje w nagraniu użytkownika Shazam, a oś x przedstawia czas, w którym hash występuje w pliku audio z bazy danych Shazam, pasujące hashe utworzą linię ukośną (Rys. 3A). Na histogramie tych samych danych, gdzie oś y przedstawia czasy przesunięć, a oś x ilość dopasowań, pojawi się duży pik przy prawidłowym czasie przesunięcia (Rys. 3B).

Ta metoda wyszukiwania dźwięku jest wystarczająco dokładna, aby znaleźć dopasowania, mimo że nagranie użytkownika Shazam zawiera szumy, takie jak ludzie mówiący, hałas drogowy, a nawet inne utwory. Ponieważ liczba haszy punktów zakotwiczenia utworzonych przez audio fingerprint jest znacznie wyższa niż liczba dopasowań punktów zakotwiczenia wymaganych do zwrócenia pozytywnego wyniku wyszukiwania, haszy punktów zakotwiczenia, które są maskowane przez zewnętrzny hałas nie jest wystarczające, aby zapobiec Shazam od konsekwentnego znalezienia dopasowania do pliku audio z bazy danych. Ponieważ algorytm wyszukiwania jest skonstruowany tak, aby znajdować dopasowania do nagranego dźwięku w bazie danych Shazam, jeśli jesteś na koncercie i uzyskasz pozytywne dopasowanie podczas shazamowania utworu, najprawdopodobniej wykonawca używa podkładów muzycznych i/lub synchronizacji z ustami. Innym efektem ubocznym jest to, że Shazam zwróci oryginalne nagranie, z którego pochodzi próbka, jeśli artysta nie połączył próbki z innymi dźwiękami i nie zmienił jej w żaden sposób.

Leave a Reply