JUSSI TAIPALMAA TEKSTIRIIPPUMATON PUHUJANTUNNISTUS

Samankaltaiset tiedostot
THE audio feature: MFCC. Mel Frequency Cepstral Coefficients

Harjoitus 7: NCSS - Tilastollinen analyysi

JOHDATUS TEKOÄLYYN TEEMU ROOS

MS-A0502 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

IIR-suodattimissa ongelmat korostuvat, koska takaisinkytkennästä seuraa virheiden kertautuminen ja joissakin tapauksissa myös vahvistuminen.

P(X = x T (X ) = t, θ) = p(x = x T (X ) = t) ei riipu tuntemattomasta θ:sta. Silloin uskottavuusfunktio faktorisoituu

pitkittäisaineistoissa

Jos nyt on saatu havaintoarvot Ü ½ Ü Ò niin suurimman uskottavuuden

Maximum likelihood-estimointi Alkeet

Mallipohjainen klusterointi

Estimointi. Estimointi. Estimointi: Mitä opimme? 2/4. Estimointi: Mitä opimme? 1/4. Estimointi: Mitä opimme? 3/4. Estimointi: Mitä opimme?

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Sovellettu todennäköisyyslaskenta B

Johdatus tilastotieteeseen Estimointi. TKK (c) Ilkka Mellin (2005) 1

SGN-1200 Signaalinkäsittelyn menetelmät Välikoe

SGN-4200 Digitaalinen Audio Harjoitustyö-info

JOHDATUS TEKOÄLYYN TEEMU ROOS

Viikko 2: Ensimmäiset ennustajat Matti Kääriäinen

Jatkuvat satunnaismuuttujat

SGN-1200 Signaalinkäsittelyn menetelmät Välikoe

Osa 2: Otokset, otosjakaumat ja estimointi

805306A Johdatus monimuuttujamenetelmiin, 5 op

Estimointi. Vilkkumaa / Kuusinen 1

JOHDATUS TEKOÄLYYN TEEMU ROOS

Identifiointiprosessi

Ilkka Mellin Tilastolliset menetelmät Osa 2: Otokset, otosjakaumat ja estimointi Estimointi

Projektisuunnitelma ja johdanto AS Automaatio- ja systeemitekniikan projektityöt Paula Sirén

Tilastollinen aineisto Luottamusväli

r = n = 121 Tilastollista testausta varten määritetään aluksi hypoteesit.

Tilastotieteen kertaus. Vilkkumaa / Kuusinen 1

Tilastollinen testaus. Vilkkumaa / Kuusinen 1

SGN-1251 Signaalinkäsittelyn sovellukset Välikoe Heikki Huttunen

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Johdatus todennäköisyyslaskentaan Normaalijakaumasta johdettuja jakaumia. TKK (c) Ilkka Mellin (2005) 1

Sovellettu todennäköisyyslaskenta B

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

SGN-2500 Johdatus hahmontunnistukseen 2007 Luennot 4 ja 5

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

3 Ikkunointi. Kuvio 1: Signaalin ikkunointi.

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

pitkittäisaineistoissa

¼ ¼ joten tulokset ovat muuttuneet ja nimenomaan huontontuneet eivätkä tulleet paremmiksi.

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

Logistinen regressio, separoivat hypertasot

T Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti , 8:30-10:00 Kollokaatiot, Versio 1.1

805324A (805679S) Aikasarja-analyysi Harjoitus 4 (2016)

Osa IX. Z muunnos. Johdanto Diskreetit funktiot

S09 04 Kohteiden tunnistaminen 3D datasta

1. TILASTOLLINEN HAHMONTUNNISTUS

Sovellettu todennäköisyyslaskenta B

Väliestimointi (jatkoa) Heliövaara 1

SGN Signaalinkäsittelyn perusteet Välikoe Heikki Huttunen

Laskuharjoitus 9, tehtävä 6

8. Muita stokastisia malleja 8.1 Epölineaariset mallit ARCH ja GARCH

Esimerkki: Tietoliikennekytkin

T Luonnollisten kielten tilastollinen käsittely

1 Bayesin teoreeman käyttö luokittelijana

1. TODENNÄKÖISYYSJAKAUMIEN ESTIMOINTI

χ = Mat Sovellettu todennäköisyyslasku 11. harjoitukset/ratkaisut

11. laskuharjoituskierros, vko 15, ratkaisut

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Moniulotteisia todennäköisyysjakaumia. Moniulotteisia todennäköisyysjakaumia. Moniulotteisia todennäköisyysjakaumia: Mitä opimme?

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

9. laskuharjoituskierros, vko 12-13, ratkaisut

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea.

Tilastotieteen kertaus. Kuusinen/Heliövaara 1

Spektri- ja signaalianalysaattorit

Inversio-ongelmien laskennallinen peruskurssi Luento 2

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Ilkka Mellin Todennäköisyyslaskenta Osa 3: Todennäköisyysjakaumia Moniulotteisia todennäköisyysjakaumia

Otoskoko 107 kpl. a) 27 b) 2654

tilastotieteen kertaus

Moniulotteisia todennäköisyysjakaumia

4.1. Olkoon X mielivaltainen positiivinen satunnaismuuttuja, jonka odotusarvo on

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

Laskuharjoitus 2 ( ): Tehtävien vastauksia

Testit järjestysasteikollisille muuttujille

Harjoitus 2: Matlab - Statistical Toolbox

Kompleksiluvut signaalin taajuusjakauman arvioinnissa

SGN Signaalinkäsittelyn perusteet Välikoe Heikki Huttunen

P (A)P (B A). P (B) P (A B) = P (A = 0)P (B = 1 A = 0) P (B = 1) P (A = 1)P (B = 1 A = 1) P (B = 1)

Algoritmit 2. Luento 13 Ti Timo Männikkö

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

S Laskennallinen Neurotiede

Johdatus todennäköisyyslaskentaan Kertymäfunktio. TKK (c) Ilkka Mellin (2005) 1

1. TODENNÄKÖISYYSJAKAUMIEN ESTIMOINTI

,ܾ jaü on annettu niin voidaan hakea funktion

Diskriminanttianalyysi I

Etsintä verkosta (Searching from the Web) T Datasta tietoon Heikki Mannila, Jouni Seppänen

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

Digitaalinen signaalinkäsittely Desibeliasteikko, suotimen suunnittelu

Seminaarityö. Puhujantunnistus Gaussian Mixture malleilla

Tilastolliset mallit hakkuukoneen katkonnan ohjauksessa. Tapio Nummi Tampereen yliopisto

Lisäinformaation arvo monikriteerisessä projektiportfoliovalinnassa (valmiin työn esittely)

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

4.0.2 Kuinka hyvä ennuste on?

Transkriptio:

JUSSI TAIPALMAA TEKSTIRIIPPUMATON PUHUJANTUNNISTUS Kandidaatintyö Tarkastaja: Hanna Silén

ii TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Tietotekniikan koulutusohjelma TAIPALMAA, JUSSI: Tekstiriippumaton puhujantunnistus Kandidaatintyö, 19 sivua, 1 liitesivu Toukokuu 2012 Pääaine: Signaalinkäsittely ja multimedia Tarkastaja: Hanna Silén Avainsanat: Puhujantunnistus, tekstiriippumaton, Gaussian mixture model, piirteenirrotus, MFCC-kertoimet Ääninäyte on yksi biometrisista tunnisteista. Ääninäytteitä on helppo kerätä verrattuna muihin biometrisiin tunnisteisiin, ja täten tulevaisuudessa puhujantunnistus saattaa olla laajalti käytetty menetelmä henkilöiden identifioinnissa ja verifioinnissa. Tässä kandidaatintyössä keskitytään tekstiriippumattomaan puhujantunnistukseen. Aluksi puhujantunnistukseen paneudutaan biometrisen tunnisteen ominaisuuksien näkökulmasta. Lisäksi keskitytään yksinkertaisen tekstiriippumattoman puhujantunnistimen taustalla olevaan teoriaan ja puhujantunnistusjärjestelmän taustalla olevaan hahmontunnistusprosessiin. Tässä tapauksessa puhujantunnistus suoritetaan MFCCpiirteiden ja GMM-mallien avulla. Lopuksi yksinkertaisen tekstiriippumattoman puhujantunnistimen suunnittelu ja toteutus käsitellään vaihe vaiheelta Matlab-ohjelmistolla. Lisäksi luodaan nopea käsitys tuloksista, joita toteutetun kaltaiselta, yksinkertaiselta puhujantunnistimelta voidaan odottaa.

iii ABSTRACT TAMPERE UNIVERSITY OF TECHNOLOGY Bachelor s Degree Programme in Information Technology TAIPALMAA, JUSSI: Text-independent Speaker Recognition Bachelor of Science Thesis, 19 pages, 1 Appendix page May 2012 Major: Signal Processing and Multimedia Examiner: Hanna Silén Keywords: Speaker recognition, text-independent, Gaussian mixture model, feature extraction, mel-frequency cepstral coefficients Voice sample is part of the biometrics. Voice samples are easy to gather and therefore in the near future speaker recognition can be widely used in the fields of verification and identification. In this bachelor s thesis the focus is set on text-independent speaker recognition. First, speaker recognition is reviewed from a perspective of biometrics. Then the focus is turned to the theory of a simple speaker recognition system and to the theory of a pattern recognition system. In this case, the pattern recognition is performed using melfrequency cepstral coefficients and Gaussian mixture speaker models. In conclusion, creating a simple speaker recognition system is reviewed with Matlab. In addition, a quick insight of the performance and results of a simple speaker recognition system are created.

iv ALKUSANAT Tämä tekniikan kandidaatintyö on tehty Tampereen teknillisen yliopiston signaalinkäsittelyn laitokselle osana signaalinkäsittelyn laitoksen kandidaatintyöseminaaria keväällä 2012. Tampereella 13.5.2012 Jussi Taipalmaa

v SISÄLLYS 1 Johdanto... 1 2 Puhujantunnistuksen teoriaa... 3 2.1 Puhujantunnistuksen ominaisuudet... 3 2.1.1 Yksilöllisyys... 3 2.1.2 Universaalisuus... 3 2.1.3 Mitattavuus... 4 2.1.4 Pysyvyys... 4 2.1.5 Turvallisuus... 4 2.1.6 Hyväksyttävyys... 4 2.1.7 Suorituskyky... 4 2.2 Puhujantunnistusprosessin teoriaa... 5 2.2.1 Mittaus ja datan kerääminen... 5 2.2.2 Esikäsittely ja segmentointi... 6 2.2.3 Piirteenirrotus... 6 2.2.4 Opetus ja luokitus... 8 2.2.5 Jälkikäsittely... 12 3 Puhujantunnistin... 13 3.1 Toteutus... 13 3.1.1 Ikkunointi ja esikäsittely... 13 3.1.2 MFCC-kertoimien laskeminen... 14 3.1.3 Puhujan mallinnus... 14 3.2 Testaus... 15 3.3 Tulosten arviointi... 16 4 Johtopäätökset... 17 Lähteet... 18 LIITE A... 20

vi TERMIT JA NIIDEN MÄÄRITELMÄT Biometrinen tunniste Esisuodatus Identifiointi Kaiuton huone Normaalijakauma Stokastinen malli Verifiointi Ääntöväylä Ihmisen fysiologisiin ominaisuuksiin perustuva tunniste, jolla voidaan yksilöidä henkilö. Pre-emphasis filtering, tarkoittaa suodatusta, jolla pyritään vahvistamaan joitakin taajuuksia (usein korkeampia taajuuksia) suhteessa joihinkin muihin taajuuksiin (usein mataliin taajuuksiin) tavoitteena lisätä koko signaalin signaalikohinasuhdetta (SNR). Tuntemattoman henkilön henkilöllisyyden määrittämistä. Akustiikassa käytetty nimitys tilasta, jonka seinät absorboivat suurimman osan äänestä mittausta häiritsevien heijasteiden poistamiseksi. Jatkuvan jakauman erikoistapaus, jolla on lukuisia tilastollisia sovelluksia. Sitä noudattavia satunnaisilmiöitä esiintyy usein luonnontieteissä ja tekniikassa, esimerkiksi yksilön pituus ja paino. Matemaattinen malli, jonka arvot määräytyvät satunnaisesti. Varmistuminen siitä, että henkilö on kuka väittää olevansa. Kurkunpään jälkeiset puhe-elimet: nieluontelo, nenäontelo ja suuontelo. Tärkeimpinä eliminä kieli, kitapurje, alaleuka ja huulet.

1 1 JOHDANTO Puhujantunnistus tarkoittaa henkilön tunnistamista tämän puheen perusteella. Kahden eri ihmisen äänentuottoon tarkoitetut elimet eivät ole identtisesti samanlaisia, ja tästä syystä jokainen ihminen tuottaa ääntä itselleen ominaisella tavalla [1]. Tämä mahdollistaa ääninäytteen käyttämisen biometrisena tunnisteena. Muita biometrisia tunnisteita ovat esimerkiksi DNA, sormenjälki ja kasvokuva. Biometrisiin tunnisteisiin liittyy joitakin olennaisia puutteita. Esimerkiksi sormenjälkitunnistusta ei voida soveltaa kaikkiin ihmisiin, koska on olemassa ihmisiä joiden sormet ovat vaurioituneet tunnistuskelvottomiksi. Tällaisia ihmisiä ovat esimerkiksi rakennustyöläiset ja muut käsillään töitä tekevät ihmiset. Lisäksi on ihmisiä, joilta puuttuu raajoja tai sormia jonkin onnettomuuden seurauksena. National Institute of Standards and Technology (NIST) ilmoittaa näiden ihmisten määrän olevan noin 2 % väestöstä. [2] Samoja ongelmia on luonnollisesti myös muissa biometrisissa tunnistusmenetelmissä. Puhujantunnistukseen soveltumattomien ihmisten, kuurojen ja mykkien, vastaava osuus on 0,4 % (osuus yhdysvaltalaisista), joka on vain noin neljännes edellisestä määrästä [3]. Tämän lisäksi biometristen tunnisteiden käytössä tarvitaan tunnistukseen soveltuva laitteisto, jotta tunnistustehtävä voidaan suorittaa. Sormenjälkitunnistuksessa tarvitaan sormenjälkiskanneri ja kasvokuvantunnistuksessa kamera. Puhujantunnistuksessa riittää, että tunnistettavalla henkilöllä on matkapuhelimella yhteys puhelinverkkoon [2]. Matkapuhelimen mikrofoni on riittävän tarkka tallennusväline, jotta puhuja voidaan tunnistaa, ja tästä johtuva tunnistuksen helppo testattavuus tuo puhujantunnistukselle etua muihin tunnistusmenetelmiin nähden. Puhujantunnistuksen ensisijaisia käyttötarkoituksia ovat puhujan identifiointi ja puhujan verifiointi. Identifiointi tarkoittaa ennalta tuntemattoman henkilön tunnistamista ja verifiointi puolestaan ennalta tunnetun henkilön henkilöllisyyden varmistamista. Molemmissa tapauksissa tarvitaan aikaisempaa puhemateriaalia tunnistettavalta henkilöltä, tosin verifioinnissa tiedetään keneen tunnistettavan henkilön puhetta verrataan ja indentifioinnissa ei. Puhujantunnistusjärjestelmät voidaan jakaa tekstistä riippumattomiin järjestelmiin ja tekstistä riippuviin järjestelmiin. Tekstistä riippuvissa järjestelmistä tunnistukseen käytetään jotakin tiettyä sanaa tai lausetta. Esimerkiksi tunnistettavaa henkilöä voidaan pyytää lukemaan jokin tietty merkki- tai lukujono. Tekstistä riippumattomissa järjestelmissä ei ole rajoitettu mitä sanoja käyttäjät voivat käyttää. Tämä tekee tekstistä riippumattomasta tunnistuksesta huomattavasti tekstistä riippuvaista tunnistusta hankalampaa. [1]

Tunnistusta suorittavaa järjestelmää suunniteltaessa tulee ottaa huomioon puhujan henkilökohtaiset muutokset ajan kuluessa [1]. Tällaisia muutoksia ovat esimerkiksi puhujan terveydentilan, mielentilan ja iän muutokset. On luonnollista, että henkilö kuulostaa sairaana erilaiselta kuin terveenä tai että henkilö kuulostaa kiihtyneessä mielentilassa erilaiselta kuin tavallisesti. Lisäksi henkilön ikääntyminen muuttaa henkilön ääntä. Kaikki edellä mainitut hankaloittavat tunnistusta, ja kahden nauhoituskerran välinen vaihtelevuus onkin puhujantunnistuksen suurin haaste [1]. Tässä kandidaatintyössä keskitytään yksinkertaisen tekstiriippumattoman GMMpohjaisen (Gaussian mixture model) puhujantunnistusjärjestelmän toteutukseen MFCCpiirteitä (mel-frequency cepstral coefficients) käyttäen. Aluksi perehdytään puhujantunnistuksen ominaisuuksiin biometrisen tunnisteen näkökulmasta. Lisäksi keskitytään puhujantunnistuksen taustalla olevaan signaalinkäsittelyn ja hahmontunnistuksen teoriaan (luku 2), jonka jälkeen perehdytään itse toteutukseen (luku 3). Lopuksi luodaan nopea yhteenveto toteutuksella aikaansaaduista tuloksista (luku 4). 2

3 2 PUHUJANTUNNISTUKSEN TEORIAA Tässä luvussa kerrotaan puhujantunnistukselle ominaisista piirteistä ja ominaisuuksista. Ensin perehdytään siihen, miksi puhujantunnistusta voisi käyttää hyvänä ja helppokäyttöisenä biometrisena tunnisteena, jonka jälkeen käsitellään puhujantunnistukseen tarvittavaa laitteistoa ja näytteitä. Tämän lisäksi käsitellään koko puhujantunnistusprosessi hahmontunnistusprosessin näkökulmasta. 2.1 Puhujantunnistuksen ominaisuudet Tässä kandidaatintyössä tarkastellaan puhujantunnistusta biometrisena tunnisteena samasta näkökulmasta kuin Tapio Mannisen kandidaatintyössä [4] on tarkasteltu iiristä biometrisena tunnisteena pohjautuen Jainin artikkelin [5] seitsemään biometrisen tunnisteen kriteeriin, jotka määrittävät biometrisen tunnisteen hyödyllisyyden. Tällaisia ominaisuuksia ovat universaalisuus, yksilöllisyys, pysyvyys, mitattavuus, suorituskyky, hyväksyntä ja turvallisuus. 2.1.1 Yksilöllisyys Yksilöllisyys tarkoittaa, miten hyvin henkilö on erotettavissa muista henkilöistä mitattavan ominaisuuden perusteella. Ihminen tuottaa puhetta tavalla, jossa keuhkojen aiheuttama ilmavirta kulkee ääniraon läpi ja moduloituu ääntöväylässä. Ääneen vaikuttavat kaikkien ääntöväylän puhe-elinten suuruudet ja muodot. Äänen vaikuttavien tekijöiden lukumäärä on suuri, ja on lähes mahdotonta, että kahden ihmisen ääntöväylät olisivat niin samankaltaiset, että niistä muodostuvat äänet olisivat toistensa kanssa identtisiä. 2.1.2 Universaalisuus Universaalisuudella tarkoitetaan mitattavan ominaisuuden yleisyyttä. Sormenjälkitunnistuksessa vaatimuksena on esimerkiksi, että mitattavalla henkilöllä on sormet, joista voidaan saada tunnistettava sormenjälki. Puhujantunnistuksessa puolestaan tarvitaan puhenäyte eli vaatimuksena on, että ihminen on kykenevä tuottamaan puhetta. Kuten luvussa 1 todettiin, puhujantunnistukseen soveltumattomien henkilöiden määrä on suhteessa pienempi kuin sormenjälkitunnistukseen soveltumattomien henkilöiden. Puhe on siis erittäin universaali ihmisen ominaisuus.

4 2.1.3 Mitattavuus Mitattavuus kuvaa ominaisuuden mittaamisen mahdollisuutta. Puhujantunnistus täyttää tämän kriteerin todella hyvin, sillä puheen mittaamiseen ei tarvita samankaltaista raskasta kalustoa, kuten sormenjälkitunnistuksessa tai iiristunnistuksessa tarvittavat skannerit ja kamerat. Puheentunnistukseen riittää mittausta tehtäessä yksinkertainen mikrofoni, esimerkiksi matkapuhelimen mikrofoni. 2.1.4 Pysyvyys Pysyvyydellä tarkoitetaan mitattavan ominaisuuden muuttumattomuutta ajan kuluessa ja yleisesti muuttumattomuutta mittauskertojen välissä. Pysyvyys on puhujantunnistuksen suurimpia haasteita. Puhe vaihtelee paljon normaaliin puheeseen nähden. Esimerkiksi muutokset terveydentilassa tai tunnetiloissa vaikuttavat siihen, miltä ihmisen ääni kuulostaa. Myös ikääntyminen vaikuttaa huomattavasti ihmisen ääneen. Huipputason puheentunnistusjärjestelmissä tosin pyritään ottamaan huomioon joitakin mittauskertojen välisiä muutoksia ja mittaamaan ominaisuuksia, joiden muutokset ovat vähäisiä. 2.1.5 Turvallisuus Yksi puhujantunnistusjärjestelmien suurista huolenaiheista on tunnistusjärjestelmien huijaaminen nauhoitetun puheen avulla. Yksi tapa yrittää estää huijausyritykset on käyttää esimerkiksi verifiointijärjestelmissä yhdistettyä puhujan ja puheentunnistusta satunnaisesti generoitavaan tunnisteeseen, esimerkiksi sarjaan kirjaimia. Näin suoritetussa verifioinnissa järjestelmää olisi vaikea huijata, koska lausuttavaa kirjainsarjaa ei voida tietää etukäteen (vrt. nettipankkiin kirjautumisessa vaadittava salausavain-salasana yhdistelmä). 2.1.6 Hyväksyttävyys Julkinen hyväksyttävyys riippuu monesta asiasta. Ensinnäkin, puhenäytteiden kerääminen on melko vaivatonta ja inhimillistä, joten tämä puoltaa puhujantunnistuksen hyväksyttävyyttä. Toisaalta henkilöitä ja heidän liikkeitään pystyttäisiin tarkkailemaan melko helposti ulkopuolisen tahon toimesta ilman, että tarkkailtava huomaa olevansa tarkkailun kohteena. Käyttötarkoituksesta riippuen tämä voi olla joko positiivinen tai negatiivinen asia. 2.1.7 Suorituskyky Identifioinnissa järjestelmät joutuvat suorittamaan raskaita laskutoimituksia, koska tunnistettavia näytteitä joudutaan vertaamaan kaikkiin puhujatietokantaan tallennettuihin malleihin parhaan tuloksen löytämiseksi. Tehtävien vertailujen lukumäärä saattaa olla jopa satoja tuhansia. Nykyään laskentatehoa saadaan kuitenkin lisättyä melko helposti.

5 Identifiointi puolestaan onnistuu helposti, koska siinä tunnistettavaa näytettä verrataan ainoastaan yhteen puhujatietokantaan tallennettuun malliin. 2.2 Puhujantunnistusprosessin teoriaa Seuraavaksi puhujantunnistusprosessia tarkastellaan hahmontunnistusprosessin näkökulmasta. Prosessin tarkastelussa keskitytään nimenomaan tekstiriippumattoman GMMpohjaisen puhujantunnistimen kehittämiseen liittyvään teoriaan. 2.2.1 Mittaus ja datan kerääminen Puhujantunnistusprosessin ensimmäinen vaihe on tunnistettavan aineiston kerääminen. Tämä tapahtuu mittaamalla puhetta. Mittaus on puhujantunnistuksessa melko yksinkertainen vaihe verrattuna muihin biometrisiin tunnisteisiin, koska mittaus tapahtuu perinteisesti nauhoittamalla puhetta mikrofonilla ja mittaus pystytään toteuttamaan myös halvalla ja yksinkertaisella välineellä, kuten esimerkiksi puhelimen sisäänrakennetulla kondensaattorimikrofonilla. Laadukkaampien tulosten saamiseksi voidaan käyttää studio-olosuhteita eli suorittaa nauhoitus kaiuttomassa huoneessa laadukkaalla studiomikrofonilla. Täten saadaan mitattua henkilön puhetta halutulla tarkkuudella ja ilman häiritseviä taustaääniä. Laadukas mittaus helpottaa prosessin myöhempiä vaiheita. [6] Puhujantunnistuksessa mittauksella on kaksi tarkoitusta. Aluksi on mitattava puhetta järjestelmälle, jotta voidaan muodostaa puhujatietokanta. Toisena tarkoituksena on mitata puhetta, jota verrataan puhetietokannan puhenäytteisiin. Todellisuudessa tilan säästämiseksi puhujatietokannassa kannattaa tietokantaan puheen sijasta tallentaa mallinnus puhujasta, joka siis on mallinnus joka muodostetaan puhujasta piirteenirrotuksen jälkeen (lisää kohdassa 2.2.3). Kuvassa 2.1 on esitetty malli puheen keräämisestä puhujatietokantaan. Kuva 2.1: Puheen kerääminen puhujatietokantaan Tallentamalla puhujamalli tietokantaan vältytään siltä, että piirteenirrotus ja puhujan mallinnus tarvitsisi tehdä joka kerta uudelleen, kun verrataan puhujaa tietokannan puhujiin. Kun puhujaa verrataan tietokantaan, prosessi on lähes samanlainen kuin kuvassa 2.1, mutta tietokantaan tallentamisen sijasta luotua mallia verrataan puhujatietokantaan

6 ja luokitus (luokituksesta lisää kohdassa 2.2.4) tehdään etsimällä suurin vastaavuus puhujatietokantaan tallennetuista malleista. Kuvassa 2.2 on kuvattu vaiheittain identifiointiprosessi puhesignaalista päätöksentekoon. Kuva 2.2: Puhujan identifiointi tapahtuu vertaamalla puhetta tietokantaan tallennettuun malliin. Jotta puhujatietokantaan tallennettavista malleista saadaan mahdollisimman hyviä, tulee tietokantaan kerätä monipuolista ja hyödyllistä dataa. Esimerkiksi numerot esiintyvät usein puheessa. Yksinkertaisessa tapauksessa opetukseen tarvittava puhemäärä on noin 30 60 sekuntia ja testaukseen tarvittava noin 10 sekuntia yhtä puhujaa kohden [7]. 2.2.2 Esikäsittely ja segmentointi Puhe ei ole stationaarinen signaali, vaan sen ominaisuudet muuttuvat millisekuntien tai kymmenien millisekuntien aikana. Tämä johtaa siihen, että signaalinkäsittelyn menetelmät, kuten diskreetti Fourier muunnos (DFT) tai autokorrelaatio, ovat sellaisinaan epätarkoituksenmukaisia. [8] Asia voidaan kuitenkin korjata ikkunoimalla käsiteltävää signaalia. Puhesignaalin ominaisuuksien voidaan olettaa pysyvän vakiona lyhyen ajanjakson ajan eli puhesignaalin lyhyeen ikkunaan voidaan soveltaa perinteisiä signaalinkäsittelyn menetelmiä. Puhesignaalia siis pystytään käsittelemään lyhyissä ikkunoissa, jotka voivat olla osittain myös päällekkäin. Tyypillisesti ikkunan pituus on noin 10 30 millisekuntia ja peräkkäisten ikkunoiden etäisyys on noin puolet tästä eli ikkunat ovat puolittain toistensa päällä [8]. Ikkunafunktiona käytetään yleensä Hamming tai Hanning ikkunaa, näin saadaan pehmennettyä spektriä ja vältetään epäjatkuvuuskohdat ikkunan reunoilla. Lisäksi signaaleille voidaan halutessa tehdä esisuodatus (pre-emphasis filtering). Tällä tavalla voidaan korostaa joitakin tiettyjä taajuuksia signaalissa, mikä yleensä tarkoittaa korkeiden taajuuksien korostamista suhteessa mataliin taajuuksiin. 2.2.3 Piirteenirrotus Piirteenirrotus on yhdessä luokituksen kanssa puhujantunnistusprosessin tärkein vaihe. Piirteet ovat tarkkaan määriteltyjä persoonallisesti vaihtelevia ominaisuuksia, jotka ovat

7 löydettävissä puhesignaalista. Tarkoituksena piirteenirrotuksessa on etsiä puheesta ne ominaisuudet, joiden perusteella tunnistus voidaan suorittaa ja jättää siten ulkopuolelle kaikki ylimääräinen, kuten esimerkiksi taustakohina ja puheen varsinainen sanoma [9]. Idealistisessa tilanteessa piirteellä tulisi olla seuraavat ominaisuudet [10]: - mahdollisimman korkea vaihtelevuus eri puhujien välillä ja mahdollisimman pieni vaihtelevuus mittauskertojen välillä yhtä puhujaa tarkasteltaessa - helppo mitattavuus - ajan suhteen mahdollisimman stabiili - esiintyy normaalisti ja usein puheessa - puhujan ympäristöllä ei vaikutusta piirteeseen - ei ole helppo jäljentää. Käytetyimpiä tekniikoita nopea-aikaiseen piirteenirrotukseen (short-term feature extraction) ovat MFCC (mel-frequency cepstral coefficients), LPCC (linear prediction cepstral coefficients) ja PLP (perceptual linear prediction cepstral coefficients). Suosituimpia näistä ovat MFCC-kertoimet, ja juuri niihin tässäkin työssä perehdytään. [9] MFCC-kertoimet ovat laajalti käytettyjä sekä puheen- että puhujantunnistuksessa johtuen niiden hyvin määritellystä teoreettisesta taustasta ja hyvästä käytännön suorituskyvystä [9]. MFCC-kertoimien muodostaminen tapahtuu kuten alla on esitetty (Kuva 2.3). Aluksi signaali on ikkunoitu. Tämän jälkeen signaalin spektri saadaan muodostettua käyttämällä Fourier-muunnosta. Kuva 2.3: MFCC-kertoimien muodostaminen Seuraavaksi spektri muunnetaan tavallisesta taajuusasteikosta Mel-asteikkoon. Approksimaatio Mel ja tavallisen taajuusasteikon välillä on kuten kaavassa 2.1, jossa kuvaa Mel-taajuutta ja tavallista taajuutta. (2.1) Mel-asteikko on lineaarinen 1000 hertsiin asti, jonka jälkeen asteikko muuttuu logaritmiseksi. Muunnos Mel-asteikkoon tapahtuu käyttämällä Mel-asteikon mukaisesti sijoi-

8 tettua kolmiosuodinpankkia (Triangular Mel scale filterbank, Kuva 2.4), jonka avulla taajuus muunnetaan hertseistä Mel-asteikolle. Kuva 2.4: Matlabilla luotu 20-suotiminen Mel-asteikon kolmiosuodinpankki signaalille, jonka taajuus on 16kHz Muunnoksen tuloksena saadusta Mel-asteikolla olevasta spektristä otetaan seuravaksi logaritmi (yleensä kymmenkantainen) ja viimeisenä tehdään diskreetti kosinimuunnos (DCT), joka määritellään suodinten ulostuloille, seuraavasti [ ] (2.2) jossa on haluttujen MFCC-kertoimien lukumäärä [11]. Diskreetin kosinimuunnoksen sijasta viimeisessä vaiheessa voidaan joissakin tapauksissa käyttää myös käänteistä Fourier muunnosta. Käsittelyn lopputuloksena yhteen piirrevektoriin saadaan irrotettua tyypillisesti 12 14 MFCC-kerrointa jokaista ikkunointivaiheessa muodostettua ikkunaa kohden [12]. Lisäksi halutessa voidaan muodostaa jokaista ikkunaa kohden energiatermi ja lisäksi delta- ja delta-delta kertoimet, jotka kuvaavat varsinaisten MFCC-piirteiden muutosta kehysten välillä. Tässä tapauksessa kuitenkin keskitytään piirteenirrotuksessa ja tunnistuksessa pelkkiin MFCC-kertoimiin. 2.2.4 Opetus ja luokitus Luokituksen tavoitteena on tässä tapauksessa luoda puhujasta mahdollisimman hyvä matemaattinen malli kohdassa 2.2.3 irrotettujen piirteiden avulla. Luokituksen sijasta tässä tapauksessa voitaisiinkin käyttää termiä mallinnus. Tässä vaiheessa pyritään mal-

9 lintamaan puhujaa, jotta päätöstä tehtäessä pystytään vertaamaan testinäytteestä irrotettuja piirteitä opetusnäytteistä luotuihin mallinnuksiin. Tavoitteena on opettaa jokaista puhujaa kohden yksi GMM-malli (Gaussian Mixture Model) käyttäen hyväksi useaa normaalijakaumaa. Seuraavaksi käsitellään perinteinen normaalijakaumiin perustuva GMM-mallin muodostaminen, jonka jälkeen perehdytään puhujantunnistuksessa käytettyyn malliin. Normaalijakauma on puhujantunnistuksessa yksi käytetyimmistä stokastisista malleista. Normaalijakautumiin perustuvia sekoitemalleja (GMM), jotka ovat painotettuja summia normaalijakaumista, voidaan käyttää mallintamaan mielivaltaisesti jakaantuneita havaintoja. [13] GMM-mallia tarkasteltaessa täytyy tehdä seuraavat oletukset: [14] - luokkatiheysfunktiot ovat normaalijakautuneita, ( ), kaikille - keskiarvo ja kovarianssi ovat tuntemattomia - prioritodennäköisyydet ( ) ovat tuntemattomia - piirrevektorien luokat ovat tuntemattomia. Seuraavaksi haluamme ratkaista parametrit, ja prioritodennäköisyydet ( ). Johto niiden ratkaisemiselle tehdään kuten Jussi Tohkan opintomonisteessa Johdatus hahmontunnistukseen [14]. Oletetaan piirrevektorit riippumattomien satunnaismuuttujien realisaatioiksi ja jakautuneeksi jonkin luokkatiheysfunktion mukaan. Nyt voidaan määrittää todennäköisyys sille, että piirrevektori havaitaan ja se kuuluu johonkin luokista ( ) ( ) ( ) (2.3) Vielä ei tiedetä minkä luokkatiheyden mukaisesti on jakautunut, mutta sen on kuuluttava johonkin luokista, joten voidaan kirjoittaa ( ) (2.4) Yhdistämällä kaavat (2.2) ja (2.3) saadaan ( ) ( ) (2.5) Saatua tulosta kutsutaan sekoitetiheydeksi, sekoitetiheyksien prioreita ( ) sekoitusparametreiksi (jossakin tapauksissa puhutaan myös sekoitteen painokertoimista) ja

10 luokkatiheysfunktiota komponenttitiheydeksi. Koska komponenttitiheydet oletettiin normaalijakautuneiksi, saadaan parametriseksi sekoitetiheydeksi ( ) ( ) (2.6) jossa parametrivektori ( ) (2.7) Seuraavaksi ratkaistaan sekoitetiheyden parametrit. Koska piirrevektorit oletetaan riippumattomiksi, voidaan uskottavuusfunktioksi kirjoittaa ( ) ( ) (2.8) ja maksimoimalla tämä funktio parametrivektorin θ suhteen saadaan suurimman uskottavuuden estimaatti [ ( ) ( )] (2.9) Kyseistä funktiota on hankala maksimoida, mutta EM-algoritmilla pystytään helposti määrittämään funktion lokaali maksimi. Puheentunnistuksessa käytetty GMM-malli eroaa hieman perinteisestä. Tavallisessa luokittelussa käytetään yleensä yhtä jakaumaa jokaista luokkaa kohden. Puhujantunnistuksessa sen sijaan käytetään yleensä useaa jakaumaa kunkin puhujan mallintamiseen. Kaavasta (2.5), jossa on normaalijakautuneiden komponenttien lukumäärä ja ( ) on :nnen normaalijakautuneen komponentin prioritodennäköisyys, saadaan ( ) { ( ) } (2.10) jossa normaalijakautuneiden tiheysfunktioiden lukumäärä, keskiarvovektori ja kovarianssimatriisi. Prioritodennäköisyyksien ( ) summa pakotetaan ( ). Täysien kovarianssimatriisien sijasta käytetään usein diagonaalisia kovarianssimatriiseja, jossa nollasta poikkeavia arvoja sijaitsee ainoastaan diagonaalilla (ts. kovarianssivektoreita), numeerisista ja laskennallisista syistä. Täysien kovarianssimatriisien parametrien estimointi on laskennallisesti raskasta, ja se vaatisi huomattavasti enemmän opetusdataa. [1]

11 GMM-mallin opetus koostuu parametrien { ( ) } estimoinnista opetusnäytteelle. Tarkoituksena on määrittää suurin uskottavuus (likelihood). Näytteen { } keskimääräinen log-likelihood mallille määritellään: ( ) ( ) (2.11) Mitä suurempi arvo, sitä todennäköisempää, että tuntemattomat piirrevektorit ovat peräisin juuri mallista. Kertoimien evaluointi voidaan suorittaa helposti EMalgoritmilla, jossa algoritmin avulla haetaan kertoimet, jotka tuottavat parhaan arvon kaavalla. [1] EM-algoritmissa annettuja alkuarvoja parannetaan iteratiivisesti. Iteraatiokierrokset lopetetaan, kun opetusdatan mallinnuksen uskottavuutta ei pystytä enää parantamaan huomattavasti. [9] EM-algoritmin vaiheet tapahtuvat seuraavasti: 1. Alusta,, ja aseta. 2. E-askel: (expectation) Laske posterior todennäköisyydet, että kuuluu luokkaan ( ) 3. M-askel: (maximization) Laske uudet parametrien arvot ( ) ( )( ) 4. 5. Lopeta, jos on suoritettu tarvittava määrä iteraatiokierroksia, muutoin palaa kohtaan 2. Algoritmi löytää yleensä lokaalin maksimin. Lokaaleja maksimeita on kuitenkin yleensä useita, ja lopputulos riippuu piirrevektorista saadusta alustuksesta [14].

12 Luokitusvaiheessa testinäytteen piirteille tehdään samat toimenpiteet kuin opetuksessa, mutta sen sijaan, että luotaisiin testinäytteille mallinnus, verrataan muodostettuja ja EM-algoritmissa iteroituja kertoimia luotuihin GMM-malleihin. Identifioinnissa kertoimia verrataan kaikkiin luotuihin GMM-malleihin, ja se malli, joka kaavan (2.11) avulla tuottaa suurimman uskottavuuden on luokka, johon testinäyte luokitetaan. Verifioinnissa puolestaan verrataan kertoimia samalla tavalla, mutta vain ennalta ilmoitettuun GMM-malliin. Tässä tapauksessa täytyy käsin määrittää raja-arvo, jonka ylitettyä voidaan katsoa luokitus onnistuneeksi eli henkilön identiteetistä on saatu varmuus. 2.2.5 Jälkikäsittely Hahmontunnistusjärjestelmillä on yleensä tarkoitus tehdä joitakin toimenpiteitä luokittimista saatujen tulosten perusteella [14]. Tässä tapauksessa tehtävänä on joko identifiointi tai verifiointi. Verifioinnissa voidaan esimerkiksi sallia tunnistetulle henkilölle pääsy jonnekin (esim. kirjautuminen sovellukseen). Tällaisissa tapauksissa halutaan yleensä olla mahdollisimman varmoja siitä, että luokitustulos on oikea. Halutessa voidaan hylätä oikeakin luokitustulos, mikäli riittävää varmuutta tuloksen oikeellisuudelle ei ole saatu. Näin voidaan esimerkiksi tehdä, jos luokitustuloksen uskottavuus on osunut hyvin lähelle jotakin toista luokkaa, mutta ei kuitenkaan luokittunut siihen.

13 3 PUHUJANTUNNISTIN Tässä luvussa keskitytään yksinkertaisen puhujantunnistimen kehittämiseen. Luvussa käydään puhujantunnistimen toteutus läpi vaihe kerrallaan ja perehdytään käytettyihin menetelmiin. Lisäksi kerrotaan toteutetun järjestelmän testauksesta ja testauksen tuloksista. Lopuksi arvioidaan tulosten laatua, miten valittu menetelmä on vaikuttanut tuloksiin ja miten tulokset olisivat muuttuneet valitsemalla muita toteutusmenetelmiä. 3.1 Toteutus Työn toteutusta ja testausta varten on ladattu 600 puhenäytettä CHiMEpuhetietokannasta yhteensä 34 eri puhujalta [15]. Toteutuksessa käytettiin studioolosuhteissa nauhoitettua puhdasta ääntä, ja näytteissä on puheen lisäksi ainoastaan huonekaikua. Näytteiden näytteenottotaajuus on 16 khz, ja näytteet on nauhoitettu stereona, mutta käsittelyn helpottamiseksi näytteet muunnetaan yksikanavaisiksi käyttämällä kanavien keskiarvoa. Toteutus on tehty Matlab-ohjelmistolla. Toteutuksessa on käytetty Lausannen Swiss Federal Institution of Technology:n signaalinkäsittelyn instituutin tilastollisen mallinnuksen ja Lontoon Imperial College:n Voicebox Matlabpaketteja [7],[16]. 3.1.1 Ikkunointi ja esikäsittely Ikkunoinnista on kerrottu kohdassa Esikäsittely ja segmentointi (2.2.2). Tässä tapauksessa on käytetty 20 ms ikkunaa ja 10 ms siirtymää eli ikkunat ovat 50 % toistensa päällä (overlap). Ikkunointi tapahtuu tässä toteutuksessa samalla funktiolla, joka laskee MFCC-kertoimet. Lisäksi signaali on haluttu esisuodattaa käyttämällä suodinta 3.1. Tässä tapauksessa :n arvoksi on valittu 0,97. (3.1) jossa kerroin sijoittuu välille Suodinta on käytetty korkeimpien taajuuksien korostamiseen, jotta analyysin seuraavissa vaiheissa vältyttäisiin vääristymiltä.

14 3.1.2 MFCC-kertoimien laskeminen MFCC-kertoimet saadaan laskettua puhesignaalista käyttämällä funktiota [16] training_features = melcepst(s,fs, M,12,26,20e-3*fs,10e-3*fs), (3.2) jossa s on käsiteltävä signaali ja fs on näytteenottotaajuus (16kHz). Merkkijonolla M kuvataan käytettävän ikkunoinnissa Hamming-ikkunaa ja kertoimet 12 ja 26 kertovat laskettavien MFCC-kertoimien ja Mel-asteikon suodinpankin suodinten lukumäärän. Viimeiset kaksi parametria kertovat ikkunan pituuden (20ms) ja siirtymän (10ms). Funktio palauttaa näillä parametreilla vektorin, joka sisältää 12 MFCC-kerrointa. Lisäksi funktiolla voidaan parametreja muuttamalla laskea myös energiatermi ja delta- ja delta-delta kertoimet, mutta kuten kohdassa 2.2.3 todettiin, ei niitä tässä toteutuksessa käytetä. 3.1.3 Puhujan mallinnus MFCC-kertoimien laskemisen jälkeen halutaan tuottaa kertoimien avulla mallinnus puhujasta käyttämällä GMM-pohjaista mallinnusta. Mallinnus onnistuu käyttämällä funktiota [7] [mu,sigma,c] = gmm_estimate(training_features,n,<it,mu_0,sigm_0,c_0,vm>). (3.3) Funktion saa parametreinaan kohdassa 3.1.2 lasketut MFCC-kertoimet ja käytettävien normaalijakaumien lukumäärän. Normaalijakaumien lukumäärä tulee etsiä siten, että jakaumien lukumäärä on riittävän korkea tarkan tunnistustuloksen saamiseksi. Kuitenkin liian suuri jakaumien lukumäärä voi johtaa ylisovittamiseen eivätkä mallit yleisty testiaineistolle. Tässä tapauksessa hyväksi jakaumien lukumääräksi löydettiin 7. Lisäksi voidaan halutessa määrittä käsin EM-algoritmin iteraatiokierrosten lukumäärä (oletuksena 10) ja alkuarvot algoritmille. Lopputuloksena funktio palauttaa lasketun mallin keskiarvovektorin, kovarianssimatriisin ja painokertoimet (sekoitusparametrit). Palautettavana kovarianssimatriisina käytetään tässä tapauksessa diagonaalista kovarianssimatriisia. Lisäksi funktio visualisoi mallinnuksen onnistumisen. Kuvassa 3.1 on visualisoitu puheesta irrotettuja piirteitä, ja vierelle on luotu irrotettuja piirteitä vastaava malli, joka saadaan funktiolla (3.3). Kuvassa 3.1 on ollut reilusti opetusdataa ja mallinnuksella on onnistuttu kuvaamaan irrotettuja piirteitä lähes täydellisesti. Lisäksi piirteistä voidaan huomata selkeät normaalijakaumia noudattavat muodot. Kuvassa 3.2 puolestaan on ollut saatavilla liian vähän dataa, jotta mallinnus olisi voitu tehdä riittävän hyvin. Datan vähäinen määrä on vaikkutanut myös piirteisiin, sillä

15 ne ovat jakaantuneet melko satunnaisesti ja niitä vastaava mallinnus ei todennäköisesti kuvaa kovin hyvin kyseistä puhujaa. Kuva 3.1: vasemmalla irrotetun piirteen visualisointi ja oikealla vastaava mallinnus punaisella. Kuvassa piirteitä on esitetty vain neljä lasketun kahdentoista sijasta. Kuva 3.2: kuvassa on yritetty mallintaa puhujaa jolta on liian vähän dataa kerättynä kunnollista mallinnusta varten. Piirteet kuvassa harmaalla ja mallinnus punaisella. 3.2 Testaus Testauksessa verrataan testidatasta irrotettuja piirteitä opetusdatasta luotuihin malleihin. Vertaaminen tapahtuu funktiolla [7] [lym,ly]=lmultigauss(training_features',mu,sigma,c), (3.4)

16 joka laskee usean normaalijakauman logaritmisen uskottavuuden (multigaussian loglikelihood). Parametri training_features edustaa testidatasta irrotettuja piirteitä ja loput parametrit verrattavan mallin keskiarvovektoria, kovarianssimatriisia ja painokertoimia. Tämä vaihe on laskennallisesti melko raskas, sillä testidataa on verrattava kaikkiin malleihin erikseen ja luokitus tehdään sen perusteella, minkä mallin kanssa testidata saa suurimman uskottavuuden. 3.3 Tulosten arviointi Tulosten arvioinnin visualisoimiseksi on varmasti helpoin kirjoittaa testauksen tulokset matriisiin, jossa jokainen rivi kuvaa puhujan mallinnusta ja jokainen sarake testattavia piirteitä. Näin ollen jokainen ruutu (x,y) kuvaa x:nnen mallinnuksen ja y:nnen testinäytteen log-likelihood-arvoa. Testi näyte voidaan katsoa luokittuneeksi siihen luokkaan, jonka kanssa sillä on paras tulos, tässä tapauksessa suurin arvo. Taulukossa 3.5 on listattu kahdeksalla eri puhujalla toteutettu puhujan identifiointi. Testinäyte 1 2 3 4 5 6 7 8 1-17.605-31.253-32.518-32.518-24.331-25.260-38.852-36.978 L 2-17.876-16.619-20.382-24.885-22.543-19.683-23.870-21.609 u 3-20.498-23.463-18.387-27.772-22.543-21.231-29.367-25.155 o 4-21.279-27.216-28.094-20.824-24.826-28.684-22.933-24.443 k 5-22.041-20.866-26.581-29.544-22.969-21.642-27.831-23.295 k 6-20.435-22.225-24.028-21.560-22.774-16.572-22.929-21.997 a 7-23.614-24.236-28.948-20.668-23.490-19.116-22.895-26.619 8-20.716-22.122-22.992-24.190-20.802-21.352-23.679-18.459 Taulukko 3.5: Taulukoon on listattu Matlabilla lasketut log-likelihood-arvot kehdeksalta eri puhujalta, kahdeksaan eri malliin verrattuna. Oikea luokka sijaitsee diagonaalilla ja testinäytteelle saatu luokitustulos on lihavoituna. Identifioinnissa on käytetty kahdeksaa satunnaisesti valittua puhujaa [15] ja jokaiselta puhujalta on satunnaisesti valittu näytteet opetukseen ja testaukseen. Opetuksessa ja testauksessa yhdenkään puhujan kohdalla ei ole käytetty samaa näytettä. Tässä tapauksessa näytteistä 75 prosenttia on luokittunut oikein. Virheprosentti on siis 25 prosenttia, joka on melko suuri, mutta kuitenkin luokittelutulos on huomattavasti arvausta parempi. Mitään suuria johtopäätöksiä ei tästä testistä voida kuitenkaan puhujien pienehkön määrän vuoksi tehdä, ja todellisen virhesuhteen määrittämiseen tarvittaisiin huomattavasti suurempi otos. Voidaan kuitenkin todeta, että työssä on onnistuttu pelkkiä MFCCpiirteitä käyttämällä toteuttamaan kohtalaisen hyvällä luokitteluvarmuudella toimiva puhujantunnistin.

17 4 JOHTOPÄÄTÖKSET Toteutuksellisessa osiossa näytettiin, että yksinkertaisen tekstiriippumattoman puhujantunnistimen toteuttaminen onnistuu melko vaivattomasti MFCC-kertoimia ja GMMmallinnusta käyttäen ja toteutuksen helpottamiseksi on saatavilla valmiita ja monipuolisia työkaluja ja testiaineistoa [7][15][16]. Itse toteutus tuotti odotusten mukaisia tuloksia ja suppeassa testissä 75 prosenttia testinäytteistä luokittui oikein. Suurempi varmuus oikein luokittuneiden testinäytteiden osuudesta olisi saatu tekemällä samat testit suuremmalla otannalla. Reynolds:n ja Rosen artikkelissa [17] vastaaviksi arvoiksi on saatu 49 henkilön otoskoolla 96,8 prosentin oikeinluokittuneiden määrä 5 sekunnin mittaisilla puhtailla puhesignaaleilla ja 80,8 prosentin oikeinluokittuneiden määrä puhelimella nauhoitetuilla 15 sekunnin mittaisilla testinäytteillä. Tämän kandidaatintyön toteutuksesta on vielä matkaa käytännössä toimivaan puhujantunnistusjärjestelmään ja seuraavina askeleina olisivat varmasti useamman piirteen käyttäminen ja järjestelmän kehittäminen niin, että mittauskertojen välillä tapahtuvien muutosten vaikutus luokitustulokseen olisi mahdollisimman pieni. Tässä vaiheessa kaikki testisignaalit olivat puhtaita, joten kohinan vaikutuksista luokitustuloksiin ei ole näyttöä. Ei voida myöskään sanoa mallintaako nykyinen järjestelmä enemmän itse puhujaa vai nauhoituslaitteistoa. Toteutusympäristöstä riippuen todellisilla puhujantunnistusjärjestelmillä, kuten esimerkiksi järjestelmillä, joilla on jotakin tekimistä esimerkiksi kulunvalvonnan tai pankkiasioinnin kanssa, tulisi oikein luokittuneiden osuus olla mahdollisimman lähellä 100 prosenttia. Kuitenkin ehdottoman tärkeää on, ettei järjestelmä anna väärälle henkilölle oikeuksia tehdä jotakin, mikä on hänelle luvatonta. Lähitulevaisuus varmasti kertoo mihin suuntaan puhujantunnistusjärjestelmät kehittyvät.

18 LÄHTEET [1] T. Kinnunen and H. Li, An overview of text-independent speaker recognition: From features to supervectors, Speech Communication 52 (2010), pp. 12 40. Saatavissa: http://cs.joensuu.fi/sipu/pub/sre-review-kinnunen-and-li.pdf [2] H. Beigi, Speaker Recognition, InTech: Biometrics (2011), pp. 3 28. Saatavissa: http://www.intechopen.com/books/biometrics/ speaker-recognition [3] Disability census results for 2005 [verkkodokumentti]. Saatavissa: http://www.census.gov/prod/2008pubs/p70-117.pdf [4] T. Manninen, Iiris biometrisena tunnisteena, kandidaatintyö, Tampereen teknillinen yliopisto (2008), 27 s. [5] A. K. Jain, Biometric Recognition: How Do I Know Who You Are?, Proceedings of the IEEE 12th Signal Processing and Communications Applications Conference (2004), pp. 3 5 [6] P. Maijala, Akustiikan mittaukset, esivedos 26.9.2011, 164 s. [7] A. Alexander and A. Drygajlo, Speaker identification: A demonstration using Matlab, Swiss Federal Institute of Technology, Lausanne, Signal Processing Institute (2008), [verkkodokumentti]. Saatavissa: http://scgwww.epfl. ch/courses/biometrics_lectures-2005-2006-pdf/03-biometrics-exercise-3-2005/ [8] K. Koppinen, SGN-4010 Puheenkäsittelyn menetelmät, Tampereen teknillinen yliopisto (2006), 72 s. [9] E. Karpov, Efficient Speaker Recognition for Mobile Devices, Publications of the University of Eastern Finland, Dissertations in Forestry and Natural Sciences (2011), p. 48 [10] J. Wolf, Efficient acoustic parameters for speaker recognition, Journal of the Acoustic Society of America 51, 6 (Part 2) (1972), pp. 2044 2056 [11] T. Kinnunen, Automaattinen puhujan tunnistus Joensuun yliopisto (1999), 55 s. [12] B. Pellom, T-61.184 Automatic Speech Recognition: From Theory to Practice, University of Colorado, Department of Computer Science, Center for Spoken Language Research (2004). Saatavissa: http://www.cis.hut.fi/opinnot/t-61.184/

19 [13] R. Saeidi, Advances in Front-end and Back-end in Speaker Recognition, Publications of the University of Eastern Finland, Dissertations in Forestry and Natural Sciences No 34 (2011), p. 46 [14] J. Tohka, SGN-2500: Johdatus hahmontunnistukseen Tampereen teknillinen yliopisto (2008), 78 s. [15] CHiME Computational Hearing in Multisource Environments [WWW]. Saatavissa: http://spandh.dcs.shef.ac.uk/projects/chime/pcc/datasets.html [16] VOICEBOX: Speech Processing Toolbox for Matlab [WWW]. Saatavissa: www.ee.ic.ac.uk/hp/staff/dmb/voicebox.html [17] D. Reynolds and R. Rose, Robust Text-Independent Speaker Identification Using Gaussian Mixture Speaker Models IEEE Transactions on speech and audio processing, vol 3., no. 1 (1995), pp. 72 83

20 LIITE A Liitteenä on yksinkertaisen puhujantunnistusjärjestelmän Matlab-toteutus. Liitteen toteutuksessa on tilan säästämiseksi käytetty ainoastaan yhtä opetusnäytettä ja yhtä testinäytettä, koska vertailujen määrä kasvaa eksponentiaalisesti vertailtavien lisääntyessä. Tarkoituksena on tuoda esille toteutuksessa käytetyt menetelmät. Kaikki käytetyt funktiot ovat saatavilla lähteistä [7] ja [16]. % Käytettyjen normaalijakaumien lukumäärä No_of_Gaussians = 7; % Opetus-ja testidatan lukeminen [data1,fs] = wavread('training_data1.wav'); test1 = wavread('testing_data1.wav'); % Muunnos kaksikanavaisesta yksikanavaiseksi training_data1 = zeros(length(data1),1); testing_data1 = zeros(length(test1),1); for n = 1:length(training_data1) training_data1(n) = (data1(n,1)+data1(n,2))/2; end for n = 1:length(testing_data1) testing_data1(n) = (test1(n,1)+test1(n,2))/2; end % Piirteenirrotus training_features1 = melcepst(training_data1,fs,'m',12,26,20e-3*fs,10e-3*fs); testing_features1 = melcepst(training_data1,fs,'m',12,26,20e-3*fs,10e-3*fs); % Opetus ja mallinnus [mu_train1,sigma_train1,c_train1] = gmm_estimate(training_features1',no_of_gaussians); % Testaus, tässä vaiheessa tulisi verrata kaikkia testipiirteitä kaikkiin luotuihin malleihin, tulokset tallentuvat matriisiin A [lym,ly]= lmultigauss(testing_features1', mu_train1,sigma_train1,c_train1); A(1,1)=mean(lY);