11.10.2023. ·
2 min

Kako radi Shazam algoritam?

Kako radi Shazam algoritam?

Svi smo čuli za Shazam, popularnu aplikaciju koja prepoznaje pesme samo na osnovu kratkog uzorka koji se najčešće snimi mikrofonom telefona.

Ali kako tačno Shazam uspeva da identifikuje pesme tako brzo i precizno? Odgovor leži u njihovom jedinstvenom algoritmu poznatom kao fingerprinting ili otiskivanje.

Otiskivanje (Fingerprinting)

Kada se pesma dodaje u Shazam-ovu bazu podataka, algoritam kreira "otisak" te pesme. Ovaj otisak je jedinstvena reprezentacija audio podataka pesme. Algoritam identifikuje distinktne vrhove u spektrogramu pesme, koji je vizuelna reprezentacija frekvencija zvuka tokom vremena.

Ovi vrhovi su ključni jer predstavljaju najprepoznatljivije delove pesme, čineći otisak robusnim čak i kada ima dosta pozadinske buke ili distorzije. Kroz ovaj proces, Shazam može da generiše kompaktan i efikasan otisak koji se lako upoređuje sa drugima u bazi podataka.

Heširanje i skladištenje

Heširanje je proces pretvaranja ulaznih podataka (u ovom slučaju vrhova iz spektrograma) u fiksnu nisku karaktera, koja obično ima oblik niza cifara. Ova niska karaktera se naziva heš vrednost ili heš kod. Ključna karakteristika heš funkcije jeste da čak i najmanja promena u ulaznim podacima rezultira potpuno drugačijom heš vrednošću.

U kontekstu Shazam-a, svaki vrh se uparuje sa susednim vrhovima kako bi se kreirala jedinstvena heš vrednost. Ova jedinstvenost potiče od kombinacije frekvencijskih vrhova i njihovih relativnih pozicija u vremenskom spektru pesme. Zbog ove specifičnosti, čak i dva veoma slična audio zapisa će proizvesti različite heš kodove, čime se osigurava preciznost u prepoznavanju pesama.

Upoređivanje

Ove heš vrednosti, zajedno sa odgovarajućim vremenskim pomerajima, skladište se u Shazam-ovoj bazi podataka. Kada korisnik pokuša da identifikuje pesmu pomoću Shazam-a, aplikacija snima kratki audio uzorak i kreira otisak tog uzorka na isti način kao što je opisano gore. Algoritam zatim traži odgovarajuće heš vrednosti u svojoj bazi podataka.

Zahvaljujući ovom algoritmu, Shazam može brzo i precizno da identifikuje pesme čak i u bučnim okruženjima i iz uzoraka lošeg kvaliteta.

 

 

Oceni tekst

5
25 glasova
Aleksandar Lukač, DressCode Aleksandar Lukač, DressCode

Softverski inženjer u Majkrosoftu. Diplomirani inženjer informacionog inženjeringa (Data science). Interesovanja: softverska arhitektura, optimizacioni problemi, teorija algoritama.

0 komentara

Iz ove kategorije

Svi članci sa Bloga