Teza doctorat (pdf) - Universitatea Tehnică
Teza doctorat (pdf) - Universitatea Tehnică Teza doctorat (pdf) - Universitatea Tehnică
Punctul pivot se determină conform relaţiei : PIV max( M k ( i)), k 0,.. N ; i D (4.66) unde N reprezintă numărul de maxime locale Mk din segmentul considerat. Algoritmul Determină_Pivot : (1) Se iniţializează valoarea pivotului: PIV=0 ; 112 Cap. 4. Analiza semnalului vocal (2) Pentru fiecare punct Mk(i) de tip maxim local (MAX) se execută paşii (3) şi (4) (3) Se determină condiţia C_PIV = (Mk(i) > PIV ) AND (Mk(i) != HIAT_PERIOD) AND (Mk(i) != HIAT_AMPLITUDE) (4) Dacă C_PIV este adevărată, atunci PIV = Mk (i). (5) Dacă PIV>0 se returnează True, altfel False. Prin modul de determinare a punctului pivot se observă că acesta este întotdeauna un punct de maxim de perioadă. Astfel el poate fi considerat ca fiind punctul de referinţă pentru determinarea celorlalte maxime de perioadă din segmentul de semnal analizat. 4.6.1.2. Estimarea perioadei În pasul al doilea se face estimarea perioadei actuale a semnalului în jurul punctului pivot. Pentru a face estimarea se determină punctele din vecinătatea stânga şi dreapta a punctului pivot care au amplitudinea comparabilă cu acesta. Dacă cele două estimări sunt aproximativ egale, estimarea iniţială a perioadei se obţine prin medierea distanţelor între aceste două puncte şi punctul pivot central. Dacă cele două estimări sunt diferite, atunci se ia perioada cea mai apropiată de valoarea medie a perioadelor vocalice determinate până în acel moment. Acest mod de calcul creşte robusteţea algoritmului ducând la minimizarea erorilor de estimare pentru perioada de semnal. MS(i) PIV MD(j) D1 D2 Figura 4.44. Estimarea perioadei actuale a semnalului
Estimarea perioadei actuale se face conform relaţiilor: 113 Cap. 4. Analiza semnalului vocal D 1 d ( PIV , M S ( i)) D 2 d ( PIV , M D ( j)) (4.67) PER ( D1 D 2 ) / 2 unde: - MS(i) este punctul de maxim local din stânga pivotului de amplitudine comparabilă cu pivotul: ( ( i), PIV ) S M S - MD(j) este punctul de maxim local din dreapta pivotului de amplitudine comparabilă cu acesta: ( ( j), PIV ) S M D Algoritmul de estimare a perioadei este explicat în cele ce urmează : Algoritmul Estimare_Perioadă : (1) Se iniţializează valorile de perioadă din stânga şi dreapta pivotului: Per[Stânga] = Per[Dreapta] = 0 , Stânga =0 , Dreapta = 1 , ind_per = 0; (2) Pentru direcţia Stânga, apoi Dreapta se execută paşii (3) – (9) ; (3) Pentru raportul de amplitudine R_AMP = 70%, scăzând cu 10% la fiecare iteraţie, se execută paşii (4) – (9) ; (4) Pentru fiecare punct P(i) de tip maxim local (MAX) ce urmează după pivotul PIV în direcţia curentă se execută paşii (5) - (9). (5) Se calculează distanţa – în număr de eşantioane - dintre pivot şi punctul curent : DIST = D( P(i) , PIV ) (6) Dacă DIST < D_MIN (se ia D_MIN corespunzător valorii de 2,5 ms), atunci P(i) nu este un maxim de perioadă şi se reia pasul (4) cu următoarea iteraţie ; (7) Dacă DIST > D_MAX (se ia D_MAX corespunzător valorii de 12,5 ms), atunci P(i) nu este un maxim de perioadă şi se reia pasul (4) cu următoarea iteraţie; (8) Se calculează COND_GASIT = P(i) / PIV > R_AMP; (9) Dacă COND_GASIT e adevărată, înseamnă că s-a găsit următorul maxim de perioadă: se reţine valoarea perioadei corespunzătoare: Per[ind_per] = | i – i_pivot | ; se reia pasul (2) cu următoarea iteraţie, căutându-se următorul maxim de perioadă în cealaltă direcţie; (10) În finalul iteraţiilor, dacă Per[Stânga] = 0, se ia pentru valoarea perioadei estimate PER = Per[Dreapta] ; dacă Per[Dreapta] = 0, se ia pentru valoarea perioadei estimate PER = Per[Stânga] ; se returnează True. Acest caz se întâlneşte când pivotul a fost detectat în extremitatea stânga sau dreapta a segmentului considerat; (11) Dacă valorile celor două perioade diferă cu o marjă mică de eroare: |Δ(Per[Stânga] - Per[Dreapta])| < Δ_ER, atunci se ia pentru valoarea perioadei estimate: PER = (Per[Stânga] + Per[Dreapta]) / 2; se returnează True; (12) Dacă |Δ(Per[Stânga] - Per[Dreapta])| > Δ_ER, atunci se ia pentru valoarea perioadei estimate perioada cea mai apropiată de valoarea medie Per_Med a perioadelor vocalice calculată până în acel moment: PER = Per[k], unde k minimizează expresia |Δ(Per[k] – Per_Med)| ; se returnează True.
- Page 80 and 81: F0 Excitaţie Figura 4.5. Modelul p
- Page 82 and 83: 64 Cap. 4. Analiza semnalului vocal
- Page 84 and 85: 4.3. Segmentarea semnalului vocal 6
- Page 86 and 87: 68 Cap. 4. Analiza semnalului vocal
- Page 88 and 89: 70 Cap. 4. Analiza semnalului vocal
- Page 90 and 91: 1 BNP mean p( n) (4.23) 20 20 n1
- Page 92 and 93: 74 Cap. 4. Analiza semnalului vocal
- Page 94 and 95: 0, RN( i) T upper EN(i) 1, RN( i)
- Page 96 and 97: 78 Cap. 4. Analiza semnalului vocal
- Page 98 and 99: D(x,y) 255 m0 || H ( e x m j 256 2
- Page 100 and 101: 82 Cap. 4. Analiza semnalului vocal
- Page 102 and 103: 84 Cap. 4. Analiza semnalului vocal
- Page 104 and 105: 86 Cap. 4. Analiza semnalului vocal
- Page 106 and 107: 3. Regiune de tip vocală sonoră (
- Page 108 and 109: 90 Cap. 4. Analiza semnalului vocal
- Page 110 and 111: 92 Cap. 4. Analiza semnalului vocal
- Page 112 and 113: 4.4.2.3.1. Detectarea subregiunilor
- Page 114 and 115: 96 Cap. 4. Analiza semnalului vocal
- Page 116 and 117: 4.4.2.5. Detectarea categoriei Tran
- Page 118 and 119: Detectorul regiunii tranzitorii den
- Page 120 and 121: 102 Cap. 4. Analiza semnalului voca
- Page 122 and 123: Algoritmul de compactare în acest
- Page 124 and 125: 106 Cap. 4. Analiza semnalului voca
- Page 126 and 127: 108 Cap. 4. Analiza semnalului voca
- Page 128 and 129: 110 Cap. 4. Analiza semnalului voca
- Page 132 and 133: 4.6.1.3. Detectarea maximelor de pe
- Page 134 and 135: 116 Cap. 4. Analiza semnalului voca
- Page 136 and 137: 118 Cap. 4. Analiza semnalului voca
- Page 138 and 139: 120 Cap. 4. Analiza semnalului voca
- Page 140 and 141: 4.7.3. Segmentarea bazată pe proba
- Page 142 and 143: 124 Cap. 4. Analiza semnalului voca
- Page 144 and 145: 126 Cap. 4. Analiza semnalului voca
- Page 146 and 147: 128 Cap. 4. Analiza semnalului voca
- Page 148 and 149: 130 Cap. 4. Analiza semnalului voca
- Page 150 and 151: 132 Cap. 4. Analiza semnalului voca
- Page 152 and 153: 134 Cap. 4. Analiza semnalului voca
- Page 154 and 155: 136 Cap. 4. Analiza semnalului voca
- Page 156 and 157: 4.8.4.1. Calculul distanţei dintre
- Page 158 and 159: F(C1) C1 C2 Np E(a,b) 140 Dp Cap. 4
- Page 160 and 161: Tabelul 4.10. Stabilirea frontierel
- Page 162 and 163: 144 Cap. 4. Analiza semnalului voca
- Page 164 and 165: Tabelul 4.13. Stabilirea frontierel
- Page 166 and 167: 2) Compararea vectorilor din regiun
- Page 168 and 169: 150 Cap. 4. Analiza semnalului voca
- Page 170 and 171: c) În faza de etichetare s-a mers
- Page 172 and 173: 154 Cap. 4. Analiza semnalului voca
- Page 174 and 175: 156 Cap. 5. Sinteza de voce Aşa cu
- Page 176 and 177: 158 Cap. 5. Sinteza de voce Metodel
- Page 178 and 179: 160 Cap. 5. Sinteza de voce Urmeaz
Estimarea perioadei actuale se face conform relaţiilor:<br />
113<br />
Cap. 4. Analiza semnalului vocal<br />
D<br />
1 d<br />
( PIV , M S ( i))<br />
<br />
D<br />
2 d<br />
( PIV , M D ( j))<br />
(4.67)<br />
<br />
PER<br />
(<br />
D1<br />
D<br />
2 ) / 2<br />
unde:<br />
- MS(i) este punctul de maxim local din stânga pivotului de amplitudine comparabilă cu<br />
pivotul: ( ( i),<br />
PIV ) S<br />
M S<br />
- MD(j) este punctul de maxim local din dreapta pivotului de amplitudine comparabilă cu<br />
acesta: ( ( j),<br />
PIV ) S<br />
M D<br />
Algoritmul de estimare a perioadei este explicat în cele ce urmează :<br />
Algoritmul Estimare_Perioadă :<br />
(1) Se iniţializează valorile de perioadă din stânga şi dreapta pivotului: Per[Stânga] =<br />
Per[Dreapta] = 0 , Stânga =0 , Dreapta = 1 , ind_per = 0;<br />
(2) Pentru direcţia Stânga, apoi Dreapta se execută paşii (3) – (9) ;<br />
(3) Pentru raportul de amplitudine R_AMP = 70%, scăzând cu 10% la fiecare iteraţie, se<br />
execută paşii (4) – (9) ;<br />
(4) Pentru fiecare punct P(i) de tip maxim local (MAX) ce urmează după pivotul PIV în<br />
direcţia curentă se execută paşii (5) - (9).<br />
(5) Se calculează distanţa – în număr de eşantioane - dintre pivot şi punctul curent : DIST<br />
= D( P(i) , PIV )<br />
(6) Dacă DIST < D_MIN (se ia D_MIN corespunzător valorii de 2,5 ms), atunci P(i) nu este<br />
un maxim de perioadă şi se reia pasul (4) cu următoarea iteraţie ;<br />
(7) Dacă DIST > D_MAX (se ia D_MAX corespunzător valorii de 12,5 ms), atunci P(i) nu<br />
este un maxim de perioadă şi se reia pasul (4) cu următoarea iteraţie;<br />
(8) Se calculează COND_GASIT = P(i) / PIV > R_AMP;<br />
(9) Dacă COND_GASIT e adevărată, înseamnă că s-a găsit următorul maxim de perioadă:<br />
se reţine valoarea perioadei corespunzătoare: Per[ind_per] = | i – i_pivot | ; se reia pasul (2) cu<br />
următoarea iteraţie, căutându-se următorul maxim de perioadă în cealaltă direcţie;<br />
(10) În finalul iteraţiilor, dacă Per[Stânga] = 0, se ia pentru valoarea perioadei estimate<br />
PER = Per[Dreapta] ; dacă Per[Dreapta] = 0, se ia pentru valoarea perioadei estimate PER =<br />
Per[Stânga] ; se returnează True. Acest caz se întâlneşte când pivotul a fost detectat în<br />
extremitatea stânga sau dreapta a segmentului considerat;<br />
(11) Dacă valorile celor două perioade diferă cu o marjă mică de eroare: |Δ(Per[Stânga] -<br />
Per[Dreapta])| < Δ_ER, atunci se ia pentru valoarea perioadei estimate: PER = (Per[Stânga] +<br />
Per[Dreapta]) / 2; se returnează True;<br />
(12) Dacă |Δ(Per[Stânga] - Per[Dreapta])| > Δ_ER, atunci se ia pentru valoarea perioadei<br />
estimate perioada cea mai apropiată de valoarea medie Per_Med a perioadelor vocalice<br />
calculată până în acel moment: PER = Per[k], unde k minimizează expresia |Δ(Per[k] –<br />
Per_Med)| ; se returnează True.