Labur esanda, audio lagin bat grabatzen duzunean Shazam aplikazioak audioaren hatz-marka kalkulatu eta zerbitzarira bidaltzen du. Zerbitzarian miloika kantaren hatz-markak dituzte gordeta eta zuk bidalitakoa haiekin konparatzen dute, horietako batekin bat datorren jakiteko.
Gaur egungo ikuspuntutik harrigarria badirudi ere, zerbitzua eskaintzen hasi zirenean, 2002an, ez zegoen aplikaziorik. 2580 zenbakira deitu behar zen, zerbitzariak zuzenean hartzen zuen audioaren lagina eta erabiltzaileak SMS bidez jasotzen zituen kantaren izenburua eta egilea.
Ondoren audioak identifikatzeko erabiltzen duten teknika xehetasun gehiagorekin azaltzen saiatuko naiz. Audio baten hatz-marka sortzeko bere espektrogramatik abiatzen dira. Espektrograma bat soinu baten maiztasunen espektroaren adierazpen bisual bat da. x ardatzean denbora adierazten da, y ardatzean soinuaren maiztasuna eta 3. ardatzean soinuaren anplitudea. Grafikoko puntu bakoitzak une jakin batean maiztasun jakin batek duen anplitudea adierazten du. Lerro horizontal batek tonu puru bat adieraziko luke, hau da, maiztasun bakarreko tonu bat. Lerro bertikal batek aldiz bat-bateko soinu txuri eztanda adieraziko luke. Kanta baten espektrogramak horrelako itxura du:
Shazam-en algoritmoak espektrogramako gailur adierazgarrienak hautatzen ditu. Horri esker aurreko irudi konplexua asko sinplifikatzen da:
Lortutako grafiko berri hauei "konstelazio mapa" deitzen diete, sakabanatutako puntuek izar multzo baten antza dutelako. Audioen hatz-markak sortzeko zuzenean konstelazio mapako maiztasun-denbora gako-balio pareak erabili ordez, konparazio eraginkor eta azkarragoak egiteko aukera ematen duen konbinazio sistema konplexuago bat erabiltzen dute. Horrela sortzen dute audioaren hash taula. Prozesu hau milioika audiorekin errepikatu eta lortutako emaitzak datu-base batean gordeta dituzte. Datu-base hau kanta berriekin etengabe elikatzen jarraitzen dute. Gaur egun akordioak dituzte musika banatzaileekin horretarako, baina hasiera batean Shazam-eko langileek eskuz erauzten zituzten kantak eta metadatuak CDetatik.
Erabiltzaileek grabatutako audio lagin bat identifikatzeko, prozesu berdina errepikatzen da, lehenik bere hatz-marka kalkulatzen da, gako-balio taula bat sortuz. Lagineko gako bakoitza datu-baseko hash taulekin bat datorren begiratzen da ondoren. Bat datozen hash-en laginaren eta datu-baseko audioaren denborak eta beren arteko denbora diferentziak grafikoki adierazten baditugu oso garbi ikusten da lagina datu-baseko audioaren zatia den ala ez:
Lehen kasuan (Fig. 2A eta Fig. 2B) bat datozen hash-ak daude baina ez dute inongo eredurik jarraitzen, lagina ez da datu-baseko audioaren zati bat.
Bigarren adibidean (Fig. 3A eta Fig. 3B) bai, lagina datu-baseko audioaren zati bat da. Fig. 3A-n garbi ikusten denez bat datozen hash askok eredu diagonal bat jarraitzen dute. Hori ikusita lagina datu-baseko audioaren 40 eta 65 segundoen arteko zati bat dela ondoriozta daiteke. Fig. 3B grafikoan nabarmen dago laginaren eta jatorrizko audioaren artean dauden bat etortze gehienek 40 segundoko diferentzia dutela, hori bat dator beste grafikotik atera dugun ondorioarekin, alegia, lagina jatorrizko audioaren 40. segundoan hasten dela. Grafikoan ikusten diren gainerako puntuak grabazioaren atzeko planoko soinuari dagozkio. Irudi hauetan garbi ikusten da Shazam-ek audioaren edukiak eta atzeko planoko soinuak bereizteko duen gaitasuna. Horri esker ingurune zaratatsuetan, adibidez taberna batean, grabatutako kantak atzeko planoko burrunbatik bereizteko gauza da.
Gehiago irakurri
Shazam-ek audioak identifikatzeko erabiltzen duen teknikari buruzko xehetasun gehiago jakin nahi izanez gero artikulu hau irakurtzea gomendatzen dizuet:
An Industrial-Strength Audio Search Algorithm
2003 Avery Li-Chun Wang
http://www.ee.columbia.edu/~dpwe/papers/Wang03-shazam.pdf
Irudien kredituak
Artikuluan erabilitako irudiak lehen aipatutako artikulutik hartuak dira eta copyright-a Avery Li-Chun Wang-ena da.
.cc-by-sa-lizentzia-oina {
width: 85%;
background-color: #ccc;
padding: 5px 20px;
max-width: 800px;
margin: 40px auto 0px auto;
}
.cc-by-sa-lizentzia-oina p a {
color: #333;
}
.cc-by-sa-lizentzia-oina p a:hover,
.cc-by-sa-lizentzia-oina p a:focus {
color:#999;
text-decoration:none;
}
Artikulu honek Creative Commons Aitortu-PartekatuBerdin 4.0 Nazioartekoa (CC BY-SA 4.0) lizentzia dauka. Kopiatu, moldatu, zabaldu eta argitaratzeko libre zara, beti ere, nire egiletza aitortzen baduzu eta baldintza beretan egiten baduzu.