SGN-4010 PUHEENKÄSITTELYN MENETELMÄT Luento 4 TTY/Signaalinkäsittelyn laitos Hanna Silen
Lineaarisen ennustuksen sovelluksia Luennon aiheena lineaarisen ennustuksen sovellukset: Formanttien etsiminen Perustaajuuden määrittäminen
Kertausta viimekertaisesta: lähde-suodin –malli Puhekehys voidaan kuvata lähde-suodin –mallin avulla Järjestelmän syötteenä x(n) on kurkunpää-ääni ja ulostulona y(n) mitattu puhesignaali X(z) H(z) Y(z)
Kertausta viimekertaisesta: lineaarinen ennustus Lineaarinen ennustus on yksi tärkeimmistä puheenkäsittelyn työkaluista Lyhenne LP (linear prediction) tai LPC (linear predictive coding) Puheenkäsittelyn kannalta LP:n tärkein ominaisuus on sen kyky mallintaa ääntöväylää Ideana ennustaa puhesignaalin seuraavaa näytettä edellisten näytteiden ja lineaarisen suotimen avulla (edellisten näytteiden lineaarikombinaationa) Aiemmin käsitelty ristikkorakenteinen malli ääntöväylälle on all-pole –suodin Lineaarinen ennustus on hyvä menetelmä suotimen parametrien estimointiin
Kertausta viimekertaisesta: lineaarinen ennustus Ääntöväyläsuotimelle voidaan käyttää mallia (all-pole –suodin) eli All-pole –järjestelmän ulostulo voidaan ennustaa täydellisesti mikäli sisäänmeno ja ulostulon aiemmat arvot tunnetaan. Jätetään riippuvuus sisäänmenosta pois ja tehdään ennustus pelkän ulostulon perusteella. Ulostulon estimaatti aikatasossa:
Kertausta viimekertaisesta: lineaarinen ennustus Tehtävänä on määrittää suotimen parametrit a(1),a(2),...,a(p) Tämä tehdään yleensä niin, että ulostulon ja ennustuksen neliövirheiden summa minimoituu autokorrelaatioyhtälöiden avulla johdetuista normaaliyhtälöistä voidaan ratkaista ennustuskertoimet (LP-suotimen kertoimet)
Kertausta viimekertaisesta: Levinson-Durbin –rekursio Levinson-Durbin –rekursio: tehokkaampi tapa ennustuskertoimien a(1),a(2),...,a(p) ratkaisemiseen Ideana on ratkaista symmetrinen Toeplitz-matriisiyhtälö lohkoittain kasvattamalla vektorin x pituutta ja laskemalla uusi ratkaisu edellisten avulla
Kertausta viimekertaisesta: Levinson-Durbin –rekursio Yhtälöryhmän ratkaisu: vektori, joka on summa alempiasteisesta ratkaisusta ja sen vakiolla painotetusta käännöksestä Esim. kun aste on 3: missä k3 on heijastuskerroin ja Jotta tämä olisi normaaliyhtälöiden ratkaisu, vaaditaan ainoastaan että oikean puolen vektorin alkiot ensimmäistä lukuunottamatta ovat nollia, eli
Kertausta viimekertaisesta: Levinson-Durbin –rekursio Ratkaistaan termi k3 ja tämän jälkeen termi E3
Kertausta viimekertaisesta: Levinson-Durbin –rekursio Vastaavasti, kun kasvatetaan lohkon koko n – 1:stä n:ään: Aloitus ehdosta:
Formanttien estimointi Formantti on spektrissä havaittava vahvistunut osavärähtelyalue tai taustalla oleva siirtofunktio-ominaisuus (napa)
Napaparin amplitudivaste: formantin taajuus Napaparilla on siirtofunktio (tai tämän vakiolla kerrottu versio): Siirtofunktion kertoimet ovat siis: Kompleksitason yksikköympyrällä, kun , siirtofunktio saa muodon: Järjestelmän amplitudivaste - eli siirtofunktion itseisarvo - saa maksimiarvonsa, kun saa minimiarvonsa, eli kun => eli taajuudella:
Napaparin amplitudivaste: formantin taajuus Napapari taajuudella 1600 Hz (Fs = 16000 Hz), eli kulmataajuudella
Napaparin amplitudivaste: formantin taajuus Vastaavasti, napapari taajuudella 3200 Hz (Fs = 16000 Hz), eli kulmataajuudella
Napaparin amplitudivaste: formantin kaistanleveys Formantin kaistanleveys ilmaisee, kuinka leveä formantti on Mikäli formantti on jyrkkä, sen kaistanleveys on pieni (ja päinvastoin) Kaistanleveys on sen taajuuskaistan leveyden puolikas hertseinä, jolla amplitudivasteen arvo on laskenut 3dB maksimiarvosta Napaparin kaistanleveys riippuu navan etäisyydestä origosta:
Napaparin amplitudivaste: formantin kaistanleveys Napapari etäisyydellä 0.9 origosta (näytteenottotaajuus 16 kHz) kaistanleveys:
Napaparin amplitudivaste: formantin kaistanleveys Vastaavasti, kun r = 0.7 ja r = 0.99
Napaparin amplitudivaste: napojen yhteisvaikutus Tarkastellaan vielä kahden napaparin (0.9ej1 ja 0.9ej2 ) yhdistettyä amplitudivastetta
Napaparin amplitudivaste: napojen yhteisvaikutus Napojen taajuuksien lähestyessä toisiaan amplitudivasteen huiput sulautuvat yhteen
Formanttien estimointi: tekijöihin jako Suoraviivainen tapa estimoida formantteja on jakaa LP-polynomi tekijöihin missä ovat LP-polynomin nollakohdat
Formanttien estimointi: tekijöihin jako LP-polynomin nollakohta zi voidaan kirjoittaa muodossa Mikä tarkoittaa, että suotimella 1/A(z) on formantti taajuudella ωi
Formanttien estimointi: tekijöihin jako MATLABissa polynomin nollakohdat voi laskea komennolla roots Juurtaminen on laskennallisesti raskas operaatio, käytännössä käytetään jotakin iteratiivista menetelmää Newton-Raphson-algoritmi toimii hyvin jos juurten alkuarvaukset ovat hyvät Ääntöväylä ja LP-polynomin nollat muuttuvat suhteellisen hitaasti Käytetään alkuarvoina edellisen puhekehyksen LP-polynomin nollakohtia
Formanttien estimointi: tekijöihin jako Tekijöihin jakamiseen perustuva formanttien estimointi: Ikkunoidaan signaali Lasketaan kullekin puhekehykselle LP-polynomi A(z) (aste näytteenotto-taajuuden mukaan) Juurretaan suotimen 1/A(z) nimittäjä (siis etsitään A(z):n nollakohdat) Formanttien taajuudet saadaan LP-polynomin nollakohtien (1/A(z):n napojen) kulmista (muuntamalla kulmataajuudet hertseiksi)
Formanttien estimointi: tekijöihin jako Fs: 8 kHz LP-mallin aste: 8 Kehyksen pituus: 30 ms
Formanttien estimointi: tekijöihin jako Siistitään edellisen kalvon kuviota LP-mallin aste: 12 Huomioidaan vain navat, joiden: 1) säde on vähintään 0.9 2) kulma vähintään 200 Hz
Formanttien estimointi: amplitudivasteen maksimien etsintä Toinen tapa formanttien estimointiin LP-polynomin A(z) avulla on laskea siirtofunktion 1/A(z) amplitudivaste Formanttien pitäisi olla suotimen 1/A(z) amplitudivasteen maksimien kohdalla Nopeampi tapa: formanttien pitäisi olla LP-polynomin A(z) amplitudivasteen minimien kohdalla
Formanttien estimointi: amplitudivasteen maksimien etsintä Formanttien estimointi etsimällä amplitudivasteen maksimit toimii pääsääntöisesti hyvin Ongelmia syntyy, kun formantit ovat niin lähellä toisiaan, että ne sulautuvat yhteen Tällöin amplitudivasteessa on vain yksi maksimi Muokataan LP-mallia ongelman ratkaisemiseksi
McCandlessin menetelmä Lasketaan järjestelmän amplitudivaste ympyrän muotoisella kehällä yksikköympyrän sisällä pisteissä missä 0 < r < 1 ja 0 ≤ ω < 2π Amplitudivasteen piikeistä tulee terävämpiä ja helpommin eroteltavia
McCandlessin menetelmä Laskennallisesti: Tämä on jonon DTFT, joka voidaan laskea nopeasti nollilla jatketun jonon FFT:nä
McCandlessin menetelmä Tarkastellaan napapareja 0.9e0.3jπ ja 0.85e0.4jπ Lasketaan amplitudivasteen arvo yksikköympyrällä: formantit sulautuvat Formantit saadaan erotettua, kun lasketaan amplitudivaste yksikköympyrän sisällä
Kangin ja Coulterin menetelmä Siirretään LP-polynomin nollat yksikköympyrälle Tämän jälkeen amplitudivasteen minimit on helppo erottaa Nollien siirtäminen asettamalla viimeinen heijastuskerroin ykköseksi: Viimeinen heijastuskerroin = LP-polynomin viimeisen termin kerroin = LP-polynomin nollakohtien tulo Nollat eivät kuitenkaan siirry säteittäisesti yksikköympyrälle => Formanttitaajuuksiin tulee pieni vääristymä
Christensenin menetelmä Etsitään amplitudivasteen minimien sijaan sen toisen derivaatan maksimi Toinen derivaatta mittaa funktion kuperuutta tai koveruutta Funktion kuvaajassa jyrkkä käännös toisen derivaatan maksimikohdassa Menetelmällä voidaan arvioida myös formantin kaistanleveyttä
LP-mallin käyttö perustaajuuden estimoinnissa Puheen perustaajuutta f0 voidaan estimoida laskemalla kehyksen autokorrelaatiofunktio (korrelaatio itsensä kanssa) ja etsimällä autokorrelaation maksimi sopivalla viivealueella Fs = 8kHz Perusjakson pituus: n. 70 näytettä eli 70 / 8000Hz = 8.75 ms Perustaajuus: 8000Hz / 70 = 114 Hz
LP-mallin käyttö perustaajuuden estimoinnissa Perustaajuus f0 saadaan laskettua perusjaksonajasta T0 (l. lyhimmästä jaksonajasta, jolla signaali toistaa itseään) Perusjaksonaika taas saadaan jakamalla jakson pituus näytteinä perustaajuudella Fs Esim. taajuusalue 50…500 Hz vastaa autokorrelaation viiveitä Fs/500…Fs/50 Autokorrelaatiofunktion maksimin etsintään perustuva menetelmä toimii pääsääntöisesti hyvin, mutta formanttien aiheuttamat huiput tuottavat joskus virheellisen perustaajuusarvon Formantit voidaan poistaa signaalista LP-mallin avulla
LP-mallin käyttö perustaajuuden estimoinnissa Puhekehys Y(z) muodostuu ääntöväylämallilla 1/A(z) suodatetusta glottisherätteestä X(z) Eli X(z) Y(z) 1/A(z)
LP-mallin käyttö perustaajuuden estimoinnissa Vastaavasti formantit voidaan poistaa (ratkaista glottisheräte) suodattamalla puhekehys LP-parametreista saadulla käänteissuotimella A(z) Glottisheräte X(z) saadaan siis suodattamalla puhekehys Y(z) käänteissuotimella A(z) Y(z) X(z) A(z)
LP-mallin käyttö perustaajuuden estimoinnissa Koska all-pole –suodin 1/A(z) aiheuttaa signaaliin formantit, voidaan ne siis poistaa FIR-käänteissuotimella A(z) Kun LP-mallin aste on riittävän matala, se mallintaa vain formantteja (ääntöväylää) ei perustaajuutta (glottista) Autokorrelaatio voidaan nyt laskea glottisherätteestä X(z) puhekehyksen Y(z) sijaan Formanttien vaikutus pienenee Menetelmästä käytetään nimitystä SIFT (simple inverse filter tracking)
LP-mallin käyttö perustaajuuden estimoinnissa SIFT-esisuodatettu autokorrelaatio:
Yhteenveto Lineaarinen ennustus ehkä tärkein yksittäinen puheenkäsittelyn menetelmä LP:n sovellukset perustuvat puheen esittämiseen heräte-suodin –mallin avulla Lineaarisen ennustuksen avulla voidaan estimoida ääntöväyläsuodatinta Puhekehyksestä estimoidun ääntöväyläsuotimen 1/A(z) navoista/amplitudivasteen huipuista voidaan päätellä puhekehyksen formanttitaajuudet Perustaajuuden estimointia voidaan parantaa poistamalla formanttien vaikutus puhekehyksestä suodattamalla se suotimella A(z) Edelleen tärkeä muistaa, että puhetta käsitellään muutamien kymmenien millisekuntien kehyksissä