Levinson-Durbin –rekursio

Download Report

Transcript Levinson-Durbin –rekursio

SGN-4010 PUHEENKÄSITTELYN MENETELMÄT
Luento 4
TTY/Signaalinkäsittelyn laitos
Hanna Silen
2
Lineaarisen ennustuksen sovelluksia
Luennon aiheena lineaarisen
ennustuksen sovellukset:
– Formanttien etsiminen
– Perustaajuuden määrittäminen
3
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)
4
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
5
Kertausta viimekertaisesta: lineaarinen ennustus
Ääntöväyläsuotimelle voidaan käyttää mallia (all-pole –suodin)
1
,
A( z )
eli
1
.
1
p
1  a1 z  ...  a p z
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:
p
yˆ (n)   a(k ) y(n  k )
k 1
6
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)
r (1)
r ( 2)
 r (0)
 r (1)
r ( 0)
r (1)

 r (2)
r (1)
r ( 0)



 
r ( p  1) r ( p  2) r ( p  3)
 r ( p  1)   a (1) 
 r (1) 
 r (2) 
 r ( p  2)  a (2) 


 r ( p  3)   a (3)     r (3) 





   



r ( p )

r (0)  a ( p )
7
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ö
Rx  y
lohkoittain kasvattamalla vektorin x pituutta ja laskemalla uusi ratkaisu
edellisten avulla
8
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:
q
r (0) r (1) r (2) r (3)   1 
 0    E2 
0
 r (1) r (0) r (1) r (2)  a (1) 
a (2)   0 


2
2

 
  k3 
      k3  
0
r (2) r (1) r (0) r (1)  a2 (2)
 a2 (1)    0 
 

 


  
r
(
3
)
r
(
2
)
r
(
1
)
r
(
0
)
0
1
q

 


  
 E2 
missä k3 on heijastuskerroin ja q  i 0 a2 (i )r (3  i )
2
Jotta tämä olisi normaaliyhtälöiden ratkaisu, vaaditaan ainoastaan että
oikean puolen vektorin alkiot ensimmäistä lukuunottamatta ovat nollia,
eli q  k3 E2  0
9
Kertausta viimekertaisesta: Levinson-Durbin –rekursio
Ratkaistaan termi k3
q  k3 E2  0
k3  
q
E2

1
E2

2
i 0
ja tämän jälkeen termi E3
E3  E2  k3q
 E2  k 3 (  k 3 E 2 )
 E2 (1  k32 )
a2 (i )r (3  i )
10
Kertausta viimekertaisesta: Levinson-Durbin –rekursio
Vastaavasti, kun kasvatetaan lohkon koko n – 1:stä n:ään:
kn  
1
n 1
a (i )r (n  i )

i  0 n 1
En 1
En  En 1 (1  k n2 )
an (i )  an 1 (i )  k n an 1 (n  i )
Aloitus ehdosta:
r (0)  E0
11
Formanttien estimointi
• Formantti on spektrissä havaittava vahvistunut osavärähtelyalue tai
taustalla oleva siirtofunktio-ominaisuus (napa)
12
Napaparin amplitudivaste: formantin taajuus
 j
• Napaparilla re
on
siirtofunktio (tai tämän vakiolla
kerrottu versio):
1
(1  re j z 1 )(1  re  j z 1 )
1

1  r (e j  e  j ) z 1  r 2 e j e  j z  2
1

1  2r cos( ) z 1  r 2 z  2
• Siirtofunktion kertoimet ovat siis:
a0  1
a1  2r cos( )
a2  r 2
• Kompleksitason yksikköympyrällä,
j
kun z  e , siirtofunktio saa
muodon:
1
(1  re j z 1 )(1  re  j z 1 )
1

(1  re j e  j )(1  re  j e  j )
1

(1  re j (  ) )(1  re  j (  ) )
• Järjestelmän amplitudivaste - eli
siirtofunktion itseisarvo - saa
j (  )
)
maksimiarvonsa, kun (1  re
saa minimiarvonsa, eli kun e j (  )
=>   

Fs
eli taajuudella: 
2
1
13
Napaparin amplitudivaste: formantin taajuus
• Napapari taajuudella 1600 Hz (Fs = 16000 Hz), eli kulmataajuudella
  0.1 2 0.2
14
Napaparin amplitudivaste: formantin taajuus
• Vastaavasti, napapari taajuudella 3200 Hz (Fs = 16000 Hz), eli
kulmataajuudella
  0.2  2 0.4
15
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
 j
• Napaparin re
kaistanleveys riippuu navan etäisyydestä origosta:
BW   ln r
BW f   ln r
Fs
2
16
Napaparin amplitudivaste: formantin kaistanleveys
• Napapari etäisyydellä 0.9 origosta (näytteenottotaajuus 16 kHz)
kaistanleveys:  Fs
ln r
 268 Hz
2
17
Napaparin amplitudivaste: formantin kaistanleveys
• Vastaavasti, kun r = 0.7
ja r = 0.99
18
Napaparin amplitudivaste: napojen yhteisvaikutus
• Tarkastellaan vielä kahden napaparin (0.9ej1 ja 0.9ej2 ) yhdistettyä
amplitudivastetta
Napaparien yhdistetty amplitudivaste, 1 = 0.3 ja 2 = 0.5
20
15
15
10
10
Ampltudivaste (dB)
Ampltudivaste (dB)
Napaparien yhdistetty amplitudivaste, 1 = 0.3 ja 2 = 0.6
20
5
0
5
0
-5
-5
-10
-10
-15
0
0.1
0.2
0.3
0.4
0.5
0.6
Normalisoitu taajuus
0.7
0.8
0.9
1
-15
0
0.1
0.2
0.3
0.4
0.5
0.6
Normalisoitu taajuus
0.7
0.8
0.9
1
19
Napaparin amplitudivaste: napojen yhteisvaikutus
• Napojen taajuuksien lähestyessä toisiaan amplitudivasteen huiput
sulautuvat yhteen
Napaparien yhdistetty amplitudivaste, 1 = 0.3 ja 2 = 0.4
Napaparien yhdistetty amplitudivaste, 1 = 0.3 ja 2 = 0.3
25
40
20
30
10
Ampltudivaste (dB)
Ampltudivaste (dB)
15
5
0
-5
20
10
0
-10
-10
-15
-20
0
0.1
0.2
0.3
0.4
0.5
0.6
Normalisoitu taajuus
0.7
0.8
0.9
1
-20
0
0.1
0.2
0.3
0.4
0.5
0.6
Normalisoitu taajuus
0.7
0.8
0.9
1
20
Formanttien estimointi: tekijöihin jako
• Suoraviivainen tapa estimoida formantteja on jakaa LP-polynomi
A( z)  1 a1z 1  ... a p z  p
tekijöihin
A( z)  (1  z1z 1 )(1  z2 z 1 )...(1  z p z 1 ),
missä z1 , z2 ,..., z p ovat LP-polynomin nollakohdat
21
Formanttien estimointi: tekijöihin jako
• LP-polynomin nollakohta zi voidaan kirjoittaa muodossa
zi  ri e ji
Mikä tarkoittaa, että suotimella 1/A(z) on formantti taajuudella ωi
LP-suotimen napa-nolla -kuvio
LP-spektri
50
1
0.8
40
0.6
30
amplitudi (dB)
Imaginary Part
0.4
0.2
16
0
-0.2
-0.4
20
10
0
-0.6
-10
-0.8
-1
-1
-0.5
0
Real Part
0.5
1
-20
0
1000
2000
3000
4000
5000
taajuus (Hz)
6000
7000
8000
22
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
23
Formanttien estimointi: tekijöihin jako
Tekijöihin jakamiseen perustuva formanttien estimointi:
1. Ikkunoidaan signaali
2. Lasketaan kullekin puhekehykselle LP-polynomi A(z) (aste
näytteenotto-taajuuden mukaan)
3. Juurretaan suotimen 1/A(z) nimittäjä (siis etsitään A(z):n nollakohdat)
4. Formanttien taajuudet saadaan LP-polynomin nollakohtien (1/A(z):n
napojen) kulmista (muuntamalla kulmataajuudet hertseiksi)
24
Formanttien estimointi: tekijöihin jako
Fs: 8 kHz
LP-mallin aste: 8
Kehyksen pituus: 30 ms
25
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
26
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
27
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
28
McCandlessin menetelmä
• Lasketaan järjestelmän amplitudivaste
ympyrän muotoisella kehällä
yksikköympyrän sisällä pisteissä
A(re j ),
missä 0 < r < 1 ja 0 ≤ ω < 2π
• Amplitudivasteen piikeistä tulee
terävämpiä ja helpommin eroteltavia
29
McCandlessin menetelmä
• Laskennallisesti:
p
A(re )  a(n)(re j ) n
j
n 0
p


  a(n)r n e  jn
n 0
Tämä on jonon
a(0), r 1a(1), r 2a(2),...,r  p a( p)
DTFT, joka voidaan laskea nopeasti nollilla jatketun jonon FFT:nä
30
McCandlessin menetelmä
Tarkastellaan napapareja 0.9e0.3jπ ja 0.85e0.4jπ
• Lasketaan amplitudivasteen arvo yksikköympyrällä: formantit sulautuvat
• Formantit saadaan erotettua, kun lasketaan amplitudivaste
yksikköympyrän sisällä
31
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ä
32
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ä
33
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
34
LP-mallin käyttö perustaajuuden estimoinnissa
• Perustaajuus f0 saadaan laskettua perusjaksonajasta T0 (l. lyhimmästä
jaksonajasta, jolla signaali toistaa itseään)
f 0  1/ T0
• 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
35
LP-mallin käyttö perustaajuuden estimoinnissa
• Puhekehys Y(z) muodostuu ääntöväylämallilla 1/A(z) suodatetusta
glottisherätteestä X(z)
X(z)
Y(z)
1/A(z)
Eli
Y ( z) 
1
X ( z)
A( z )
36
LP-mallin käyttö perustaajuuden estimoinnissa
• Vastaavasti formantit voidaan poistaa (ratkaista glottisheräte)
suodattamalla puhekehys LP-parametreista saadulla käänteissuotimella
A(z)
Y(z)
X(z)
A(z)
• Glottisheräte X(z) saadaan siis suodattamalla puhekehys Y(z)
käänteissuotimella A(z)
X ( z )  Y ( z ) A( z )
37
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)
38
LP-mallin käyttö perustaajuuden estimoinnissa
• SIFT-esisuodatettu autokorrelaatio:
39
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ä