i FRANCISCO VASQUEZ NUOTTIEN OPISKELUOHJELMA MATLABIN AVULLA Kandidaattityö Tarkastaja: Hanna Silén
ii TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Tietoliikenne-elektroniikan koulutusohjelma VASQUEZ FRANCISCO: Nuottien opiskeluohjelma Matlabin avulla Kandidaattityö, 55 sivua Toukokuu 2012 Pääaine: Signaalinkäsittely Tarkastaja: Hanna Silén Avainsanat: Vektorikvantisointi, Mel-asteikko, Kepstri,Diskreetti Fouriermuunnos Nuotinlukutaidon kehittäminen on yksi haastavimmista asioista uudelle musiikin opiskelijalle. Siksi on harjoiteltava paljon nuottien tunnistamista nuottiviivastolta. Tässä työssä tuotetaan apuväline, jolla voi harjoitella nuottien tunnistamista. Työn tavoitteena on rakentaa nuotintunnistusohjelma Matlabin avulla. Työ jakaantuu kahteen osaan: Kuvankäsittelyyn ja puheentunnistukseen, sillä ohjelmassa on kaksi eri käyttötapaa. Kuvankäsittely sisältyy ohjelman ensimmäiseen käyttötapaan, joka on nuotintunnistaminen näppäimistön avulla. Toisessa käyttömahdollisuudessa käytetään puheentunnistuksen menetelmiä, sillä nuotin tunnistetaminen tapahtuu puhutun äänen avulla. Tutkimus osoittaa Matlabin olevan hyvä työkalu kuvankäsittelyyn. Kolmen pienen kuvan avulla voidaan rakentaa kaikki mahdolliset nuotit nuottiviivastolla. Puheentunnistuksessa käytettiin kolmea piirreirroitusmenetelmää, lineaarista ennustusta ja kahta Fourierin spektriin perustuvaa menetelmää. Nämä menetelmät ovat MFCC (Mel-Frequency Cepstrum Coefficients) ja LFCC(Linear Frequency Cepstral Coefficient). Todetaan, että näistä kolmesta MFCC on paras menetelmä piirteiden irrotuksessa, sillä sen virheiden määrä on pienin.
iii ALKUSANAT Tämä on Tampereen teknillisen yliopiston signaalinkäsittelyn laitokselle tehtävä kandidaatintyö. Haluaisin kiittää Heikki Huttusta ja Hanna Siléniä hyvistä neuvoista työn etenemisen suhteen. Nokialla 10. toukokuuta 2012 Francisco Vasquez
iv SISÄLLYS 1 Johdanto... 6 2 Ääni... 7 2.1 Äänen fysikaaliset ominaisuudet... 7 2.2 Fourierin analyysi... 8 2.3 Fourier-sarja... 8 2.4 Fourier-munnos... 9 2.5 Äänen digitointi... 10 2.5.1 Suodatus... 11 2.5.2 Näytteenotto... 11 2.5.3 Kvantisointi... 12 2.5.4 Koodaus... 13 3 Puhe... 14 3.1 Puheentuottomekanismi... 14 3.2 Soinnilliset ja soinnittomat äänteet... 15 3.3 Äänihuulet... 15 4 Nuottikirjoitus... 17 4.1 Sävelnimet... 17 4.2 Oktaavi... 17 4.3 Nuottiavaimet... 18 5 Matlab... 20 5.1 Kuvan käsittely Matlabilla... 20 5.2 Matlab Guide... 21 6 Puheentunnistus... 23 6.1 Esikäsittely... 23 6.2 Esisuodatus... 24 6.3 Hiljaisuuden poistaminen... 25 6.4 Segmentaatio... 26 6.5 Ikkunointi... 26 6.6 Piirreirroitus... 27 6.7 Kepstri-analyysi... 29 6.8 Kepstrikertoimien määritys LP-analyysin avulla... 30 6.9 Fourierin spektriin perustuvat tekniikat... 33 6.9.1 MFCC... 34 6.9.2 LFCC... 36 6.10 Vektorin kvantisointi... 36 6.11 Euklidinen etäisyys... 38 7 Menetelmien valinta... 39 7.1 Kuvankäsittely... 39 7.2 Puheentunnistus... 40 7.2.1 Esisuodatus... 40
7.2.2 Hiljaisuuden poistaminen... 40 7.2.3 Segmentaatio ja ikkunointi... 41 7.3 Signaalin suodatus suodinpankilla... 42 7.4 Diskreetti kosinimuunnos laskelma(dct)... 43 7.5 Lineaarisen ennustuksen kepstrikertoimet... 44 7.6 Vektorikvantisointi... 44 7.7 Euklidinen metriikka... 44 8 Tulokset... 45 8.1 Ensimmäinen käyttötapa... 45 8.2 Toinen käyttötapa... 46 9 Yhteenveto... 53 Lähteet... 54 v
6 1 JOHDANTO Musiikin kirjoittamisen avulla, voidaan ymmärtää musiikkia ja soittaa monia eri melodioita. Tämän avulla melodiat säilyvät muuttumattomina sukupolvilta toisille. Uudelle musiikinopiskelijalle yksi hankalammista asioista on oppia lukemaan musiikkia. Opiskelun tukena on hyvä olla apuväline, nuottien tunnistamisen harjoittelua varten. Tämän työn tarkoituksena on tuottaa ohjelma, jonka avulla musiikinopiskelija voi oppia tunnistamaan nuotit nuottiviivastolta ja harjoitella nuotinlukua. Ohjelma näyttää kuvan nuotista. Täydellisessä vastauksessa käyttäjä antaa vastauksena oikean nuotin. Opiskelijalle on tarjolla eri mahdollisuuksia harjoitella nuotteja. Ensimmäinen on nuotin tunnistaminen, näppäimistön avulla. Tässä käyttömahdollisuudessa harjoitellaan myös tunnistamaan oktaaveja. Toinen mahdollisuus on sanoa ääneen pyydetty nuotti ja ohjelma tunnistaa sen. Puheen- ja sävelentunnistamiseen on kehitetty monia menetelmiä. Ohjelman edetessä voidaan päättää mikä näistä menetelmistä on sopivin. Tässä opinnäytetyössä tuotettava ohjelma sisältää kaksi eri käyttötapaa. Ensimmäisessä käyttötapa perustuu kuvankäsittelyyn ja toinen käyttötapa perustuu puheen tunnistamiseen. Ohjelma toteutetaan Matlabin avulla. Opinnäytetyön ensimmäiset luvut käsittelevät ääntä, puheentuottoa ja nuotteihin liittyviä käsitteitä. Sitä seuraavissä luvuissa käsitellään käytettyjen kuvan ja puheen käsittelyn menetelmiä ja niiden käsittelyä Matlabissa. Puheentunnistuksessa perehdytään kolmeen piirreirroitusmenetelmään, lineaariseen ennustukseen ja kahteen Fourierin spektriin perustuvaan menetelmään. Lopuksi esitellään tuotettu ohjelma ja kerrotaan tuloksista.
7 2 ÄÄNI Ääniaalto on pitkittäistä aaltoliikettä, joka etenee kiinteässä, nestemäisessä tai kaasumaisessa väliaineessa[1] 2.1 Äänen fysikaaliset ominaisuudet Ääni on fysikaalinen ilmiö, joka syntyy kun väliaineen partikkelit pakotetaan liikkeelle lepotilasta. Äänihuultemme liike aiheuttaa painevaihteluita ilmaan, jossa ääni etenee aaltoliikkeenä, jonka nopeus on n. 340 metriä sekunnissa, ja kun se saapuu korvaan, se aistitaan äänenä. Äänen tihentymien tai harventumien määrä sekunnissa on äänen taajuus, jonka mittayksikkönä käytetään hertsiä, Hz. Korva aistii ääninä värähtelyt, joiden taajuus vaihtelee 16 20 000 hertsin väillä [2] Värähtelyn voimakkuus, amplitudi (laajuus), määrää äänen voimakkuuden. Amplitudi on yhden jakson aikana tapahtuvan värähtelyn maksimaalinen poikkeama nollatasosta. Mitä suurempi amplitudi, sitä voimakkaampi ääni [3] Sointivärillä tarkoitetaan ominaisuutta joka saa äänen kuulostamaan erilaiselta, vaikka se on korkeudeltaan ja voimakkuudeltaan samanlainen. Soitinvärin ansiosta voidaan tunnistaa kuka tai mikä on tietyn äänen lähde
8 2.2 Fourierin analyysi Fourierin muunnoksen avulla aaltosignaalit siirretään aikatasosta taajuustasoon. Näin huomataan, että ääni koostuu eritaajuisista ja voimakkuuksista sinimuotoisista värähtelyistä. Kuva 2.1. Fourierin muunnos [4] Samoin kuin prisma jakaa valon eri aaltopituuksiin, Fourierin muunnos erottaa ääniaallot yksinkertaisimmiksi siniaalloiksi matalissa (bass), keski (midrange) ja korkeissa (treble) taajuuksissa.[4] 2.3 Fourier-sarja Jaksollinen aaltomuoto x voidaan esittää äärettömällä määrällä sini- ja kosinitermejä yhdessä vakiotermin kanssa. Esitystapa tunnetaan Fouriersarja ja kirjoitetaan: (1)
9 missä ja nimetaan perustaajuus, taajuuksia sanotaan :n n:ksi harmoonisiksi. 2.4 Fourier-munnos Fourier-muunnoksen matemaattinen kaava jatkuva-aikaiselle signaalille on: (2) missä. on kompleksinen funktio. Diskreetin Fourier-muunnoksenkaava on: (3) Signaalin X käänteinen diskreetti Fourier-muunnos on: (4) :n pituus on N pistettä ja on nimeltään Ykkösen N:s juuri (5) Kuvasta 2 nähdään, miten Fourierin-muunnoksen avulla signaali voidaan jakaa siniaatoisiin osiin.
10 Kuva 2.2. Signaalien summa ja Fourierin muunnos Kuvassa 2 kohdassa a nähdään 5 siniaallon signaalin summa. Kohdassa b esitetään 5 signaalin amplitudi taajuusalueella. 2.5 Äänen digitointi Ääni digitoidaan tietokoneeseen liitetyllä A/D-muuntimella Tätä operaatiota kutsutaan termillä analogia-digitaalimuunnos ja sen lyhenne on A/Dmuunnos. Analogia-digitaalimuunnoksessa analogisen signaalin arvot muunnetaan digitaalisiksi arvoiksi.tämä muunnos tekee äänen digitointiprosessia helpommaksi. Digitaalinen signaali on immuuni melulle ja muille häiriön aiheuttajille, joille taas analoginen signaali on herkkä. Digitaalisiksi muunnettavat signaali eivät yleensä ole puhtaita. Kuvassa 2.3 esitetään kohinainensignaali, joka muunnetaan digitaaliseksi. Kuva2.3 Kohinainen signaali Seuraavaksi esitellään vaiheet, jotka tehdään signaalia muunnettaessa digitaaliseksi.
11 2.5.1 Suodatus Ensimmäinen vaihe A/D-muunnoksessa on suodatus, joka voidaan tehdä alipäästösuodattimella. Suodatuksen tarkoituksena on suodatetaan pois suurtaajuiset häiriöt, joka on tehty kuvassa 2.4. Kuva2.4. Suodatettu signaali Kuvassa 2.3 kohina näkyi piikkeinä. Kuvassa 2.4 kohina on suodatettu pois. 2.5.2 Näytteenotto Näytteenotossa jatkuva signaali muutetaan ajan suhteen diskreeteiksi tasoiksi. Näytteenotossa signaalista otetaan näytteitä tietyin välein. Jos näytteenottoväli on vakio kuten kuvassa 2.5, on kyseessä tasavälinen näytteenotto. Näytteenottotaajuus kertoo montako näytettä signaalista otetaan yhdessä sekunnissa[5]. Kuva 2.5 Näytteenotto
12 Fyysikko Henri Nyquistin määrittelyn mukaan näytteenottosignaalin taajuuden on oltava vähintään kaksinkertainen mitattavan signaalin korkeimpaan taajuuteen nähden, muutoin signaali laskostuu eli alinäytteistyy (aliasointi). Taajuudesta käytetään nimeä Nyquistin taajuus. Kuvan 2.6 kohdassa a esitetään ensin yksittäinen taajuus. Kohdassa b taajuudesta otetaan tasavälisesti näytteitä. Kohdassa c yksittäisestä signaalista otetaan näytteitä 1.5 jaksoissa, joka saa signaalin näyttämään aallon sijaan viivalta. Tätä kutsutaan alias-ilmiöksi. [7] Kuva 2.6. Aliasointi [6] 2.5.3 Kvantisointi Kvantisoinnissa näytepisteiden arvot pyöristetään vastaamaan lähimpään mahdolliseen digitaaliarvoon. Tuloksena diskreetti signaali, jolla on rajallinen määrä tasoja. Esim arvo 2,2 V pyöristetään lähimpään kvantisointitasoon 2.0 V. Kuva 2.7. Kvantisointi
13 Kuvassa 2.7 huomataan, että kaikki amplitudit ovat pyöristetty kuuteen tasoon. 2.5.4 Koodaus Koodauksen tarkoituksena on saattaa signaali lopulta tietokoneen ymmärtämään muotoon eli binäärimuotoon. Esimerkiksi arvoa 2 V vastaa koodi 010.
14 3 PUHE Puhe-elimistö, kurkunpää ja ääntöväylä, on tärkeä puhentuottamisen kannalta. Tämä johtuu siitä, että äänteet muodostetaan ääntöväylässä. Puheen tuottamiseen tarvitaan keuhkoja, koska se perustuu uloshengitykseen. [13] 3.1 Puheentuottomekanismi Puheentuottamismekanismi muodostuu keuhkojen, henkitorven, kurkunpään, suun ja nenän yhteistyön tuloksena. Kuvassa 3.1. on esitettynä puheen tuottomekanismi. Äänteiden ja puheen tuottaminen on näille elimille toissijainen tehtävä, sillä niiden päätehtäviä ovat maistaminen, haistaminen, hengittäminen ja nieleminen. [13] Kuva 3.1 Puheentuottomekanismi[13] Kurkunpäässä muodostuu puheen sointi. Ilma nousee keuhkoista ylös kohti kurkunpäätä. Siellä sijaitsevien äänihuulten värähdellessä, syntyy puheen sointi.
15 Kuva 3.2 Kurkunpää ja äänihuulet[13] Kuvasta 3.2 nähdään kurkunpää ja äänihuulet. Puheen äänne on soinnillinen, jos äänihuulet värähtelevät. 3.2 Soinnilliset ja soinnittomat äänteet Vokaalit ääntyvät yleensä soinnillisina ja jotkin konsonantit kuten d, m, n,h, l, r, v, j. Konsonantit p, t, k ja s ovat taas soinnittomia. Kaikki äänteet ovat kuitenkin soinnittomia kuiskatessa. [13] 3.3 Äänihuulet Äänihuulia on kaksi ja ne ovat kiinnittyneet kurkunpäätä suojaavaan kilpirustoon. Ne ovat pituudeltaan n.1,5 2,5 senttimetrisiä lihaksia. Niskan puolelta ne kiinnittyvät kannurustoon. Muodoltaan se on ylhäältä katsoen tasasivuinen teräväkulmainen kolmio, jonka kanta on niskan puolella ja terävä kulma kaulan puolella. [13] Tämä kolmio nähdään kuvasta 10. Kuva 3.3 Kurkunpään osat ylhäältä katsottuna[13] Puhuttaessa säädetään kannusrustot ja äänihuulet sellaiseen asentoon, että
16 puheen tuotto on mahdollista. Tällä säädöllä voidaan hallita myös sitä, normaalia puhetta vai kuiskausta. Normaalipuheessa äänihuulia voidaan käyttää erottamaan soinnilliset ja soinnittomat äänteet. [13]
17 4 NUOTTIKIRJOITUS Sävelnimet, oktaavialat ja kromaattiset merkit ovat osa notaatiota eli nuottikirjoitusta. Varsinkin 1900-luvun loppupuoliskolla säveltäjät lisäsivät nuottikirjoitukseen uusia artikulointiin ja muuhun esityskäytäntöön liittyviä merkkejä.[14] 4.1 Sävelnimet Sävelet ovat nimetty aakkosten mukaan. Suomessa, Saksassa ja Skandinaviassa sävelnimet ovat a, b, c, d, e, f g ja h. Sävel c on duuriasteikon perussävel ja sitä yleisesti käytetään lähtösävelenä. Sävelistä c d e f g a h muodostuu sävelnimien nouseva asteittainen järjestys, joita kutsutaan myös juurisäveliksi. [14] Solmisaatiotavuja käytetään romaanisissa kielissä esimerkiksi espanjassa, ranskassa ja italiassa käytetään myös sävelten absoluuttisen korkeuden osoittavina niminä, jolloin do on C, re on D, mi on E jne. 4.2 Oktaavi Sävelet, jotka sijaitsevat oktaavien päissä, ovat saman kuuloiset. Näin niiden sävelnimetkin ovat samat. Niille annetaan kuitenkin numero eorttamaan niiden oktaaviala. C1 on esimerkiksi yksiviivaisessa oktaavialassa sijatseva C. [14] Kuvassa 4.1 näkyvän subkontraoktaavin C:n taajuus on teoreettisesti kuuloalueen alaraja, 16,3 Hz.
18 Kuva 4.1 oktaavialat[14] Vain suuren ja pienen oktaavialan sävelet merkitään ilman indeksimerkkejä. Apuviivoja ollessa useita, on sävelkorkeuden hahmottaminen vaikeaa. [14] Tästä syystä käytetään oktaavisiirtomerkkejä, jotka nähdään kuvasta 4.1 4.3 Nuottiavaimet Tietyn sävelen paikan osoittamiseksi nuottiviivastolla käytetään nuottiavaimia eli klaaveja. Diskanttiklaavi eli G-avain on yleisimmin käytetty nuottiavain. [14] Kuva 4.2 G-avain Kuvassa 4.2 on esitettynä G-avain. Alun perin se muistutti g-kirjainta. Kuitenkin 1500-luvulla se alkoi muistuttaa s-kirjainta ilmeisesti sen tähden,
että säveltä g vastasi tavu Sol. [14] 19
20 5 MATLAB 5.1 Kuvan käsittely Matlabilla Kuva voidaan määritellä kaksiulotteisena funktiona I(x,y), jossa x ja y ovat taso tai avaruudellisia koordinaatteja ja arvoa missä tahansa pisteessä (x,y) kutsutaan intensiteetiksi. Digitaalinen kuva koostuu siis äärellisestä määrästä elementtejä. Joka elementti tunnistetaan sijaitinsa ja arvonsa perusteella.pikseli on yleisimmin käytetty termi osien ilmaisemiseksi digitaalisessa muodossa.[8] Matlabissa on neljän tyyppisiä kuvia. Binaarikuva tunnetaan myös kaksisävykuvana. Binaarikuvassa jokainen pikseli olettaa yhden kahdesta diskreetin arvosta olevan joko 1 tai 0. Indeksoidussa kuvassa, jota sanotaan myös pseudokuvaksi(väärävärikuva), kuvan pixelit eivät esitä suoranaisesti voimakkuustasoa, vaan värikartan tai väripaletin indeksi. Harmaasävyä sanotaan myös harmaatasoksi, harmaaskaalaksi tai harmaa-asteikkoksi. [9] Kuvassa 5.1 on esimerkki harmaansävykuvasta.
21 196 193 197 194 195 199 192 184 196 195 200 195 190 194 187 199 197 201 190 174 181 204 192 188 184 185 178 184 176 179 182 171 175 169 170 163 176 176 172 179 168 163 Kuva 5.1. Harmaasävykuvat käytettäessä 8 bittiä Intensiteettikuvissa matriisin alkiot ovat kokonaislukuja ja luku tulkitaan pikselin kirkkautena. 0 on musta ja kahdeksanbittisten kokonaislukujen tapauksessa 255 valkoinen. RGB-värimalli. RGB-värimallissa jokainen pikseli on määritetty kolmen arvon avulla,jotka ovat punainen sininen ja vihreä. Rivi, sarake, 3-matriisi määrittelee punaisen, vihreän ja sinisen värin osia joka erilliselle pikselille [9] 5.2 Matlab Guide Matlabissa on käytettävissä visuaalinen ohjelmointiympäristö eli Guide, jonka avulla voi tehdä ja toteuttaa ohjelmia, jotka vaativat jatkuvaa tietojen syöttöä. Siinä on kaikkien Visual-ohjelmien perusominaisuudet kuten Visual Basic ja VisualC++ Uuden ohjelman aloittamiseksi kirjoitetaan seuraava komento: >> guide Tämän seurauksena aukeaa ikkuna, joka on esittetynä kuvassa 5.2.
22 Kuva 5.2. GUIn alkuikkuna. Valittaessa toiminnon Blank GUI aukeaa kuvassa 5.3 esitetty ikkuna: Kuva 5.3. GUIn suunnitteluympäristö. Kuvassa 5.3 nähtävässä GUIn suunnitteluympäristössä aloitetaan tämän opinnäytetyön ohjelman toteutus. Guide sovellus käsittää kaksi tiedostoa:.m ja.fig. Tiedostossa.m sijaitsee graafisia elementtejä vastaavat koodit.fig Aina kun lisätään uusi graafinen elementti luodaan automaattisesti tiedostoon.m koodi. Graafisen käyttöliittymän suorittamiseksi kirjoitetaan tiedoston nimi komentoikkunaan.
23 6 PUHEENTUNNISTUS Voidakseen suorittaa puheentunnistukseen liittyviä prosesseja on tunnettava tiettyjä ominaisuuksia. Nämä auttavat luomaan tarvittavan pohjan äänen piirteiden ymmärtämiselle ja niille tehtävälle käsittelylle sen mukaan mitä halutaan lopputulokseksi. Puheentunnistuksessa prosessin suunnitelma on yleensä kuvan 6.1 mukainen. Esikäsittely Parametrisointi Puheentunnistus Kuva 6.1. Puheentunnistus prosessin suunnitelma Tarvittavan pohjan saamiseksi puheentunnistustusta varten on ymmärrettävä kuvassa 6.1.esitetyt vaiheet, jotka selitetään tarkemmin seuraavaksi. 6.1 Esikäsittely Saadaksemme tärkeää akustista tietoa järjestelmään tulevasta puhesignaalista, on se ensin esikäsiteltävä.kuvassa esitetään esikäsittelyn vaiheet
24 Esisuodatus Hiljaisuuden poisto Segmentaatio -Näytteiden määrä yhdessä kehyksessä - Näytteiden määrä siirtymässä Ikkunointi Parametrisoitava signaali Kuva 6.2. Signaalin e sikäsittely Kuvan 6.2 vaiheita tarkastellaan lisää seuraavissa kappaleissa. 6.2 Esisuodatus Esisuodatuksessa korostetaan äänen signaalin korkeita taajuuksia, joka kompensoi huulten säteilyvaikutuksen aiheuttamaa korkeiden taajuuksien vaimenemista. Se poistaa DC (vakiovirta) komponentin signaalista tasoittaen sen spektrisesti. Tätä varten käytetään ensimmäisen asteen digitaalista ylipäästösuodinta.
25 Suodin differenssiyhtälö on(6) ja sen z-siirtofunktio on (7) (6) on sisään tulevan äänen signaali ja suodatettu signaali (7) 0.9 a 1 Kuva 6.3 emphasis suodin 6.3 Hiljaisuuden poistaminen Ääninäytteen alun ja lopun paikallistaminen on hyvin tärkeä äänen käsittelyprosessi. Tunnistusprosessin tarkkuus riippuu suurelta osin signaalin oikeasta segmentoinnista. Puheentunnistuksessa sillä, että pystyy määrittämään millä kohtaa puheenpätkä on tiettyjä etuuksia. Se :
26 Vähentää käsiteltävän tiedon määrää Vertaa vain hahmon tietoa. Välttää kohinan tai taustasignaalien takia koituvia sekaannuksia Hiljaisuuden poistamiseksi valittu menetelmä on signaalin energian vertaaminen kaavan (8) avulla. (8) on diskreetin signaalin energia ja välillä Tämä menetelmä on yksinkertainen, sillä puheen energia on huomattavasti suurempi kuin hiljaisuuden. Näitä vertaamalla voidaan poistaa osiot jotka eivät sisällä puheen signaalia. 6.4 Segmentaatio Puheen signaalia ei voida analysoida kerralla kokonaan, vaan se pitää segmentoida. Jokainen segmentti on kehys, jossa on tietty määrä näytteitä ja kehyksien välillä on siirtymä. Jotta voidaan suorittaa Fourierin analyysi lyhyessä ajassa, jokainen segmentti oletetaan liikkumattomaksi. Sanotaan, että aika jakso jolloin signaali oletetaan liikkumattomaksi on 20 ja 40 ms välillä. 6.5 Ikkunointi Hamming ikkunan käyttö auttaa korostamaan keskellä ikkunaa olevia näytteitä ja vaimentaa kehyksen reunoilla olevaa signaalia. Menetelmä on yksinkertainen. Jokainen kehys kerrotaan vastaavalla Hamming- ikkunalla.
27 (9) N on ikkunan näytemäärä Kuva 6.4. Hamming- ikkuna, kun N=50. 6.6 Piirreirroitus Tärkeä vaihe puheentunnistus järjestelmän suunnittelussa on valita parhain parametrinen esitys. Tämän esityksen päämääriä ovat pakata ääntä vastaavat tiedot, eliminoiden tietoa, joka ei kuulu foneettiseen tiedon analyysiin ja irroitaa puhesignaalin piirteet, jotka edistävät merkittävästi foneettisten eroavuuksien löytämistä. Nämä piirteet eivät ole havaittavissa aika tai taajuusanalyysin avulla vaan niiden löytäminen vaatii syvempää analyysia kuten kepstri, josta kerrotaan lisää seuraavaksi.
28 Parametrisoitava signaali FFT kehyksen Fourier-muunnos Suodinpankki (sp) -lineaarinen (LFCC) -kuuloanaloginen(mfcc) -Vakioamplitudi -Logaritminen amplitudi sp * tehospektri Diskreetti kosinimuunnos (DCT) Piirteet Kuva 6.5 Signaalin parametrisointi prosessi
29 6.7 Kepstri-analyysi Kepstri on paljon käytetty työkalu puheen parametristen signaalien esittämisessä. signaalin Fourierin muunnoksen logaritmin käänteinen Fourier-muunnos. Fourier-muunoos Logaritmi Fourier- Käänteinen muunoos Kuva 6.6 Kepstrin arvon laskenta prosessi. Kepstri arvo saadaan laskettua kaavassa 10 esitetyllä tavalla (10) On olemassa reaalinen kepstri ja kompleksinen kepstri riippuen siitä, onko logaritminen funktio määritelty reaaliarvoille vai kompleksiarvoille. Ero näiden välillä on se, että kompleksikepstri voidaan rekonstruoida, mutta reaali ei voi, koska tieto häviää vaiheessa. Kaavassa 11 reaalikepstri on määritelty signaalin Fourierin muunnoksen itseisarvon logaritmin käänteisenä Fourierin muunnoksena. (11) Kuvassa 6.7 on esitettynä kepstrin laskennan vaiheet. Alkuperäinen signaali esitetään kohdassa "a" ja kohta "b" sen Fourierin muunnoksen. Kohdassa "c" on signaalin Fourierin muunnoksen itseisarvon logaritmi ja kohdasta "d"
30 nähdään signaalin Kepstri. Kuva 6.7. Kepstrin laskennan vaiheet Kepstrin avulla voidaan signaalista erottaa äänilähde ja ääniväylän siirtofunktio. Puheentunnistuksessa käytetyimmät parametriset esitykset, jotka perustuvat Kepstrin analyysiin voidaan jakaa kahteen ryhmään. Ryhmäjako tehdään spektrin lineaaliseen ennustukseen ja Fourierin spektriin. [10] 6.8 Kepstrikertoimien määritys LP-analyysin avulla Lineaarista ennustusta (engl. Linear Prediction) pidetään puheenkäsittelyssä tehokkaana menetelmänä, koska signaali voidaan parametrisoida hahmoiksi, joiden avulla se voidaan rekonstruoida. LPCC (Linear Predictive Cepstral Coefficients) tekniikassa
31 Kepstrikertoimet arvioidaan LPC-algoritmin avulla. Tähän perustuvan mallin avulla voidaan laskea seuraava signaalin näyte siirtofunktion avulla, joka määritellään kaavan (12) avulla (12) kaavassa G on suotimen arvo riippuen signaalin ominaisuudesta ja suotimen kertoimet, joka mallintaa ääniväylää. ovat Edellä mainitun analyysin perusidea on, että ääni voi muotoutua p näytteiden lineaalisen yhdistelmän kautta ja herätesignaalin avulla, kuten esitetään seuraavassa kaavassa (13) (13) Kaavassa (13) on ääniväylää mallintava suotimen sisäänmeno. Ongelma koostuu ennustuskertoimien ak määrittämisestä ja G suotimen arvosta. Ennustuskertoimia käytetään Kepstrin kertoimien laskennan parametrisointi prosessissa. Esimerkiksi signaalille Sn voidaan laskea ennustaja seuraavan kaavan (14) avulla. (14) kertoimien ennustajien määrittäminen tehdään minimoimalla asteen ennustusvirhe, joka tapahtuu signaalia aproksimoitaessa. Tämä on esitettynä kaavassa (15)
32 (15) Kaavassa (15) on virheen signaali ja on puheen signaali. (16) Kaavassa (16) E on odotusarvon operaattori Jotta saadaan selville minimiennustusvirhe lasketaan suhteessa kertoimiin. Näin saadaan kaava (17) derivaatta (17) Minimiennustusvirhe määritellään kaavassa (18). (18) Kaavan (18) mukaan kvadraattinen minimikeskiarvo voidaan kirjoittaa autokorrelaation funktiona seuraavan yhtälön mukaan (19) Näitä yhtälöitä kutsutaan normaaleiksi yhtälöiksi tai Yule-Walker yhtälöiksi. Kertoimet optimaalisesta ennustin saadaan selville ratkaisemalla yhtälöt tuntemattomilla arvoilla. Koko tämän analyysin tuloksena huomataan, että käyttämällä LPC:tä lineaarisen ennustuksen tekniikkana, kaikista mahdollisista
33 parametriyhdistelmistä jotka voidaan saada puheen mallintamisesta autoregressiivisenä prosessina, kertoimet, jotka mallintavat ääniväylää, voidaan käyttää kepstri-kertoimien tai LPCC-kertoimien laskemista varten kaavan (20) avulla (20) Näin nähdään, miten ääniväyliä mallintavien suotimen kertoimien lineaarinen ennustus on hyödyllinen esimerkiksi puhesignaalin spektrisen tehotiheyden arviointiin tai kuten tässä tapauksessa puheen tunnistuksessa käytettyjen Kepstrikertoimien arviointiin. 6.9 Fourierin spektriin perustuvat tekniikat Tätä parametrisointitekniikkaa varten, puhesignaalin spektriset ominaisuudet, johdetaan lyhytaikaisesta Fourier-muunnoksesta. Tämä esitetään funktiossa (21) Kavassa (21) on puhesignaali ja edustaa ikkuna-funktiota, esim. Hamming-ikkuna. Tällä tavoin toteutetaan signaalille signaalin lokalisointi analyysi, ikkunan sovelluksen avulla, ajassa kaikille taajuuksille. Seuraavaksi esitellään kaksi sovellusta Fourierin spektriin perustuvista parametrisointi tekniikoista
34 6.9.1 MFCC Mel-kepstrikertoimet tai MFCC (Mel-Frequency Cepstrum Coefficients) ovat käyttökelpoisia puhesignaalin piirreirroituksessa, sillä ne perustuvat kuulon kriittisen taajuuden kaistanleveyden tunnettuun vaihteluun. Suotimet jotka käyttävät MFCC tekniikkaa ovat sijoitettu lineaarisesti alle 1000 Hz taajuuksille. Näiden tarkoituksena on ottaa puheesta tärkeät foneettiset ominaisuudet. Tätä asteikkoa kutsutaan Mel-asteikoksi. Kaavassa U on esitettynä Mel-asteikon matemaattinen yhtälö. (22) MFCC laskennan vaiheet ovat: 1) Lasketaan lyhyenaikavälin Fourierin muunnos X, jokaiselle esikäsittelyvaiheessa saadulle kehykselle kaavassa (23) esitetyn yhtälön avulla (23) missä 2) neliön magnituude on painotettu suotimien sarjan avulla, jotka jakautuvat Mel-asteikon mukaan. Sen jälkeen lasketaan suotimen l-ksi energia kaavassa (24) esitetyn yhtälön avulla. (24) Missä ja ovat suotimen l-ksi alin ja ylin rajataajuus.
35 Mel:in asteikkoon linjaan asetellun suodinpankin muoto esitetään kuvassa 8. Käytetyin suodin muoto on kolmio, mutta muitakin muotoja voi olla, kuten Hamming tai Kaiser Kuva 6.8. Kolmio suodinpankki 3) Lopuksi logaritminen Mel spektri muunnetaan uudestaan aika-alueella käyttäen diskreettiä kosinimuunnosta, koska kepstrikertoimet ovat reaalilukuja. Seuraavassa kaavassa esitetään yhtälö, jonka avulla nämä kertoimet lasketaan. (25) Kaavassa 25 valitaan lukujen 10 ja 20 väliltä. on edustaa kepstrikertoimien lukumäärää, jotkä yleensä Edellä kuvaillun prosessin avulla jokaiselle puhekehykselle, jonka kesto on n. 30 ms siirtymä mukaanlukien, lasketaan kepstrikertoimien yhdistelmä. Tämä on spektrin tehotiheyden kosinimuunnoksen tulos mel-asteikolla ilmaistuna. Tätä kertoimien yhdistelmää kutsutaan akustiseksi vektoriksi. Sen jokainen sisääntulo muunnetaan tämän prosessin avulla akustisten
36 6.9.2 LFCC vektorien sarjaksi, jotka edustavat puheen tärkeimpiä ominaisuuksia, jotka ovat välttämättömiä puheentunnistus prosessissa. Toinen Fourierin spektriin perustuva parametrisointi sovellus on LFCC (Linear Frequency Cepstral Coefficient). LFCC:n arvojen löytämiseksi tehdään samat kolme vaihetta, kuin MFCC:ssä. Erona on että suodinpankin muodostamat suotimet ovat lineaarisessa asteikossa. Kuvassa 6.9 on esitettynä näin luotu suodinpankki. Kuva 6.9 lineaarinen suodinpanki Akustinen vektori luodaan algoritmin avulla, joka laskee kepstrikertoimet LFCC menetelmän kautta. 6.10 Vektorin kvantisointi Puheen tunnistuksessa vektorin kvantisoinnin tarkoituksena on saada mistä tahansa kepstrikertoimen matriisista, standardi kokoinen matriisi, kuitenkin ollen alkuperäisen matriisin kaltainen. Esimerkiksi käyttäjältä kerätään
37 parametrejä, johon on tarkoitus verrata tunnistettavan nuotin nimeä. Parametreistä voidaan kvantisoimalla muodostaa mallit, joihin käyttäjän puhetta voidaan verrata myöhemmin. Siksi kepstrikertoimien avaruus jaetaan toisensa poissulkeviin konvekseihin joukkoihin ja jokaiselle lasketaan sentroidi. Sentroidien joukkoa sanotaan koodikirjaksi. Sanalle tulee laskea oma koodikirja sen karakterisointia varten. Kuvassa 6.10 on esitettynä neljä sentroidien laskuvaihetta. (1) (2) (3) (4) Kuva 6.10 Sentroidien laskuvaiheet[11] Kvantisoinnissa prosessoitavan tieto tiivistetään, jonka seurauksena tiedon määrä vähenee. Tämän vuoksi on mahdollista, että jotkin saman tyyppiset sanat oletetaan samoiksi.
38 6.11 Euklidinen etäisyys Puheen tunnistuksessa Euklidista etäisyyttä käytetään koodikirjojen välisten etäisyyksien laskemisessa. Näiden laskemisessa käytetään Euklidista etäisyyden kaavaa[12]. Kaavassa (26) on Euklidisen etäisyyden laskentakaavaa. (26)
39 7 MENETELMIEN VALINTA 7.1 Kuvankäsittely Jokaisen nuotin sävelkorkeus esitetään nuottiviivastolla. Nuotit ovat rajattu välille Do3 ja Si6 G-avaimen nuottiviivastolla, joten on neljäkymmentäkahdeksan nuotti mahdollisuutta. Kaikki mahdolliset nuotit voidaan esittää G-avaimen, neljäsosanuotin ja ylennysmerkin avulla. lisäksi tiedetään, että M(x,y) pikseli on väriltään musta, jos sille annetaan arvoksi nolla. Käsittelyyn valittiin Harmaasävykuva, koska nuottikirjoituksessa ei tarvita värejä. Ensin rakennettiin tyhjä tausta johon sijoitetaan musiikkiin liittyvät kuviot. Kooksi valittiin 500*500 pikselia(500 rivi, 500 sarake ). Sitten matlabiin syötettiin seuraava koodi: F=500; S=500; P=zeros(F,S); P(:,:)=255; Kaikkien pikselien arvo tulee olla 255 jotta niiden vääri olisi valkoinen, kuten mainittu kohdassa 5.1. Sen jälkeen luotiin nuottiviivaston viivat ottaen huomioon sen että mustan pikselin arvo nolla. Lopuksi kaikki kuvat yhdistetään taustaan laittaen pienimmän pikselin arvon, kuten kuvassa 7.1 on esitettynä.
40 K1 K2 min(k1,k2) Kuva 7.1. Matlabin kuvia yhdistelmä 7.2 Puheentunnistus 7.2.1 Esisuodatus Esisuodatuksessa käytettiin kaavaa (6) ja kertoimen arvoksi annettiin 0.95 Kuva 7.2. Esisuodatus 7.2.2 Hiljaisuuden poistaminen Hiljaisuuden poistamiseksi valittu menetelmä on signaalin energian vertaaminen kaavan(8) avulla.
41 Ensiksi lasketaan koko signaalin keskimääräinen energia. Sitten signaali jaetaan 10 ms osioihin. Jokaiselle osiolle lasketaan keskimääraiset energiat ja niitä verrataan koko signaalin keskimääräiseen energiaan. Useiden kokeilujen jälkeen löytyi tälle tapaukselle sopiva kynnysarvo, joka on 0.02 (2%). hiljaisuus ääni hiljaisuus Kuva 7.3 Kirjaimen a leikattu äänisignaali Kuvan 7.3 alkuperäinen 2 sekunnin mittainen signaali on leikattu 0.7 sekunttiin 7.2.3 Segmentaatio ja ikkunointi Tässä tutkimuksessa kehyksessä on 441 näytettä ja siirtymä on 1/3 osaa kehyksestä. Kuva 7.4. Puhesignaali jaettuna 10ms kehyksiin ja suodatettu Hammingin ikkuna.
42 Kuvassa 7.5. on nähtävissä alkuperäinen signaali ja Hamming-suodatuksen jälkeinen signaali. Kuva 7.5 Kehyksen Hammingin suodatuksen tulos 7.3 Signaalin suodatus suodinpankilla FFT laskeminen: funktion fftkehys avulla lasketaan Fourierin muunnos matriisin M joka sarakkeesta. Näin saadaan matriisi Mf joista joka kehys sisältää Fourier-munnoksen. Suodinpankin luominen: Suodinpankin luonti tehtiin suodattimet kautta. Siinä on vaihtoehtona luoda suodinpankki lineaarisesti Mel-asteikkoon tai lineaariseen asteikkoon. Pankin muodostamien suotimien määrän voi valita. Lisäksi voi valita ikkuna tyypin (kolmio tai kaiser) ja korkeuksien muodon(vakio tai logaritminen muoto). Kuva 7.6 kuvaa suodinpankkia.
43 Kuva 7.6 Suodinpankki Tässä työssä molemmille asteikoille valittiin 20 suodinta, sillä aiemmissa tutkimuksissa on todettu 20 kertoimen olevan lukumäärä, joka muodostaa tasapainon algoritmien nopeuden ja parametrisoinnin laadun välillä. Funktio tuottaa matriisin suod, jonka koko on 20 riviä kertaa 221 saraketta. Spektrisen tehotiheyden laskenta ja suodinpankki-sovellus: Spektrinen tehotiheys on matriisin Mf magnituudin neliö, joka saatiin soveltamalla funktiota fftkehys ja kertomalla se suodinpankilla. Tämän vaiheen tulos on Z matriisi, joka on täysin reaali. Kun käytetään Fourierin muunnoksen magnitudin neliötä menetetään tietoa signaalin vaiheesta. Vaikka äänisignaalia ei voi saada takaisin, saadaan hyödyllisiä ominaisuuksia puheen tunnistusta varten. 7.4 Diskreetti kosinimuunnos laskelma(dct) Tässä vaiheessa kaikki edellisessä vaiheessa saatu tieto muunnetaan aikaalueelle. Tämä on tärkeä vaihe kepstrikertoimien laskennassa. Diskreetti kosinimuunnos tarkoittaa reaali osaa käänteisestä Fourier-muunnoksesta. Tämän prosessin tulos on kepstrikertoiminen matriisi.
44 7.5 Lineaarisen ennustuksen kepstrikertoimet Lineaarisen ennustuksen kepstrikertoimien laskenta perustuu kaavaan (20). Tästä kaavasta huomataan, että aluksi laskelmalla signaalin LPC:n, voi laskea sen LPCC:n. Tämän prosessi tehdään funktion lpcc avulla. Tämän lisäksi käytetään Matlabin funktiota lpc. Lasketaan matriisin M LPCC:t ja tulokset tallennetaan matriisiin v. 7.6 Vektorikvantisointi Vaikka signaalin piirteet ovat jo selvillä, vertailuja ei vielä voida tehdä. Vertailuja varten matriisien kokoa tulee muuttaa, mutta niiden tulee säilyä samankaltaisina alkuperäisen matriisin kanssa. Tämän toteutukseen käytetään menetelmää vektorikvantisointi. Tässä käytetty algoritmi on LGB 1. Tässä opinnäytetyössä käytetään vektorikvantisointi menetelmää siten, että sentroidin määräksi saadaan 16. Tämän jälkeen mille tahansa äänen signaalille saadaan piirrematriisi, joka on kokoa 20x16. 7.7 Euklidinen metriikka Tämä on viimeinen vaihe puheen tunnistuksessa. Tämän vaiheen tavoitteena on saada numeerinen arvo, joka edustaa pienintä etäisyyttä puhujan parametrisoidun äänen ja tietokantaan tallennettujen äänen parametrien välillä. 1 LGB-menetelmästä kerrotaan lisää sivulla www.data-compression.com/vq.shtml
45 8 TULOKSET 8.1 Ensimmäinen käyttötapa Ensimmäiselle käyttötavalle rakennettiin ohjelma, joka toimii asian mukaisesti. Kuvat näkyvät selvästi ja ohjelma tarkistaa oikein käyttäjän antamat vastaukset. Lisäksi ohjelma tunnistaa eri sävelnimijärjestelmät. Kuvassa 8.1 on kuva nuotista D viidennessä oktaavissa. Käyttäjän antama vastaus on väärä. Ohjelma ilmoittaa tästä ja kertoo myös oikean vastauksen. Kuva 8.1 Väärä vastaus Kuvassa 8.2 ohjelmalle on annettu osittain oikea vastaus. Ohjelma täydentää vastauksen kertomalla oikean oktaavin.
46 Kuva 8.2 Osittain oikea vastaus Kuvassa 8.3 ohjelmalle on annettu oikea nuotti ja sen oktaavi. Kuva 8.3 Täydellinen vastaus 8.2 Toinen käyttötapa Esikäsittely ja parametrisointi vaiheet sujuivat hyvin. Äänisignaali voitiin leikata ja korostaa menetelmän mukaan suunnitellulla tavalla. Kaikkia tässä opinnäytetyössä käytettyjä äänen parametrisointimenetelmiä tutkittaessa huomattiin, että sopivin menetelmä oli FMCC. Seuraavissa kuvissa selitetään mitä sanalle tapahtuu parametrisointivaiheessa.
47 Kuvassa 8.4 esitetään Fourier-muunnos sanan a eräästä kehyksestä. Kuva 8.4 Fourier-muunnos eräästä sanan a kehyksistä. Tulokset tämän kehyksen suodattamisesta eri suodinpankkien kautta esitetään kuvissa 8.5 ja 8.6. Kuva 8.5 Vokaalin a kehys suodatettuna mel-asteikkoon, muotoihin kolmio ja Kaiser. Näiden kahden prosessin erona on, että suodinpankkissa suotimet ovat eri asteikoissa. Kuvassa 8.6 esitetään kehys suodatettuna lineaariseen asteikkoon.
48 Kuva 8.6 Vokaalin a kehys suodatettuna lineaariseen asteikkoon muotoon kolmio ja kaiser. Kun lasketaan akustisia vektoreita huomataan, että suurin ero on FMCC ja LFCC pisteiden sijainnissa. Kuva 8.6 Kepstri-kertoimet mel-asteikossa(mfcc) ja lineaarisessa asteikossa (LFCC). Kuvassa 8.7 esitetään kolmen tutkitun menetelmän akustiset vektorit. Ne ovat keskenään erilaisisa, sillä ne irroittavat puhesignaalin eri piirteitä. Huomataan, että LPCC:t eroavat MFCC:stä ja LFCC:stä sijaintinsa ja skaalansa puolesta. Kustakin käytetystä menetelmästä saadaan erilainen esitys samasta äänisignaalista.
49 Kuva 8.7, Parametrinen esitys vokaalista a LPCC:n MFCC:n ja LMCC:n kautta Seuraavissa kolmessa kuvassa esitetään yhdessä äänteiden a ja c kepstrikertoimet. Kuvassa 8.8 esitetään menetelmä LPCC. Kuva 8.8 Parametrinen esitys äänteistä a ja c menetelmä LPCC. Kuvassa 8.9 esitetään sama kuin edellä, mutta käytettynä menetelmänä LFCC. Kuva 8.9, Parametrinen esitys vokaalista a ja c menetelmä LFCC
50 Kuvassa 8.10 esitetään vielä edellä mainittu esitys MFCC menetelmällä. Kuva 8.10, Parametrinen esitys äänteistä a ja c menetelmä MFCC Näistä kolmesta metelmästä voidaan todeta, että MFCC menetelmässä äänteet erotettiin paremmin. Seuraavaksi kuvassa 8.11 esitetään algoritmin RGB kautta kvantisoitu vektori. Sinisten pisteiden määrä vähentyy huomattavasti, kun otetaan huomioon vain 16 sentroidia. Kuva 8.8 MFCC:n vektorinkvantisointi
51 Kun usea eri käyttäjä oli kokekillut ohjelmaa, tulokseksi saatiin seuraava taulukko, jossa osoitetaan joka menetelmän osumien prosentuaalinen määrä. Kuten huomataan MFCC menetelmässä osumien määrä on suurin. MFCC LFCC LPCC Osuma 95.83% 79.17% 83.33% Taulukko 1. Osumien prosentuaalinen määrä menetelmittäin Ohjelman toinen käyttötapa esitetään kahdessa viimeisessä kuvassa. Kuvassa 8.9 ohjelma tallentaa tietoa käyttäjän nauhoittaessa ääninäytteen ja kirjoittaa sille vastaavan tekstin. Kuva 8.9 Nauhoitus Kun käyttäjä painaa laatikkoa valmis ohjelma aloittaa tietojen prosessoinnin ja saadaan parametrit menetelmän MFCC avulla, sillä se todettiin parhaimmaksi tässä opinnäytetyössä tutkitusta menetelmistä. Kuvassa 8.10 ohjelma tunnistaa käyttäjän sanoman nuotin.
Kuva 8.10 Ohjelma tunnistaa oikean vastauksen 52
53 9 YHTEENVETO Opinnäytetyön tarkoituksena oli tuottaa ohjelma, jonka avulla uusi musiikin opiskelija voi oppia tunnistamaan nuotit nuottiviivastolta ja harjoitella nuotinlukua. Tuotettu ohjelma vastaa tätä tarkoitusta. Ensimmäinen ohjelman käyttötapa, joka oli nuotin tunnistaminen näppäimistön avulla, toimii moitteetta. Toiseen käyttötapaan, joka perustui puheentunnistukseen, parhaimmaksi menetelmäksi todettiin MFCC sanojen parametrisointia varten. Ohjelmaa kokeili 5-vuotias konservatoriossa musiikkia opiskeleva lapsi. Ohjelman toimivuus todettiin hyväksi. Ohjelma tukee hyvin hänen musiikin opiskeluaan ja nuotin lukutaidon kehitystä.
54 LÄHTEET [1] Rossing. 1990. The science of sound Addison-Wesley.40s. [2] Äänipää verkkojulkaisu.[www]. [Viitattu 20.3.2012]. Saatavissa: http://www.aanipaa.tamk.fi/index.html [3] Musiikkitieto verkkojulkaisu.[www]. [Viitattu 20.3.2012]. Saatavissa: http://www.elisanet.fi/sakari.hilden/musiikkitieto.html [4] Wessel, David 1979. "Low Dimensional Control of Musical Timbre". Computer Music Journal 3:45 52. Rewritten version, 1999, as "Timbre Space as a Musical Control Structure" [5] A/D-muunnin verkkojulkaisu.[www]. [Viitattu 28.4.2012]. Saatavissa: http://fi.wikipedia.org/wiki/a/d-muunnin [6] Sethares William A. Tuning, Timbre, Spectrum, Scale, Second editon, Springer, 2005 p.14 [7] Ze-Nian Li, Mark S Drew. Fundamentals of Multimedia, Prentice- Hall, 2004 p.128 [8] Gonzalez, R. C., Woods, R. E. Digital Image Processing. Prentice- Hall, New Jersey 2002. [9] MathWorks verkkojulkaisu, [WWW]. [Viitattu 29.4.2012]. Saatavissa: http://www.mathworks.se/help/toolbox/images/f14-13543.html#f14-20224 [10] Davis Steven B. Mermelstein Paul, Comparison of parametric representations for monosyllabic word recognition in continuously spoken sentences [11] Vector Quantization, verkkojulkaisu. [WWW]. [Viitattu 29.4.2012]. Saatavissa:http://www.data-compression.com/vq.shtml [12] R.O. Duda, P.E. Hart, and D.G. Stork, Pattern Classiffication,Wiley Interscience, 2002. pag.31 [13] Finlectura. 2001. Verkkokielioppi [WWW] [Viitattu03.05.2012]. Saatavissa:http://www.finnlectura.fi/verkkosuomi/Fonologia/sivu12.htm [14] Sibelius Akatemia.2008. Musiikinteoria 1, Notaatio.[WWW]
[Viitattu03.05.2012].Saatavissa:http://www2.siba.fi/muste1/index.php?id=8&la =fi 55