5 Lineaarinen ennustus Lineaarinen ennustus (linear prediction, LP) on yksi tärkeimmistä puheenkäsittelyn työkaluista Sitä voidaan eri tilanteessa käyttää eri tavoilla, mutta puheenkäsittelyn kannalta LP:n tärkein ominaisuus on sen kyky mallintaa ääntöväylää Voidaan osoittaa, että edellisessä luvussa käsitelty ristikkorakenteinen ääntöväylän malli on all-pole suodatin eli suodatin, ossa on pelkästään napoa Tämä voidaan myös karkeasti ottaen aatella niin, että koska tällä suodattimella ei ole nollia, se kykenee ainostaan vahvistamaan tiettyä taauuksia, otka tässä tapauksessa ovat ääntöväylän resonanssitaauudet Todellisuudessa ääntöväylä ei tietenkään ole tasapaksuista häviöttömistä putkista koostuva ärestelmä, mutta silti ääntöväylän mallintaminen all-pole-suodattimella toimii käytännössä varsin hyvin Lineaarinen ennustus on puolestaan käyttökelpoinen menetelmä tämän all-pole ääntöväyläsuodattimen parametrien estimointiin mitatun puhesignaalin perusteella Katsotaan alkuun esimerkki LP:n käyttökelpoisuudesta tässä suhteessa Kuviossa 1 on esitetty 30 ms kehys vokaalista [a] näytteenottotaauudella 16 khz Kuviossa 2 on tämän vokaalin amplitudispektri, ossa siis näkyvät puheen perustaauus (tiheät piikit) sekä formantit (leveät piikit verhokäyrässä) Samassa kuviossa on aaltomuodosta lasketun 20:nnen asteen LP-mallin amplitudivaste, oka vastaa varsin hyvin vokaalin amplitudispektrin verhokäyrää 08 ikkunoitu a äänne 06 04 02 0 02 04 06 08 0 50 100 150 200 250 300 350 400 450 500 Kuvio 1: Hanning-ikkunoitu vokaalin [a] aaltomuoto 2
40 mplitudispektri a LPC spektri 20 0 20 40 60 80 0 1000 2000 3000 4000 5000 6000 7000 8000 taauus, Hz 51 Lineaarisen ennustuksen taustaa Kuvio 2: mplitudispektri a LP-spektri Termi lineaarinen ennustus viittaa lineaarisen ärestelmän ulostulon ennustamiseen lineaarisesti sen syötteen a edellisten ulostuloen avulla:! #"% '&( )&( +*,! -(/ 0&( 1 2&( (1) Tässä tarkoittaa :n ennustusta tai estimaattia Ideana hommassa on se, että tiedämme sisäänmenon 3 a ulostulon 3, a haluaisimme näiden perusteella ennustaa tuntemattoman ärestelmän 4 657 toimintaa, kuten kuvassa 3 on esitetty Kuviossa ulostulo on viivästetty, otta meillä ei olisi todellista ulostuloa käytössä Ongelmana on nyt määrätä vakiot '&( a '& / siten, että estimaatti olisi mahdollisimman lähellä todellista ulostuloa 3 Seuraavat termit kuvaavat käytettyä mallia: autoregressiivinen (autoregressive, R) malli Tässä ulostulo 3 pyritään arvioimaan käyttäen vain edellisiä ulostulon arvoa sekä nykyistä sisäänmenon arvoa, eli '&( 8:(;&=<> / a vain '&( a /? pitää määrittää Vastaa all-pole suodatinta liukuvan keskiarvon (moving average, M) malli Tässä mallissa ulostulo ennustetaan vain sisäänmenon avulla, eli '&( @ Vastaa IR suodatinta autoregressiivinen liukuvan keskiarvon (RM) malli Tämä on yhtälön ( 1) mukainen yleinen malli Vastaa yleistä lineaarista rekursiivista suodatinta 30
x(n) H(z) y(n) z -1 B(z) (z) y(n) 657 vastaa ääntöväylää eikä sisäänmenoa ole yleen- Kuvio 3: Tuntemattoman ärestelmän 4 ulostuloen avulla Puheenkäsittelyssä 4 sä käytettävissä?57 ulostulon ennustaminen sisäänmenoen a edellisten Käytännössä puheenkäsittelyssä käytetään R-mallia, seuraavista syistä: syötettä (kurkunpää-ääntä) ei tunneta laskennallinen yksinkertaisuus parametrien 0&( määräämisessä kuten aikaisemmin on esitetty, ääntöväylä on teoreettisesti all-pole suodatin ei-nasaalisten äänteiden tapauksessa korkeampiasteisella R-mallilla voidaan mallintaa myös RM-mallia stabiililla all-pole mallilla kyetään esittämään mielivaltaisen ärestelmän amplitudivaste halutulla tarkkuudella (vaadittavan all-pole mallin asteluku tosin saattaa olla hyvinkin suuri) atellaan all-pole ärestelmää, onka siirtofunktio on B C?57 (2) missä C 657 DE* " 5G " *H* 5G a B on vahvistuskerroin Siirtofunktio on ärestelmän ulostulon I 657 a sisäänmenon J suhde, eli I?57 J?57 B C?57 657 K5 -muunnosten 31
osta seuraa että I?57 C 657 LB J?57 (3) Ottamalla yhtälöstä (3) käänteinen 5 -muunnos saadaan aikatasossa yhtälö eli 3 3* M #" NO PNO QLB7R LB7R R NS M #" TNO (4) missä R on syöte, vaste a O U suodattimen C?57 kertoimet Toisin sanoen, all-pole ärestelmän ulostulo voidaan ennustaa täydellisesti os tunnetaan sisäänmeno a aiemmat ulostulot Käytännössä ennustus ei koskaan onnistu täydellisesti, sillä ärestelmät eivät ole lineaarisia saati all-pole tyyppisiä, a ulostulossa on yleensä mukana onkinasteista kohinaa Lisäksi puheenkäsittelyn tapauksessa emme tunne ärestelmän sisäänmenoa R Näistä seikoista huolimatta voidaan ääntöväylää (kuten mitä tahansa muutakin ärestelmää) mallintaa all-pole ärestelmällä, a tässä tapauksessa malli vieläpä toimii melkoisen hyvin Jos siis yhtälöstä (4) ätetään pois riippuvuus syötteestä R, päädytään seuraavaan malliin, ota käytämme atkossa: QD! #" '&( )&( Hattu :n päällä viittaa siihen, että kyseessä on estimaatti, eikä todellinen ulostulo Tavoitteena on nyt määrittää parametrit O 0 V siten että 3 olisi mahdollisimman lähellä todellista mitattua puhetta onkin kehyksen aikana, eli ennustusvirhe minimoituisi Kun parametrit on määritetty, voimme yhtälön (2) perusteella käyttää ääntöväylälle mallia C?57 missä on käytetty BWX ( B voidaan estimoida palon tyylikkäämminkin, mutta tässä olemme lähinnä kiinnostuneita termistä C 657 ) 52 utokorrelaatioyhtälöt Parametrit O V määritetään yleensä niin, että neliövirheiden summa Z R [ 1 minimoituu, kun summa lasketaan kaikkien indeksien yli Käytännössä summa on luonnollisesti äärellinen koska kyseessä on äärellisen pituinen ikkunoitu signaali, mutta tässä yhteydessä on kätevää aatella kehys itse asiassa äärettömän pitkäksi signaaliksi, osta vain otkin näytteet eroavat nollasta Seuraavassa käytetään ulostulosta 3 merkintää ] 3 (koska kyseessä aatellaan olevan puhetta, speech) 32
i b b i i Homma lähtee siitä, että meillä on ikkunoitu puhesignaali ], ossa on siis vain äärellisen monta nollasta eroavaa arvoa nnetuilla ennustuskertoimilla O 0 U# ennustusvirheen energia voidaan kiroittaa muodossa à 3 O ] 3 c ] 'd ] 3 c [ #" '& ] 2&( 'de missä on ennustavan suodattimen pituus a ] on ] 3 :n estimaatti (tässä tapauksessa ennustus) Kun sovitaan, että 6a ;f, niin ennustusvirheen energia voidaan kiroittaa näppärästi muodossa Minimoidaan nyt b [ - 0&( ] 2&( Zdg valitsemalla sopivat kertoimet S? U Välttämätön ehto sille että kerroin NO on optimaalinen on, että funktion osittaisderivaatta muuttuan NO suhteen on nolla Huomaa että riippuu siis kertoimista S U, oten se voitaisiin kiroittaa rehtinä monen S muuttuan funktionakin U# [ mutta lyhyyden vuoksi näin ei yleensä tehdä Sitten vaan derivoimaan! Muuttuan NS suhteen ( NhD%! ) osittaisderivaatta on i ik b [ - 0&( ] )&( Zd NO NO b il '&(! - ] 2&( 'd [ - 0&( ] )&( NO 1 b! - '&( ] 2&( 'd ] PNO missä on hyödynnetty yhdistetyn funktion derivointisääntöä (eli m B [ 'nl m voidaan ryhmitellä uudestaan seuraavasti: o [ -( o [ - b [ - '& '& Zp( 0&#ONS '& ] 2&( 'd ] TNS ] )&( ] TNO n B S 'Ban 6 # ) Tämä missä p( 0&#ONO ] )&( ] PNO 33
on itse asiassa signaalin ] autokorrelaatio viiveellä &q PN eli p( 0&#ONS r ] ] @ '&s PNO S Miten niin? No tekemällä muuttaan vaihto summauksessa todetaan että p( 0&#ONS r ] 2&( ] TNO ] [ W*=NO 2&( ] S t*=no R TNO ] 3 ] @ 0&q PNO S Lisäksi todetaan että termi p( '&usno riippuu itse asiassa vain arvosta &v wn oten merkitään sitä yhden muuttuan autokorrelaation avulla p( 0&q PNO Qp '&#ONO Edellä derivoitiin siis ennustusvirheen energian lauseketta kertoimien O V suhteen Kun nämä derivaatat asetetaan nollaksi, saadaan seuraava yhtälöryhmä: yyyyx z {yyyy! -! -! - '& Zp( 0&q @ '& Zp( 0&q )% @ '& Zp( 0&q }# @ 0% oka voidaan myös kiroittaa muodossa (muistetaan että? D a että p '&( Qp( O k& ) yyyyx [ #" '&( 'p( '&q QD ~p S z [ #" '&( 'p( '&q )% QD ~p 0 {yyyy [ #" '&( 'p( '&q QD ~p U oka taasen voidaan ryhmitellä matriisimuodossa näin: p?a p S p 0 op( Uv p S p?a p S op( Uv ) p 0 p S p?a op( Uv ƒa p( Vt p( Vt )% p( Vt ƒ p( 6a ˆ O? 6ƒa V ˆ Š p( S p( 0 p(?ƒa p( U ˆ Huomaa että kerroinmatriisi on symmetrinen (koska p( '&( } p( 1 k&( ) a Toeplitz (koska p( '& =NO p( '&#ONO Œ ), oka on oleellista kun kertoimille S? U# seuraavaksi etsitään nopea ratkaisumenetelmä 34
521 Levinson-Durbin rekursio Kertaus: tässä vaiheessa olemme ohtaneet yhtälöryhmän (ns normaaliyhtälöt) ennustuskertoimille O U sen perusteella, että ennustusvirhe minimoituu Kertoimet voitaisiin nyt periaatteessa ratkaista kääntämällä autokorrelaatiomatriisi, mutta tämä on yleensä melko vaativa operaatio Meidän onneksemme Levinson a Durbin ovat kehittäneet tehokaan algoritmin edellisen tapaisen symmetrisen a Toeplitz-tyyppisen yhtälöryhmän ratkaisemiseen lgoritmin perusaatuksena on ratkaista matriisiyhtälö Ž lohkoittain, eli kasvattamalla vektorin pituutta a laskemalla uusi ratkaisu edellisten avulla Optimaaliset kertoimet toteuttavat yhtälön M - NO Zp( NO missä on ennustusvirheen neliöiden summa (ohdattelu tähän yhtälöön löytyy esim kirasta T W Parsons, Voice and Speech Processing, McGraw-Hill, Inc, 187) Tämän avulla yhtälöryhmä voidaan kiroittaa muodossa p(? p S p( 0% p( V p( S p?a p( S op( Ut p( 0% p S p(? op( Ut p( U# p Uv p Uv )% ˆ Vasemman puolen matriisi on siis edelleen symmetrinen Toeplitz-matriisi Oletetaan, että olemme saaneet ratkaistuksi tämän yhtälön kun a katsotaan miten sen avulla voidaan ratkaista kertoimet O Eli tämä meillä on ratkaistuna: Matriisin Ž 0 p( 6a O? V?ƒa kun }oƒ, missä alaindeksi viittaa yhtälön asteeseen p( 6a p( S p 0 p( O p(? p S p(? p( S p?a ˆ rakenteen ansiosta on nyt voimassa p( 6a p( S p 0 p( O p(? p S p(? p( S p?a 35 S 0% 0% S ˆ
& & ˆ eli: symmetrisillä Toeplitz-matriiseilla (a vain näillä) on se mukava ominaisuus, että os kerroinvektori a tulosvektori käännetään, eli laitetaan viimeinen alkio ensimmäiseksi, toiseksi viimeinen toiseksi ne, niin yhtälöryhmä on edelleen voimassa ritetään nyt isommalle yhtälöryhmälle seuraavanlaista ratkaisua: p( 6a p( S p(? p(?ƒ p( O p(?a p( O p( 0% p(? p( S p( 6a p( S p( 6ƒa p( 0 p( O p(? *w& yyyx z {yyy S 0 *2&? O missä siis M - NO Zp( 6ƒk PNS Jotta tämä olisi normaaliyhtälöiden ratkaisu, vaadimme vain, että oikean puolen vektorissa kaikki alkiot ensimmäistä lukuunottamatta ovat nollia Tämä taas toteutuu, os eli Huomataan, että Perustelu: Š *2& M - @( NO 'p(?ƒl PNS Oš 2&G *w& *w& O k& Sš 2&7 Edellä siis totesimme että os kokeilemme korkeampiasteisen yhtälöryhmän ratkaisuksi vektoria oka on summa alempiasteisesta ratkaisusta a sen vakiolla painotetusta käännöksestä, saamme ratkaisun korkeampiasteiselle yhtälöryhmälle Sama päättely toimii yleisestikin kun lohkon kokoa kasvatetaan :stä :ään Tulokseksi saadaan " Š " M - " NO Zp TNS " Sš 2&7 36 yyy yyy
a Koska rvoa & ( NO " NO +*2& " TNO on ennustusvirhe :nnen asteen suodattimelle), seuraa että sanotaan heiastuskertoimiksi Levinson-Durbin rekursio aloitetaan ehdosta œ & œg p(? oka voidaan aatella :nnen asteen ennustaan virheeksi (eli ei ennustusta ollenkaan) Muitakin ratkaisua a variaatioita ääntöväylän mallintamiseksi on olemassa, mutta Levinson- Durbin algoritmin avulla lasketut kertoimet lienevät yleisin menetelmä Tällä tavalla lasketuilla kertoimilla on vielä se tärkeä ominaisuus, että heiastuskertoimet ovat automaattisesti itseisarvoltaan, olloin tuloksena saatava suodatin on stabiili Mallin aste valitaan yleensä sen perusteella, että yksi napa vastaa yhtä formanttia, a koska formanttea on suurin piirtein yksi aina yhtä khz:ä kohden, otetaan asteeksi näytteenottotaauus khz:nä Eli os näytteenottotaauus on 8kHz, niin mallin aste on 8 leensä otetaan vielä hieman korkeampi aste, otta pystyttäisiin kompensoimaan epätarkkuuksia mallissa (kuten R-oletusta yms), eli esim näytteenottotaauudella 8 khz ärellinen aste on 10 tai 12, a näytteenottotaauudella 16 khz esim 18 tai 20 Edellä käsitelty LP-analyysi on ehkä tärkein yksittäinen menetelmä puheenkäsittelyssä Esim puheenkoodauksessa sitä käytetään koodaamaan erikseen heräte a ääntöväylä, puheentunnistuksessa antamaan tietoa äänteen spektristä (a sitä kautta äänteestä) a puhesynteesissä mahdollistamaan erikseen herätteen a ääntöväylän ohaaminen Matlabissa LPC-analyysi onnistuu komennolla lpc % - 37