Teza doctorat (pdf) - Universitatea Tehnică
Teza doctorat (pdf) - Universitatea Tehnică Teza doctorat (pdf) - Universitatea Tehnică
110 Cap. 4. Analiza semnalului vocal acestuia, după o filtrare mediană a semnalului, se calculează cu algoritmul ZeroMinMax (prezentat în paragraful 4.4.1) punctele de zero, minim şi maxim din semnalul sonor. Apoi se ia eşantionul din semnal care are amplitudinea cea mai mare dintre punctele de maxim, pe o distanţă D de la începutul segmentului considerat. Acesta este punctul pivot. Apoi se încearcă estimarea perioadei actuale a semnalului în jurul punctului pivot. Pentru aceasta se determină punctele din vecinătatea stânga şi dreapta a punctului pivot care au amplitudinea comparabilă cu acesta. Prin medierea distanţelor între aceste două puncte şi punctul pivot central se obţine estimarea iniţială a perioadei. În pasul al treilea se determină toate maximele de perioadă, pornind de la punctul pivot către stânga, respectiv către dreapta. Un maxim de perioadă se determină astfel: ştiindu-se că distanţa faţă de punctul anterior este egală cu perioada estimată, se găseşte punctul de maxim local care se află la distanţa minimă faţă de această poziţie. Dacă la o anumită iteraţie nu se găseşte un punct de maxim care să se găsească în poziţia preconizată, fie din cauza depăşirii perioadei admise, fie din cauza amplitudinii mici de semnal, următorul punct de maxim local se marchează ca hiatus de perioadă – în primul caz, respectiv ca hiatus de amplitudine – în cel de-al doilea. În final, în pasul patru, după determinarea tuturor punctelor de maxim de perioadă, se calculează punctele de capăt ale intervalelor de perioadă. Punctul de start al fiecărui interval se ia ca fiind primul punct de zero care precede maximul de perioadă corespunzător. Astfel fiecare interval de perioadă începe la punctul său de zero iniţial şi durează până la punctul iniţial al intervalului următor. Algoritmul Determina_Perioade : P1. Pe segmentul considerat se determină punctul pivot. P2. Se determină perioada iniţială prin găsirea punctelor de amplitudine comparabilă cu pivotul în stânga şi dreapta sa. P3. Se determină maximele de perioadă : a) între poziţia de start a segmentului şi poziţia pivotului; b) între poziţia pivotului şi poziţia de sfârşit a segmentului. Dacă în acest pas se gaseşte un punct de hiatus, atunci se apelează recursiv algoritmul între poziţia de hiatus şi poziţia finală. P4. Se marchează intervalele de perioadă prin găsirea punctelor de zero ce preced maximele de perioadă. Din descrierea algoritmului global în pseudocod reiese modul cum se apelează procedurile corespunzătoare celor 4 etape : DeterminaPerioade(poz_start, poz_stop, perioada) // Calculeaza maximele de perioadă pentru un segment sonor // La inceput perioada =0 { // P1. Determinarea punctului pivot: pivot=DeterminaPivot(poz_start, poz_stop, poz_pivot);
P2. Estimarea perioadei: if(perioada==0.) EstimarePerioada(poz_pivot,poz_start,poz_stop,perioada); // P3a. Determinarea maximelor de perioadă // între poziţia de start a segmentului şi poziţia pivotului perioada1=perioada; complet=DeterminaMaximePerioade(poz_pivot,poz_start,perioada1,poz_hiat); if(!complet) { if(DurationIndex(poz_hiat,poz_start) > 45 /* ms */) perioada1=0; // se recalculează şi perioada DeterminaPerioade(poz_start,poz_hiat,perioada1); } // P3b. Determinarea maximelor de perioadă // între poziţia pivotului şi poziţia de sfârşit a segmentului perioada2=perioada; complet=DeterminaMaximePerioade(poz_pivot,poz_stop,perioada2,poz_hiat); if(!complet) { if(DurationIndex(poz_stop,poz_hiat) > 45) perioada2=0; // se recalculează şi perioada DeterminaPerioade(poz_hiat,poz_stop,perioada2); } // P4. Marcarea intervalelor de perioadă: MarcarePerioade(poz_start, poz_stop); } 4.6.1.1. Determinarea pivotului 111 Cap. 4. Analiza semnalului vocal Punctul pivot reprezintă punctul de referinţă în funcţie de care se vor calcula toate celelalte puncte de maxim de perioadă. Pentru determinarea acestuia, după o filtrare mediană a semnalului, se calculează cu algoritmul ZeroMinMax punctele de zero, minim şi maxim din semnalul sonor. Apoi se ia eşantionul din semnal care are amplitudinea cea mai mare dintre punctele de maxim, pe o distanţă D de la începutul segmentului considerat. Acesta este punctul de start: punctul pivot. Mk(i) D PIV Figura 4.43. Determinarea punctului pivot
- Page 78 and 79: 4.2.2. Analiza în domeniul frecven
- 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 130 and 131: Punctul pivot se determină conform
- 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
110<br />
Cap. 4. Analiza semnalului vocal<br />
acestuia, după o filtrare mediană a semnalului, se calculează cu algoritmul ZeroMinMax<br />
(prezentat în paragraful 4.4.1) punctele de zero, minim şi maxim din semnalul sonor. Apoi se ia<br />
eşantionul din semnal care are amplitudinea cea mai mare dintre punctele de maxim, pe o<br />
distanţă D de la începutul segmentului considerat. Acesta este punctul pivot.<br />
Apoi se încearcă estimarea perioadei actuale a semnalului în jurul punctului pivot. Pentru<br />
aceasta se determină punctele din vecinătatea stânga şi dreapta a punctului pivot care au<br />
amplitudinea comparabilă cu acesta. Prin medierea distanţelor între aceste două puncte şi punctul<br />
pivot central se obţine estimarea iniţială a perioadei.<br />
În pasul al treilea se determină toate maximele de perioadă, pornind de la punctul pivot<br />
către stânga, respectiv către dreapta. Un maxim de perioadă se determină astfel: ştiindu-se că<br />
distanţa faţă de punctul anterior este egală cu perioada estimată, se găseşte punctul de maxim<br />
local care se află la distanţa minimă faţă de această poziţie.<br />
Dacă la o anumită iteraţie nu se găseşte un punct de maxim care să se găsească în poziţia<br />
preconizată, fie din cauza depăşirii perioadei admise, fie din cauza amplitudinii mici de semnal,<br />
următorul punct de maxim local se marchează ca hiatus de perioadă – în primul caz, respectiv ca<br />
hiatus de amplitudine – în cel de-al doilea.<br />
În final, în pasul patru, după determinarea tuturor punctelor de maxim de perioadă, se<br />
calculează punctele de capăt ale intervalelor de perioadă. Punctul de start al fiecărui interval se ia<br />
ca fiind primul punct de zero care precede maximul de perioadă corespunzător. Astfel fiecare<br />
interval de perioadă începe la punctul său de zero iniţial şi durează până la punctul iniţial al<br />
intervalului următor.<br />
Algoritmul Determina_Perioade :<br />
P1. Pe segmentul considerat se determină punctul pivot.<br />
P2. Se determină perioada iniţială prin găsirea punctelor de amplitudine<br />
comparabilă cu pivotul în stânga şi dreapta sa.<br />
P3. Se determină maximele de perioadă :<br />
a) între poziţia de start a segmentului şi poziţia pivotului;<br />
b) între poziţia pivotului şi poziţia de sfârşit a segmentului.<br />
Dacă în acest pas se gaseşte un punct de hiatus, atunci se apelează<br />
recursiv algoritmul între poziţia de hiatus şi poziţia finală.<br />
P4. Se marchează intervalele de perioadă prin găsirea punctelor de zero<br />
ce preced maximele de perioadă.<br />
Din descrierea algoritmului global în pseudocod reiese modul cum se apelează<br />
procedurile corespunzătoare celor 4 etape :<br />
DeterminaPerioade(poz_start, poz_stop, perioada)<br />
// Calculeaza maximele de perioadă pentru un segment sonor<br />
// La inceput perioada =0<br />
{<br />
// P1. Determinarea punctului pivot:<br />
pivot=DeterminaPivot(poz_start, poz_stop, poz_pivot);