Miten Shazam toimii
Shazamin avulla voit lähettää puhelimellasi tehdyn tallenteen lähes mistä tahansa kappaleesta, ja Shazam kertoo sinulle kappaleen nimen, esittäjän nimen ja muita tietoja kyseisestä kappaleesta. Nämä muut tiedot sisältävät usein linkkejä paikkoihin, joista voit ostaa kappaleen sekä kyseisen artistin tulevat kiertuepäivät. Viime vuosina Shazam on laajentanut kirjastoaan mainoksiin ja televisioon. Voit esimerkiksi shazamata mainoksen ja saada lisätietoa tuotteesta, mukaan lukien linkin tuotteen ostamiseen.
Vuonna 1999 perustettu Shazam on vanhempi kuin älypuhelin. Shazamin alkuaikoina käyttäjät soittivat laitteella, joka näytti tältä
Shazam-haku pystyy löytämään osuman jopa meluisissa ympäristöissä, kuten baareissa tai yökerhoissa, kunhan kyseinen kappale on jo Shazamin tietokannassa. Vähintään viiden sekunnin pituinen tallenne antaa parhaat tulokset. Voit aloittaa äänityksen mistä tahansa kappaleen kohdasta, ja Shazam lähettää sinulle osuman muutamassa sekunnissa. Jotta tämä palvelu toimisi hyvin, Shazamilla on kasvava tietokanta, jossa on yli 8 miljoonaa kappaletta/äänitiedostoa. Jos oletetaan, että keskimääräinen äänitiedosto on kolmen minuutin mittainen, kestäisi yli 45 vuotta soittaa jokaista kappaletta peräkkäin!
Tämän kokoisella tietokannalla heillä on suuri kattavuus, mutta miten Shazam löytää osuman niin nopeasti näin suuresta tietokannasta? Ensinnäkin, varsinaiset äänitiedostot eivät ole se, mitä etsitään, kun Shazam etsii kappaletta. Sen sijaan Shazamilla on äänisormenjälki jokaiselle tietokannassa olevalle äänitiedostolle. Shazam-käyttäjän lähettämästä äänitteestä tehdään myös äänisormenjälki, jonka avulla voidaan tehdä vertailuja tarkasti ja nopeasti. Nämä äänisormenjäljet koostuvat numeeristen tietojen kokoelmista. Jos ihmettelet, miten tämä tarttuva sävelmä, jota shazammaat, muutetaan numeroiksi, seuraava osio on sinua varten.
Miten ääni toimii
Yleisimmän määritelmänsä mukaan ääni on värähteleviä hiukkasia. On kolme elementtiä, jotka tekevät jokaisesta äänestä ainutlaatuisen: Amplitudi, taajuus ja aika. Amplitudi on värähtelyn koko, jonka havaitsemme äänen voimakkuutena. Taajuus on se nopeus, jolla värähtely tapahtuu. Äänen taajuus on se, minkä havaitsemme sävelkorkeudeksi. Taajuus mitataan hertseinä (Hz), jotka ilmaisevat, kuinka monta kertaa ääniaalto toistuu sekunnissa. Ihmiskorva kuulee ääniä 20 Hz:n ja 20 000 Hz:n välillä. Perinteisen 88-näppäimisen pianon alimman sävelen, A0:n, taajuus on 27,5 Hz. Musiikkisävelen taajuus kasvaa jokaisella oktaavilla logaritmisesti. Toisin sanoen jokaisen oktaavin taajuus on kaksi kertaa suurempi kuin sen alapuolella olevan oktaavin taajuus. Esimerkiksi A1:n taajuus on 55Hz, A2:n taajuus on 110Hz ja A3:n taajuus on 220Hz.
Kustakin äänitiedoston jaksosta valitaan voimakkaimmat huiput ja spektrogrammi pelkistetään hajontakuvioksi. Tässä vaiheessa amplitudia ei enää tarvita (kuva 1B).
Nyt meillä on käytössämme kaikki perustiedot, joiden avulla voimme verrata kahta sormenjälkiprosessin läpikäynyttä tiedostoa. Niiden yhteensovittaminen on kuitenkin mahdollista vain, jos Shazam-käyttäjä aloitti nauhoituksen täsmälleen sillä millisekunnilla, kun kappale alkoi. Koska näin ei juuri koskaan tapahdu, äänen sormenjälkien määrityksessä on lisävaiheita. Yhdistelmähakkeroinniksi kutsutun prosessin avulla hajontakuvion pisteet valitaan ankkureiksi, jotka yhdistetään muihin pisteisiin, jotka esiintyvät ankkuripisteen jälkeen kohdealueeksi kutsutun aika- ja taajuusikkunan aikana (kuva 1C).
Jokainen ankkuripistepari tallennetaan taulukkoon, joka sisältää ankkurin taajuuden, pisteen taajuuden sekä ankkurin ja pisteen välisen ajan, jota kutsutaan hashiksi. Nämä tiedot yhdistetään sitten taulukkoon, joka sisältää ankkurin ja äänitiedoston alun välisen ajan. Tietokannassa olevilla tiedostoilla on myös yksilölliset tunnukset, joiden avulla haetaan lisätietoja tiedostosta, kuten kappaleen nimi ja artistin nimi.
Miten löydetään vastaavuus
Nyt kun olemme luoneet sormenjäljet molemmille äänitiedostoille, jokainen Shazam-käyttäjän äänitteestä löytyvä ankkuripistepari lähetetään Shazamin tietokantaan etsimään yhteensopivia ankkuripistepareja. Tämä haku palauttaa kaikkien sellaisten kappaleiden äänisormenjäljet, jotka sisältävät hash-tapauksia. Kun meillä on kaikki mahdolliset osumat Shazam-käyttäjän äänitteelle, meidän on löydettävä aikaero Shazam-käyttäjän äänitteen alun ja tietokannasta löytyvän mahdollisen osuman alun välillä. Tämä ajallinen siirtymä voidaan laskea vähentämällä ankkuripisteparin esiintymisajankohta Shazam-käyttäjän tallenteessa Shazamin tietokannasta löytyvän äänitiedoston vastaavan hashin esiintymisajankohdasta. Jos merkittävällä määrällä täsmääviä hasheja on sama aikaero, kyseinen kappale määritetään täsmääväksi!
Kun se kuvataan hajontakuvioon, jossa y-akseli edustaa aikaa, jolloin hash esiintyy Shazam-käyttäjän tallenteessa, ja x-akseli edustaa aikaa, jolloin hash esiintyy Shazamin tietokannan äänitiedostossa, täsmäävät hashit muodostavat diagonaalisen viivan (kuva 3A). Saman datan histogrammissa, jossa y-akseli edustaa offset-aikoja ja x-akseli vastaavuuksien määrää, oikean offset-ajan kohdalla on suuri piikki (kuva 3B).
Tämä äänihakumenetelmä on riittävän tarkka löytääkseen osumia huolimatta siitä, että Shazam-käyttäjän nauhoitus sisältää kohinaa, kuten ihmisten puhetta, tien kohinaa ja jopa muita lauluja. Koska äänisormenjäljen luomien ankkuripisteiden hashien määrä on paljon suurempi kuin positiivisen hakutuloksen palauttamiseen tarvittavien ankkuripisteiden osumien määrä, ulkoisen melun peittämät ankkuripisteiden hashit eivät riitä estämään Shazamia löytämästä johdonmukaisesti osumaa äänitiedostolle tietokannasta. Koska hakualgoritmi on rakennettu löytämään osumia Shazamin tietokannassa olevaan nauhoitettuun äänitallenteeseen, jos olet konsertissa ja saat positiivisen osuman, kun shazammaat kappaleen, on todennäköistä, että esiintyjä käyttää taustaraitoja ja/tai huulisynkronointia. Toinen sivuvaikutus on, että Shazam palauttaa alkuperäisen äänitteen, josta näyte on peräisin, jos artisti ei ole yhdistänyt näytettä muihin ääniin eikä muuttanut näytettä millään tavalla.
Leave a Reply