Jak funguje Shazam

Shazam umožňuje odeslat nahrávku téměř jakékoli skladby pořízenou telefonem a Shazam vám sdělí název skladby, jméno interpreta a další údaje o dané skladbě. Tyto další údaje často zahrnují odkazy na místa, kde si můžete skladbu zakoupit, a také nadcházející termíny turné daného interpreta. V posledních letech Shazam rozšířil svou knihovnu o reklamy a televizní vysílání. Můžete například použít Shazam na reklamu a zobrazí se vám další informace o produktu včetně odkazu na jeho zakoupení.

Společnost Shazam byla založena v roce 1999 a je starší než chytrý telefon. V počátcích Shazamu uživatelé volali na zařízení, které vypadalo takto

Vyhledávání Shazam dokáže najít shodu i v hlučném prostředí, jako jsou bary nebo noční kluby, pokud je daná skladba již v databázi Shazamu. Nejlepší výsledky poskytne nahrávka o délce alespoň pěti sekund. Nahrávání můžete zahájit v libovolném místě skladby a Shazam vám během několika sekund pošle shodu. Aby tato služba dobře fungovala, má Shazam rostoucí databázi více než 8 milionů skladeb/audio souborů. Za předpokladu, že průměrný zvukový soubor trvá tři minuty, trvalo by přehrání každého z nich zpětně více než 45 let!“

S takto velkou databází mají velké pokrytí, ale jak Shazam v tak velké databázi najde shodu tak rychle? Zaprvé, při hledání skladby Shazamem se nevyhledávají skutečné zvukové soubory. Místo toho má Shazam pro každý zvukový soubor v databázi zvukový otisk. Ze záznamu, který uživatel služby Shazam odešle, se také vytvoří zvukový otisk, který umožňuje přesné a rychlé porovnávání. Tyto zvukové otisky se skládají ze souborů číselných údajů. Pokud vás zajímá, jak se ta chytlavá melodie, kterou shazujete, promění v čísla, je následující část určena právě vám.

Jak funguje zvuk

Ve své nejzákladnější definici je zvuk vibrující částice. Existují tři prvky, díky nimž je každý zvuk jedinečný: Amplituda, frekvence a čas. Amplituda je velikost vibrace, kterou vnímáme jako hlasitost zvuku. Frekvence je rychlost, s jakou k vibracím dochází. Frekvence zvuku je to, co vnímáme jako výšku tónu. Frekvence se měří v hertzech (Hz), které udávají, kolikrát se zvuková vlna zopakuje za sekundu. Lidské ucho slyší zvuky v rozsahu od 20 Hz do 20 000 Hz. Pro představu, nejnižší tón na tradičním 88klávesovém klavíru, A0, má frekvenci 27,5 Hz. Frekvence hudebního tónu v každé oktávě logaritmicky roste. Jinými slovy, frekvence každé oktávy je dvakrát vyšší než frekvence oktávy pod ní. Například frekvence A1 je 55Hz, frekvence A2 je 110Hz a frekvence A3 je 220Hz.

Ve výše uvedeném grafu vidíte, že mnoho nástrojů může hrát stejné tóny, ale tón na houslích a stejný tón na klavíru bude znít jinak. Tento rozdíl v tónové kvalitě se nazývá témbr. Barvu zvuku vytvářejí frekvence uvnitř zvuku, které jsou vyšší (opakují se rychleji) než vnímaná výška zvuku. Tyto frekvence se označují jako overtony. Podívejte se na tuto nahrávku, která začíná tónem (C4 261,23 Hz) na klavíru, po němž následují jednotlivé overtony uvnitř zvuku přehrané jeden po druhém a končí stejným tónem, kterým začala.

Tyto overtonové frekvence jsou tím, co dává nástroji charakteristickou barvu.

Čas je důležitý, protože nám udává nejen délku času, ve kterém se vyskytuje, ale také to, v jakém čase se zvuk vyskytuje vzhledem k jiným zvukům. Daná píseň se může skládat z mnoha nástrojů, které se liší frekvencí a amplitudou, jak se vůči sobě pohybují v čase. Vzhledem ke složitosti amplitudy, frekvence a času a možnosti jejich přesného měření budou dvě různé verze téže písně stále vytvářet jedinečný zvukový otisk.

Jak se vytváří otisk

Pro vytvoření zvukového otisku se zvukový soubor převede na spektrogram, kde osa y představuje frekvenci, osa x čas a hustota stínování amplitudu (obr. 1A).

Pro každý úsek zvukového souboru se vyberou nejsilnější vrcholy a spektrogram se zredukuje na graf rozptylu. V tomto okamžiku již není amplituda nutná (obr. 1B).

Nyní máme všechna základní data pro porovnání dvou souborů, které prošly procesem fingerprintingu. Jejich shoda je však možná pouze v případě, že uživatel služby Shazam začal nahrávat přesně v milisekundě začátku skladby. Protože k tomu téměř nikdy nedochází, je třeba provést další kroky při vytváření otisků zvuku. Prostřednictvím procesu zvaného kombinatorické hashování jsou body na grafu rozptylu vybrány jako kotvy, které jsou spojeny s dalšími body na grafu, které se vyskytují po kotevním bodu v časovém a frekvenčním okně známém jako cílová zóna (obr. 1C).

Každá dvojice kotevní bod je uložena v tabulce obsahující frekvenci kotvy, frekvenci bodu a čas mezi kotvou a bodem známý jako hash. Tato data jsou pak propojena s tabulkou, která obsahuje čas mezi kotvou a začátkem zvukového souboru. Soubory v databázi mají také jedinečná ID, která se používají k získání dalších informací o souboru, například názvu skladby a jména interpreta.

Jak najít shodu

Když jsme vytvořili otisky prstů pro oba zvukové soubory, jsou jednotlivé dvojice kotevních bodů z nahrávky uživatele Shazam odeslány do databáze Shazam, kde se hledají shodné dvojice kotevních bodů. Toto vyhledávání vrátí zvukové otisky všech skladeb, které obsahují jakoukoli shodu hash. Jakmile máme všechny možné shody pro nahrávku uživatele Shazam, musíme najít časový posun mezi začátkem nahrávky uživatele Shazam a začátkem jedné z těchto možných shod z databáze. Tento časový posun lze vypočítat odečtením času výskytu dvojice kotevních bodů v nahrávce uživatele Shazam od času výskytu odpovídajícího hashe ve zvukovém souboru z databáze Shazam. Pokud má značné množství shodných hashů stejný časový posun, je daná skladba určena jako shodná!

Při zobrazení do grafu rozptylu, kde osa y představuje čas výskytu hashe v nahrávce uživatele Shazam a osa x představuje čas výskytu hashe v audio souboru z databáze Shazam, budou shodné hashe tvořit diagonální linii (obr. 3A). V histogramu stejných dat, kde osa y představuje časy posunu a osa x množství shod, bude v čase správného posunu velký hrot (obr. 3B).

Tato metoda vyhledávání zvuku je dostatečně přesná, aby našla shody navzdory tomu, že nahrávka uživatele Shazam obsahuje šum, například mluvící lidi, hluk ze silnice a dokonce i jiné skladby. Protože počet hashů kotevních bodů vytvořených zvukovým otiskem je mnohem vyšší než počet shod kotevních bodů potřebných k vrácení pozitivního výsledku vyhledávání, hashy kotevních bodů, které jsou maskovány vnějším šumem, nestačí k tomu, aby zabránily systému Shazam důsledně najít shodu zvukového souboru z databáze. Vzhledem k tomu, že vyhledávací algoritmus je vytvořen tak, aby nacházel shody s nahraným zvukem v databázi Shazam, pokud jste na koncertě a při shazování písně získáte pozitivní shodu, je velmi pravděpodobné, že interpret používá doprovodné stopy a/nebo synchronizaci rtů. Dalším vedlejším efektem je, že Shazam vrátí původní nahrávku, ze které sampl pochází, pokud umělec sampl nekombinoval s žádnými jinými zvuky a sampl nijak neupravil.

Leave a Reply