sreda, 16. marec 2016

Shazam - TANJA ŠMID

slika 1: logotip aplikacije Shazam

Na radiu ponovno slišite pesem, ki ste jo slišali že večkrat in vam je zelo všeč, a ne veste njenega naslova. Ker jo želite naložiti na svoj pametni telefon in jo poslušati vsak dan, potrebujete ustrezne podatke. Dandanes obstaja aplikacija, ki lahko to stori za vas v nekaj sekundah. Kako ji uspe?



Kaj je Shazam?

Shazam je podjetje iz Londona, ki so ga leta 1999 ustanovili Philip Inghelbrecht, Chris Barton, Avery Wang in Dhiraj Mukherjee, z načrtom, da bojo ljudi iz vsega sveta povezali z glasbo, ki jim je všeč.
Leta 2002 so začeli s prepoznavanjem glasbe kot storitev prek telefonskih linij, kjer je uporabnik poklical na številko »2850« in mikrofon telefona 30 sekund držal zraven vira glasbe. Nato je telefon avtomatično prekinil in uporabnik je prejel sporočilo, ki je vsebovalo osnovne podatke o pesmi.
Nekaj let kasneje, je podjetje ustvarilo storitev, popolnoma osnovano na internetu. Julija leta 2008 je postal Shazam ena prvih aplikacij na prenovljenem App Store-u, septembra istega leta pa je postal dostopen tudi uporabnikom Androidov.
Ko  slišimo neznano pesem, enostavno posnamemo kratek, nekaj sekund dolg vzorec, ter na zaslonu se nam po nekaj sekundah prikaže naslov, izvajalec, album, žanr skaldbe, njeno besedilo in slika albuma. Pošlje celo povezavo do iTunes-a ali Amazon MP3 Store-a, kjer lahko pesem kupimo, in posnetek na Youtubu, če obstaja. Neverjetno je, da aplikacija deluje tako hitro in tudi na povsem nepopularnih pesmih ter z zvoki v ozadju brez težav.


Zvok

Zvok je mehansko delovanje, ki se širi v dani snovi (zraku ali vodi) in ko ta vibracija pride do našega ušesa, natančneje do bobniča, ta zaniha in valovanje se prenese do slušnih majhnih koščic, ki nato naprej do polža. V polžu so slušne čutilnice z dlačicami, ki proizvedejo električne pulze, ki nato potujejo po čutilnih živčnih vlaknih in možganskem živcu do središča za sluh v možganih.
Podoben princip delovanja uporabljajo tudi snemalne naprave, ki uporabljajo pritisk zvočnega signala in ga pretvorijo v električen signal.


Delovanje algoritma

Ko uporabnik s mikrofonom v svojem pametni telefonom posname 10-sekundni vzorčni posnetek, se ta z algoritmom pretvori v prstni odtis. Aplikacija nato prstni odtis pošlje do osrednjega strežnika, ki v bazi podatkov, ki je sestavljena iz več kot 12 bilijonov prstnih odtisov skladb, ki so nastali z enakim algoritmom, preveri če obstaja ujemajoč posnetek. Če je ta vzorec najden, aplikacija vrne uporabniku podatke o pesmi, drugače vrne napako.


slika 2: princip delovanja Shazama

Nastanek prstnega odtisa

slika 3: spektrogram


Shazam ustvari prstni odtis tako, da nekaj sekundni vzorčni posnetek najprej pretvori v spektrogram.
Shazamov pesem obdela tako, da ustvari t.i. spektrogram. Spektrogram je graf, ki prikazuje čas (na x osi) v odvisnosti od frekvence (na y osi) ter intenzivnosti (na tretji osi). Vsaka točka na grafu torej predstavlja intenzivnost dane frekvenci v določenem trenutku. Algoritem deluje tako, da dela 3D grafe in prepoznava točke frekvence z najvišjo intenzivnostjo. Za vsako od teh točk si zabeleži frekvenco in količino časa od začetka posnetka.

Sprva je spektrogram poln različnih frekvenc ob določenem času, a program ima sposobnost prepoznavanja najbolje zastopanih frekvenc, ker bi bilo sicer točk na grafu preveč. To prikazujeta spodnji sliki, kjer je prvi spektrogram neobdelan in je zato veliko število točk, na drugem pa jih je veliko manj, ker so narisane samo najbolj intenzivne frekvence ob točkah v času.


slika 4: neobdelan sprektrogram



slika 5: obdelan sprektrogram

Podatke iz spektrograma program nato zapiše v obliki zgoščevalne tabele (angl. hash table). V tabelo vnese najbolj intenzivne frekvence in časovno obdobje, v katerem se pojavijo. Zgoščevalna tabela je prstni odtis, ki ga uporabljamo za identifikacijo pesmi.
Ko strežnik prejme prstni odtis, kot je na sliki, uporabi prvo vrstico – v tem primeru 823.44 Hz - za primerjavo z ostalimi odtisi v bazi podatkov. Ko najde več zadetkov – pesem A, B, C - , primerja še druge frekvence iz tabele – naslednja je 1892.31 - in, če odtis obstaja v bazi, najde popolno ujemanje frekvenc v določenih časovnih intervalih in naslov pesmi je uspešno najden – pesem je enaka pesmi B.



slika 6: zgoščevalna tabela

Ker za vzorec posnamemo naključen del pesmi, časi od začetka pesmi niso enaki – čas od začetka snemanja vzorca do frekvence 823.44 Hz je 1.054 sekund in do 1892.31 Hz 1.321 sekund, čas od začetka pesmi do omenjenih frekvence pa 34.678 in 34.945 sekund - enak pa je razmik med pojavom dveh frekvenčnih viškov – razmik v tem primeru je enak 0.267 sekunde v obeh primerih.


slika 7: zgoščevalna tabela

Sprva je program primerjal prvo vrstico in našel več ujemanj. Ko pa je primerjal nadaljnje vrstice, je našel samo eno možnost, pri kateri se točke povezujejo v linijo in to je pesem, katere naslov smo iskali.
slika 8: prikaz iskanja ujemajoče se pesmi

Razširjenost Shazama

Trenutno je Shazamova baza prstnih odtisov obsega več kot 12 bilijonov pesmi različnih žanrov, ki izvirajo v več kot 100 različnih državah. Tako lahko prepozna skoraj vsak posnetek, ki ga slišimo na radiu ali televiziji, če seveda ta obstaja v bazi podatkov.


Omejenost Shazama

Tudi Shazam ima nekaj omejitev. Ena od njih je zagotovo dejstvo, da program prepozna samo posnetke, ki so bili že prej pretvorjeni v prstni odtis in naloženi v bazo podatkov. Ta baza je morda zelo obsežna v bolj popularnih žanrih, a v manj priljubljenih, kot sta jazz in klasična glasba, je bistveno manj posnetkov. Shazam prav tako v okolju z veliko zvokov v ozadju ne deluje vedno. Zvoki, kot so mrmranje pesmi ali petje v živo, tudi ne bodo prepoznani.
Čeprav je Shazam zelo učinkovita in uporabna aplikacija, ima torej tudi svoje šibke točke. Verjamem, da bodo z nadaljnjimi raziskavami in novim znanjem na področju informatike tudi te omejitve odpravljene.


Novi poklici

Aplikacija Shazam je tipični primer uporabe prepoznave glasu in deluje na podobnem principu kot Siri, Cortana, ... To odpira novo področje, kjer je še veliko prostora za izboljšave. Poklic, ki je najbolje povezan s tem področjem, je programer. V prihodnosti bo znanje o prepoznavi glasu zelo uporabno na področjih, kot je robotika. Morda se po prepoznavanje glasu nekega dne spremenilo v razumevanje glasu in bo človek lahko komuniciral z računalnikom, kar bi pomenilo dejansko umetno inteligenco.



Viri

Wikipedia, Shazam (service) [online]. 2015. [Datum zadnjega spreminjanja november 2015].[citirano 14. 11. Ob 15.30] Dostopno na spletnem naslovu: https://en.wikipedia.org/wiki/Shazam_(service)
Buzzle, How Does Shazam Work In Identifying Music? [online]. 2014. [Datum zadnjega spreminjanja 24. november 2014].[citirano 14. 11. Ob 15.40] Dostopno na spletnem naslovu: http://www.buzzle.com/articles/how-does-the-shazam-app-work-in-identifying-music.html
Toptal, Shazam it! [online]. 2015.[citirano 14. 11. Ob 16.50] Dostopno na spletnem naslovu: http://www.toptal.com/algorithms/shazam-it-music-processing-fingerprinting-and-recognition
How Does Shazam Work To Recognize A Song? [online]. 2011. [Datum zadnjega spreminjanja januar 2011].[citirano 14. 11. Ob 17.00] Dostopno na spletnem naslovu: http://www.soyoucode.com/2011/how-does-shazam-recognize-song
How Shazam Works To Identify Nearly Every Song You Throw At It? [online]. 2010. [Datum zadnjega spreminjanja 24.9.2010].[citirano 14. 11. Ob 17.10] Dostopno na spletnem naslovu: http://gizmodo.com/5647458/how-shazam-works-to-identify-nearly-every-song-you-throw-at-it
Wikipedia, Spectrogram [online]. 2015. [Datum zadnjega spreminjanja maj 2015].[citirano 14. 11. Ob 17.20] Dostopno na spletnem naslovu: https://en.wikipedia.org/wiki/Spectrogram
Wikipedia, Hash Table [online]. 2015. [Datum zadnjega spreminjanja oktober 2015].[citirano 14. 11. Ob 17.30] Dostopno na spletnem naslovu: https://en.wikipedia.org/wiki/Hash_table
How Does Shazam work [online]. 2015. [Datum zadnjega spreminjanja avgust 2015].[citirano 14. 11. Ob 17.40] Dostopno na spletnem naslovu: http://coding-geek.com/how-shazam-works/#Shazam
Slike:
slika 1 [online]. 2015. Dostopno na spletnem naslovu: https://play.google.com/store/apps/details?id=com.shazam.android
slika 2 [online]. 2015. Dostopno na spletnem naslovu: http://coding-geek.com/how-shazam-works/#Shazam
slika 3 [online]. 2014. Dostopno na spletnem naslovu: http://www.buzzle.com/articles/how-does-the-shazam-app-work-in-identifying-music.html
slika 4 [online]. 2011. Dostopno na spletnem naslovu: http://www.soyoucode.com/2011/how-does-shazam-recognize-song
slika 5 [online]. 2011. Dostopno na spletnem naslovu: http://www.soyoucode.com/2011/how-does-shazam-recognize-song
slika 6 [online]. 2010. Dostopno na spletnem naslovu: http://gizmodo.com/5647458/how-shazam-works-to-identify-nearly-every-song-you-throw-at-it
slika 7 [online]. 2010. Dostopno na spletnem naslovu: http://gizmodo.com/5647458/how-shazam-works-to-identify-nearly-every-song-you-throw-at-it
slika 8 [online]. 2010. Dostopno na spletnem naslovu: http://gizmodo.com/5647458/how-shazam-works-to-identify-nearly-every-song-you-throw-at-it

Ni komentarjev:

Objavite komentar

Opomba: Komentarje lahko objavljajo le člani tega spletnega dnevnika.