REZUMAT TEZ? DE DOCTORAT

REZUMAT TEZ? DE DOCTORAT REZUMAT TEZ? DE DOCTORAT

etti.utcluj.ro
from etti.utcluj.ro More from this publisher
25.08.2013 Views

FACULTATEA DE ELECTRONICĂ, TELECOMUNICAŢII ŞI TEHNOLOGIA INFORMAŢIEI Ing. Ovidiu Buza REZUMAT TEZĂ DE DOCTORAT CONTRIBUŢII LA ANALIZA ŞI SINTEZA VORBIRII DIN TEXT PENTRU LIMBA ROMÂNĂ Conducător ştiinţific: Prof.dr.ing. Gavril TODEREAN Cluj-Napoca, 2010 -

FACULTATEA <strong>DE</strong> ELECTRONICĂ, TELECOMUNICAŢII<br />

ŞI TEHNOLOGIA INFORMAŢIEI<br />

Ing. Ovidiu Buza<br />

<strong>REZUMAT</strong><br />

<strong>TEZ</strong>Ă <strong>DE</strong> <strong>DOCTORAT</strong><br />

CONTRIBUŢII LA ANALIZA ŞI SIN<strong>TEZ</strong>A VORBIRII DIN TEXT<br />

PENTRU LIMBA ROMÂNĂ<br />

Conducător ştiinţific: Prof.dr.ing. Gavril TO<strong>DE</strong>REAN<br />

Cluj-Napoca, 2010<br />

-


Cuprins<br />

1. Introducere.............................................................................................................................................1<br />

1.1. Scopul tezei de doctorat ........................................................................................................................... 1<br />

1.2. Problematica sintezei de voce .................................................................................................................. 1<br />

2. Procesarea digitală a semnalului vocal .............................................................................................1<br />

2.1. Contribuţii în procesarea semnalului vocal ............................................................................................... 1<br />

2.1.1. Aplicaţia de prelucrare digitală a semnalului vocal SPEA ............................................................ 1<br />

2.1.2. Experimente realizate asupra unor eşantioane reale de semnal audio şi vocal........................... 2<br />

3. Analiza semnalului vocal .....................................................................................................................2<br />

3.1. Parametrii de bază ai semnalului vocal .................................................................................................... 2<br />

3.2. Analiza semnalului pentru determinarea parametrilor caracteristici ......................................................... 3<br />

3.2.1. Analiza în domeniul timp a semnalului vocal ................................................................................ 3<br />

3.2.2. Analiza în domeniul frecvenţă a semnalului vocal ........................................................................ 4<br />

3.3. Segmentarea semnalului vocal................................................................................................................. 6<br />

3.4. Contribuţii aduse în procesul segmentării automate a semnalului vocal .................................................. 6<br />

3.4.1. Segmentarea S/U/V şi detecţia de regiuni .................................................................................... 7<br />

3.4.1.1. Detectarea categoriei Linişte.......................................................................................................... 7<br />

3.4.1.2. Detectarea categoriei Vocală......................................................................................................... 8<br />

3.4.1.3. Împărţirea în subregiuni vocalice................................................................................................... 8<br />

3.4.1.4. Detectarea categoriei Consoană................................................................................................... 9<br />

3.4.1.5. Detectarea categoriei Tranziţie...................................................................................................... 9<br />

3.4.2. Compactarea regiunilor............................................................................................................... 10<br />

3.4.3. Rezultatul final al segmentării în clase de regiuni....................................................................... 10<br />

3.5. Detectarea perioadelor din forma de undă. Punctele de închidere glotală............................................. 11<br />

3.6. Contribuţii ale autorului în determinarea perioadelor de semnal ............................................................ 11<br />

3.6.1. Determinarea pivotului ................................................................................................................ 11<br />

3.6.2. Estimarea perioadei .................................................................................................................... 12<br />

3.6.3. Detectarea maximelor de perioadă............................................................................................. 12<br />

3.6.4. Marcarea intervalelor de perioadă .............................................................................................. 12<br />

3.6.5. Rezultate obţinute cu algoritmul propriu de determinare a intervalelor de perioadă................... 13<br />

3.7. Segmentarea fonematică........................................................................................................................ 13<br />

3.8. Contribuţii ale autorului în problematica segmentării fonematice automate a semnalului vocal ............ 13<br />

3.8.1. Transcrierea fonetică a textului de la intrare............................................................................... 14<br />

3.8.2. Proiectarea regulilor de asociere pentru fiecare grup fonetic ..................................................... 14<br />

3.8.3. Rezultate obţinute în urma aplicării metodei propuse de asociere foneme-regiuni .................... 14<br />

3.8.4. Experimente privind segmentarea în subregiuni fonematice ...................................................... 15<br />

3.8.4.1. Calculul distanţei dintre două seturi de coeficienţi fonematici.................................................... 15<br />

3.8.4.2. Metoda de segmentare în subregiuni fonematice bazată pe determinarea tranziţiilor<br />

bruşte din regiune......................................................................................................................... 17<br />

3.8.4.3. Metoda de segmentare în subregiuni fonematice bazată pe modelarea caracteristicilor<br />

spectrale........................................................................................................................................17<br />

4. Metode de sinteză de voce.................................................................................................................19<br />

4.1. Contribuţii în proiectarea metodelor de sinteză de voce......................................................................... 19<br />

4.1.1. Metoda de sinteză bazată pe silabe pentru limba română ......................................................... 19<br />

4.1.2. Preprocesarea textului................................................................................................................ 20<br />

4.1.3. Analiza sintaxei........................................................................................................................... 20<br />

4.1.3.1. Modul de funcţionare al analizorului de sintaxă..........................................................................20<br />

4.1.4. Determinarea unităţilor lingvistice: silabele................................................................................. 21<br />

4.1.4.1. Analizorul sintactic folosit în extragerea propoziţiilor şi cuvintelor .............................................21<br />

4.1.4.2. Analizorul lexical utilizat în determinarea silabelor .....................................................................21<br />

i


4.1.5. Determinarea aspectelor prozodice: accentele........................................................................... 22<br />

4.1.5.1. Analizorul lexical utilizat în determinarea accentelor..................................................................22<br />

4.1.6. Proiectarea bazei de date vocale................................................................................................ 22<br />

4.1.6.1. O statistică a silabelor limbii române........................................................................................... 22<br />

4.1.6.2. Caracteristicile silabelor înregistrate în baza de date acustică.................................................. 23<br />

4.1.6.3. Organizarea bazei de date acustice............................................................................................ 23<br />

4.1.7. Regăsirea unităţilor acustice şi sinteza de voce ......................................................................... 23<br />

4.1.8. Rezultate obţinute cu metoda de sinteză dezvoltată de autor .................................................... 24<br />

4.1.9. Avantajele metodei de sinteză a vorbirii pe bază de silabe dezvoltată de autor......................... 24<br />

5. Realizarea sistemului de sinteză de voce în limba română LIGHTVOX......................................25<br />

5.1. Structura funcţională a sistemului........................................................................................................... 25<br />

5.2. Metodologia de proiectare a sistemului de sinteză LIGHTVOX.............................................................. 26<br />

5.2.1. Construirea bazei de date acustice............................................................................................. 26<br />

5.2.2. Conversia text-voce .................................................................................................................... 28<br />

5.3. Rezultate experimentale şi dezvoltări de viitor ....................................................................................... 28<br />

6. Concluzii...............................................................................................................................................29<br />

Bibliografie ...………………………………………………………………………………………………..30<br />

ii


1. Introducere<br />

1.1. Scopul tezei de doctorat<br />

Teza de doctorat are ca scop studiul modalităţilor de procesare a vorbirii şi realizarea de cercetări în domeniul sintezei de<br />

voce, având următoarele obiective:<br />

a) dezvoltarea unor metode automate de analiză a semnalului vocal;<br />

b) dezvoltarea unei metode de sinteză a vorbirii adaptată specific limbii române;<br />

c) dezvoltarea unei metodologii de lucru în scopul construirii unui sistem de sinteză vocală automată;<br />

d) implementarea unui prototip al unui sistem de sinteză de voce pentru limba română.<br />

1.2. Problematica sintezei de voce<br />

Sinteza automată de voce constituie o etapă distinctă a procesului de interacţiune vocală cu utilizatorul uman. Sinteza vorbirii<br />

porneşte de la un text (răspunsul care trebuie rostit), îl descompune în unităţi lingvistice de bază (foneme sau grupuri de foneme),<br />

generează parametrii acustici corespunzători fiecărei unităţi lingvistice, şi apoi foloseşte aceşti parametrii pentru comanda procesorului<br />

audio ce va genera secvenţa acustică dorită. Cu cât parametrii acustici generaţi de calculator sunt mai apropiaţi de parametrii rostirii<br />

umane, cu atât vorbirea sintetizată va fi mai naturală, mai plăcută interlocutorului şi mai uşor de înţeles.<br />

Autorul tezei a mers pe această linie a realizării unei sinteze de voce care să respecte parametrii de calitate ai vorbirii<br />

naturale. A fost proiectată în acest sens o metodă de sinteză a vorbirii pentru limba română şi s-a indicat o metodologie de lucru<br />

pentru realizarea unui sistem de sinteză vocală automată.<br />

Utilizând ca unităţi lingvistice silabele, metoda de sinteză proiectată se integrează în categoria metodelor de calitate<br />

superioară, bazate pe concatenare. Metoda este adaptată specific limbii române, şi propune ca noutate o abordare bazată pe reguli<br />

atât în faza de procesare a textului, de extragere a unităţilor lingvistice şi informaţiilor prozodice, cât şi în faza de construire a bazei de<br />

date vocale prin extragerea unităţilor acustice din semnalul vorbit.<br />

2. Procesarea digitală a semnalului vocal<br />

Prelucrarea şi analiza semnalului vocal constituie etapele premergătoare în abordarea sintezei şi recunoaşterii de voce.<br />

Procesarea semnalului cuprinde toate metodele de operare directă asupra semnalului sonor, începând cu achiziţia semnalului, filtrarea,<br />

codarea, compresia şi stocarea acestuia pe suport magnetic sau optic. Analiza semnalului vocal presupune determinarea parametrilor<br />

acestuia pe baza eşantioanelor de vorbire înregistrate de la vorbitor, şi apoi compararea acestor parametri cu valorile aşteptate.<br />

Prima parte a capitolului cuprinde un studiu sintetic realizat de autor asupra metodelor de procesare, codare şi compresie a<br />

semnalului vocal. Au fost prezentate metodele standard de codare a semnalului vocal: tehnica modulării impulsurilor în cod, codarea<br />

liniară, codarea logaritmică, codarea entropică, codarea predictivă, modulaţia diferenţială a impulsurilor de cod, codificarea adaptivă<br />

ADPCM, modulaţia delta; au fost prezentate metode uzuale de compresie a semnalului vocal, precum: compresia prin transformări,<br />

tehnica predicţiei liniare, predicţia liniară cu cod excitat (CELP).<br />

2.1. Contribuţii în procesarea semnalului vocal<br />

În această secţiune au fost prezentate rezultatele cercetărilor efectuate de autor în domeniul procesării semnalului vocal. S-a<br />

prezentat aplicaţia de prelucrare a semnalului prin intermediul căreia a fost efectuată o serie întreagă de experimente asupra unor<br />

eşantioane de semnal vocal, precum şi rezultatele acestor experimentări.<br />

2.1.1. Aplicaţia de prelucrare digitală a semnalului vocal SPEA<br />

În vederea studierii proprietăţilor semnalului vocal, a fost proiectată o aplicaţie specială numită SPEA – Sound Processing<br />

and Enhancement Application (aplicaţie pentru procesarea şi îmbunătăţirea calităţii semnalului vocal) – figura 2.1. În această fază a<br />

proiectării, aplicaţia SPEA prezintă următoarele facilităţi:<br />

(1) încărcarea şi vizualizarea semnalului vocal înregistrat în fişiere Wave în diferite formate;<br />

(2) creşterea rezoluţiei de afişare pentru vizualizarea formei de undă şi a eşantioanelor de semnal pe diferite scale de mărime;<br />

(3) determinarea parametrilor principali ai semnalului vocal;<br />

(4) selectarea porţiunii de lucru dintr-un fişier Wave;<br />

(5) calculul transformatei Fourier şi vizualizarea spectrelor de amplitudini şi faze a semnalului;<br />

(6) posibilitatea de modificare interactivă a componentelor din spectrele de amplitudini şi faze în scopul îmbunătăţirii calităţii acustice<br />

a semnalului vocal.<br />

Figura 2.1. Fereastra principală a aplicaţiei SPEA Figura 2.2. Frecvenţa fundamentală a semnalului este 204 Hz<br />

1


Aplicaţia detectează în mod automat formanţii sau valorile maxime locale ale anvelopei spectrale, maxime care se situează<br />

deasupra unor valori de prag. Pentru fiecare formant, se calculează amplitudinea, frecvenţa centrală şi lăţimea de bandă, parametrii<br />

importanţi în sinteza de voce. Frecvenţa centrală a formantului cu cea mai mare amplitudine (în cele mai multe cazuri primul sau al<br />

doilea formant) se asumă a fi frecvenţa fundamentală a semnalului. Această regulă se aplică doar segmentelor vocale din semnal,<br />

segmentele nesonore neavând frecvenţă fundamentală.<br />

Un exemplu de detectare automată a formanţilor este arătat în figura 2.2, în care se detectează formanţi cu valorile de<br />

frecvenţă: 204 Hz, 414 Hz, 613 Hz, şi 824 Hz. Frecvenţa fundamentală este dată în acest caz de frecvenţa primului formant: 204 Hz.<br />

Aplicaţia SPEA permite filtrarea selectivă a frecvenţelor şi editarea interactivă a spectrului FFT, aspect foarte important<br />

pentru analiza vorbirii şi îmbunătăţirea calităţii semnalului vocal. Comanda FILTRU oferă filtrarea interactivă a frecvenţelor şi editarea<br />

grafică a formanţilor şi armonicilor semnalului vocal. Prin glisarea mouse-ul în zona spectrului FFT, utilizatorul poate elimina benzile de<br />

frecvenţe corespunzătoare zgomotului sau să mărească energia semnalului în benzile dorite.<br />

Utilizatorul poate modifica, de asemenea, spectrul de formanţi şi de armonici, pentru a îmbunătăţi timbrul sunetului.<br />

Experimentele care s-au făcut arată că o voce de calitate implică un set bogat de armonici. Mai ales armonicile de frecvenţă înaltă<br />

constituie un factor determinant pentru calitatea unei rostiri. Acest lucru este util in procesul de creare a unei baze de date vocale<br />

utilizate pentru sinteza vorbirii, în care unele dintre segmentele vocale înregistrate ar putea fi îmbogăţite prin adăugarea de armonici<br />

înalte.<br />

2.1.2. Experimente realizate asupra unor eşantioane reale de semnal audio şi vocal<br />

În această secţiune au fost prezentate rezultatele experimentelor realizate prin intermediul aplicaţiei SPEA pe eşantioane<br />

reale de semnal. Scopul acestor experimente a fost de a determina caracteristicile specifice ale semnalului vocal în cazul rostirii unor<br />

sunete distincte în limba română, în condiţii diferite, de către mai mulţi vorbitori.<br />

Semnalul a fost preluat prin intermediul unui microfon dinamic unidirecţional de tip SM-500, iar apoi semnalul a fost eşantionat<br />

şi stocat pe disc în format WAVE PCM prin intermediul unei plăci de achiziţie audio Creative Soundblaster Live 1024. De asemenea, au<br />

fost analizate eşantioane de semnal audio generat prin intermediul unui sintetizator de sunete furnizat de firma Creative Labs.<br />

Au fost realizate experimente axate pe studiul proprietăţilor specifice ale semnalului vocal ce asigură o calitate superioară<br />

sunetului emis. Astfel, au fost efectuate diverse analize spectrale de sunet: analiza spectrală a vocalelor emise de diferiţi vorbitori,<br />

analiza spectrală a consoanelor, analiza spectrală a sunetelor emise multitonal, evidenţiându-se importanţa alegerii ferestrei de<br />

semnal asupra rezultatului analizei spectrale; comportarea semnalelor modulate; analize sonore perceptuale: analiza perceptuală a<br />

sunetelor emise în fază diferită, relaţia dintre timbrul sunetului şi percepţia auditivă.<br />

Au fost studiaţi de asemeni factorii care determină în mod semnificativ calitatea vocii, arătându-se care este influenţa<br />

frecvenţei de eşantionare şi a mediului de înregistrare asupra calităţii vocii şi a sunetului emis, precum şi factorii determinanţi pentru a<br />

realiza o sinteză vocală de calitate superioară.<br />

Analiza comportării sunetelor vocalice are o mare importanţă în scopul realizării unei sinteze a vorbirii de calitate. În acest<br />

sens au fost studiate caracteristicile sunetelor vocalice în diferite contexte fonematice şi prozodice, realizându-se diagrame<br />

comparative ale rostirii lor în aceste contexte.<br />

3. Analiza semnalului vocal<br />

După procesarea semnalului, analiza semnalului vocal constituie următoarea etapă necesară în sinteza de voce. Analiza<br />

semnalului vocal presupune:<br />

1) determinarea parametrilor şi caracteristicilor acestuia pe baza eşantioanelor de vorbire înregistrate de la vorbitor;<br />

2) descompunerea semnalului în segmente sau regiuni cu proprietăţi comune (segmentarea semnalului);<br />

3) evidenţierea segmentelor semnificative şi punerea lor în corespondenţă cu informaţia cunoscută (extragerea informaţiei).<br />

3.1. Parametrii de bază ai semnalului vocal<br />

Reprezentarea cea mai obişnuită a semnalelor, la fel şi a celor vocale se face în spaţiul amplitudine-timp, ceea ce descrie evoluţia<br />

undei acustice în timp. Semnalul acustic preluat de la un microfon şi transformat în semnal electric poate fi memorat şi studiat ulterior.<br />

Semnalul vocal face parte din categoria semnalelor nestaţionare (ale căror proprietăţi medii variază în timp) şi continue (nu<br />

este tranzitoriu). Cu toate acestea, datorită schimbării lente a caracteristicilor de articulaţie, pe perioade scurte de timp (20ms) semnalul<br />

vocal poate fi considerat staţionar (cvasistaţionar). Pe aceste perioade se pot determina anumiţi parametri care caracterizează<br />

semnalul vocal pe acel interval, numit în continuare segment.<br />

O informaţie utilă ce caracterizează semnalul rezultă din componentele sale spectrale, numite pe scurt spectru.<br />

Se notează spectrul semnalului vocal cu S(ω), care rezultă din produsul dintre funcţia de transfer a sistemului fonator H(ω)<br />

şi spectrul semnalului de excitaţie E(ω) de la nivelul glotei [Fer97]:<br />

S(ω) =H(ω) E(ω) (3.1)<br />

După cum rezultă, spectrul semnalului conţine atât informaţii privitoare la funcţia de transfer a sistemului fonator cât şi<br />

informaţii referitoare la spectrul semnalului de excitaţie.<br />

Echivalentul în domeniul timp al formulei (3.1) este [Fer97]:<br />

t<br />

<br />

<br />

s ( t ) e(<br />

) h ( t )<br />

d <br />

(3.2)<br />

ceea ce exprimă faptul că semnalul vocal reprezintă răspunsul sistemului liniar având funcţia pondere h(t) la excitaţia cu<br />

semnalul e(t). Altfel spus s(t) reprezintă convoluţia (produsul de convoluţie) funcţiei pondere h(t) cu semnalul de excitaţie e(t). O altă<br />

notaţie folosită pentu exprimarea produsului de convoluţie este [Fer97]:<br />

s(t) =h(t)*e(t) (3.3)<br />

2


Datorită caracterului deosebit al spectrului semnalului de intrare (spectru de linii) amplitudinile liniilor spectrale variind lent cu<br />

frecvenţa, iar funcţia de transfer fiind o funcţie continuă, rezultă forma specială a spectrului, şi anume: modulul spectrului S(ω) conţine<br />

linii spectrale ale căror vârfuri reunite de curba numită înfăşurătoare spectrală urmăreşte modulul funcţiei de transfer H(ω).<br />

Vârfurile spectrale de energie mare care corespund locurilor de maxim a modului funcţiei de transfer H(ω) sunt caracteristice<br />

pentru fiecare fonemă în parte, motiv pentru care acestea se numesc frecvenţe de formanţi sau formanţi. Aceştia constituie un<br />

ansamblu de parametri importanţi în analiza şi sinteza semnalului vocal.<br />

Un alt parametru important îl constituie cel care specifică tipul semnalului de excitaţie rezultat din analiză, respectiv utilizat la<br />

sinteză. Sunetelor sonore li se poate asocia tipul de semnal de excitaţie sonor (echi valat cu trenuri de impulsuri unitate, dinte de<br />

fierăstrău sau alte semnale periodice cu spectru de linii relativ larg), iar sunetelor fricative li se poate asocia tipul de semnal de excitaţie<br />

nesonor (echivalat cu un zgomot alb). Parametrului care specifică tipul semnalului de excitaţie i se pot atribui deci două valori, respectiv<br />

sonor şi nesonor.<br />

În cazul semnalelor sonore este importantă specificarea frecvenţei semnalului de excitaţie, ceea ce se numeşte frecvenţă<br />

fundamentală. Acest parametru este strâns legat de aspectele de inonaţie din cadrul vorbirii. Prin modificarea acestui parametru se pot<br />

exprima diferite stări subiective (exclamare, stări emoţionale, interogări). Pe de altă parte modul de intonaţie aj ută la creşterea<br />

inteligibilităţii mesajului transmis. Frecvenţa fundamentală variază nu numai în cadrul cuvintelor, ci şi în interiorul fonemelor (celor<br />

sonore) şi variază şi de la om la om. Valorile uzuale pe care le are acest parametru se situează în domeniul 90÷150 Hz pentru vocea<br />

de bărbaţi şi 150÷200 Hz în cazul vocii femeilor [Fer97].<br />

3.2. Analiza semnalului pentru determinarea parametrilor caracteristici<br />

Ţinând cont că semnalul vocal este cvasistaţionar pe segmente scurte de timp, adică îşi păstrează proprietăţile nealterate pe<br />

parcursul fiecărui interval, metodele actuale de prelucrare a semnalului vocal folosesc aşa-numita analiză pe termen scurt. Pentru a<br />

aborda această modalitate de analiză, semnalul vocal este împărţit în segmente cu lungimea de 10-30 ms, pe parcursul cărora<br />

semnalul se consideră staţionar.<br />

3.2.1. Analiza în domeniul timp a semnalului vocal<br />

Prin analizarea directă a formei de undă a semnalului se pot extrage următorii parametrii: amplitudinea maximă şi medie,<br />

energia semnalului vocal, numărul trecerilor prin zero şi frecvenţa fundamentală.<br />

Amplitudinea semnalului ne dă informaţii despre prezenţa sau absenţa semnalului vocal, despre faptul că semnalul este<br />

sonor sau nesonor pe segmentul considerat. În cazul sonor (rostirea unor sunete vocalice) amplitudinea este mare, pe când în cazul<br />

sunetelor nesonore (zgomote, rostire de consoane) amplitudinea este redusă.<br />

Amplitudinea medie pentru N eşantioane se calculează astfel [Pic93]:<br />

1<br />

M ( n ) | x ( m ) | w ( n m<br />

)<br />

N m <br />

unde: x(m) este eşantionul curent al semnalului vocal, iar<br />

w(n-m) este fereastra utilizată în segmentul considerat.<br />

Energia semnalului este utilă în determinarea caracteristicilor de putere transportată a semnalului vocal. Pentru un semnal<br />

cu valoare medie nulă, energia pe termen scurt se defineşte astfel [Lup04]:<br />

1<br />

E ( n ) <br />

N m<br />

<br />

[<br />

<br />

x ( n ) w<br />

( n m<br />

)]<br />

Segmentele sonore (vocalele) au o energie medie ridicată, pe când consoanele au energie scăzută. Pentru majoritatea<br />

fonemelor, energia se concentrează în banda de frecvenţe între 300 şi 3000 Hz.<br />

Numărul trecerilor prin zero este util pentru determinarea caracteristicilor de frecvenţă în interiorul unui segment de timp.<br />

Numărul trecerilor prin zero se calculează astfel [Pic93]:<br />

NTZ<br />

<br />

unde sgn(n) este funcţia semn:<br />

1<br />

[ 0<br />

N<br />

n <br />

<br />

1,<br />

n 0<br />

sgn( n ) <br />

<br />

1,<br />

n 0<br />

1 sgn(<br />

s ( n 1<br />

) T ) sgn(<br />

s ( nT ))]<br />

2<br />

Numărul trecerilor prin zero este o caracteristică ce se foloseşte în recunoaşterea vorbirii, precum şi în determinarea<br />

caracterului sonor/nesonor. În interiorul segmentelor sonore numărul trecerilor prin zero este mai redus, în timp ce în segmentele<br />

nesonore acest parametru este mai ridicat.<br />

Frecvenţa fundamentală este un parametru deosebit de important folosit atât în sinteza cât şi în recunoaşterea vorbirii.<br />

Frecvenţa fundamentală corespunde cu periodicitatea semnalului vocal. Determinarea acestui parametru nu se poate face<br />

întotdeauna cu exactitate, din cauza variabilităţi semnalului vocal chiar pe porţiuni scurte de timp. Rostirea vocalelor prezintă o<br />

frecvenţă fundamentală ce poate fi determinată, pe când consoanele, care sunt rostiri neperiodice, nu au frecvenţă fundamentală.<br />

Dintre metodele uzuale de determinare a frecvenţei fundamentale a semnalului vocal amintim următoarele:<br />

A. Metoda autocorelaţiei<br />

Metoda se bazează pe calculul funcţiei de autocorelaţie a semnalului vocal, care ne dă informaţii despre interdependenţa<br />

temporală a eşantioanelor. Funcţia de autocorelaţie se defineşte astfel [Sto84]:<br />

3<br />

2<br />

(3.4)<br />

(3.5)<br />

(3.6)<br />

(3.7)


R<br />

n<br />

( k ) <br />

N k 1<br />

[<br />

m 0<br />

unde x(n) este valoarea eşantionului de semnal, iar<br />

w(m) este funcţia fereastră utilizată.<br />

x ( m n<br />

) w ( m )][ x ( n m<br />

k<br />

) w ( m k<br />

)]<br />

Funcţia de autocorelaţie prezintă maxime la intervale de timp egale cu perioada semnalului. Determinarea acestor maxime şi<br />

măsurarea distanţei dintre ele conduce la determinarea frecvenţei fundamentale a semnalului.<br />

B. Metoda funcţiei diferenţă de amplitudine medie<br />

Metoda se bazează pe calculul funcţiei diferenţă de amplitudine medie, care are expresia [Sto84]:<br />

N 1<br />

k 0<br />

4<br />

(3.8)<br />

1<br />

D ( n ) | s k s<br />

k n<br />

| , cu 0 n N<br />

1<br />

(3.9)<br />

N<br />

Funcţia diferenţă de amplitudine medie D(n) prezintă minime la distanţă egală cu perioada semnalului, şi are avantajul că se<br />

poate calcula mai rapid decât funcţia de autocorelaţie.<br />

C. Metoda cu limitare centrală<br />

Metoda urmăreşte simplificarea calculelor prin reţinerea în procesul de calcul doar a eşantioanelor de semnal ce depăşesc<br />

în valoare absolută o anumită valoare de prag. Apoi semnalul se accentuează în felul următor: valorile pozitive se adună cu valoarea<br />

de prag, iar din cele negative se scade valoarea de prag P:<br />

x<br />

( n ) P , x ( n ) 0<br />

x ( n ) <br />

x<br />

( n ) P , x ( n ) 0<br />

În varianta metodei cu limitare infinită, valorile pozitive se înlocuiesc cu o valoare maximă, iar cele negative cu o valoare minimă.<br />

După faza de accentuare, se calculează funcţia de autocorelaţie definită anterior, ale cărei maxime se vor putea determina<br />

mult mai uşor.<br />

De asemeni, se poate utiliza cu bune rezultate o metodă combinată în care după limitarea centrală se aplică metoda funcţiei<br />

diferenţă de amplitudine medie.<br />

3.2.2. Analiza în domeniul frecvenţă a semnalului vocal<br />

Analiza în domeniul frecvenţă a semnalului presupune descompunerea semnalului în componente de frecvenţă cunoscută,<br />

cum este cazul analizei Fourier, sau în componente a căror comportare în frecvenţă este cunoscută, cum e cazul analizei bazate pe<br />

filtre digitale. Parametrii obţinuţi în urma descompunerii semnalului în componente diferă de cazul analizei în domeniul timp, cele două<br />

abordări fiind complementare. Principalele metode folosite în cadrul analizei în domeniul frecvenţă sunt [Lup04]: analiza prin banc de<br />

filtre, analiza Fourier, analiza LPC, analiza cepstrală şi analiza perceptuală.<br />

A. Analiza prin banc de filtre digitale<br />

Analiza prin banc de filtre digitale are ca scop descompunerea semnalului în benzi de frecvenţă şi determinarea ponderii<br />

componentelor din aceste benzi în semnalul iniţial, de unde se va putea trage o concluzie asupra comportării în frecvenţă a semnalului<br />

vocal.<br />

Semnalul iniţial x(n) este descompus în N benzi de frecvenţă prin intermediul filtrelor trece-bandă FTB1...FTBN. Fiecare<br />

bandă este supusă apoi unei transformări neliniare pentru deplasarea spectrului către domeniul frecvenţelor joase. Vectorii rezultaţi<br />

xk(n) pentru fiecare subbandă vor fi analizaţi separat, iar în vederea sintezei sau recunoaşterii li se va aplica în continuare anumiţi<br />

operatori matematici (netezire, normalizare). Deseori se foloseşte calculul energiei vectorilor rezultaţi pentru a determina ponderea lor<br />

în alcătuirea semnalului iniţial.<br />

B. Analiza Fourier<br />

Analiza Fourier este cea mai răspândită metodă de analiză a semnalului vocal pentru că ea oferă imaginea completă a<br />

componentelor semnalului pe scara frecvenţei, rezultând astfel spectrul de frecvenţe asociat. Analiza Fourier se bazează pe<br />

proprietatea unui semnal periodic de a putea fi descompus în componente sinusoidale.<br />

Această metodă de analiză foloseşte calculul transformatei Fourier discrete, de forma [Mat01]:<br />

X ( k ) <br />

N 1<br />

n 0<br />

x ( n ) e<br />

j 2 nk / N , k = 1,2,...,N , (3.11)<br />

unde: x(n) reprezintă eşantioanele de semnal,<br />

X(k) este valoarea componentei k din spectrul de frecvenţe,<br />

N este numărul de eşantioane considerate, iar<br />

j este unitatea imaginară.<br />

Calculul se face în domeniul complex, rezultând pentru fiecare componentă X(k) două valori reale corespondente:<br />

- modulul sau amplitudinea: Ak= |X(k)| , respectiv<br />

- faza: φk=arg(X(k)).<br />

În practică se foloseşte mai mult spectrul amplitudinilor, sau spectrul de putere al semnalului. Aceasta deoarece urechea<br />

umană e mai puţin sensibilă la spectrul de faze al unui semnal vocal.<br />

Cum pentru fiecare k e necesar calculul sumei (3.11) cu N valori, rezultă o complexitate a algoritmului de calcul de forma<br />

O(N 2 ). Pentru rapidizare sunt disponibili diverşi algoritmi, dintre care cei mai cunoscuţi sunt algoritmii FFT (Fast Fourier Transform -<br />

(3.10)


Transformata Fourier Rapidă) cu decimare în frecvenţă sau decimare în timp. Algoritmul FFT se bazează pe calculul recursiv al<br />

valorilor spectrale [Tod05] şi reduce complexitatea algoritmului la O(Nlog2N).<br />

Pe baza aflării spectrului de frecvenţe se pot determina o serie de parametrii specifici, cum ar fi anvelopa spectrală sau<br />

forma şi valoarea formanţilor, ce ne dau informaţii despre comportamentul în domeniul frecvenţei a semnalului pe segmentul de timp<br />

considerat.<br />

C. Analiza prin predicţie liniară<br />

Analiza prin predicţie liniară sau analiza LPC (Linear Prediction Coding) este o metodă eficientă de determinare a unor<br />

parametrii recursivi ai semnalului vocal, care se vor putea folosi în cadrul procesului de sinteză sau recunoaştere a vorbirii.<br />

Modelul LPC al producerii vorbirii este generat în concordanţă cu producerea sunetului de către sistemul fonator uman.<br />

Astfel, energia sonoră de bază este furnizată de către un semnal de excitaţie, care poate să fie periodic sau neperiodic, în funcţie de<br />

sunetul produs (tren de impulsuri periodice pentru cazul vocalelor sau zgomot alb în cazul consoanelor). Pentru un semnal de excitaţie<br />

periodic, se furnizează frecvenţa fundamentală F0 ca parametru de intrare în generator.<br />

Semnalul de excitaţie este apoi amplificat cu un factor G (numit câştigul modelului) şi trecut printr-un filtru variabil având<br />

funcţia de transfer H(z). Filtrul variabil modelează comportamentul tractului vocal din cadrul sistemului fonator, şi va produce la ieşire<br />

semnalul scontat s(n). Filtrul este controlat pe baza unor parametrii care sunt coeficienţii LPC {ak}. Parametrii sunt calculaţi pentru<br />

fiecare segment de vorbire de aproximativ 10-30 ms.<br />

Funcţia de transfer a filtrului are expresia [Tod05]:<br />

G<br />

H ( z ) <br />

p<br />

1 <br />

k 1<br />

a<br />

k<br />

z<br />

k<br />

G<br />

<br />

A ( z )<br />

unde: G este câştigul filtrului, iar<br />

ak sunt coeficienţii de predicţie LPC.<br />

Câştigul se poate determina pe baza erorii de predicţie dintre semnalul calculat cu ajutorul filtrului recursiv şi semnalul<br />

original. Pentru calculul parametrilor ak există mai multe metode, dintre care cele mai cunoscute sunt metoda autocorelaţiei (prin<br />

algoritmul Levinson-Durbin) şi metoda covarianţei.<br />

Metoda de analiză prin predicţie liniară LPC are avantajul că necesită efort computaţional relativ redus, rezultând un set de<br />

parametrii ce aproximează bine comportamentul semnalului în domeniul frecvenţă. Analiza LPC determină simplificarea spectrului<br />

semnalului, situaţie foarte avantajoasă în cazul recunoaşterii vorbirii, când se va genera un set de vectori mult mai adecvaţi tratării prin<br />

mijloace specifice inteligenţei artificiale, cum ar fi reţelele neuronale. Totodată, analiza LPC este utilă şi în cazul sintezei de voce,<br />

generând reducerea volumului de date în condiţiile menţinerii inteligibilităţii vocii.<br />

D. Analiza cepstrală<br />

Analiza cepstrală este o metodă ce derivă din analiza Fourier, şi se utilizează pentru determinarea unor parametrii ai<br />

semnalului vocal utili mai ales în procesul recunoaşterii vorbirii [Tod05]. Modelul acustic pe care se bazează analiza cepstrală este<br />

următorul:<br />

Semnalul vocal s(n) este produs de către un semnal de excitaţie e(n) corespunzător corzilor vocale din sistemul fonator, care<br />

este filtrat de către un filtru variabil având răspunsul la impuls h(n), ce corespunde tractului vocal. Avem astfel:<br />

s( n)<br />

e(<br />

n)<br />

h<br />

( n)<br />

(3.13)<br />

unde: s(n) e semnalul rezultat;<br />

e(n) – excitaţia;<br />

h(n) – răspunsul filtrului.<br />

Dacă translatăm ecuaţia (3.13) în domeniul frecvenţă, se poate scrie:<br />

5<br />

(3.12)<br />

S ( f ) E ( f ) H<br />

( f )<br />

(3.14)<br />

Prin logaritmare obţinem:<br />

log S ( f ) log E ( f ) log<br />

H ( f ) (3.15)<br />

Din ecuaţia (3.15) rezultă posibilitatea separării excitaţiei sonore de influenţa tractului vocal, de aici rezultând şi modul de<br />

calcul al cepstrumului [Gav00]:<br />

- se calculează mai întâi spectrul S(f) al semnalului prin transformata Fourier;<br />

- se aplică logaritmul;<br />

- se aplică transformata Fourier inversă pentru a determina cepstrumul în domeniul timp.<br />

Analiza cepstrală ne oferă informaţii atât despre excitaţia sonoră, permiţând estimarea frecvenţei fundamentale a semnalului,<br />

cât şi despre influenţa tractului vocal, ducând la calculul spectrului netezit al semnalului vocal. Componentele cepstrale inferioare<br />

(corespunzătoare unui segment de timp de la 0 la 2ms) permit estimarea frecvenţei fundamentale prin determinarea maximului<br />

funcţiei cepstrale pe acest segment de timp. Pentru calculul spectrului netezit se folosesc componentele cepstrale superioare, cărora<br />

li se aplică din nou transformata Fourier.<br />

De asemenea, se mai poate calcula un set de parametrii numiţi coeficienţi cepstrali LPC, derivaţi direct din coeficienţii LPC.<br />

Formulele de calcul pentru aceşti parametri sunt [Fur01]:<br />

c<br />

c<br />

c<br />

1<br />

n<br />

n<br />

a<br />

1<br />

a<br />

n<br />

n k<br />

<br />

a<br />

k c<br />

k n<br />

1<br />

( 1 )<br />

1<br />

n k<br />

<br />

a<br />

k c n k<br />

n<br />

<br />

,<br />

) 1 (<br />

1<br />

k 1<br />

n k<br />

,<br />

n p<br />

1 n p<br />

(3.16)


unde: ak sunt coeficienţii LPC calculaţi până la ordinul p;<br />

cn sunt coeficienţii cepstrali LPC.<br />

Coeficienţii cepstrali s-au dovedit a fi un set de parametri mai robuşti decât coeficienţii simpli LPC, utilizănd-se cu succes mai<br />

ales în procesul de recunoaştere a vorbirii sau a vorbitorului [Lup04].<br />

E. Analiza perceptuală<br />

Acest mod de analiză este adaptat după modul de funcţionare al sistemului perceptual auditiv al omului, şi anume după<br />

faptul că sesizarea diferitelor tonalităţi ale sunetelor se face pe o scară logaritmică în interiorul urechii, proporţional cu frecvenţa<br />

fundamentală a sunetului. Astfel, răspunsul urechii umane este neliniar în raport cu frecvenţa, ea detectând diferenţe mici de<br />

frecvenţă mai uşor la frecvenţe joase decât la frecvenţe înalte [Lup04].<br />

Din acest motiv au fost adoptate diferite scări neliniare de frecvenţă, pentru care se va calcula spectrul semnalului. Cele mai<br />

cunoscute sunt scara de frecvenţă Bark şi scara Mel. Ambele sunt scări cu comportare logaritmică obţinute prin studii realizate<br />

asupra percepţiei umane. În paragraful corespunzător din teză au fost expuse două metode de lucru în cadrul analizei perceptuale:<br />

analiza PLP şi analiza cepstrală Mel.<br />

3.3. Segmentarea semnalului vocal<br />

După extragerea caracteristicilor semnalului vorbit, în analiză urmează etapa de segmentare a semnalului vocal. Segmentarea<br />

se referă la detectarea diferitelor categorii de semnal şi clasificarea acestora în funcţie de proprietăţile semnalului [Gla86].<br />

Complexitatea algoritmilor de segmentare depinde de tipul categoriilor pe care vrem să le detectăm. De exemplu, algoritmii<br />

care separă semnalul în regiuni ce respectă anumiţi parametri fizici vor fi mai puţin complecşi decât algoritmii care determină categoria<br />

fonetică (vocală sau consoană). La rândul lor, aceştia vor fi mai puţin complecşi decât algoritmii care determină nu doar categoria, ci şi<br />

identitatea fonemelor. La fel, algoritmii care determină toate variaţiile alofonice ale unei foneme particulare pot fi şi mai complecşi,<br />

datorită variaţiilor fonemei respective în cursul vorbirii [Chi00].<br />

Detectarea categoriilor şi clasificarea semnalului vocal se face în trei paşi:<br />

1) detectarea segmentelor de bază S/U/V ;<br />

2) identificarea categoriilor fonematice;<br />

3) identificarea exactă a fonemelor.<br />

Primul pas în acest algoritm este împărţirea semnalului vocal în trei categorii de segmente de bază: linişte (Silence - S),<br />

nesonor (Unvoiced - U), sonor (Voiced - V).<br />

Al doilea pas este punerea în corespondenţă a fiecărui segment al vorbirii cu o anumită categorie fonetică. Tipurile de<br />

foneme precum şi categoriile fonetice diferă în funcţie de limbă. De exemplu, pentru limba engleză se definesc 9 categorii de foneme:<br />

vocale, consoane sonore, nazale, semivocale, fricative sonore, fricative nesonore, stopuri sonore, stopuri nesonore şi linişte.<br />

Pasul al treilea, mai complex, îl reprezintă identificarea exactă a fonemelor din fluxul de intrare. Aici se urmăreşte potrivirea<br />

segmentului analizat cu una din fonemele limbii respective.<br />

În general, alegerea numărului de categorii în care este segmentat semnalul se face printr-un compromis între complexitatea<br />

algoritmilor şi rezoluţia segmentelor de vorbire rezultate. Dacă se presupune că recunoaşterea fonemelor individuale nu este<br />

necesară, se va reduce complexitatea algoritmilor de recunoaştere a segmentelor, deoarece alegerile necesare procesului de potrivire<br />

sunt reduse de la numărul de foneme la numărul de clase fonematice (de exemplu pentru limba engleză de la 41 de foneme la 9 clase<br />

fonematice). În plus, sunt mai uşor de recunoscut diferenţele dintre două categorii fonematice decât diferenţele dintre două foneme din<br />

aceeaşi categorie.<br />

3.4. Contribuţii aduse în procesul segmentării automate a semnalului vocal<br />

Aşa cum s-a precizat în paragraful anterior, găsirea unei metode optime de segmentare a semnalului vocal reprezintă o<br />

operaţie absolut necesară în procesul de construire a bazei de date vocale. În secţiunea curentă este prezentată metoda proiectată de<br />

autor, care este capabilă să detecteze automat componentele S/U/V ale semnalului (Silence – linişte, Unvoiced – nesonor, Voiced –<br />

sonor), să împartă aceste componente în regiuni şi subregiuni cu anumite proprietăţi, iar apoi să pună în corespondenţă aceste regiuni<br />

cu o secvenţă cunoscută de foneme (figura 3.1).<br />

Semnal vocal Algoritmul propus utilizează analiza în domeniul timp a semnalului<br />

vocal. După o filtrare trece-jos a semnalului, se detectează mai întâi punctele<br />

Segmentare S/U/V<br />

Detecţie regiuni<br />

Compactare<br />

Segmentare fonematică<br />

Subregiuni<br />

Figura 3.1. Metoda de segmentare automată<br />

propusă de autor<br />

de trecere prin zero Zi din forma de undă. Apoi se calculează punctele de<br />

valoare minimă mi şi maximă Mi dintre două puncte de zero.<br />

Separarea linişte/vorbire se realizează utilizând o valoare de prag Ts<br />

aplicată asupra amplitudinii semnalului vocal. În segmentele de linişte (silence),<br />

toate punctele mi şi Mi trebuie să fie mai mici decât Ts .<br />

Pentru fiecare segment din semnalul vocal se calculează apoi distanţa<br />

dintre două puncte de zero adiacente Di . Se ia decizia de segment sonor<br />

(voiced) dacă această distanţă este mai mare decât o valoare de prag V.<br />

Un segment este considerat nesonor ( unvoiced) dacă distanţa Di<br />

dintre punctele de zero adiacente este mai mică decât un prag U.<br />

Se definesc de asemeni segmente tranzitorii, acestea fiind segmentele<br />

pentru care condiţiile de mai sus nu sunt îndeplinite.<br />

În urma operaţiei de segmentare S/U/V (detectarea segmentelor de tip silence/ unvoiced /voiced), va avea loc o împărţire a<br />

semnalului vocal în clase de regiuni distincte, în scopul determinării proprietăţilor semnalului pe regiuni şi punerii în corespondenţă cu<br />

setul de foneme de la intrare.<br />

După o primă aplicare a algoritmului de mai sus, va fi generat un număr mare de regiuni. În timp ce regiunile sonore sunt<br />

determinate corect de la început, regiunile nesonore sunt fragmentate de o serie de regiuni de linişte, din cauza faptului că de obicei<br />

6


aceste regiuni nesonore au amplitudine mică. Toate aceste regiuni vor fi compactate într-o singură regiune nesonoră în cea de-a doua<br />

trecere a algoritmului.<br />

După segmentare, regiunile detectate vor fi puse în corespondenţă cu şirul de foneme prezent la intrare, pe baza unor reguli<br />

stabilite în funcţie de proprietăţile acustice ale fiecărei foneme rostite în limba română. Aşa cum se va arăta în paragrafele următoare,<br />

acest proces de punere în corespondenţă între regiunile distincte din semnalul vocal şi foneme are un rol foarte important în<br />

generarea automată a bazei de date vocale, şi se pretează la multe alte aplicaţii – inclusiv în domeniul recunoaşterii vorbirii.<br />

În continuare se vor detalia algoritmii corespunzători fiecărei etape.<br />

3.4.1. Segmentarea S/U/V şi detecţia de regiuni<br />

Pasul preliminar al metodei de segmentare îl reprezintă detectarea punctelor de zero, minim şi maxim din semnalul vocal.<br />

După o filtrare trece-jos a semnalului, folosind analiza în domeniul timp, se detectează mai întâi punctele de trecere prin zero (Zi) din<br />

forma de undă. Apoi se calculează punctele de valoare minimă (mi) şi maximă (Mi) dintre două puncte de zero.<br />

Algoritmul propus de autor realizează segmentarea automată a semnalului vocal în 10 clase de regiuni. Se împarte mai întâi<br />

semnalul vocal în 4 categorii de bază: linişte (Silence), vocală sonoră (Voiced), consoană nesonoră (Unvoiced), respectiv tranziţie,<br />

apoi se realizează clasificarea acestora în 10 clase distincte de regiuni: linişte, consoană nesonoră, vocală sonoră, linişte-nesonoră,<br />

regiune de tip salt, neregulată, tranzitorie, tranzitorie densă, discontinuă de tip R şi discontinuă de tip G.<br />

Corespondenţele dintre categoriile de bază şi clasele de regiuni sunt arătate în figura 3.2.<br />

CLASĂ<br />

CATEGORIE<br />

Figura 3.2. Relaţia dintre categoriile de bază şi clasele de regiuni<br />

Cele 10 clase de regiuni sunt următoarele:<br />

1. Regiune de tip linişte (L). Este o regiune în care nu se detectează semnal vorbit, respectiv amplitudinea semnalului este foarte<br />

mică.<br />

2. Regiune de tip consoană nesonoră (C). Pentru limba română, aici intră consoanele fricative /S/, /Ş/, /Ţ/, /F/, /Z/, /J/, /H/, precum şi<br />

africativele /Ce/, /Ci/, /Ge/, /Gi/ .<br />

3. Regiune de tip vocală sonoră (V). Aici avem toate vocalele din limba română: /A/, /E/, /I/, /O/, /U/, /Ǎ/, /Î/, dar tot aici intră consoanele<br />

glide şi nazale /L/, /M/, /N/, precum şi unele dintre consoanele plozive /P/, /B/, /D/.<br />

4. Regiune de tip linişte-nesonoră (LB). Acest tip de regiune este o combinaţie între regiunea de tip linişte şi regiunea de tip consoană<br />

nesonoră. Detectarea acestei regiuni ca o categorie separată a fost necesară deoarece consoanele fricative sunt rostite de multe<br />

ori cu o intensitate scăzută, putând să fie regăsite în regiuni de tip linişte.<br />

5. Regiune de tip salt (VS). Este o regiune asemănătoare cu regiunea vocalică, dar fără să fie periodică. Se datoreşte balansului de<br />

semnal vocal deasupra sau dedesubtul liniei de zero. Necesitatea distingerii acesteia de regiunea vocalică se datoreşte faptului că<br />

ei nu-i corespunde în semnalul vorbit o vocală, ci o zonă tranzitorie sau de coarticulare.<br />

6. Regiune neregulată scurtă (TN). Este o regiune ce permite detectarea consoanelor plozive precum /C/, /G/ sau /P/. De obicei apare<br />

după o zonă de linişte, având o durată scurtă şi o gamă de frecvenţe intermediară între vocale şi consoanele nesonore.<br />

7. Regiune tranzitorie (T). Este regiunea intermediară situată şi ea în domeniul de frecvenţe dintre vocale şi consoane, dar fără să aibă<br />

caracteristicile regiunilor (R4)-(R6).<br />

8. Regiune tranzitorie densă (TD ). Este o regiune tranzitorie în care apar frecvenţe de ordin superior, ce poate corespunde<br />

consoanelor fricative. Semnalul nu este catalogat în categoria (R2) datorită balansului pozitiv sau negativ faţă de linia de zero.<br />

9. Regiune de discontinuitate de tip “R” (VR). Corespunde unei regiuni de discontinuitate vocalică asociată cu un minim de energie, ce<br />

poate fi datorată în mod particular consoanei glide /R/ care desparte o secvenţă de vocale.<br />

10. Regiune de discontinuitate de tip “G” (VG). Este o regiune de discontinuitate vocalică ce corespunde frecvenţelor intermediare<br />

asociate cu consoanele plozive (în particular cu /C/ şi /G/), ce apar atunci când aceste consoane se află în interiorul unei secvenţe<br />

vocalice.<br />

Experimentele efectuate au condus la realizarea unor corespondenţe între fonemele limbii române şi clasele de regiuni.,<br />

corespondenţe care au fost prezentate în capitolul curent al tezei. În cele ce urmează vor fi detaliate modurile de detectare a celor<br />

patru categorii de bază precum şi modurile de clasificare în cele 10 clase de regiuni.<br />

3.4.1.1. Detectarea categoriei Linişte<br />

Separarea linişte/vorbire din semnalul vocal se realizează utilizând o valoare de prag Ts aplicată asupra amplitudinii<br />

semnalului. În segmentele de Linişte (Silence), toate punctele de minim mi şi maxim Mi (detectate prin algoritmul Zero-Min-Max)<br />

trebuie să fie mai mici decât pragul Ts :<br />

|<br />

M i | T<br />

s<br />

<br />

|<br />

m i | T<br />

s<br />

Regiune<br />

L V T C<br />

L LB V VR VG VS T TN TD C<br />

, i = s… s+n (3.17)<br />

unde:<br />

- s reprezintă indexul eşantionului curent din segmentul vocal, iar<br />

- n este numărul de eşantioane din acel segment.<br />

7


3.4.1.2. Detectarea categoriei Vocală<br />

Categoria Vocală corespunde segmentelor sonore din semnalul vocal. Pentru segmentele de vorbire se calculează distanţa<br />

dintre două puncte de zero adiacente Di = d(Zi, Zi+1). Se ia decizia de segment Sonor (Voiced) dacă această distanţă este mai mare<br />

decât o valoare de prag V :<br />

Di V , i = s,… , s+n (3.18)<br />

În figura 3.3, Z1, A, B, Zn reprezintă puncte de zero, M1 este un punct de maxim, iar m2 e un punct de minim, punctele fiind<br />

detectate prin algoritmul Zero-Min-Max.<br />

M<br />

Pentru ca puncte de zero precum cele dintre punctele A şi B din<br />

figură să fie incluse în segmentul sonor, se aplică o tehnică de tip look-<br />

1<br />

ahead. Astfel, un număr de maximum Nk puncte de zero dintre Zi şi Zi+k pot fi<br />

Z1 A Zn<br />

inserate în regiunea sonoră dacă Di-1 > V şi Di+k > V :<br />

B<br />

D1<br />

m<br />

Figura 3.3. Porţiune sonoră dintr-un segment de vorbire<br />

D j V<br />

<br />

D<br />

i 1<br />

V<br />

<br />

D<br />

i k<br />

V<br />

, i = s,… , s+n ; j = i .. k ; k P[1] > P[2] > P[3] (3.21)<br />

P[6] > P[5] > P[4] > P[3]<br />

Figura 3.4. Detectarea unei regiuni de tip vocală sonoră<br />

Modul de detectare a hiatusurilor de periodicitate<br />

va fi explicat în paragraful dedicat determinării<br />

perioadelor din regiunile vocalice sonore.<br />

În continuare s-a arătat modul de detectare a<br />

minimelor locale de amplitudine a perioadelor,<br />

corespunzătoare subregiunilor de tip<br />

Discontinuitate R.<br />

Dacă relaţiile (3.21) sunt satisfăcute, punctul P[3] corespunzător perioadei PC este un punct de minim şi intervalul<br />

considerat se va eticheta ca regiune de tip Discontinuitate R.


Dacă relaţiile (3.21) nu sunt satisfăcute din cauza punctelor de capăt P[0] sau P[6], atunci se admite şi condiţia ca P[3] să fie<br />

minim pentru intervalul ordonat [1,5], iar punctele de capăt P[0] şi P[6] să fie apropiate ca valoare de P[1], respectiv P[5].<br />

3.4.1.3.2. Detectarea subregiunilor corespunzătoare consoanelor /C/, /G/<br />

Detecţia regiunilor de tip Discontinuitate G, corespunzătoare consoanelor /C/ şi /G/ se bazează pe faptul că în banda de<br />

[3500-6500] Hz există în acest caz frecvenţe spectrale de amplitudine mărită, spre deosebire de cazul vocalelor în care aceste<br />

frecvenţe nu există.<br />

Algoritmul pentru detectarea subregiunilor de tip G este următorul:<br />

(1) Se calculeaza maximul amplitudinii spectrale din banda [1,2500] Hz MAX1, pentru o fereastră W de N perioade din<br />

regiunea curentă.<br />

(2) Se calculează maximul amplitudinii spectrale din banda [3500,6500] Hz MAX2 pentru fereastra W.<br />

(3) Se calculează raportul RGC[W] = MAX2/MAX1.<br />

(4) Dacă RGC[W] > KGC , se returnează True pentru a indica detecţia subregiunii de tip G.<br />

3.4.1.4. Detectarea categoriei Consoană<br />

Categoria Consoană corespunde segmentelor nesonore. Un segment de vorbire este considerat Nesonor (Unvoiced) dacă<br />

distanţa Di dintre două puncte de zero adiacente este mai mică decât un prag U:<br />

Di<br />

Di U , i = s,… , s+n (3.22)<br />

Figura 3.6. Porţiune nesonoră dintr-un segment de vorbire Figura 3.7. Detectarea unei regiuni de tip consoană nesonoră<br />

Figura 3.6 prezintă modul de detectare al regiunii, iar figura 3.7 prezintă rezultatele detectării automate a unei regiuni din<br />

categoria Consoană. Caracteristic este numărul mare de treceri prin zero a semnalului.<br />

3.4.1.5. Detectarea categoriei Tranziţie<br />

Detectarea categoriei Tranziţie se face pe următorul nivelul al algoritmului de segmentare, după ce categoriile Linişte, Vocală<br />

şi Consoană au fost identificate. Se parcurg regiunile în ordine iar cele care nu au fost etichetate la nivelul 1 se etichetează ca regiuni<br />

de tranziţie. Pentru aceste regiuni se lansează clasificatorul categoriei Tranziţie.<br />

În cadrul acestei categorii, detectarea regiunilor de tip Neregulată are ca scop evidenţierea “zimţurilor” care apar în semnal,<br />

adică a unor neregularităţi care indică posibilitatea rostirii unor consoane plozive (/C/ sau /G/). Aceste consoane au forma unor<br />

impulsuri de durată scurtă ce urmează după o perioadă de aprox. 5 ms de linişte.<br />

Figura 3.8. Detectarea regiunilor de tip Neregulată. Regiunile clasificate astfel sunt figurate cu galben.<br />

Detectarea regiunilor de tip Tranzitorie densă este necesară pentru evidenţierea unor regiuni cu pondere mare a frecvenţelor<br />

ridicate în spectru, care pot fi de tipul consoanelor fricative. Detecţia acestui tip de regiuni se bazează pe calculul unui raport dintre<br />

amplitudinile frecvenţelor spectrale ale unui filtru trece-bandă 2500 – 4000Hz şi ale unui filtru trece-jos cu frecvenţa de tăiere 1000Hz:<br />

R<br />

dens<br />

T 2<br />

P<br />

<br />

kT<br />

1<br />

<br />

k1<br />

FFT ( k)<br />

FFT ( k)<br />

9<br />

(3.23)<br />

unde:<br />

- FFT(k) este modulul transformatei Fourier a semnalului din poziţia spectrală k ;<br />

- T1 este poziţia spectrală corespunzătoare frecvenţei de 2000Hz :<br />

2500N<br />

T1 , cu N = numărul de eşantioane din segmentul curent, Fes fiind frecvenţa de eşantionare ;<br />

Fes<br />

/ 2<br />

- T2 este poziţia spectrală corespunzătoare frecvenţei de 3000Hz :<br />

4000 N<br />

T2 , cu N = numărul de eşantioane din segmentul curent, Fes = frecvenţa de eşantionare ;<br />

Fes<br />

/ 2<br />

1000 N<br />

- P este poziţia spectrală corespunzătoare frecvenţei de 700Hz : P <br />

Ca modalitate de detecţie, se calculează energia<br />

negativă (adică energia semnalului de amplitudine negativă)<br />

Eneg(m) din stânga fiecărui punct de minim m, începind cu dx = -<br />

0.225 ms, pe o durată D = 1 ms. Dacă raportul: Rneg = m 2 /<br />

Eneg(m) este mai mare decât un prag dat, atunci regiunea este<br />

de tip Neregulată.<br />

Fes<br />

/ 2<br />

.


3.4.2. Compactarea regiunilor<br />

După etapa de detectare a regiunilor, integrarea acestora într-o categorie segmentală de tipul Linişte, Sonoră, Nesonoră<br />

respectiv Tranziţie, şi după clasificarea într-una din cele 10 clase de regiuni, urmează faza de compactare. Compactarea realizează<br />

gruparea regiunilor de dimensiuni mici într-o aceeaşi categorie segmentală.<br />

S-a remarcat faptul că după prima aplicare a algoritmului de segmentare se generează un număr mare de regiuni. Dacă<br />

regiunile sonore sunt determinate corect de la început, regiunile nesonore sunt fragmentate de o serie de regiuni de linişte, din cauza<br />

faptului că de obicei aceste regiuni nesonore au amplitudine mică.<br />

De asemeni, din cauza balansării semnalului deasupra sau dedesubtul liniei de zero, în cadrul unui segment nesonor pot<br />

apărea şi segmente tranzitorii.<br />

Algoritmul de compactare stabileşte întâi o secvenţă de regiuni ale cărei capete pot fi Vocale sonore sau Linişte:<br />

R R ,..., R R <br />

S , , cu<br />

0 , 1 n 1<br />

R , R n VL {<br />

V , L}<br />

(3.24)<br />

0<br />

c k 1<br />

, VL<br />

R i C k | 10 , i 1, n 1<br />

n<br />

unde Ri reprezintă regiunile clasificate într-una din cele 10 clase ck ; V reprezintă clasa Vocală Sonoră ; L reprezintă clasa<br />

Linişte. După stabilirea secvenţei de regiuni de compactat (regiunile de capăt R0 şi Rn nu se compactează), se încearcă gruparea<br />

regiunilor într-una sau eventual mai multe regiuni nesonore astfel :<br />

Cazul 1. Dacă ponderea regiunilor de tip consoană nesonoră este mai mare decât un prag K1, atunci secvenţa S se<br />

compactează într-o singură regiune de tip consoană nesonoră.<br />

Cazul 2. Dacă ponderea regiunilor de tip consoană nesonoră şi a regiunilor de tip linişte-nesonoră este mai mare decât un<br />

prag K2, atunci secvenţa S se compactează într-o singură regiune de tip linişte-nesonoră.<br />

Un exemplu de segmentare pentru o regiune de tip linişte nesonoră este arătat în figurile 3.9, respectiv 3.10. Aici regiunile<br />

numerotate sunt nesonore, regiunile figurate cu o singură linie, nenumerotate, sunt regiuni de linişte, iar regiunile figurate cu linie<br />

îngroşată sunt regiuni tranzitorii. Toate aceste regiuni vor fi compactate în cea de-a doua trecere a algoritmului, astfel că rezultatul va fi<br />

o singură regiune de tip linişte-nesonoră, aşa cum se poate vedea în figura 3.10.<br />

Figura 3.9. Regiunile dintr-un segment nesonor după prima<br />

aplicare a algoritmului<br />

10<br />

Figura 3.10. Compactarea regiunilor într-un segment de tip<br />

linişte-nesonoră<br />

Cazul 3. Dacă cele două condiţii anterioare de la punctele 1 şi 2 nu sunt îndeplinite, atunci secvenţa de regiuni se<br />

compactează în felul următor:<br />

Regiunile neregulate şi regiunile de tip linişte nesonoră de durată mai mare de 5 ms vor fi lăsate pe loc, iar celelalte regiuni<br />

vor fi compactate într-o singură regiune tranzitorie. Regiunile ce se compactează pot fi de tipul: consoană nesonoră, linişte-nesonoră<br />

de durată mică, de tip salt, tranzitorie sau tranzitorie densă, ţinând cont că la capetele secvenţei de compactare avem întotdeauna<br />

regiuni vocale sau linişte.<br />

3.4.3. Rezultatul final al segmentării în clase de regiuni<br />

În figura 3.11 se prezintă<br />

rezultatul final al segmentării în<br />

clase de regiuni pentru<br />

sintagma « Evidenţierea unui cadru<br />

general ». Se pot observa aici<br />

următoarele clase: vocale-sonore<br />

(portocaliu), consoane nesonore<br />

(linie roşie), regiuni de tranziţie (linie<br />

roşie îngroşată), linişte (fără linie),<br />

linişte nesonoră (albastru).<br />

Avantajul algoritmului faţă de<br />

alte abordări este rapiditatea<br />

derivată din efectuarea calculelor în<br />

domeniul timp şi detectarea<br />

categoriilor de bază dintr-o singură<br />

parcurgere a eşanti-oanelor de<br />

semnal. De asemeni, diferitele tipuri<br />

de regiuni sunt detectate în principal<br />

pe baza parametrilor obţinuţi în<br />

prima fază a algoritmului.<br />

Figura 3.11. Rezultatul final al segmentării în<br />

clase de regiuni pentru sintagma «Evidenţierea<br />

unui cadru general»


3.5. Detectarea perioadelor din forma de undă. Punctele de închidere glotală<br />

Detectarea perioadelor din forma de undă, corespunzând frecvenţei fundamentale a semnalului, este importantă atât pentru<br />

analiza sincronă cu frecvenţa (pitch synchronous analysis), cât şi pentru modificarea proprietăţilor semnalului vocal în domeniul timp<br />

(de exemplu modificarea tonalităţii, intonaţiei şi ritmului vorbirii).<br />

Metodele folosite pentru detectarea perioadelor formei de undă utilizează modelarea LPC, calculând vârfurile din semnalul<br />

rezidual LPC prin filtrare adaptivă [Chi00], sau calculul discontinuităţilor spectrale prin transformate timp-frecvenţă. De asemeni, au<br />

fost dezvoltate metode folosind funcţia de autocorelaţie, calculul cepstrumului şi filtrarea inversă [Nay07], sau metode statistice,<br />

precum [Sak03].<br />

Toate aceste metode determină valori medii ale perioadei -necesare în procesul analizei- dar nu determină în mod exact<br />

cadrul de semnal corespunzător pentru fiecare perioadă.<br />

3.6. Contribuţii ale autorului în determinarea perioadelor de semnal<br />

În scopul extragerii proprietăţilor glotale corespunzătoare unei perioade de semnal, este necesară o abordare sincronă cu<br />

frecvenţa. Autorul a propus un algoritm care realizează acest lucru, şi se aplică nu unui semnal generic oarecare, ci în mod specific<br />

unui semnal vocal sonor, cvasiperiodic. Algoritmul se bazează pe un mod de calcul exclusiv în domeniul timp, ceea ce îl face deosebit<br />

de rapid şi eficient. Alte avantaje care derivă din această abordare sunt: detectarea exactă a capetelor intervalului de perioadă,<br />

determinarea precisă a fiecărei perioade dintr-un segment sonor cvasiperiodic cu frecvenţa variabilă, determinarea rapidă a maximelor<br />

de perioadă. Algoritmul este prezentat în figura 3.12.<br />

Determinare Pivot<br />

Estimare Perioadă<br />

Detecţie Puncte de Maxim Detecţie Puncte Hiatus<br />

Marcare Perioadă<br />

Figura 3.12. Algoritmul de determinare a perioadelor de semnal<br />

Urmează etapa de estimare a perioadei semnalului în jurul punctului pivot. Pentru aceasta se determină punctele din<br />

vecinătatea stânga şi dreapta a punctului pivot care au amplitudinea comparabilă cu acesta. Prin medierea distanţelor între aceste<br />

două puncte şi punctul 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 către stânga, respectiv către dreapta.<br />

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<br />

punctul de maxim 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 preconizată, fie din cauza<br />

depăşirii perioadei admise, fie din cauza amplitudinii mici de semnal, următorul punct de maxim local se marchează ca hiatus de<br />

perioadă – în primul caz, respectiv ca hiatus de amplitudine – în cel de-al doilea.<br />

În final, în pasul patru, după determinarea tuturor punctelor de maxim de perioadă, se calculează punctele de capăt ale<br />

intervalelor de perioadă. Punctul de start al fiecărui interval se ia ca fiind primul punct de zero care precede maximul de perioadă<br />

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<br />

următor.<br />

3.6.1. Determinarea pivotului<br />

Punctul pivot reprezintă punctul de referinţă în funcţie de care se vor calcula toate celelalte puncte de maxim de perioadă.<br />

Pentru determinarea acestuia, după o filtrare mediană a semnalului, se calculează cu algoritmul ZeroMinMax punctele de zero, minim<br />

şi maxim din semnalul sonor. Apoi se ia 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 de start: punctul pivot.<br />

Mk(i) PIV<br />

Figura 3.13. Determinarea punctului pivot<br />

Punctul pivot se determină conform relaţiei :<br />

D<br />

PIV max( M k ( i )), k 0,..<br />

N ; i D<br />

(3.25)<br />

unde N reprezintă numărul de maxime locale Mk din segmentul considerat.<br />

11<br />

Aşa cum se observă din figura 3.12, algoritmul are 4 paşi<br />

succesivi: determinarea punctului de plecare (punctul pivot),<br />

determinarea unei estimări a perioadei, detecţia punctelor de<br />

maxim şi de hiatus pentru fiecare perioadă, şi apoi marcarea<br />

intervalelor de perioadă.<br />

Punctul pivot este necesar a fi determinat pentru a şti poziţia<br />

primului maxim de perioadă, în funcţie de care se vor calcula<br />

toate celelalte puncte de maxim. Pentru determinarea<br />

acestuia, după o filtrare mediană a semnalului, se calculează cu<br />

algoritmul ZeroMinMax (prezentat în paragraful 4.4.1) punctele<br />

de zero, minim şi maxim din semnalul sonor. Apoi se ia<br />

eşantionul din semnal care are amplitudinea cea mai mare<br />

dintre punctele de maxim, pe o distanţă D de la începutul<br />

segmentului considerat. Acesta este punctul pivot.


Prin modul de determinare a punctului pivot se observă că acesta este întotdeauna un punct de maxim de perioadă. Astfel el<br />

poate fi considerat ca fiind punctul de referinţă pentru determinarea celorlalte maxime de perioadă din segmentul de semnal analizat.<br />

3.6.2. Estimarea perioadei<br />

În pasul al doilea se face estimarea perioadei actuale a semnalului în jurul punctului pivot. Pentru a face estimarea se<br />

determină punctele din vecinătatea stânga şi dreapta a punctului pivot care au amplitudinea comparabilă cu acesta. Dacă cele două<br />

estimări sunt aproximativ egale, estimarea iniţială a perioadei se obţine prin medierea distanţelor între aceste două puncte şi punctul<br />

pivot central. Dacă cele două estimări sunt diferite, atunci se ia perioada cea mai apropiată de valoarea medie a perioadelor vocalice<br />

determinate până în acel moment. Acest mod de calcul creşte robusteţea algoritmului ducând la minimizarea erorilor de estimare<br />

pentru perioada de semnal. Estimarea perioadei actuale P0 se face conform relaţiilor:<br />

D<br />

1 d<br />

( PIV , M S ( i))<br />

<br />

D<br />

2 d<br />

( PIV , M D ( j ))<br />

<br />

P0<br />

(<br />

D 1 D<br />

2 ) / 2<br />

(3.26)<br />

unde:<br />

- MS(i) este punctul de maxim local din stânga pivotului de amplitudine comparabilă cu pivotul: ( ( i ), PIV ) S<br />

- MD(j) este punctul de maxim local din dreapta pivotului de amplitudine comparabilă cu acesta: ( ( j ), PIV ) S<br />

3.6.3. Detectarea maximelor de perioadă<br />

În această etapă se determină toate maximele de perioadă, pornind de la punctul pivot către stânga, respectiv către dreapta.<br />

Pornind de la un maxim care a fost determinat, următorul maxim de perioadă se găseşte astfel: mai întâi se face o estimare a poziţiei<br />

acestui punct ştiindu-se că distanţa faţă de punctul anterior este egală cu perioada curentă estimată, apoi se determină punctul de<br />

maxim local care se află la distanţa minimă faţă de poziţia estimată. Perioada curentă se actualizează în conformitate cu poziţia<br />

ultimului punct găsit.<br />

Dacă la o anumită iteraţie nu se găseşte un punct de maxim care să se găsească cu o marjă de eroare în poziţia<br />

preconizată, fie din cauza depăşirii perioadei admise, fie din cauza amplitudinii mici de semnal, următorul punct de maxim local se<br />

marchează ca hiatus de perioadă – în primul caz, respectiv ca hiatus de amplitudine – în cel de-al doilea.<br />

k=N S<br />

Mk-1(j) PIV<br />

Mk(i) Figura 3.14. Detectarea maximelor de perioadă pornind de la punctul pivot în stânga, respectiv în dreapta<br />

Condiţia pentru determinarea unui maxim de perioadă Mk(i) este următoarea:<br />

D<br />

k d ( M k 1<br />

( j ), M k ( i ))<br />

<br />

(3.27)<br />

| D k P<br />

k 1<br />

| / P k 1<br />

<br />

unde:<br />

- Dk este distanţa dintre punctul de maxim precedent Mk-1(j) şi punctul maxim curent Mk(i); k = 1.. NS în stânga pivotului, k =<br />

1.. ND în dreapta pivotului;<br />

- Pk-1 este perioada estimată la pasul anterior, unde P0 a fost determinată conform algoritmului din paragraful 3.6.1.2 ;<br />

- Δ este pragul pentru eroarea relativă între perioada estimată la pasul anterior şi distanţa efectivă dintre ultimele două puncte<br />

de maxim.<br />

După determinarea unui maxim de perioadă Mk(i) se realizează actualizarea perioadei estimate Pk:<br />

Pk k<br />

k<br />

( P 1 N ( k ) D<br />

) /( N ( k ) 1<br />

)<br />

În relaţia (3.28), N(k) este un factor de ponderare care poate fi ales egal cu numărul de perioade parcurse până la pasul<br />

anterior, adică N(k) = k - 1, sau poate fi ales egal cu o constantă. În algoritmul prezentat mai jos s-a ales varianta constantei (N=4) care<br />

introduce o modificare mult mai rapidă a perioadei estimate curente, ce ţine seama de modificările reale ale frecvenţei semnalului<br />

datorită folosirii intonaţiei în rostire.<br />

3.6.4. Marcarea intervalelor de perioadă<br />

După determinarea tuturor punctelor de maxim de perioadă, se calculează punctele de capăt ale intervalelor de perioadă.<br />

Punctul de start al fiecărui interval se ia 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 intervalului următor.<br />

Intervalul de perioadă PERk corespunzător punctului de maxim Mk(i) se calculează conform relaţiei :<br />

PER k k<br />

k <br />

unde:<br />

- Zk(m) este primul punct de zero anterior lui Mk(i)<br />

- Zk+1(n) este primul punct de zero anterior lui Mk+1(j)<br />

D k<br />

P k-1<br />

k=0<br />

12<br />

k=N D<br />

(3.28)<br />

d ( Z ( m ), Z 1 ( n ))<br />

(3.29)<br />

M S<br />

M D


Calculată în număr de eşantioane, PERk = n-m , iar pe axa timpului :<br />

PERk(t) = (n-m)/Fes , unde Fes este frecvenţa de eşantionare.<br />

3.6.5. Rezultate obţinute cu algoritmul propriu de determinare a intervalelor de perioadă<br />

Algoritmul funcţionează cu rezultate bune atât în cazul vocii masculine, cât şi în cazul celei feminine. În cazul vocilor cu<br />

timbru normal, rezultatele sunt exacte. Dacă timbrul vocii este foarte bogat în armonici, din cauză că semnalul baleiază foarte rapid<br />

peste linia de zero, uneori pot exista variaţii de 1-5% în determinarea punctelor de capăt pentru unele perioade, dar aceste variaţii sunt<br />

compensate la perioadele vecine.<br />

Algoritmul propus aici este mult mai precis decât metodele care implică analiza semnalului în domeniul frecvenţă, dat fiind<br />

faptul că aici (în metoda propusă) se analizează direct eşantioanele de semnal, fără a fi necesară ferestruirea – ce conduce<br />

întotdeauna la aproximaţii.<br />

În figura 3.15 se arată rezultatul final al determinării intervalelor de perioadă pentru o vocală rostită de un vorbitor masculin:<br />

Figura 3.15. Rezultatul final al determinării intervalelor de perioadă<br />

3.7. Segmentarea fonematică<br />

Segmentarea fonematică reprezintă procesul de asociere a unor simboluri fonematice prezente în textul de la intrare cu<br />

semnalul vorbit. În urma segmentării, din semnalul vorbit se vor extrage unităţile acustice (figura 3.16). Aceste unităţi lingvistice pot fi<br />

litere (foneme), silabe, grupuri de litere sau cuvinte întregi, în funcţie de metoda abordată. După separarea segmentelor din semnalul<br />

înregistrat, unităţile acustice sunt parametrizate, etichetate şi integrate în baza de date folosită în sinteză.<br />

Figura 3.16. Evidenţierea segmentelor corespunzătoare unităţilor lingvistice<br />

Dacă transcrierea fonetică a textului nu implică dificultăţi deosebite, cea mai grea sarcină în procesul de prelucrare a<br />

corpusului şi de creare a bazei de date vocale este cea de segmentare. Acest lucru se datorează faptului că metodele de segmentare<br />

automată nu sunt suficient de fiabile la ora actuală, şi astfel verificarea manuală a segmentării rămâne obligatorie, proces extrem de<br />

costisitor atât în termeni de timp cât şi în costuri de dezvoltare.<br />

Această nevoie de intervenţie manuală este considerată ca un factor de limitare pentru construirea de noi corpusuri utilizate<br />

în sinteză. Având în vedere creşterea cererii înspre diversificarea vocilor de sinteză, se impune îmbunătăţirea preciziei şi gradului de<br />

automatizare a segmentării şi adnotării corpusurilor utilizate în aplicaţii de tip text-to-speech.<br />

3.8. Contribuţii ale autorului în problematica segmentării fonematice automate a semnalului<br />

vocal<br />

Autorul a propus o metodă de segmentare fonematică bazată pe reguli de asociere, ce realizează o corespondenţă între<br />

grupuri de litere prezente la intrare şi regiunile distincte ale semnalului vocal. Algoritmul de segmentare urmăreşte textul de la intrare,<br />

şi încearcă să găsească cea mai bună potrivire pentru fiecare grup de litere prezentat cu una sau mai multe regiuni din semnalul vocal<br />

(figura 3.17).<br />

TEXT<br />

Text<br />

Transcris<br />

Regiuni<br />

Dsitincte<br />

SEMNAL<br />

VOCAL<br />

Stream FONEME<br />

GL1 GL2 GLn<br />

R1 R2 Rn<br />

REG1<br />

REG2<br />

Stream REGIUNI<br />

REGm<br />

Figura 3.17. Metoda de segmentare fonematică propusă de autor<br />

…<br />

…<br />

În figura 3.17 se observă că textul de la intrare este mai<br />

întâi rescris într-o anumită transcripţie fonetică, folosind un tabel<br />

simplu de corespondenţe. Textul transcris se desparte apoi într-o<br />

secvenţă de grupuri fonetice Gi. Pe baza regulilor de asociere Ri se<br />

stabileşte o corespondenţă cu regiunile segmentate din semnalul<br />

vocal REGj.<br />

Aşadar metoda prezentată comportă trei paşi distincţi :<br />

1. Transcrierea fonetică a textului de la intrare ;<br />

2. Segmentarea semnalului vocal în regiuni ;<br />

3. Scrierea regulilor de asociere pentru fiecare grup fonetic.<br />

În capitolele anterioare a fost descrisă deja etapa de<br />

segmentare a semnalului vocal în regiuni. În cele ce urmează vor fi<br />

prezentate celelalte două etape: transcrierea fonetică şi scrierea<br />

regulilor de asociere.<br />

13


3.8.1. Transcrierea fonetică a textului de la intrare<br />

Transcrierea fonetică a textului este necesară pentru a diferenţia rostirile diferite ale aceleiaşi foneme în funcţie de contextul<br />

în care ea apare (de exemplu pentru fonema /C/, avem rostirile « Ca-să », respectiv « Ce-ta-te »), dar şi pentru a îngloba caracterele<br />

speciale din text care implică separarea cuvintelor ( cum ar fi , , virgula, punctul, etc.). De asemenea a fost luată<br />

în considerare şi pauza de rostire care apare uneori între două foneme succesive (de exemplu în cazul grupului vocală+consoană :<br />

{VOC}{C}, unde {C} este o consoană plozivă precum /C/ , /G/ sau /P/).<br />

3.8.2. Proiectarea regulilor de asociere pentru fiecare grup fonetic<br />

După etapele de transcriere fonetică a textului de la intrare şi segmentare a semnalului vocal în regiuni, urmează etapa de<br />

asociere între diferitele grupuri de caractere fonetice şi regiunile din semnal (figura 3.18).<br />

G1<br />

Gn<br />

Gi<br />

Figura 3.18. Asocierea grupurilor fonetice cu regiunile<br />

Fie un grup fonetic notat cu Gi. Acesta va fi asociat cu o secvenţă de caractere fonetice astfel :<br />

i<br />

i<br />

i i<br />

F F F<br />

G ,...,<br />

(3.30)<br />

1 , 2<br />

unde Fp i este un caracter din transcrierea fonetică, cu p = 1, ..., ki.<br />

În mod analog, grupul Gi+1 este asociat cu secvenţa:<br />

i 1 <br />

i 1<br />

i 1<br />

i 1<br />

F , F ,..., F <br />

1<br />

2<br />

REGi1<br />

REGim<br />

ki<br />

G (3.31)<br />

k ( i 1<br />

)<br />

REGik<br />

unde ind(F1 i+1 ) = ind(Fki i ) + 1, notându-se prin ind(Fp i ) indicele caracterului Fp i din transcrierea fonetică.<br />

Se urmăreşte asocierea grupurilor fonetice succesive cu două secvenţe de regiuni care să fie de asemenea succesive, astfel :<br />

G i REG ( i,<br />

1)<br />

... REG ( i,<br />

N i ) }<br />

G i 1<br />

REG ( i 1,<br />

1)<br />

... REG ( i 1,<br />

N i 1<br />

) }<br />

(3.32)<br />

unde:<br />

REG(i,p)) este regiunea cu numărul de ordine p din secvenţa asociată grupului Gi .<br />

Dacă notăm cu ind(REG(i,p)) indicele global al regiunii REG(i,p)) în secvenţa totală de regiuni,<br />

atunci avem îndeplinite condiţiile:<br />

ind(REG(i, p+1)) = ind(REG(i, p)) + 1<br />

ind(REG(i+1, 1)) = ind(REG(i, Ni)) + 1 (3.33)<br />

Prima relaţie din (3.33) semnifică faptul că regiunile cu care se asociază fiecare grup Gi sunt succesive, iar cea de-a doua<br />

relaţie semnifică faptul că secvenţele de regiuni cu care sunt asociate cele două grupuri Gi şi Gi+1 trebuie să fie şi ele succesive.<br />

În continuare mai rămâne să explicităm grupurile fonetice, respectiv caracterele care pot intra în componenţa fiecărui grup,<br />

precum şi regulile de asociere grupuri-regiuni, care trebuie să respecte condiţiile (3.30) – (3.33).<br />

Pentru asocierea grupurilor fonetice cu secvenţele de regiuni corespunzătoare, s-a folosit generatorul automat de analizoare<br />

pentru intrări de tip şiruri de caractere (text stream parser) numit LEX [Fre05]. LEX-ul generează un analizor lexical (scanner) de text<br />

conform cu un set de reguli furnizate în notaţia Bachus-Naur Form.<br />

Fiecare regulă din setul de reguli conţine specificarea unui pattern de caractere, care trebuie potrivit cu şirul curent de la<br />

intrare, şi o acţiune care se execută. În cazul nostru acţiunea care se execută este verificarea unei condiţii pentru secvenţa de regiuni<br />

care poate corespunde cu pattern-ul fonetic.<br />

Scanner-ul generat are la intrare şirul de caractere rezultat din transcripţia fonetică, şi pe baza regulilor înmagazinate<br />

realizează următoarele acţiuni :<br />

1) preia secvenţa curentă de caractere din şirul de intrare ;<br />

2) identifică regula corespunzătoare prin pattern-matching;<br />

3) încearcă să găsească o secvenţă de regiuni din tabela de regiuni care să se potrivească cu condiţia specificată de<br />

regulă.<br />

3.8.3. Rezultate obţinute în urma aplicării metodei propuse de asociere foneme-regiuni<br />

Pentru un anumit vorbitor, rezultatele asocierii dintre şirul de foneme de la intrare şi setul de regiuni din semnalul vocal<br />

depind de doi factori: (1) modul de segmentare al semnalului vocal şi (2) setul de reguli de asociere corespunzător acelui vorbitor.<br />

Segmentarea semnalului vocal cu metoda propusă de autor împarte semnalul în 10 clase de regiuni distincte, frontierele<br />

dintre regiuni fiind bine delimitate. Problema cea mai delicată o constituie construirea setului de reguli de asociere pentru vorbitorul<br />

considerat. Proiectarea setului de reguli se face folosind un corpus de înregistrări ale vorbitorului, pe baza căruia se scriu regulile<br />

pentru fiecare grup de foneme care prezintă o rostire distinctă.<br />

14<br />

În figura 3.18, fiecare grup Gi se asociază cu o<br />

serie de regiuni REGik, unde<br />

i k 1 i<br />

k 1,<br />

k 1<br />

.. m , şi<br />

card ({ i k , k 1 .. m }) 1<br />

, adică fiecare grup Gi<br />

se va asocia cu una sau mai multe regiuni<br />

succesive din semnalul vocal.


3.8.4. Experimente privind segmentarea în subregiuni fonematice<br />

15<br />

Odată ce a fost scris un set de reguli pentru<br />

un vorbitor, transcrierea sa pentru un altul se<br />

face modificând doar elementele de durată şi<br />

eventual tipul de regiuni asociate pentru fiecare<br />

grup de foneme. Autorul a proiectat mai întâi un<br />

set de reguli pentru un vorbitor masculin, ce a<br />

fost apoi uşor adaptat şi pentru un vorbitor<br />

feminin. În urma aplicării metodei proprii de<br />

asociere foneme-regiuni s-a constatat că aceste<br />

constrângeri de durată şi formă de semnal sunt<br />

suficiente pentru a face o asociere corectă.<br />

În procesul segmentării pot apărea anumite<br />

erori (1-5%) în cazul când în semnal apar regiuni<br />

tranzitorii succesive de durată scurtă.<br />

Unele dintre aceste regiuni pot fi puse în<br />

corespondenţă cu grupul de foneme considerat<br />

(dacă respectă condiţiile de durată), sau pot fi<br />

incluse în tranziţiile intrafonematice, fapt care nu<br />

are o importanţă deosebită, ţinând cont că de<br />

obicei procesul de asociere foneme-regiuni se<br />

face pentru detectarea unor unităţi fonetice de tip<br />

grup de foneme, şi nu pentru foneme singulare.<br />

Acesta este şi cazul lucrării de faţă, în care s-a<br />

utilizat o abordare bazată pe silabe.<br />

În figura 3.19 se prezintă rezultatele<br />

aplicării metodei de asociere foneme-regiuni<br />

asupra unei fraze rostite de un vorbitor masculin.<br />

În urma procesului de asociere a grupurilor de foneme cu regiunile din semnalul vocal, vor exista două situaţii distincte de<br />

asociere:<br />

1) o anumită fonemă este asociată în mod unic cu o regiune sau un set de regiuni;<br />

2) un grup de mai multe foneme va fi asociat cu o regiune sau un set de regiuni.<br />

Primul caz apare de regulă atunci când e vorba de o consoană nesonoră (/s/, /ş/, /t/, /ţ/, /j/, /f/, /č/, /ğ/) sau de o vocală<br />

singulară (ce nu apare într-un grup de vocale). În acest caz segmentarea este în mod precis determinată.<br />

Al doilea caz apare atunci când se întâlneşte un grup de foneme alcătuit din vocale, consoane glide (/l/, /m/, /n/) sau /r/. De<br />

cele mai multe ori, un astfel de grup va fi asociat cu o singură regiune de tip sonor-vocalic (figura 3.20).<br />

a) b)<br />

Figura 3.20. Asocierea unui grup de mai multe foneme cu o singură regiune<br />

a) grupul /milor/ din cuvântul ; b) grupul /area/ din cuvântul <br />

Aşa cum a fost subliniat în subcapitolul precedent, acest caz particular nu împietează asupra procesului de detectare a<br />

unităţilor lingvistice folosit în construirea corpusului vocal adnotat, mai ales atunci când unităţile lingvistice sunt alcătuite din grupuri de<br />

foneme, precum silabele.<br />

Totuşi, dacă se doreşte separarea fonemelor dintr-o astfel de regiune corespunzătoare unui grup de foneme, vor trebui<br />

utilizate anumite metode bazate pe detectarea caracteristicile intrinseci ale fiecărei foneme.<br />

Autorul a experimentat două metode:<br />

1. O metodă bazată pe determinarea tranziţiilor bruşte din regiune;<br />

2. O metodă bazată pe modelare fonematică.<br />

Ambele metode presupun calcularea coeficienţilor de semnal caracteristici fiecărei foneme (s-au folosit coeficienţii Fourier),<br />

precum şi calculul unei distanţe între două seturi de coeficienţi de comparat.<br />

3.8.4.1. Calculul distanţei dintre două seturi de coeficienţi fonematici<br />

Figura 3.19. Asocierea foneme – regiuni pentru<br />

sintagma : rostită de un vorbitor masculin<br />

Există mai multe metode de calcul a distanţei dintre două seturi de coeficienţi asociaţi unor cadre de semnal. Astfel, pentru<br />

două seturi de vectori X={x1, x2, …, xp} şi Y={y1, y2, …, yp}, putem calcula distanţele [Web02]:


Distanţa Euclidiană: (3.34)<br />

Distanţa Manhattan: (3.35)<br />

Distanţa Cebîşev : (3.36)<br />

Distanţa Minkovski: (3.37)<br />

Toate aceste distanţe se calculează pe baza diferenţei coeficienţilor corespunzători din cei doi vectori. Totuşi, pentru două<br />

seturi de coeficienţi Fourier este mult mai adecvat calculul pe baza rapoartelor de coeficienţi decât pe baza diferenţelor.<br />

Acest fapt este simplu de observat în cazul a două cadre de semnal de aceeaşi formă dar de amplitudine diferită (de<br />

exemplu o aceeaşi vocală rostită cu intensităţi diferite). În acest caz cele două seturi de coeficienţi Fourier sunt asemenea şi se obţin<br />

unul din altul prin aplicarea unui factor de multiplicare proporţional cu raportul intensităţilor celor două forme de semnal.<br />

Ca urmare, s-a urmărit calcularea unei distanţe între două seturi de coeficienţi Fourier a={a1, a2, …,an} şi b={b1, b2, …,bn}<br />

între care se calculează un raport r, distanţă notată cu E(a,b,r). Acestă distanţă are rol de eroare pătratică minimă şi respectă<br />

proprietăţile:<br />

P1. E(a,b,r)= E(b,a,1/r)<br />

P2. E(a,a,1)=0 (3.38)<br />

P3. E(a,ra,r)=0<br />

P4. E(a,b,r)= E(na,mb,(m/n)r)<br />

Proprietatea P1 reprezintă proprietatea de comutativitate a distanţei. Proprietatea P2 statuează faptul că distanţa E calculată<br />

asupra aceluiaşi vector este nulă. P3 este proprietatea de scalare a unui vector: distanţa dintre un vector şi vectorul scalat cu un raport<br />

r este nulă. P4 este proprietatea de scalare generalizată: distanţa dintre doi vectori având raportul r este aceeaşi cu distanţa dintre<br />

vectorii scalaţi cu factorii n, respectiv m, raportul modificându-se proporţional cu factorii de scalare.<br />

S-a luat următoarea formulă de calcul pentru distanţa E bazată pe raportul r dintre vectorii a şi b :<br />

a <br />

i bi<br />

1<br />

E(<br />

a,<br />

b,<br />

r)<br />

r <br />

<br />

i1 , nb<br />

i ai<br />

r <br />

2<br />

16<br />

(3.39)<br />

Se observă că distanţa definită de relaţia (3.39) respectă condiţiile P1 ... P4 din (3.38).<br />

În continuare se urmăreşte calculul raportului r astfel încât distanţa E (cu rol de eroare pătratică) să fie minimă.<br />

Dacă notăm a1<br />

p1 <br />

b<br />

, a 2 p 2 , …, a n p n , atunci relaţia (3.39) devine:<br />

b<br />

b<br />

sau, explicitând suma:<br />

1<br />

2<br />

1 <br />

E(<br />

a,<br />

b,<br />

r)<br />

p<br />

ir<br />

<br />

<br />

i1 , n<br />

pi<br />

r <br />

2 2<br />

2 2 1 1 1 1<br />

E(<br />

a,<br />

b,<br />

r)<br />

( p1<br />

p<br />

2 ...<br />

p<br />

n ) r (<br />

...<br />

) 2<br />

n<br />

2 2<br />

2 2<br />

p p p r<br />

dE<br />

Punând condiţia ca E să fie minimă, avem 0<br />

, adică:<br />

dr<br />

2 2<br />

2 1 1 1 1<br />

2( p1<br />

p<br />

2 ...<br />

p<br />

n ) r 2<br />

( ...<br />

) 0<br />

2 2<br />

2 3<br />

p p p r<br />

Rezultă valoarea lui r care minimizează distanţa E:<br />

Sau dacă notăm<br />

r<br />

4<br />

2<br />

1<br />

2<br />

1<br />

1<br />

1 1 1<br />

...<br />

<br />

p p p<br />

<br />

p p<br />

...<br />

p<br />

2<br />

1<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

2<br />

n<br />

1<br />

n<br />

2<br />

n<br />

2<br />

n<br />

1 1 1<br />

I ...<br />

şi<br />

p p p<br />

p p p S <br />

r <br />

I<br />

S<br />

2<br />

2<br />

n<br />

n<br />

, atunci:<br />

2 2<br />

2<br />

1 2 ... n<br />

(3.40)<br />

(3.41)<br />

(3.42)<br />

(3.43)<br />

2 (3.44)<br />

Din (3.41), expresia lui E devine:<br />

2 1<br />

E( a,<br />

b,<br />

r)<br />

Sr I<br />

2<br />

n 2<br />

r<br />

(3.45)


Înlocuind pe (3.44) în (3.45), obţinem distanţa minimă dintre a şi b în funcţie de r:<br />

E r ( a , b ) 2(<br />

IS n<br />

)<br />

(3.46)<br />

min,<br />

Astfel putem alege expresia distanţei dintre a şi b:<br />

E ( a,<br />

b)<br />

IS n<br />

1<br />

expresie ce are proprietatea: ( E ( a,<br />

b))<br />

0<br />

, sau:<br />

E ( a,<br />

b)<br />

<br />

min 1<br />

a,<br />

b<br />

IS<br />

2 , cu min ( E 2 ( a,<br />

b))<br />

n<br />

a , b<br />

17<br />

(3.47)<br />

. (3.48)<br />

De aici obţinem valoarea distanţei pătratice minime în raport cu r dintre vectorii a şi b:<br />

E( a,<br />

b)<br />

n<br />

2<br />

IS , unde min ( E ( a,<br />

b))<br />

0<br />

a , b<br />

. (3.49)<br />

Valoarea distanţei pătratice minime dată de formula (3.49) a fost folosită pentru determinarea gradului de asemănare dintre<br />

două seturi de coeficienţi corespunzătoare a două forme de undă.<br />

În continuare vom explicita cele două metode de segmentare în subregiuni fonematice prezentate la începutul secţiunii 3.8.4,<br />

metode ce se bazează pe calculul distanţei pătratice minime E(a,b).<br />

3.8.4.2. Metoda de segmentare în subregiuni fonematice bazată pe determinarea tranziţiilor bruşte din regiune<br />

Această metodă de segmentare presupune calculul coeficienţilor Fourier pentru două cadre succesive sau apropiate din<br />

semnal şi compararea acestora folosind distanţa pătratică minimă (paragraful 3.8.4.1) în scopul detectării tranziţiilor bruşte care apar<br />

în regiunea studiată. Aceste tranziţii bruşte reprezintă tranziţiile de la o fonemă la alta şi corespund cu frontierele de subregiuni.<br />

Cadrele de semnal se iau sincron cu frecvenţa, şi cuprind un număr de Np perioade (de obicei Np = 1, 2 sau 3). Distanţa<br />

dintre cele două cadre de referinţă va fi Dp (se ia la fel Dp = 1, 2 sau 3 perioade). Apoi se extrag cei doi vectori ce cuprind primii n<br />

coeficienţi Fourier pentru cele două cadre, şi se calculează E(a,b) – figura 3.21.<br />

C1 C2<br />

F(C1)<br />

Np Dp<br />

E(a,b)<br />

F(C2)<br />

Figura 3.21. Metoda de segmentare bazată pe determinarea tranziţiilor bruşte din regiune<br />

Avantajul metodei derivă din simplitatea şi cantitatea redusă de calcule necesară.<br />

Pentru a asocia în mod corect fonemele şi tranziţiile fonematice cu subregiunile detectate, va trebui folosită o metodă de<br />

recunoaştere a fonemelor pe baza caracteristicilor spectrale, aşa cum este metoda prezentată în cele ce urmează.<br />

3.8.4.3. Metoda de segmentare în subregiuni fonematice bazată pe modelarea caracteristicilor spectrale<br />

Această metodă de segmentare în subregiuni fonematice se bazează tot pe calculul coeficienţilor Fourier, şi se aplică asupra<br />

regiunilor sonor-vocalice din semnalul vocal, la fel ca şi metoda bazată pe detectarea tranziţiilor bruşte. Metoda presupune modelarea<br />

caracteristicilor spectrale ale fiecărei foneme de tip vocală sau consoană glidă şi detectarea fonemelor din regiunea ţintă prin<br />

compararea cu modelul.<br />

Metoda cuprinde 4 faze: (1) faza de modelare; (2) compararea vectorilor regiunii ţintă cu modelul; (3) regăsirea modelului<br />

fonematic şi etichetarea regiunilor; (4) gruparea fonemelor şi determinarea subregiunilor.<br />

1) Faza de modelare<br />

Faza de modelare cuprinde realizarea în regim manual a mai multor modele pentru fiecare fonemă în parte. Această fază<br />

corespunde cu faza de antrenare caracteristică oricărui proces de recunoaştere bazată pe model. Modelarea se face pentru un singur<br />

vorbitor (se construieşte câte un fişier model pentru fiecare vorbitor). Fonemele pentru care se realizează modelarea sunt: vocalele /a/,<br />

/e/, /i/, /o/, /u/, /ă/, /î/, şi respectiv consoanele glide /l/, /m/, /n/.<br />

Crearea unui model implică:<br />

a) Alegerea unui cadru din semnal ce corespunde cu fonema dorită. Cadrele se aleg sincron cu frecvenţa şi pot avea o<br />

lungime de 1,2, 3 sau 4 perioade. Fiecare fişier model se va crea utilizând o lungime prestabilită a cadrelor.


) Calculul coeficienţilor Fourier corespunzători. În metoda prezentată s-a ales utilizarea primilor N= 10 .. 12 coeficienţi ce<br />

corespund primelor N= 10..12 maxime din spectrul Fourier.<br />

c) Memorarea în fişierul model.<br />

2) Compararea vectorilor din regiunea ţintă cu modelul<br />

Această fază presupune detectarea cadrelor din regiunea ţintă de lungime egală cu lungimea cadrelor aleasă pentru<br />

modelare, calculul coeficienţilor Fourier de aceeaşi manieră ca şi în faza precedentă, construirea vectorilor de caracteristici, şi<br />

compararea vectorilor cu modelele din fişierul model. Compararea se face pe baza distanţei minime pătratice E(a,b) expusă în<br />

paragraful 3.8.4.1.<br />

Compararea vectorilor din regiunea ţintă cu modelul este ilustrată în figura 3.22. C este cadrul curent, F(C) este vectorul<br />

coeficienţilor Fourier asociat cadrului C, MF este modelul asociat fonemei F.<br />

F(C)<br />

Model<br />

În urma fazei de comparare a vectorilor din regiunea ţintă cu modelele din fişier rezultă câte un set de modele corespondente<br />

pentru fiecare cadru C:<br />

SM M M ,..., M , (3.50)<br />

C<br />

<br />

f 1 , f 2<br />

unde Mfi sunt instanţe ale modelelor fonematice, având:<br />

fi<br />

f<br />

fn<br />

E ( M , F ( C )) P , i 1 .. n , (3.51)<br />

unde Pf este un prag fixat, iar F(C) este vectorul de caracteristici al cadrului C.<br />

3) Regăsirea modelului fonematic şi etichetarea regiunilor<br />

Această fază presupune găsirea modelului fonematic cel mai probabil de asociat cu cadrul curent din regiunea ţintă.<br />

Etichetarea cu foneme poate fi făcută pentru fiecare cadru independent sau în corelaţie cu cadrele învecinate.<br />

În primul caz modelul asociat MC este cel pentru care distanţa pătratică E(MC,F(C)) este minimă :<br />

E ( M C , F ( C )) min E ( M fi , F ( C )) , (3.52)<br />

unde M fi SM . C<br />

i 1<br />

.. n<br />

În al doilea caz, în care etichetarea se face în corelaţie cu cadrele învecinate, dacă aceste cadre vecine fac parte dintr-un şir<br />

etichetat cu o aceeaşi fonemă fk, şi dacă Mfk face parte din setul SMC, atunci Mfk se va asocia cu cadrul C chiar dacă nu respectă<br />

condiţia (3.52).<br />

4) Gruparea fonemelor şi determinarea subregiunilor<br />

C<br />

F1 F2 F3 F4 … Fn-1 Fn<br />

MA ME MI<br />

MO MU ML<br />

În această ultimă fază subregiunile sunt determinate prin găsirea şi extinderea secvenţelor de cadre vecine etichetate cu<br />

aceeaşi fonemă. Dacă o secvenţă {Fi} este întreruptă de o fonemă singulară diferită Fp, secvenţa va fi extinsă şi peste cadrul<br />

respectiv. În finalul procesului de extindere a secvenţelor fonematice, se marchează graniţele de subregiuni ca fiind graniţele<br />

secvenţelor fonematice.<br />

Metoda de segmentare în subregiuni fonematice bazată pe modelarea caracteristicilor spectrale are o mare aplicabilitate<br />

practică. Dacă se foloseşte în corelaţie cu metoda de segmentare fonematică prezentată în subcapitolul 3.8, atunci cunoscându-se<br />

secvenţa fonematică asociată cu fiecare regiune, se va putea determina corespondenţa exactă dintre fiecare fonemă şi cadrele din<br />

acea regiune.<br />

Pe de altă parte metoda de segmentare în subregiuni bazată pe model poate fi folosită şi în recunoaşterea vorbirii. În acest<br />

caz vor trebui luate în consideraţie toate combinaţiile de foneme care rezultă din setul SMC (3.50), iar combinaţia exactă va trebui<br />

determinată prin utilizarea unei predicţii lingvistice bazată pe vocabular.<br />

În figura 3.23 se ilustrează un exemplu de segmentare în subregiuni pentru o regiune vocalică preluată de la un vorbitor<br />

masculin.<br />

t t<br />

Figura 3.22. Compararea vectorilor din regiunea ţintă<br />

cu modelul<br />

18<br />

Figura 3.23. Determinarea subregiunilor<br />

fonematice prin metoda modelării


Metodele de segmentare fonematică descrise anterior au fost proiectate în vederea adnotării şi segmentării corpusului vorbit<br />

pentru realizarea bazei de date cu unităţi acustice. Baza de date vocală este constituită din acel set de sunete elementare prin<br />

concatenarea cărora se poate genera un semnal sonor corespunzător unui text oarecare.<br />

Aceste unităţi de bază pot fi alese dintre: cuvinte, propoziţii, morfeme, silabe, foneme, difoneme etc., în funcţie de cerinţele<br />

aplicaţiei. Folosirea cuvintelor şi propoziţiilor (înregistrarea lor ca forme de undă, inclusiv intonaţie, articulare etc.) duce la obţinerea<br />

unei vorbiri de bună calitate, dar pentru un domeniu lingvistic restrâns.<br />

Autorul a ales pentru implementare varianta folosirii silabelor ca unităţi de bază. Această alegere are avantajul utilizării unor<br />

segmente de vorbire suficient de mari ca să păstreze elmentele de prozodie intrasegmentală (cum ar fi accentele), dar suficient de<br />

mici ca să asigure o dimensiune rezonabilă a bazei de date. Un alt avantaj al folosirii silabelor este faptul că prin concatenare nu<br />

rezultă artefacte acustice, cum este cazul difonemelor de exemplu, caz în care este necesar să se realizeze un proces de interpolare<br />

în punctele de concatenare.<br />

4. Metode de sinteză de voce<br />

La începutul acestui capitol a fost realizată o clasificare a metodelor de sinteză de voce.<br />

a) În funcţie de nivelul abordării, metodele de sinteză se grupează în două categorii: metode care abordează sinteza de nivel<br />

jos, respectiv sinteza de nivel înalt.<br />

Metodele care abordează sinteza de nivel jos pornesc de la specificarea unor parametri acustici şi generează vorbirea<br />

sintetică prin re-crearea formei de undă a semnalului vocal [Bur96].<br />

Metodele de sinteză de nivel înalt sunt de tipul text-to-speech sau concept-to-speech. Sistemele text-to-speech generează<br />

vorbirea pe baza textului de la intrare, iar sistemele concept-to-speech sunt sisteme de dialog vocal în care vorbirea se generează pe<br />

baza unei descrieri lingvistice ce rezultă în urma dialogului cu utilizatorul. Caracteristic acestor metode este faptul că ele includ o<br />

abordare lingvistică, prin aceasta diferenţiându-se de metodele de nivel jos [Bur96].<br />

b) În funcţie de domeniul de analiză abordat, metodele de sinteză a vorbirii se împart în două categorii: metode de sinteză în<br />

domeniul timp şi metode de sinteză în domeniul frecvenţă [Bur96].<br />

Metodele de sinteză în domeniul timp realizează concatenarea directă a formelor de undă stocate în prealabil în baza de date<br />

vocală. Cele mai simple sintetizatoare bazate pe aceste metode nu utilizează parametrizarea unităţilor acustice, utilizând direct forma<br />

de undă a semnalului în domeniul timp.<br />

Avantajul major al acestor metode de sinteză prin concatenare în domeniul timp este reprezentat de calitatea aproape<br />

naturală a vocii sintetizate. Dintre dezavantaje se pot aminti o cantitate importantă de resurse folosite în procesul memorării formelor<br />

de undă, dar şi dificultăţile legate de modificarea prozodiei vorbirii.<br />

Metodele de sinteză în domeniul frecvenţă realizează sinteza vocală pe baza unor parametri acustici generaţi în urma<br />

aproximării unor caracteristici spectrale din domeniul frecvenţă. Astfel, pentru a realiza sinteza unui text, mai întâi se generează<br />

parametrii acustici corespunzători rostirii, şi apoi sunt generate formele de undă ale semnalului vocal [Bur96].<br />

În lucrare au fost prezentate câteva metode ce furnizează rezultate bune în sinteză. Astfel, au fost detaliate pentru domeniul<br />

frecvenţă metoda de sinteză prin predicţie liniară şi metoda formantică, iar pentru domeniul timp metoda TD-PSOLA şi metoda bazată<br />

pe corpus.<br />

4.1. Contribuţii în proiectarea metodelor de sinteză de voce<br />

4.1.1. Metoda de sinteză bazată pe silabe pentru limba română<br />

Ca o dezvoltare specifică metodelor de sinteză prin concatenare, autorul a proiectat şi implementat o metodă de sinteză<br />

pornind de la text, metodă bazată pe concatenarea silabelor. Pentru implementarea metodei a fost necesară stabilirea unor reguli<br />

lingvistice în faza de analiză a textului şi a unor reguli de îmbinare a formelor de undă pe baza caracteristicilor prozodice.<br />

Din punct de vedere al clasificării sistemelor text-to-speech, metoda dezvoltată este mixtă. Aceasta îmbină caracteristici ale<br />

abordării bazate pe concatenarea formelor de undă şi ale abordării bazate pe reguli (alte abordări se pot vedea în [Jos97], [Lew99],<br />

[Men02]). Sinteza de voce prin această metodă se realizează în două faze: analiza textului şi, respectiv, sinteza vorbirii (figura 4.1).<br />

Preprocesare<br />

Analiza sintaxei<br />

Determinarea unităţilor<br />

lingvistice<br />

Determinarea prozodiei<br />

locale<br />

ANALIZA <strong>DE</strong> TEXT<br />

Silabe<br />

Accente<br />

Figura 4.1. Metoda de sinteză bazată pe concatenarea silabelor<br />

În faza de analiză de text, este necesară mai întâi o etapă de preprocesare pentru transcrierea fonetică a numerelor şi<br />

abrevierilor din interiorul textului. Analiza de sintaxă evidenţiază eventualele erori care apar în scrierea textului de sintetizat. Urmează<br />

apoi determinarea unităţilor lingvistice de bază, care în abordarea de faţă sunt silabele. În ultima etapă a analizei de text este<br />

determinată prozodia intrasegmentală, în corelaţie cu accentuarea cuvintelor. Pentru fiecare etapă din cadrul analizei de text au fost<br />

concepute seturi de reguli specifice.<br />

19<br />

Regăsirea unităţilor<br />

acustice<br />

Concatenarea unităţilor<br />

Sinteza<br />

Ri: Gi<br />

BD vocală<br />

<br />

Cond_R<br />

egi<br />

SIN<strong>TEZ</strong>A VORBIRII


În faza de sinteză, pe baza unui algoritm de căutare în baza de date vocală sunt regăsite mai întâi unităţile acustice<br />

corespunzătoare unităţilor silabice din textul de la intrare. Unităţile acustice sunt concatenate şi apoi convertite sonor în ultima etapă a<br />

sintezei vorbirii.<br />

În continuare sunt prezentate pe rând cele 7 etape ale metodei de sinteză propusă de autor.<br />

4.1.2. Preprocesarea textului<br />

Preprocesarea textului se referă la transcrierea în formă textuală a informaţiilor din textul iniţial care:<br />

a) nu sunt scrise cu foneme, ci folosind alte caractere: cifre sau simboluri;<br />

b) nu formează direct unităţi lexicale, ci prescurtări ale acestora (abrevieri).<br />

a) Din prima categorie fac parte numerele, alcătuite din cifre, precum şi anumite simboluri scrise cu caractere speciale, cum<br />

ar fi : simboluri pentru operaţiile aritmetice, simboluri pentru operatorii aritmetici.<br />

b) Abrevierile sunt şi ele împărţite pe categorii: unităţi de măsură, prefixe reprezentând subunităţi de măsură, grade ştiinţifice<br />

şi universitare, grade de armată, alte abrevieri:<br />

Dintre toate aceste categorii de informaţii, cele mai importante şi cel mai des folosite sunt numerele. Pentru explicitarea<br />

acestora sub formă textuală, fonematică, au fost concepute reguli lexicale speciale. Aceste reguli ţin cont de poziţia unei anumite cifre<br />

în cadrul numărului pentru a o denomina printr-o anumită categorie verbală.<br />

4.1.3. Analiza sintaxei<br />

Analiza corectitudinii textului din punct de vedere al sintaxei reprezintă al doilea pas preliminar efectuat în vederea realizării<br />

unei sinteze de vorbire de calitate. Un analizor de sintaxă se poate proiecta prin două metode de bază: prin construirea unui vocabular<br />

complet pentru limba respectivă, sau prin folosirea unor reguli gramaticale sintactice, însoţite de specificarea unor condiţii de excepţie.<br />

Prima metodă este mai completă, dar are dezavantajul unui efort mare de construire a unui vocabular pentru acea limbă<br />

(care poate avea mai multe zeci de mii de cuvinte), vocabular ce trebuie să conţină şi informaţii despre construirea formei flexionate a<br />

cuvintelor (de exemplu rădăcină sau morfemă, terminaţii pentru declinare sau conjugare).<br />

A doua metodă necesită generarea unui set de reguli pentru regăsirea formei de bază neflexionate a cuvintelor şi verificarea<br />

corectitudinii acestora printr-un dicţionar. Metoda are dezavantajul unui anumit grad de necompletitudine, depinzând de numărul de<br />

excepţii introduse în analizor.<br />

Autorul a propus în această lucrare o metodă bazată pe reguli gramaticale, variantă cu un cost de proiectare mult mai redus<br />

decât în cazul realizării de vocabulare. Metoda are ca punct de plecare generatorul automat de analizoare LEX [Fre05], alimentat de o<br />

gramatică ce specifică regulile sintactice de flexionare a cuvintelor din limba română. Pe lângă aceste reguli au fost introduse şi un<br />

număr de excepţii care asigură un grad înalt de completitudine în ceea ce priveşte acoperirea formelor gramaticale din limba română.<br />

Metoda este prezentată în figura 4.2. La intrare se prezintă un text cursiv ce conţine cuvinte în limba română în diferite forme<br />

flexionate. Folosind un set de reguli sintactice de flexionare şi un set de excepţii, analizorul LEX generează forma de bază,<br />

neflexionată, a fiecărui cuvânt de la intrare şi o caută într-un dicţionar. O interfaţă grafică va pune apoi în evidenţă cuvintele care au o<br />

sintaxă greşită sau care nu au fost potrivite cu setul de reguli din LEX.<br />

TEXT<br />

Forma<br />

flexionată<br />

REGULI<br />

de<br />

flexionare<br />

EXCEPŢII<br />

Figura 4.2. Metoda de analiză de sintaxă propusă de autor<br />

Pentru generarea regulilor de flexionare, metoda ia în considerare terminaţiile cuvintelor care pot apărea în diferite forme<br />

flexionate. Setul de reguli introdus în LEX este organizat pe 10 grupe distincte, corespunzătoare celor 10 tipuri gramaticale (părţi de<br />

vorbire) principale din limba română. Fiecare grupă are un subset de reguli care în funcţie de terminaţia cuvântului construiesc forma<br />

neflexionată corespunzătoare şi o transferă modulului de verificare cu dicţionarul.<br />

4.1.3.1. Modul de funcţionare al analizorului de sintaxă<br />

Forma de<br />

bază<br />

neflexionată<br />

Pentru fiecare cuvânt din textul sursă se parcurge tot setul de reguli, încercându-se potrivirea cu fiecare clasă<br />

corespunzătoare unei părţi de vorbire. Dacă se întâlneşte terminaţia specificată de o regulă, atunci acea regulă se activează, se<br />

înlocuieşte terminaţia curentă cu forma neflexionată precizată tot de regula respectivă, apoi se declanşează acţiunea de verificare a<br />

existenţei formei neflexionate în dicţionar. Dacă există, cuvântul se memorează împreună cu modul de flexionare specificat de acea<br />

regulă. Modul de flexionare cuprinde: cazul, genul, articularea, numărul persoanei pentru substantive, iar pentru verbe tipul de<br />

conjugare. Apoi cuvântul se confruntă cu următoarele reguli, generându-se în final o listă cu formele găsite posibile de analizor (fig. 4.3).<br />

Cuvânt neflexionat<br />

Cnf1<br />

Cnf2<br />

Cnfn<br />

Cuvânt flexionat<br />

Cf1<br />

Cf2<br />

Cfn<br />

Tip dicţionar Td1 Td2 Tdn<br />

Parte de vorbire Pv1 Pv2 Pvn<br />

Număr persoane Np1 Np2 Npn<br />

Gen G1 G2 Gn<br />

Caz C1 C2 Cn<br />

Timp T1 T2 Tn<br />

Articulare A1 A2 An<br />

LEX<br />

Figura 4.3. Lista generată cu formele flexionate posibile<br />

20<br />

DICŢIONAR


În lista din figura 4.3, Tip dicţionar reprezintă categoria sintactică specificată de dicţionar, iar Parte de vorbire reprezintă<br />

categoria specificată de analizor. La modul esenţial cele două categorii trebuie să coincidă, dar există cazuri în care categoria<br />

specificată de dicţionar este o particularizare a unui caz mai general, specificat de regulile analizorului.<br />

4.1.4. Determinarea unităţilor lingvistice: silabele<br />

Următoarea etapă în analiza textului de sintetizat constă în determinarea unităţilor lingvistice de bază, şi anume: propoziţiile,<br />

cuvintele şi silabele. Dacă extragerea propoziţiilor şi a cuvintelor nu ridică probleme deosebite, aceasta efectuându-se pe baza<br />

semnelor de punctuaţie şi a caracterelor de separaţie, nu acelaşi lucru se poate spune despre stabilirea silabelor componente ale unui<br />

cuvânt. Pentru a realiza acest deziderat a fost necesară proiectarea unui analizor lingvistic şi a unui set de reguli fonetice pentru<br />

despărţirea în silabe.<br />

Analizorul lingvistic utilizat are o structură pe trei nivele, corespunzător cu trei module având roluri distincte în identificarea şi<br />

tratarea unităţilor fonetice. Cele trei module sunt:<br />

- modulul de comandă şi procesare computaţională (shell procesare) ;<br />

- modulul de analiză sintactică pentru determinarea propoziţiilor şi cuvintelor;<br />

- modulul de analiză lexicală pentru determinarea silabelor.<br />

Analizorul lexical extrage caracterele din text şi le grupează în unităţi fonetice primare. Aici intră determinarea caracterelor<br />

alfabetice, numerice, a caracterelor speciale şi semnelor de punctuaţie. Pe baza unor reguli de producţie lexicale, caracterele<br />

alfabetice vor fi grupate în silabe, caracterele numerice în cifre şi numere, iar caracterele speciale şi semnele de punctuaţie vor fi<br />

folosite în determinarea cuvintelor şi propoziţiilor.<br />

Analizorul sintactic preia silabele, respectiv caracterele speciale şi cifrele furnizate de analizorul lexical şi le grupează în<br />

cuvinte şi propoziţii. Şi aici a fost necesară stabilirea unui set de reguli sintactice pentru departajarea unităţilor fonetice<br />

corespunzătoare.<br />

Modulul de procesare preia în final unităţile fonetice găsite anterior şi, pe baza unor proceduri de calcul, le clasifică şi le<br />

memorează în structuri speciale. De aici vor fi preluate şi transformate în forme de undă de către modulul de sinteză.<br />

4.1.4.1. Analizorul sintactic folosit în extragerea propoziţiilor şi cuvintelor<br />

Analizorul sintactic foloseşte un set de reguli de producţie care specifică sintaxa textului de la intrare. Textul iniţial este<br />

considerat ca o listă de propoziţii, fiecare propoziţie fiind o listă de cuvinte, fiecare cuvânt fiind compus din mai multe silabe.<br />

Propoziţiile, respectiv cuvintele sunt despărţite prin separatori.<br />

Analizorul sintactic invocă analizorul lexical pentru a-i fi furnizat la fiecare apel unitatea lexicală următoare din text: o silabă,<br />

un număr sau un separator. Pe baza acestor unităţi lexicale, la acest nivel se formează unităţile sintactice de tip cuvânt, propoziţie sau<br />

text. Analizorul sintactic are posibilitatea ca după regăsirea fiecărui tip de unitate să apeleze o procedură de calcul pentru procesarea<br />

specifică a unităţii.<br />

4.1.4.2. Analizorul lexical utilizat în determinarea silabelor<br />

Analizorul lexical este apelat pentru regăsirea unităţilor fonetice de bază, şi anume: silabele, caracterele despărţitoare şi<br />

numerele. Analizorul sintactic va grupa aceste unităţi lexicale de bază în cuvinte şi propoziţii. Analizorul sintactic este implementat prin<br />

program, pe când analizorul lexical este rezultat în urma generării automate prin intermediul unui generator de parsere de text, numit<br />

LEX [Fre05].<br />

Generatorul automat LEX construieşte un analizor lexical pornind de la o gramatică ce descrie regulile de producţie ale<br />

analizorului. Gramatica se scrie în limbaj standard BNF ( Backus-Naur Form) şi specifică secvenţele de caractere care trebuie<br />

recunoscute din textul de la intrare, precum şi acţiunile de efectuat corespunzătoare acestor secvenţe. Secvenţele de caractere de<br />

recunoscut ţin cont de contextul stânga şi dreapta în care ele apar.<br />

Analizorul generat preia aşadar de la intrare un text pe care îl va parcurge secvenţial în scopul regăsirii secvenţelor<br />

specificate în gramatica BNF. În cazul nostru secvenţele se referă la regăsirea numerelor, caracterelor speciale şi a silabelor. Procesul<br />

realizat de către analizorul lexical este ilustrat în figura 4.4.<br />

Text<br />

Între<br />

g<br />

C C C C C C C C C C C C C<br />

Cifră Separator Alfanumeric<br />

Reguli de<br />

producţie<br />

Real Sep. 1 … Sep. n Silabă<br />

Tratare_număr Tratare_separator Tratare_silabă<br />

Figura 4.4. Analizorul lexical pentru regăsirea silabelor<br />

21<br />

Aşa cum se vede din figură, textul de la intrare<br />

este interpretat ca un şir de caractere. La început,<br />

caracterul curent este clasificat într-una din categoriile:<br />

cifră, caracter special sau separator, respectiv caracter<br />

alfanumeric. Luând în considerare şi contextul anterior<br />

precum şi contextul următor în care poate să apară,<br />

caracterul curent împreună cu caracterele anterior<br />

parcurse se grupează pentru a alcătui o unitate lexicală:<br />

un număr, un separator sau o silabă.<br />

Reguli de producţie specifice pentru fiecare<br />

categorie indică modul în care se formează aceste unităţi,<br />

realizând totodată şi o subclasificare a lor (de exemplu<br />

pentru numere dacă este întreg sau real, iar pentru<br />

separator – tipul acestuia).<br />

Odată identificat tipul unităţii, caracterele<br />

componente sunt memorate şi transmise analizorului<br />

sintactic prin intermediul unor proceduri numerice<br />

(Tratare_număr, Tratare_separator, Tratare_silabă).


4.1.5. Determinarea aspectelor prozodice: accentele<br />

După etapa de separare a unităţilor lingvistice (silabele) din text, urmează etapa de determinare a aspectelor prozodice. În<br />

această fază a proiectării au fost determinate aspectele prozodice intrasegmentale, şi anume accentele din interiorul cuvintelor. La fel<br />

ca în cazul silabelor, şi aici a fost necesară proiectarea unui analizor şi a unui set de reguli lexicale pentru determinarea accentelor.<br />

4.1.5.1. Analizorul lexical utilizat în determinarea accentelor<br />

Schema de principiu a analizorului lexical folosit pentru determinarea accentelor este ilustrată în figura 4.5.<br />

Analizor<br />

sintactic<br />

F 1 F 2 ... F n S<br />

CUVÂNT<br />

Reguli<br />

lexicale<br />

Analizor<br />

lexical<br />

Figura 4.5. Analizorul lexical pentru determinarea accentelor<br />

Setul de reguli pentru determinarea accentelor se constituie din :<br />

(a) o regulă de bază, şi anume aceea că penultima silabă SN_1 este cea accentuată (regula generală pentru limba română);<br />

(b) un set de excepţii organizat pe grupuri de cuvinte ce au aceeaşi terminaţie.<br />

Fiecare regulă din set returnează modulului de procesare indicele silabei accentuate din cuvânt.<br />

Analizorul lexical pentru determinarea accentelor a fost proiectat tot pe baza facilităţilor oferite de către generatorul automat<br />

LEX. Astfel regulile analizorului sunt furnizate generatorului LEX în format BNF (vezi [Fre05]), stream-ul de intrare fiind chiar cuvântul<br />

curent extras din text de către analizorul sintactic.<br />

4.1.6. Proiectarea bazei de date vocale<br />

Găsirea unor modalităţi de proiectare a bazelor de date vocale optime pentru sinteza de voce reprezintă un subiect de<br />

cercetare important pentru specialiştii din domeniu. O bază de date vocală bine proiectată are un impact de prim ordin asupra calităţii<br />

vocii sintetizate, indiferent de tipul unităţilor fonetice folosite ([Bod07-2], [Tod09]).<br />

Dacă la metodele bazate pe corpus baza de date este de dimensiuni mari, cuprinzând zeci de minute de vorbire înregistrată,<br />

din care vor fi segmentate unităţile fonetice, în cazul metodelor bazate pe silabe baza de date cuprinde un număr mai redus de unităţi,<br />

în funcţie de gradul de completitudine ales.<br />

Baza de date utilizată în cadrul metodei de sinteză propusă de autor cuprinde un subset al silabelor limbii române. După<br />

înregistrare, silabele trebuie să urmeze un proces de normalizare pentru alinierea parametrilor de tonalitate şi intensitate a rostirii.<br />

Silabele vor trebui să fie înregistrate în diferite contexte şi moduri de pronunţie, astfel încât să includă şi prozodia aferentă textului care<br />

va fi sintetizat.<br />

Baza de date vocală conţine silabe compuse din două, trei sau patru litere, notate cu S2, S3, respectiv S4.<br />

Silabele de tip S2, adică silabele compuse din două foneme sunt în general de forma:<br />

- {CV} (C=consoană, V=vocală), cum sunt de exemplu: ‚ba’, ‚be’, ‚co’, ‚cu’,<br />

- {VC}, cum ar fi ‚ar’, ‚es’ etc., adică cele care apar de obicei la începutul unor cuvinte în limba română,<br />

- {VV}, structura de tip diftong: ‘oa’, ‘iu’, ‘ie’.<br />

Silabele de tip S3, compuse din trei foneme, pot fi de tipul:<br />

- {CCV} , de exemplu: ‚bra’, ‚cre’, ‚tri’, ‚ghe’;<br />

- {CVC} , cum ar fi: ‚mar’, ‚ver’,<br />

- {CVV} , de exemplu: ‚cea’, ‚cei’, ‚soa’.<br />

Silabele de tip S4, compuse din patru foneme, pot fi de mai multe tipuri, ca de exemplu:<br />

- {CCVC} , de exemplu: ‚braţ’, ‚prin’, ‚ghem’;<br />

- {CCCV} , de exemplu: ‚stră’,<br />

- {CCVV} , de exemplu: ‚prea’, etc.<br />

În baza de date nu au fost înregistrate toate silabele limbii române. Conform cu [Din04], se menţionează că numărul total al<br />

silabelor limbii române (număr rezultat din despărţirea în silabe a tuturor cuvintelor existente în dicţionar) este de 6496. Aşa cum se va<br />

prezenta în capitolul destinat implementării sistemului de sinteză vocală, în baza de date au fost înregistrate (în diferite contexte şi<br />

moduri de pronunţie) doar aproximativ 600 de silabe.<br />

Strategia urmărită a fost de a înregistra în fiecare categorie S2, S3 şi S4 un număr cât mai mare de silabe, în ordinea<br />

frecvenţei de apariţie în limba română. Pentru aceasta, dat fiind faptul că a fost proiectată o metodă automată de despărţire a<br />

cuvintelor în silabe, s-a avut în vedere realizarea unei statistici a silabelor limbii române în scopul utilizării ei în procesul de construire a<br />

setului de silabe de referinţă şi a bazei de date acustice.<br />

4.1.6.1. O statistică a silabelor limbii române<br />

ACCENTE<br />

SN_3<br />

SN_2<br />

SN_1<br />

SN<br />

Statistica urmăreşte detectarea frecvenţelor de apariţie ale silabelor din limba română, fiind realizată pe baza unor texte<br />

extrase din mai multe domenii precum: beletristică de diverse genuri, religie, economie, politică, ştiinţă şi tehnică, ziaristică. Textele au<br />

însumat un număr de aproximativ 342000 de cuvinte, adică peste 600 de pagini în format A4. Au fost contabilizate doar silabele de tip<br />

S2, S3 şi S4, adică având două, trei sau patru foneme componente.<br />

22<br />

Parserul de text sau analizorul sintactic<br />

returnează cuvântul curent din stream-ul de intrare, cuvânt<br />

alcătuit dintr-o serie de foneme F1, F2, …, Fk şi terminat cu<br />

un separator S. Cuvântul este introdus la intrarea<br />

analizorului lexical care, pe baza unor reguli lexicale, va<br />

determina silaba accentuată din cuvânt.<br />

În limba română, silaba accentuată poate fi una<br />

din ultimele trei silabe ale cuvântului ( SN = ultima silabă,<br />

SN_1 = penultima silabă, respectiv SN_2, SN_3 = silabele<br />

anterioare).


S-au obţinut următoarele valori:<br />

- pentru tipul S2 : 202 silabe distincte,<br />

- pentru tipul S3 : 1432 silabe distincte,<br />

- pentru tipul S4 : 1180 silabe distincte, în total 2814 silabe.<br />

Această statistică reflectă şi faptul că limba vorbită foloseşte mai puţine cuvinte decât cele existente în dicţionar, şi implicit<br />

mai puţine silabe. În figurile următoare sunt prezentate, pentru fiecare tip S2, S3 şi S4, primele 10 silabe în ordinea frecvenţei de<br />

apariţie (dată în procente).<br />

6<br />

5<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

de te în re le ca şi se ce ta<br />

Figura 4.6. Primele 10 cele mai frecvente<br />

silabe de tip S2<br />

3<br />

2.5<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

lor lui rea con mai tre din tru tul pre<br />

Figura 4.7. Primele 10 cele mai frecvente<br />

silabe de tip S3<br />

23<br />

4<br />

3<br />

2<br />

1<br />

0<br />

prin sunt când ceas fost nici foar mult timp meni<br />

Figura 4.8. Primele 10 cele mai frecvente<br />

silabe de tip S4<br />

După obţinerea celor trei seturi de silabe S2, S3 şi S4, s-a putut trece la construirea bazei de date acustice care să conţină<br />

silabele cel mai frecvent întâlnite în limba română vorbită.<br />

4.1.6.2. Caracteristicile silabelor înregistrate în baza de date acustică<br />

În realizarea bazei de date cu silabe s-a ţinut cont de integrarea prozodiei locale sub-segmentale, din interiorul cuvintelor.<br />

Astfel, prozodia a fost inclusă prin înregistrarea silabelor accentuate şi neaccentuate, pentru fiecare categorie S2, S3 şi S4. De<br />

asemeni, ţinând cont că o silabă se rosteşte distinct în funcţie de locul pe care aceasta îl ocupă în cadrul cuvântului, dacă este situată<br />

la începutul, mijlocul sau sfârşitul unui cuvânt, s-a urmărit înregistrarea silabelor în aceste diferite contexte în care ele pot să apară. În<br />

primă instanţă s-a făcut diferenţierea între silabe finale, pe de o parte, şi silabe mediane şi iniţiale (integrate tot în categoria de silabe<br />

mediane), pe de altă parte.<br />

4.1.6.3. Organizarea bazei de date acustice<br />

Silabele au fost introduse în baza de date respectând caracteristicile prezentate mai sus. Organizarea bazei de date este sub<br />

formă arborescentă (figura 4.9). Nodurile arborelui reprezintă caracteristicile silabelor, iar nodurile frunză corespund silabelor propriuzise.<br />

Structura ierarhică a bazei de date cuprinde patru nivele:<br />

Figura 4.9. Organizarea arborescentă a bazei de date vocale<br />

Pe lângă silabele din categoriile amintite S2, S3 şi S4, s-au înregistrat şi fonemele singulare, în scopul utilizării acestora în construirea<br />

silabelor care nu se regăsesc în baza de date vocală.<br />

4.1.7. Regăsirea unităţilor acustice şi sinteza de voce<br />

În această etapă se urmăreşte mai întâi regăsirea unităţilor acustice din baza de date necesare pentru sinteză. Aceasta se<br />

realizează pe baza unităţilor lingvistice (silabele) determinate prin analiza textului de la intrare. Se va ţine seama şi de caracteristicile<br />

silabelor, care au fost prezentate în paragrafele 4.1.6.2 şi 4.1.6.3. În continuare, se notează aceste caracteristici astfel:<br />

- categoria silabică : SN , unde N indică lungimea silabei (numărul de foneme);<br />

- contextul silabei : printr-un indice (M pentru median şi F pentru final)asociat silabei respective. De exemplu :<br />

maM , reM - silabe în context median ;<br />

maF , reF - silabe în context final;<br />

- accentuarea: printr-un indice superior (A pentru silabă accentuată şi N pentru silabă neaccentuată) care se ataşează silabei<br />

respective. De exemplu :<br />

ma A , re A - silabe accentuate ;<br />

ma N , re N - silabe neaccentuate.<br />

Pot exista următoarele situaţii:<br />

1. Nivelul Categorie : Silabe de două, trei sau<br />

patru foneme (S2, S3, S4);<br />

2. Nivelul Context : Segment median (Med) sau<br />

final ( Fin), relativ la poziţia din cadrul<br />

cuvântului;<br />

3. Nivelul Accent : Silabe accentuate ( A) sau<br />

neaccentuate (N) în interiorul cuvântului;<br />

4. Nivelul Silabă : Unităţile acustice înre-gistrate<br />

în format WAVE.<br />

Această structură ierarhică: [Categorie]-><br />

[Context] -> [Accent] -> [Silabǎ] conferă şi<br />

avantajul reducerii substanţiale a timpului de<br />

căutare în baza de date, în faza de potrivire a<br />

unităţilor fonetice din text cu unităţile acustice<br />

înregistrate.


a) Silaba dorită este regăsită identic în baza de date vocală, din punct de vedere fonetic (al fonemelor componente), din<br />

punct de vedere contextual (median sau final) şi din punct de vedere prozodic (al accentuării). În acest caz silaba se reţine ca atare<br />

pentru a fi înglobată în cuvântul de sintetizat.<br />

b) Silaba este regăsită fonetic, dar nu prozodic sau contextual. Se preferă, în acest caz, construirea acesteia din subunităţi<br />

(foneme separate şi silabe mai scurte) care să respecte în primul rând prozodia cerută (silabă accentuată sau neaccentuată), şi apoi,<br />

dacă este posibil, contextul specificat.<br />

c) Silaba nu este regăsită fonetic în baza de date. Şi în acest caz silaba va fi compusă pe baza subunităţilor componente,<br />

găsite în baza de date.<br />

Astfel, căutarea în baza de date se face după lungimea silabei, contextul median sau final şi accentuare.<br />

Algoritmul verifică la pasul întâi dacă silaba este alcătuită dintr-o singură fonemă; în caz afirmativ, silaba există în baza de<br />

date şi se extrage în stream-ul acustic de ieşire, unde se va concatena cu silabele găsite anterior.<br />

În pasul doi, se caută silaba în baza de date, ţinând cont de lungime, context şi accentuare. Dacă este găsită, atunci se<br />

returnează în stream-ul de ieşire pentru concatenare.<br />

În pasul al treilea se ajunge dacă silaba nu e regăsită în contextul sau accentuarea dorite. Se calculează setul de diviziune al<br />

silabei curente astfel: se divide silaba într-o succesiune de segmente alcătuite din fonemele sale, astfel încât să existe cel puţin un<br />

segment de lungime mai mică cu o unitate decât lungimea silabei. De exemplu, silaba cráp se divide în cM + ráp A F sau crá A M + pF .<br />

În pasul patru, dacă în setul de diviziune obţinut la pasul anterior există segmente în context final, se duplică segmentele<br />

respective şi în context median. Urmând exemplul din paragraful precedent, silaba ráp A F se duplică în contextul complementar, în<br />

setul iniţial adăugându-se astfel silaba ráp A M . Acest pas al algoritmului indică folosirea unei silabe mediane în locul uneia finale,<br />

evitând fragmentarea acesteia din urmă în silabe de rang inferior. Situaţia inversă (înlocuirea unei silabe mediane printr -o silabă<br />

finală), de cele mai multe ori, nu produce rezultate bune în percepţia auditivă a semnalului sintetizat.<br />

În pasul al cincilea se aplică recursiv algoritmul pentru fiecare segment din setul de diviziune al silabei iniţiale. Exemplul<br />

următor ilustrează construirea seturilor de diviziune pentru cuvântul monosilabic cráp.<br />

SplitSet2(2)<br />

cráp A F<br />

SplitSet1(3)<br />

crá A M + p<br />

c + ráp A F<br />

c + ráp A M<br />

crM + áp A F<br />

crM + áp A M<br />

crM + á A M + p<br />

c + rá A M + p<br />

c + r + áp A F<br />

c + r + áp A M<br />

Figura 4.10. Construirea seturilor de diviziune pentru silaba cráp<br />

Unităţile acustice găsite în baza vocală prin algoritmul expus mai sus se vor concatena pentru a genera semnalul de ieşire.<br />

Concatenarea va ţine cont de pauza dintre cuvinte, care se va ajusta în funcţie de ritmul cerut vorbirii. Ultima fază este cea de sinteză<br />

propriu-zisă, în care formele de undă corespunzătoare textului de la intrare vor fi redate sonor prin intermediul plăcii audio a<br />

calculatorului.<br />

4.1.8. Rezultate obţinute cu metoda de sinteză dezvoltată de autor<br />

a) Analizorul automat de sintaxă realizat în cadrul metodei se bazează pe un dicţionar ce conţine peste 30000 de forme<br />

neflexionate ale limbii române şi pe un set de 550 de reguli de flexionare. Analizorul a fost testat pe o serie de texte în limba română<br />

de diferite genuri, de la literatură la documente tehnice, însumând peste 200000 de cuvinte. Testele au dovedit o corectitudine de<br />

peste 98% cuvinte recunoscute corect, cuvintele nerecunoscute constituind excepţii care nu au fost încă introduse în setul de reguli.<br />

Aceste rezultate arată completitudinea setului de reguli proiectat, precum şi viabilitatea metodei propuse.<br />

b) Analizorul lexical pentru determinarea silabelor cuprinde un set de peste 180 de reguli pentru descompunerea cuvintelor<br />

în silabe. Performanţa obţinută a fost de 98% cuvinte despărţite corect, rată calculată pe un set de 50000 de cuvinte extrase din texte<br />

de diferite genuri (literatură, economie, politică, ştiinţă şi tehnică, filozofie, religie). Performanţa este mai bună decât cea găsită la alţi<br />

cercetători români care au folosit reguli lexicale ([Tom09] – 90%).<br />

c) Analizorul lexical pentru determinarea accentelor cuprinde un set de 250 de reguli pentru detectarea silabei accentuate din<br />

interiorul cuvintelor. S-a obţinut o rată de detectare corectă a silabei acentuate de 94%, rată calculată pe acelaşi set de 50000 de<br />

cuvinte ca şi în cazul despărţirii în silabe.<br />

d) În faza de sinteză a vorbirii, metoda generează rezultate bune, datorită utilizării unităţilor acustice de lungime medie şi<br />

mare, de tipul silabelor. Concatenarea directă a unităţilor, fără o altă procesare a semnalului, face ca vorbirea sintetizată să păstreze<br />

naturaleţea şi aspectele prozodice caracteristice vocii cu care s-au înregistrat unităţile acustice.<br />

4.1.9. Avantajele metodei de sinteză a vorbirii pe bază de silabe dezvoltată de autor<br />

Metoda de sinteză bazată pe concatenarea silabelor prezentată în acest capitol are următoarele avantaje:<br />

a) Prezintă o abordare unitară în toate fazele de proiectare, fiind bazată pe reguli în cele mai importante etape ale sale.<br />

b) Foloseşte reguli organizate într-o gramatică de tip LEX, rezultând astfel separarea modulului de analiză lingvistică faţă de<br />

fluxul de prelucrare a datelor.<br />

24<br />

SplitSet3(1)<br />

c + r + á A M + p


c) Asigură o capacitate mărită de extensibilitate şi adaptabilitate datorită faptului că regulile sunt accesibile şi se pot edita de<br />

către utilizator.<br />

d) Asigură reducerea semnificativă a costului şi timpului alocat procesului de proiectare, datorită utilizării regulilor (cel mult de<br />

ordinul sutelor), faţă de metodele ce utilizează dicţionare sau lexicoane (conţinând definiţii de ordinul zecilor sau sutelor de mii).<br />

e) Prezintă un grad mai mare de versatilitate, datorită utilizării gramaticilor regulate specifice LEX, faţă de alte metode ce<br />

folosesc reprezentări interne ale regulilor sau chiar formatul XML. Utilizarea seturilor bazate pe expresii regulate permite specificarea<br />

de tipare pentru unităţile lingvistice şi contextele în care ele apar, rezultând astfel şi un grad mai mare de corectitudine în analiza finală<br />

a textului.<br />

f) Necesită un efort mai mic de construire şi întreţinere a bazei de date vocale decât în cazul metodei bazate pe corpus.<br />

Astfel, în cazul metodei bazate pe silabe, numărul unităţilor acustice este cu cel puţin două ordine de mărime mai mic decât în cazul<br />

metodei bazate pe corpus.<br />

g) Păstrează eficienţa şi calitatea metodelor de sinteză prin concatenare, în raport cu metodele parametrice de sinteză.<br />

Astfel, în cazul concatenării, semnalul sintetizat păstrează calitatea unităţilor înregistrate în baza de date vocală, pe când în cazul<br />

metodele parametrice, semnalul de ieşire este aproximat.<br />

h) Prezintă o calitate mai înaltă a sintezei faţă de metodele bazate pe foneme sau difoneme, din cauza unui număr mai redus<br />

de puncte de concatenare, la nivelul silabei.<br />

5. Realizarea sistemului de sinteză de voce în limba română LIGHTVOX<br />

Ca şi contribuţie în domeniul proiectării şi realizării unui sistem interactiv vocal, autorul a urmărit proiectarea şi implementarea<br />

unui sistem de sinteză vocală adaptat special limbii române, ce foloseşte ca şi unităţi fonetice silabele, numit LIGHTVOX. Sistemul a<br />

fost conceput ca un sistem text-to-speech, în care sinteza vorbirii se realizează pornind de la un text în limba română, utilizând metoda<br />

de sinteză bazată pe silabe prezentată în capitolul precedent.<br />

5.1. Structura funcţională a sistemului<br />

Sistemul este prezentat în detaliu în figura 5.1, pe blocuri funcţionale. Se observă structura completă de tip text-to-speech în<br />

care se porneşte de la un text şi se realizează sinteza completă a vorbirii, LIGHTVOX fiind astfel un sistem de sinteză de nivel înalt.<br />

Din punct de vedere al tipului de abordare, este un sistem de sinteză în domeniul timp, folosind concatenarea directă a unităţilor<br />

acustice neparametrizate. Din punct de vedere al clasificării metodelor de sinteză text-to-speech, metoda folosită este mixtă, îmbinând<br />

caracteristici ale abordării bazate pe concatenarea formelor de undă şi ale abordării bazate pe reguli.<br />

Aşa cum se observă din figura 5.1, sistemul efectuează mai întâi o preprocesare şi o analiză sintactică a textului iniţial pentru<br />

a-l aduce la o formă ortografică corectă. Apoi are loc determinarea unităţilor lingvistice de bază (în cazul de faţă silabele) şi a<br />

informaţiilor prozodice segmentale (accentul cuvintelor). Pe baza acestor elemente sunt regăsite unităţile acustice din baza de date<br />

vocală care corespund cel mai bine unităţilor lingvistice detectate. Segmentele acustice sunt concatenate şi apoi are loc sinteza<br />

propriu-zisă a vorbirii.<br />

Tot în figura 5.1 se prezintă şi etapele fazei de construcţie a bazei de date vocale. Astfel, semnalul vocal este mai întâi<br />

normalizat şi descompus în secvenţe de regiuni cu proprietăţi distincte. Secvenţele de regiuni sunt puse în corespondenţă cu<br />

fonemele limbii române, urmând apoi extragerea din semnalul vocal a grupurilor de foneme care alcătuiesc unităţile acustice, în cadrul<br />

unui proces semiautomat. Unităţile acustice se memorează în final în structura ierarhică a bazei de date.<br />

Figura 5.1. Sistemul de sinteză a vocii în limba română LIGHTVOX<br />

25


5.2. Metodologia de proiectare a sistemului de sinteză LIGHTVOX<br />

Realizarea sistemului LIGHTVOX a urmărit două direcţii de lucru:<br />

1. Construirea bazei de date acustice (proces off-line), incluzând următoarele etape: înregistrarea eşantioanelor de voce,<br />

normalizarea semnalului, segmentarea semnalului în regiuni, segmentarea fonematică, separarea unităţilor acustice şi construirea<br />

efectivă a bazei de date;<br />

2. Conversia text-voce (proces on-line), cuprinzând etapele: preprocesarea textului, corectarea ortografică, detecţia unităţilor<br />

lingvistice, determinarea prozodiei locale, regăsirea unităţilor acustice, îmbinarea unităţilor şi sinteza de voce.<br />

5.2.1. Construirea bazei de date acustice<br />

Prima fază abordată în realizarea sistemului de sinteză de voce LIGHTVOX a fost construirea bazei de date acustice. În<br />

funcţie de metoda abordată, baza de date acustică poate cuprinde fie formele de undă (codificate sau nu), fie secvenţele parametrice<br />

corespunzând unităţilor fonetice. În cazul sistemului LIGHTVOX, baza de date cuprinde formele de undă asociate silabelor limbii<br />

române.<br />

Etapele procesului de realizare a bazei de date vocale au fost următoarele :<br />

1) crearea listei de silabe ;<br />

2) crearea listei de cuvinte care să conţină silabele dorite ;<br />

3) înregistrarea digitală a rostirii ;<br />

4) normalizarea înregistrării ;<br />

5) crearea corpusului paralel text-voce;<br />

6) segmentarea semnalului vocal în regiuni fonematice ;<br />

7) detecţia şi separarea silabelor din semnal;<br />

8) salvarea unităţilor acustice în baza de date.<br />

1) Crearea listei de silabe<br />

Structura bazei de date acustice a fost prezentată în secţiunea 4.1.6.<br />

Astfel, s-a stabilit ca baza de date să cuprindă silabe alcătuite din două, trei sau patru foneme (notate cu S2, S3, S4), dar şi<br />

foneme singulare (S1). S-a urmărit includerea în fiecare categorie S2, S3 şi S4 a unui număr cât mai mare de silabe în ordinea<br />

frecvenţei de apariţie în limba română, realizându-se în acest scop o statistică a silabelor (vezi paragraful 4.1.6.1).<br />

Pentru a alcătui lista iniţială de silabe, s-a pornit de la mulţimea fonemelor limbii române. S-au luat în considerare în total 27<br />

de foneme :<br />

F = [aăbcdefghiîjklmnoprsştţuvxz]<br />

Mulţimea F nu cuprinde fonemele /q/, /w/, /y/, acestea fiind înlocuite prin fonemele /c/, /v/, /i/.<br />

F este alcătuită din reuniunea a două submulţimi C şi V :<br />

C = [bcdfghjklmnprsştţvxz] - submulţimea consoanelor (card C = 20)<br />

V = [aăeiîou] - submulţimea vocalelor (card V = 7)<br />

Pentru silabele din categoria S2, avem următoarele configuraţii posibile:<br />

a) [CV] ; b) [VV] ; c) [VC] ,<br />

unde C reprezintă o consoană, iar V – o vocală.<br />

a) Pentru silabele de tipul [CV] s-au generat toate combinaţiile de două elemente care rezultă din compunerea mulţimilor C şi V :<br />

L1 = { [ba] [ca] [da] ..... [za] , [bă] [că] [dă] ..... [ză] , ... , [bu] [cu] [du] ..... [zu] }<br />

Din această listă s-au eliminat combinaţiile care nu există în limba română, precum: [kă], [kî], etc.<br />

b) Pentru silabele de tipul [VV] şi [VC] s-a parcurs tabelul silabelor S2 (generat pe baza statisticii de la 4.1.6.1), preluându-se<br />

toate configuraţiile de această formă. S-au obţinut listele:<br />

L2 = { [ai] [au] ..... [ua] [ui] }<br />

L3 = { [ab] [ac] ..... [uz] }<br />

Lista completă pentru categoria S2 este LS2 = L1 U L2 U L3 .<br />

Pentru categoriile silabice S3 şi S4, listele LS3 şi LS4 s-au obţinut pe baza tabelelor generate statistic. Din considerente ce<br />

au ţinut de condiţiile existente pentru înregistrarea audio, aceste liste au fost reduse la câteva zeci de elemente (a se vedea tabelul<br />

5.1, ce prezintă unităţile acustice stocate în baza de date).<br />

În lista LS1 (adică fonemele singulare) au fost incluse toate fonemele din mulţimea F.<br />

2) Crearea corpusului de cuvinte<br />

Odată obţinute listele cu silabe (LS1 … LS4), s-a trecut la construirea corpusului de cuvinte, în vederea înregistrării şi apoi a<br />

separării unităţilor acustice.<br />

Pentru a se genera o vorbire sintetică de calitate, s-a avut în vedere ca silabele înregistrate să includă şi anumite elemente<br />

de prozodie. În primul rând, silabele trebuiau să respecte accentuaţia din interiorul cuvintelor. Ca urmare, au fost luate în considerare<br />

atât silabele accentuate (ACC), cât şi cele neaccentuate (NA), pentru fiecare categorie S2, S3 şi S4.<br />

De asemeni, ţinând cont că o silabă se rosteşte distinct în funcţie de locul pe care aceasta îl ocupă în cadrul cuvântului, dacă<br />

este situată la începutul, mijlocul sau sfârşitul unui cuvânt, s-a urmărit introducerea în listă a silabelor în diferitele contexte în care ele pot<br />

să apară. Astfel, s-a făcut diferenţierea între silabe finale (FIN), pe de o parte, şi silabe iniţiale şi mediane (MED), pe de altă parte.<br />

Corpusul de cuvinte folosit pentru extragerea unităţilor acustice a fost alcătuit atât din propoziţii şi cuvinte normale care<br />

conţineau silabele dorite, precum şi din cuvinte artificiale folosite pentru a evidenţia mai bine un anumit grup de foneme.<br />

Generarea seturilor de cuvinte a ţinut cont de tipul silabelor: accentuate (ACC), respectiv neaccentuate (NA), cât şi de<br />

contextul acestora: silabe mediane (MED) sau finale (FIN). Cuvintele artificiale includ silabele în contextele necesare, folosinduse<br />

silabe auxiliare predefinite (de exemplu silaba /ta/).<br />

26


3) Înregistrarea digitală a rostirii<br />

După constituirea seturilor de cuvinte, s-a trecut la rostirea efectivă a acestora, în scopul înregistrării corpusului vocal. A fost<br />

ales un vorbitor masculin, urmărindu-se rostirea corpusul textual într-un ritm constant, cu o aceeaşi tonalitate a vocii.<br />

Construirea bazei de date a început efectiv odată cu procesul de înregistrare a rostirii vorbitorului uman, rostire care a inclus<br />

unităţile fonetice silabice în diferite contexte şi moduri de pronunţie. După cum am văzut, în baza de date nu au fost înregistrate toate<br />

silabele limbii române, ci doar un subset al acestora, silabele care n-au fost incluse fiind apoi generate pe baza celor existente.<br />

Procesul de înregistrare a semnalului vocal a presupus folosirea unei aparaturi speciale constituită dintr-un microfon, o placă<br />

digitizoare de semnal acustic, şi un program software specializat pentru lucrul cu fişiere audio. Autorul a folosit un microfon dinamic<br />

semiprofesional, o placă audio Creative SoundBlaster şi programul de digitizare audio Cool Edit Pro v2.0.<br />

Parametrii de înregistrare au fost următorii: înregistrare de tip uni-canal, frecvenţa de eşantionare: 16 kHz, dimensiunea<br />

eşantioanelor: 16 biţi, codificare: PCM, formatul fişierului audio: WAVE.<br />

4) Normalizarea înregistrării<br />

În urma înregistrării, eşantioanele audio au urmat o fază de normalizare, adică de aducere a lor la o formă unitară în tot<br />

cuprinsul bazei vocale. Normalizarea presupune prelucrarea digitală a semnalului vocal înregistrat, proces care poate fi făcut manual<br />

sau semiautomat, prin intermediul unui program software specializat, sau automat, în cazul în care se proiectează algoritmi speciali de<br />

normalizare. Autorul a folosit o procedură semiautomată, disponibilă prin intermediul aplicaţiei Cool Edit Pro v2.0.<br />

În urma normalizării, corpusul vocal conţine toate înregistrările de aceeaşi amplitudine (rostirile prezentând aceeaşi tărie<br />

sonoră), precum şi frecvenţă fundamentală constantă (corespunzând unor rostiri de aceeaşi tonalitate, acelaşi ritm şi intonaţie<br />

constantă). În primul rând, aceste cerinţe legate de amplitudine şi frecvenţă fundamentală se referă la segmentele vocale care<br />

prezintă aceste caracteristici, cu alte cuvinte la segmentele corespunzătoare vocalelor fonetice.<br />

5) Crearea corpusului paralel text-voce<br />

În vederea prelucrării semnalului şi descompunerii acestuia în unităţi acustice, înregistrările au fost salvate în fişiere audio în<br />

format WAVE. Fiecare fişier audio conţine una sau mai multe secvenţe de cuvinte din corpusul vorbit, depinzând de capacitatea<br />

vorbitorului de a păstra un ritm şi o tonalitate constante pe parcursul înregistrării.<br />

Pentru a realiza segmentarea automată a semnalului în regiuni fonematice a fost necesară utilizarea a două corpusuri în<br />

paralel, şi anume: corpusul vorbit, înregistrat în fişiere audio, şi respectiv corpusul textual corespondent. Astfel, odată cu salvarea<br />

fiecărui fişier audio, a fost stocat şi fişierul text asociat conţinutului său.<br />

6) Segmentarea semnalului vocal în regiuni fonematice<br />

Această etapă urmăreşte descompunerea semnalului vocal în regiuni corespunzătoare secvenţelor fonematice (şiruri de<br />

foneme). Această operaţie va duce în final la separarea unităţilor silabice din semnalul vocal înregistrat.<br />

Paşii care au fost realizaţi sunt ilustraţi în figura 5.2.<br />

ANALIZA<br />

SEMNALULUI<br />

VOCAL<br />

Parametri<br />

de semnal<br />

SEGMENTARE<br />

S/U/V<br />

Regiuni de<br />

semnal<br />

COMPACTARE<br />

REGIUNI<br />

Regiuni<br />

compacte<br />

Figura 5.2. Paşii realizaţi pentru segmentarea semnalului în regiuni fonematice<br />

a) Analiza semnalului vocal presupune determinarea parametrilor semnalului utili în faza de segmentare. Conform<br />

paragrafului 3.2.1 (analiza în domeniul timp a semnalului vocal), au fost determinaţi următorii parametri: amplitudinea semnalului,<br />

energia şi numărul de treceri prin zero. De asemeni, a fost calculată frecvenţa fundamentală a semnalului.<br />

b) Segmentarea S/U/V, descrisă în paragraful 3.4.1, are ca scop detectarea categoriilor fundamentale de semnal: linişte<br />

(Silence), sonor (Voiced), nesonor (Unvoiced), la care se adaugă şi categoria tranziţie.<br />

c) Compactarea regiunilor (vezi paragraful 3.4.2) urmăreşte asocierea regiunilor vecine de dimensiuni mici, având ca rezultat<br />

scăderea numărului total de regiuni, cu efect pozitiv asupra timpului de procesare.<br />

d) Clasificarea regiunilor (proces prezentat în capitolul 3.4) împarte cele patru categorii de semnal de la punctul b) în 10 clase<br />

distincte, clase care pot fi asociate cu reprezentarea sonoră a fonemelor limbii române.<br />

e) Segmentarea fonematică ( capitolul 3.7) asociază simbolurile fonetice cu regiunile din semnal. Pentru aceasta, se<br />

foloseşte corpusul paralel text-voce de la punctul 5). Pe baza unor reguli speciale de asociere, se face o corespondenţă între grupurile<br />

fonetice prezente la intrarea de text cu secvenţele de regiuni detectate din semnalul vocal.<br />

7) Detecţia şi separarea silabelor din semnal<br />

După punerea în corespondenţă a secvenţelor fonematice cu regiunile din semnal, urmează faza de separare a silabelor utile<br />

din corpusul vocal. Pentru aceasta, s-a folosit o procedură semiautomată care selectează secvenţele dorite prin deplasarea capetelor<br />

intervalului de selecţie pe graniţele regiunilor fonematice. Regiunea selectată poate fi ajustată prin deplasarea manuală a marginilor ce<br />

au fost detectate în mod automat. Apoi regiunea corespunzătoare silabei dorite se salvează într-un fişier al bazei de date.<br />

T A T I T A T A D E T A<br />

Figura 5.3. Detecţia şi separarea silabelor din semnal<br />

27<br />

CLASIFICARE<br />

REGIUNI<br />

Clase de<br />

regiuni<br />

SEGMENTARE<br />

FONEMATICǍ<br />

Regiuni<br />

fonematice


8) Salvarea unităţilor acustice în baza de date<br />

După detecţia silabelor dorite din semnalul vocal, acestea se salvează ca fişiere distincte în structura ierarhică a bazei de<br />

date. Aşa cum s-a prezentat în secţiunea 4.1.6.3, baza de date vocală este organizată în funcţie de parametrii unităţilor acustice,<br />

astfel:<br />

a) după lungimea unităţilor: silabe alcătuite din două, trei sau patru litere, precum şi foneme singulare ;<br />

b) după poziţia silabei în interiorul cuvântului: silabe iniţiale/mediane sau finale ;<br />

c) după accentuare: silabe accentuate sau neaccentuate.<br />

Ca urmare, baza de date vocală prezintă o structură arborescentă, în care unităţile acustice sunt stocate sub formă de<br />

fişiere.<br />

Pentru a implementa criteriul a), au fost create directoarele: S1, S2, S3 şi S4, în fiecare director fiind memorate doar unităţi<br />

de lungime corespunzătoare.<br />

Pentru a implementa criteriul b), în fiecare director a fost creat un subdirector Final, în care au fost memorate unităţile de tip<br />

silabă finală, în timp ce silabele acustice iniţiale/mediane au fost salvate în directorul părinte.<br />

Criteriul c) a fost rezolvat prin utilizarea unor convenţii de notaţie a numelui fişierelor; astfel silabele accentuate prezintă<br />

sufixul ‘_’ în numele fişierelor ce le conţine. De exemplu, pentru silaba neaccentuată sa avem fişierul sa.wav, iar pentru silaba<br />

accentuată sá a fost înregistrat fişierul sa_.wav.<br />

În final, în baza de date au fost stocate aproximativ 600 de unităţi acustice, foneme şi silabe, considerând atât silabele de<br />

segment median şi final, cât şi silabele accentuate şi neaccentuate (tabelul 5.1).<br />

Tabelul 5.1. Unităţile acustice înregistrate în baza de date<br />

Silabe Segment median Segment final Total<br />

S2 (două foneme) 283 103 386<br />

S3 (trei foneme) 84 55 139<br />

S4 (patru foneme) 10 27 37<br />

S1 (foneme singulare) 31 5 36<br />

5.2.2. Conversia text-voce<br />

Conversia text-voce reprezintă a doua fază, ce decurge on-line, în funcţionarea sistemului LIGHTVOX şi cuprinde toate<br />

etapele ce trebuie parcurse pentru ca dintr-un text iniţial să se genereze vorbirea sintetică asociată.<br />

Etapele componente ale acestei faze sunt următoarele: preprocesarea textului, corectarea ortografică, detecţia unităţilor<br />

lingvistice, determinarea prozodiei locale, regăsirea unităţilor acustice, îmbinarea unităţilor şi sinteza de voce. Toate aceste etape au<br />

fost descrise pe larg în cadrul prezentării metodei de sinteză bazată pe silabe din secţiunea 4.1.<br />

5.3. Rezultate experimentale şi dezvoltări de viitor<br />

În cadrul Facultăţii de Electronică, Telecomunicaţii şi Tehnologia Informaţiei din Cluj-Napoca, autorul a realizat un prototip al<br />

sistemului de sinteză vocală LIGHTVOX. Implementarea prototipului s-a făcut baza unei structuri cu cinci componente: modulul de<br />

analiză lingvistică, modulul de analiză prozodică, modulul de gestiune a bazei de date vocale, modulul de potrivire a unităţilor fonetice<br />

şi modulul de sinteză propriu-zisă a rostirii. Etapele realizării sistemului au fost prezentate în secţiunea 5.2.<br />

Mai întâi a fost construită baza de date acustică necesară pentru sinteză. În baza de date au fost înregistrate aproximativ<br />

600 de unităţi acustice, foneme şi silabe, considerând atât silabele de segment median şi final, cât şi silabele accentuate şi<br />

neaccentuate: 386 de silabe alcătuite din două foneme, 139 de silabe tri-fonematice, 37 de silabe tetra-fonematice şi 36 de foneme<br />

singulare.<br />

Pentru conversia text-voce a fost realizată o interfaţă grafică prin care utilizatorul poate încărca un document text în fereastra<br />

aplicaţiei, pe care apoi îl poate audia prin intermediul vocii generate de sintetizator.<br />

1 2 3 4<br />

Figura 5.4. Interfaţa aplicaţiei LIGHTVOX<br />

28<br />

În privinţa rezultatelor experimentale, s-a constatat<br />

o audiţie fluentă, naturală, a textului sintetizat, care<br />

respectă prozodia segmentală (accentuarea cuvintelor)<br />

din limba română.<br />

Sistemul se poate utiliza direct de către persoane<br />

cu disabilităţi vizuale sau nevăzători pentru citirea<br />

automată a textelor, prin utilizarea de comenzi simple de<br />

la tastatură.<br />

Extinderea sistemului se poate face uşor şi pentru<br />

alte aplicaţii pentru nevăzători, precum: scrierea de texte<br />

asistată vocal de către calculator, aplicaţii de poştă<br />

electronică, citirea paginilor Web, aplicaţii de tip<br />

bibliotecă electronică pentru nevăzători (în care, printr-un<br />

meniu interactiv vocal, nevăzătorul să-şi poată selecta<br />

un autor, o carte în format electronic, şi un capitol din<br />

acea carte, pe care sistemul îl va putea citi prin vocea<br />

sintetizată).


6. Concluzii<br />

Cercetările efectuate în cadrul tezei au avut ca scop final dezvoltarea unei metode de sinteză a vorbirii adaptată specific<br />

limbii române precum şi a unei metodologii de lucru în vederea construirii unui sistem de sinteză vocală automată.<br />

Principalele realizări şi contribuţii ale tezei sunt următoarele:<br />

1. Realizarea unui studiu asupra modului de producere şi percepţie a sunetului; studiul include prezentarea caracteristicilor<br />

fizice şi acustice ale sunetului, precum şi modelarea producerii vorbirii.<br />

2. Realizarea unui studiu sintetic asupra metodelor de procesare, codare şi compresie a semnalului vocal.<br />

3. Dezvoltarea unei aplicaţii de prelucrare digitală a semnalului vocal numită SPEA (Sound Processing and Enhancement<br />

Application).<br />

4. Efectuarea unor experimente asupra unor eşantioane reale de semnal audio şi vocal, în scopul determinării parametrilor<br />

cu influenţă directă asupra calităţii acustice a semnalului.<br />

5. Realizarea unui studiu sintetic asupra metodelor de analiză în domeniul timp şi în domeniul frecvenţă a semnalului vocal.<br />

6. Realizarea unui studiu asupra modalităţilor de segmentare şi clasificare a semnalului vocal.<br />

7. Dezvoltarea unei metode proprii de segmentare a semnalului vocal în regiuni. Metoda este capabilă să detecteze 4<br />

categorii fundamentale de semnal şi 10 clase de regiuni. Avantajul metodei faţă de alte abordări este rapiditatea derivată din<br />

efectuarea calculelor în domeniul timp şi detectarea categoriilor de bază dintr-o singură parcurgere a eşantioanelor de semnal. În<br />

cadrul dezvoltării acestei metode s-au realizat:<br />

­ un algoritm de determinare a punctelor de zero, minim şi maxim din semnalul vocal în domeniul timp;<br />

­ o metodă de detecţie a segmentelor S/U/V (Silence/Voiced /Unvoiced) şi clasificare în tipuri de regiuni a semnalului vocal,<br />

metodă ce cuprinde :<br />

­ 4 detectori pentru categoriile de bază;<br />

­ 8 clasificatori pentru clasele de regiuni propriu-zise;<br />

­ 2 detectori pentru determinarea subregiunilor;<br />

­ un algoritm de compactare a regiunilor pentru gruparea regiunilor similare şi reducerea numărului de regiuni;<br />

­ un tabel de corespondenţe între fonemele limbii române şi clasele de regiuni.<br />

8. Dezvoltarea unei metode pentru determinarea perioadelor din forma de undă a semnalului vocal. Algoritmul metodei este<br />

deosebit de exact, lucrând exclusiv în domeniul timp al analizei. Spre deosebire de alte metode de calcul în domeniul frecvenţă, el nu<br />

necesită ferestruire şi nici calcule complexe, fiind foarte rapid.<br />

Metoda se compune din 4 etape, fiecare etapă necesitând elaborarea unui algoritm distinct. Au fost proiectaţi astfel 4 algoritmi:<br />

- un algoritm în domeniul timp pentru determinarea punctului pivot ;<br />

- un algoritm în domeniul timp pentru determinarea unei estimări a perioadei de semnal în jurul punctului pivot ;<br />

- un algoritm în domeniul timp pentru determinarea maximelor de perioadă; algoritmul este capabil să detecteze punctele de<br />

hiatus care apar în semnalul vocal;<br />

- un algoritm în domeniul timp pentru determinarea punctelor de capăt ale intervalelor de perioadă.<br />

9. Dezvoltarea unor metode proprii pentru segmentarea fonematică a semnalului vocal. Au fost proiectate trei metode<br />

distincte. Prima metodă detectează grupurile de foneme din semnalul vocal pe baza textului cunoscut de la intrare, folosind<br />

segmentarea prealabilă în regiuni. A doua metodă realizează împărţirea regiunilor în subregiuni fonematice calculând tranziţiile dintre<br />

cadrele fiecărei regiuni. A treia metodă detectează separat fonemele din regiunile multifonematice şi funcţionează pe bază de model.<br />

Avantajul metodelor dezvoltate de autor derivă din modul de abordare sincron cu frecvenţa, ceea ce le dă o notă de precizie în plus<br />

faţă de alte abordări.<br />

În cadrul dezvoltării acestor metode s-au proiectat şi implementat:<br />

a) pentru metoda de segmentare în grupuri de foneme a semnalului vocal pe baza textului cunoscut de la intrare:<br />

- un set de reguli care impun constrângeri de formă şi durată pentru grupurile fonematice<br />

- un algoritm de asociere între grupurile fonematice şi secvenţele de regiuni;<br />

b) pentru metoda ce realizează împărţirea regiunilor în subregiuni fonematice folosind tranziţiile dintre cadrele fiecărei regiuni:<br />

- un mod de calcul a distanţei minime pătratice dintre două cadre de semnal ;<br />

- un algoritm de detectare a frontierelor de subregiuni pe baza tranziţiilor bruşte dintre cadre;<br />

c) pentru metoda ce separă fonemele din regiunile multifonematice pe bază de model :<br />

- o metodă de modelare semiautomată a fonemelor;<br />

- un algoritm de comparare a vectorilor regiunii ţintă cu modelul;<br />

- un algoritm de regăsire a modelului fonematic şi de etichetare a regiunilor;<br />

- un algoritm de grupare a fonemelor şi segmentare în subregiuni.<br />

10. Realizarea unui studiu asupra modalităţilor de sinteză a vorbirii pornind de la un text.<br />

11. Realizarea unui studiu asupra metodelor existente de sinteză de voce.<br />

12. Dezvoltarea unei metode de sinteză vocală pe bază de silabe pentru limba română. Pentru dezvoltarea metodei a fost<br />

necesară stabilirea unor reguli lingvistice în faza de analiză a textului şi a unor reguli de îmbinare a formelor de undă în faza de<br />

sinteză. Metoda îmbină caracteristici ale abordării bazate pe concatenarea formelor de undă şi ale abordării bazate pe reguli. În cadrul<br />

dezvoltării acestei metode de sinteză s-au realizat:<br />

1) Proiectarea şi implementarea unui analizor lexical şi a unui set de reguli pentru preprocesarea textului. Analizorul conţine<br />

reguli pentru transcrierea fonetică a numerelor şi abrevierilor comune din limba română.<br />

2) Dezvoltarea unei metode bazată pe reguli pentru analiza sintaxei unui text în limba română şi a unui set de reguli pentru<br />

flexionarea cuvintelor din limba română.<br />

3) Proiectarea şi implementarea unui analizor sintactic pentru extragerea propoziţiilor şi a cuvintelor.<br />

4) Proiectarea şi implementarea unui analizor lexical şi a unui set de reguli pentru despărţirea în silabe a cuvintelor din limba<br />

română.<br />

5) Proiectarea şi implementarea unui analizor lexical şi a unui set de reguli pentru determinarea accentuaţiei cuvintelor.<br />

6) Elaborarea unei statistici a silabelor limbii române pentru determinarea frecvenţelor de apariţie ale silabelor din limba română.<br />

7) Proiectarea structurii bazei de date acustice de silabe, în care unităţile acustice sunt integrate în diferite contexte<br />

segmentale şi accentuări.<br />

29


8) Proiectarea şi implementarea unui algoritm de regăsire în baza de date a unităţilor acustice în funcţie de caracteristicile<br />

acestora: lungime, context şi accentuare.<br />

13. Proiectarea şi implementarea unui sistem de sinteză vocală adaptat special limbii române, ce foloseşte ca şi unităţi<br />

fonetice silabele, numit LIGHTVOX. Sistemul a fost conceput ca un sistem text-to-speech, utilizând metoda de sinteză pe bază de<br />

silabe dezvoltată de autor. Metodologia de proiectare a sistemului de sinteză a urmărit două direcţii principale: construirea bazei de<br />

date acustice şi conversia text-voce.<br />

14. Generarea bazei de date vocale pentru sistemul de sinteză, alcătuită dintr-un subset al silabelor limbii române. Silabele<br />

au fost înregistrate în diferite contexte şi moduri de pronunţie, incluzând aspectele prozodice intrasegmentale (accentuaţia).<br />

Bibliografie<br />

[Bod07] Bodo A. Zs., Buza O., Toderean G., Realisation Results of a Speech Synthesis Development Environment, Acta Technica<br />

Napocensis, UTCN, Vol 48, 2007, pp. 32-37<br />

[Bod09-1] Bodo A. Zs., Buza O., Toderean G., TTS Experiments: Romanian Prosody, Acta Technica Napocensis, UTCN, Vol 50, 2009, pp. 31-36<br />

[Bod09-2] Bodo A. Zs., Buza O., Toderean G., TTS Framework Building Results, the 5<br />

30<br />

th IEEE Conference on Speech Technology and Human<br />

Computer Dialogue SpeD 2009, organized by the University “Politehnica” of Bucharest, the Romanian Academy, the Maritime University of<br />

Constanta, the Research Institute for Artificial Intelligence, in cooperation with EURASIP and IEEE, Constanta, Romania, June 18-21, 2009,<br />

accepted to be published<br />

[Bur02] Burileanu D., Basic Research and Implementation Decisions for a Text-to-Speech Synthesis System in Romanian, International<br />

Journal of Speech Technology 2002, pp. 211-225<br />

[Bur96] Burileanu C., Oancea E., Sinteza pornind de la text pentru vocabularul limbii române - prezent şi perspective, Limbaj şi Tehnologie,<br />

Editura Academiei Române, Bucureşti, 1996<br />

[Buz06] Buza O., Toderean G., Bodo A.Z., Syllable Detection for Romanian Text-to-Speech Synthesis, Proceedings of the 6 th International<br />

Conference on Communications, COMM’06, organized by the Military Technical Academy, the University “Politehnica” of Bucharest, and the<br />

IEEE Romanian Section in Bucharest, Romania, 8-10 June 2006, pp.135-138<br />

[Buz07-1] Buza O., Toderean G., Nica A., Bodo Zs., Original Method for Romanian Text-to-Speech Synthesis Based on Syllable<br />

Concatenation, rev. “Advances in Spoken Language Technology”, Publishing House of the Romanian Academy, composed of the Proceedings<br />

of the 4 th Conference on Speech Technology and Human Computer Dialogue SpeD 2007, Iassy, Romania, May 2007, pp. 109-118<br />

[Buz07-2] Buza O., Toderean G., About Construction of a Syllable-Based TTS System, WSEAS TRANSACTIONS on COMMUNICATIONS,<br />

Issue 5, Volume 6, May 2007, ISSN 1109-2742, 2007<br />

[Buz08] Buza O., Toderean G., Domokos J., Bodo A. Zs., Voice Synthesis Application based on Syllable Concatenation, Proceedings of the<br />

IEEE International Conference on Automation, Quality and Testing, Robotics AQTR 2008 - THETA 16 th edition, Cluj-Napoca, Romania, ISBN<br />

978-1-4244-2576-1,Vol. II, May 22-25, 2008<br />

[Buz09] Buza O., Toderean G., Domokos J., Bodo A. Z., Building a Text to Speech System for Romanian through Concatenation, The 5 th IEEE<br />

Conference on Speech Technology and Human Computer Dialogue SpeD 2009, organized by the University “Politehnica” of Bucharest, the<br />

Romanian Academy, the Research Institute for Artificial Intelligence, in cooperation with EURASIP and IEEE, Constanta, Romania, June 18-<br />

21, 2009, accepted to be published<br />

[Chi00] Childers D. G., Speech Processing and Synthesis Toolboxes, John Wiley & Sons, Inc., New York NY, 2000<br />

[Din04] Dinu L. P., Despărţirea automată în silabe a cuvintelor din limba română. Aplicaţii în construcţia bazei de date a silabelor limbii române,<br />

Raport de cercetare, cod AT217/2004, http://thor.info.uaic.ro/~fliacob/An1/2007-2008/Utilitati/U11/Despre entropie/Analiza silabelor din limba<br />

romana.pdf, 2004<br />

[Fer97] Ferencz A., Contribuţii la dezvoltarea sintezei text-vorbire pentru limba română, Teză de doctorat, UTCN Cluj-Napoca, 1997<br />

[Fre05] Free Software Foundation, Flex - a scanner generator, http://www.gnu.org /software/flex/manual, October 2005<br />

[Fur01] Furui S., Digital Speech Processing, Synthesis, and Recognition, CRC Publisher, Second edition, 2001<br />

[Gav00] Gavat I., et al., Elemente de analiză, sinteză şi recunoaşterea vorbirii, Ed. Printech, Bucureşti, 2000<br />

[Gla86] Glass, J. R., Zue V., Signal Representation for Acoustic Segmentation, Proceedings of First Australian Conference on Speech Science<br />

and Technology, pp. 124-129, November 1986<br />

[Jos97] Josifovski L., Mihajlov D., Gorgevik D., Speech Synthesizer Based on Time Domain Syllable Concatenation, Proceedings<br />

SPECOM’97, Cluj-Napoca, 1997, pp. 165-170.<br />

[Lew99] Lewis E., Tatham M., Word And Syllable Concatenation in Text-To-Speech Synthesis, Proceedings of the 6 th European Conference<br />

on Speech Communications and Technology, ESCA’99, September 1999, pp. 615—618<br />

[Lup04] Lupu E., Pop P., Prelucrarea numerică a semnalului vocal, Vol.1, Ed. Risoprint, Cluj-Napoca, 2004<br />

[Mat01] Mateescu A., Semnale şi sisteme- Aplicaţii în filtrarea semnalelor, Ed. Teora, Bucureşti, 2001<br />

[Men02] Meng, H. et. al., CU VOCAL: Corpus-based Syllable Concatenation for Chinese Speech Synthesis across Domains and Dialects,<br />

Proceedings of ICSLP’02, 2002.<br />

[Nav05] Nave R., The Place Theory of Pitch Perception, http://hyperphysics.phy -astr.gsu.edu/hbase/sound/souref.html, 2005<br />

[Nay07] Naylor P.A., Kounoudes A., Gudnason J., Brookes M., Estimation of Glottal Closure Instants in Voiced Speech Using the DYPSA<br />

Algorithm, IEEE Transactions on Audio, Speech, and Language Processing, Volume 15, Issue 1, Jan. 2007, pp. 34 - 43<br />

[Pic93] Picone, J.W., Signal modeling techniques in speech recognition, Proceedings IEEE, Vol. 81, September 1993, pp. 1215-1246<br />

[Sak03] Sakai S., Glass J., Fundamental Frequency Modeling for Corpus-Based Speech Synthesis Based on a Statistical Learning Technique,<br />

Spoken Language System Publications, 2003<br />

[Sto84] Stolojanu, G. et al., Prelucrarea numerică a semnalului vocal, Ed. Militară, Bucureşti, 1984<br />

[Tat05] Tatham M., Morton K., Developments in Speech Synthesis, Wiley Publisher, ISBN 978-0470855386, 2005<br />

[Tay09] Taylor P., Text-to-Speech Synthesis, Cambridge University Press, ISBN 0521899273, 1 st edition, 2009<br />

[Tod05] Toderean G., Căruntu A., Metode de recunoaştere a vorbirii, Editura Risoprint Cluj-Napoca, 2005<br />

[Tod09] Toderean G., Buza O., Bodo A. Z., Metode de Sinteză a Vorbirii, Editura Risoprint Cluj-Napoca, ISBN 978-973-53-0114-9, 2009<br />

[Tok06] Tokuda K., Hidden Markov model-based speech synthesis as a tool for constructing comunicative spoken dialog systems, Journal of<br />

the Acoustical Society of America, Vol. 120, Issue 5, ISBN-13: 978-3540212676, November 2006, pp. 3006-3006<br />

[Tom09] Toma S., Oancea E., Munteanu D., Automatic Rule-Based Syllabication for Romanian, published in the volume „From Speech<br />

Processing to Spoken Language Technology”, edited by the Publishing House of the Romanian Academy, composed of the Proceedings of the<br />

5 th IEEE Conference on Speech Technology and Human Computer Dialogue, SpeD 2009, Constanta, Romania, June 18-21, 2009, pp. 87-94<br />

[Web02] Andrew R. Webb, Statistical Pattern Recognition, Second Edition, ISBN 0-470-84513-9, John Wiley and Sons Ltd., 2002

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!