Sunteți pe pagina 1din 65

Raport de Cercetare

Grant:

SISTEM INTERACTIV PE BAZA DE VOCE


DESTINAT PERSOANELOR NEVAZATOARE

Autor: Toderean Gavril, Buza Ovidiu

Universitatea Tehnică din Cluj-Napoca


Introducere

In prima parte a lucrării se prezintă studiile realizate asupra cercetăriolor din


domeniul procesării vorbirii, în principal asupra produselor cu interactivitate vocală apărute pe
plan internaţional.
Au fost analizate mai întâi principalele aplicaţii disponibile utilizate în prelucrarea şi
analiza semnalului vocal, cum ar fi: mediul de analiză şi dezvoltare Matlab, mediul de
instrumentaţie virtuală LabView, programele de prelucrare audio Goldwave şi CoolEdit.
A fost făcută de asemenea o sinteză a situaţiei interne şi internaţionale în domeniul
sistemelor şi aplicaţiilor de procesare a vorbirii.
In a doua parte a lucrării au fost prezentate cercetările efectuate asupra metodelor
de analiză şi prelucrare a semnalului vocal, dar şi asupra metodelor de codare în vederea
transmiterii datelor audio la distanţă.
Au fost studiate metodele existente de analiză şi prelucrare a semnalului vocal, atât
metode de analiză în domeniul timp, cum ar fi: metoda autocorelaţiei, metoda funcţiei
diferenţă de amplitudine medie, metoda cu limitare centrală, dar şi metode de analiză în
domeniul frecvenţă : analiza prin banc de filtre digitale, analiza Fourier, analiza prin predicţie
liniară, analiza cepstrală, analiza perceptuală.
Au mai fost studiate metodele de codare şi compresie a semnalului vocal, precum şi
standardele de compresie a semnalului audio de înaltă fidelitate.
Al treilea obiectiv al lucrării de faţă este prezentarea cercetărilor asupra metodelor de
sinteză şi recunoaştere a vocii, precum şi a metodelor proprii concepute, metode utilizate în
sistemul vocal interactiv care a fost proiectat şi realizat în fază de prototip.
I. Studii asupra realizărilor în domeniul procesării vorbirii pe plan
naţional şi internaţional

Procesarea vorbirii este un domeniu care a evoluat mult in ultimii ani pe plan
internaţional. Dacă in urmă cu câţiva ani se făceau progrese în ceea ce priveşte găsirea unor
noi metode şi tehnici de prelucrare a semnalului vocal, acum accentul se pune pe integrarea
acestor metode performante în sisteme dedicate unor categorii diverse de utilizatori [Vei04].
Odată cu creşterea performanţelor sistemelor de calcul, utilizatorii au acum la
îndemână o gamă largă de aplicaţii pornind de la dictare automată şi introducerea de date cu
ajutorul vocii, până la servicii interactive de tip cerere-răspuns care solicită un dialog vocal
între calculator şi operatorul uman. De asemenea aplicaţiile dedicate persoanelor cu
handicap sau deficienţe de vedere sau vorbire sunt tot mai solicitate, pentru ca şi aceste
persoane să beneficieze de o integrare socială cât mai apropiată de standardele la care se
situează ceilalţi membrii ai societăţii [Ram05], [Wal01].
Procesarea vorbirii cuprinde două domenii distincte de abordare : recunoaşterea
vocii, respectiv sinteza vocală.

Recunoaşterea vorbirii (speech-to-text) este procesul de identificare a cuvintelor


şi de inţelegere a mesajului interlocutorului uman. Acest proces implică următoarele
etape: captura şi digitizarea semnalului vocal, scindarea acestuia in unităţi sonore, apoi
construirea cuvintelor din aceste unităţi, şi trimiterea spre aplicaţie a textului recunoscut
[Tod05].
Arhitectura software utilizată in aplicaţiile de recunoastere a vorbirii cuprinde
doua componente: componenta acustică şi cea lingvistică. Modulul acustic analizeaza
sunetele vocii, elimină zgomotul de fond, reduce datele la un spectru de frecvente si
apoi converteşte sunetele in foneme (elementele de baza ale vorbirii). Modulul lingvistic
analizează conţinutul vorbirii si compară combinaţiile de foneme cu cuvintele dintr-un
vocabular şi decide apoi care a fost propozitia sau comanda rostita de vorbitor.

Recunoaşterea vorbirii este realizată de o componentă software numită motor


de recunoaştere a vorbirii (Speech Recognition Engine SRE). Motoarele de
recunoastere a vorbirii suportă două moduri de lucru: dictarea, in care utilizatorul
introduce date vorbind direct spre computer, şi comanda sau controlul, in care
utilizatorul transmite comenzi prin vorbire.

Programele ce suportă dictarea permit introducerea rapoartelor, referatelor si


mesajelor e-mail prin intermediul vocii [Ram05]. Posibilitatea de a recunoaste un anumit
cuvant este limitata de dimensiunea dicţionarului incorporat. Majoritatea motoarelor de
recunoastere care suporăa dictarea sunt dependente de vorbitor, deoarece acuratetea
variaza cu trăsăturile vocii, cum ar fi timbrul si accentul. Pentru a mari acurateţea
recunoaşterii, sunt create baze de date numite profile de vorbitor, care stochează
modelul de vorbire al fiecărui utilizator.

In cazul programelor de comandă şi control, dictionarul este limitat la lista de


comenzi disponibile, fapt care creşte performanţa aplicaţiilor şi scade necesarul de
putere de calcul din partea sistemului. In plus, aceste tipuri de programe sunt
independente de vorbitor şi nu necesită sesiuni de training [Ram05].

Actualmente accentul se pune pe realizarea unor noi algoritmi care să permită


recunoaşterea continuă a vocii, adica recunoasterea cuvintelor si frazelor rostite de catre
interlocutorul uman in condiţii naturale, nerestricţionate de un anumit dictionar sau vocabular.
Dintre metodele recent utilizate amintim : detecţia rapidă a momentelor de pauza sau rostire ;
recunoaşterea bazată pe dictionare de corespondenta intre unitatile fonematice şi unităţile
acustice ; metode de predicţie a cuvintelor rostite [Kai00], [Tod05].

Sinteza de voce este procesul invers recunoaşterii vorbirii şi constă in


recompunerea vocii de către sistemul de calcul. Sinteza de voce este strins legată de
procesul conversiei unui text in limbaj vorbit, numit text-to-speech. In cadrul acestui
proces, are loc o analiză lingvistică a textului pentru a-l separa in unităţi lexicale
(cuvinte, silabe şi foneme), apoi unităţile lexicale sunt convertite in semnale sonore
care sunt combinate in final pentru a genera vorbirea continua [Wou00],[Mob00].

Astăzi se folosesc noi metode pentru sinteza de voce, care să asigure o calitate cât
mai bună a sintezei, calitate apropiata de vorbirea naturala. Metodele cele mai utilizate se
bazează pe principiul PSOLA (Pitch Synchronous Overlap and Add), in care procesarea
vorbirii se realizează in domeniul timp [Hos00], [Tat05], [Tro02] sau metode bazate pe corpus,
care folosesc cantităţi mari de date achiziţionate in urma rostirii naturale a unui text [Mob00].

1.1. Situaţia internă şi internaţională în domeniul sistemelor şi aplicaţiilor de procesare


a vorbirii

Situaţia internă

In România, interesul pentru prelucrarea automată a vocii s-a manifestat incă de


acum trei decenii, iar studiile au devenit sistematice dupa 1980. Au fost organizate colective
de cercetare in marile centre universitare, cum ar fi Bucuresti, Cluj, Iaşi, Timisoara. Ariile de
interes ale specialistilor români cuprind domenii ca: recunoaşterea automată a vorbirii,
recunoaşterea şi identificarea vorbitorului, sinteza de voce, codificarea vorbirii, procesarea
limbajului natural [Bur05].

Există cursuri de tehnologia vorbirii şi procesarea semnalului vocal, cum ar fi cele


susţinute de prof. Corneliu Burileanu la Facultatea de Electronică şi Telecomunicaţii din
cadrul Politehnicii Bucureşti, Marian Boldea – la Universitatea Politehnica Timişoara, prof.
Horia-Nicolai Teodorescu in cadrul Facultăţii de Electronică şi Telecomunicatii a Universitatii
Tehnice Gh. Asachi din Iaşi, Mircea Giurgiu in cadrul Facultăţii de Electronică şi
Telecomunicaţii a Universităţii Tehnice din Cluj.

Deşi există rezultate bune in domeniu obţinute de fiecare colectiv de cercetare, totuşi
nu s-a realizat o unificare a eforturilor care să ducă la realizarea unor produse bazate pe
tehnologia vorbirii conforme cu standardele internationale, care să poată fi integrate in
aplicaţii software de sine-stătătoare. Este de notat ca in acest moment nu există nici un
motor de sinteză pentru limba română care să respecte standardul text-to-speech stipulat de
Microsoft – SAPI 5.1 [Mon05]. Piaţa românească este incă in aşteptarea unor aplicaţii viabile
de recunoaştere şi sinteză de voce specializate pentru limba română.

Situaţia pe plan internaţional

Pe plan internaţional cercetările în domeniul tehnologiei vorbirii au avut avantajul


sponsorizării de catre unele companii sau concerne internationale care urmăresc dezvoltarea
unor categorii de produse care să le asigure profituri substanţiale şi poziţii de lideri pe piaţă.

Cu câţiva ani in urmă, produsele ce implementau tehnologia vorbirii erau scumpe,


prezentau o acurateţe scăzută şi erau dificil de utilizat. Dar creşterea performantei sistemelor
de calcul si gasirea unor metode noi de abordare au dus in prezent la cresterea calitatii
acestor produse. De exemplu, în domeniul recunoaşterii vocii, de la o rată medie de
recunoastere de 85% pe care o prezentau primele aplicaţii, s-a ajuns acum la o rata de peste
95%. De la un timp de câteva ore pentru acomodarea sistemului cu vorbitorul, s-a ajuns la un
timp de cateva minute, cu rezultate superioare [His05].

Pentru a sublinia importanţa domeniului, expertii de la Microsoft sustin ca tehnologia


vorbirii va ajunge in curind până la punctul în care interfata vocala va fi parte integranta a
urmatoarei generatii de servere, PC-uri de birou, calculatoare si dispozitive mobile [Mon05].
Astfel, se prognozează că urmatorii 5 ani vor aduce integrarea tehnologiilor vorbirii si
inteligentei artificiale in sisteme dedicate bazate pe voce, accesibile utilizatorului de rând.

Compania Microsoft şi-a introdus tehnologiile vocale ca seturi API (Application


Programming Interface) şi unelte pentru dezvoltarea de aplicatii, dand posibilitatea
programatorilor să inglobeze aceste tehnologii în interfeţele bazate pe voce ale viitorului.

Astfel, incepând din anul 2001, Microsoft livrează un SDK (Software Developer Kit)
special conceput pentru dezvoltatorii de software, numit Speech API (SAPI) – actualmente
ajuns la versiunea 5.1. Din anul 2003, Microsoft mai ofera o unealtă de dezvoltare ce poate fi
utilizată alături de SAPI 5.1, numită Microsoft Speech Server. Acesta este o extensie a
platformei ASP.NET pentru accesarea prin voce a unei game largi de dispozitive.
Dezvoltatorii de aplicaţii pot astfel îmbina tehnologia Web, serviciile de procesare a vocii şi
capabilitatile de telefonie mobilă [Mon05].

O altă firmă, SQZ Incorporated, oferă SpeechStudio Suite, o suită de instrumente


avansate de dezvoltare numite voice-driven user interfaces (VUI), complementare cu
Microsoft Visual Studio si SAPI 5.1. Terţe firme oferă controale add-on pentru mediile de
dezvoltare, care adaugă rapid si simplu funcţionalitate audio aplicaţiilor utilizator.

In domeniul recunoaşterii de voce trebuie amintite marile companii IBM, Lernout &
Hauspie (care a achizitionat Dragon Systems in anul 2000), Apple si Philips. Acestea ofera
pachete cu funcţii vocale de bază sau versiuni mai sofisticate, cu preturi mai mari. Pachetele
de software pentru recunoaşterea vorbirii se adaptează la utilizatorul individual, în funcţie de
voce, timbru si accent [His05] .

ScanSoft, partener IBM, oferă aplicaţii diverse bazate pe voce, cum ar fi: dictare
automata, comanda aplicaţiilor prin voce, motoare Text to Speech, verificarea vorbitorului,
aplicatii de prelucrare a vocii pentru telefonia mobila,etc. Firma Sensory System este axată
pe dezvoltarea de aplicaţii destinate comunicarii in limbaj natural cu dispozitive de diverse
genuri: calculatoare desktop, handheld sau PDA, telefoane celulare, dispozitive automotive
(kituri hands free, localizare prin radio, navigaţie automată).

Dintre aplicaţiile care implementează tehnologia vorbirii la nivel desktop se pot aminti:
Dragon Naturally Speaking al firmei Lernout & Hauspie, care ofera module de dictare
automata si comanda aplicaţiilor prin voce, Microsoft Office XP si Lotus Smartsuite, care au
integrate motoare de recunoastere vocala si dictare pentru limba engleza, Scansoft
OpenSpeech, ce implementeaza un motor de recunoastere automata a vocii (Automatic
Speech Recognition ASR) pentru VoiceXML – cel mai nou standard pentru sisteme bazate pe
voce. De asemenea mai trebuie amintit şi sistemul de operare OS/2 Warp de la IBM, care
permite manipularea calculatorului prin comenzi vocale [His05].

Concluzii asupra situaţiei actuale

Deşi cercetările din ultimele două decenii si-au adus o contributie majoră în
tehnologia sintezei şi recunoaşterii vorbirii, existând multe firme internationale care
oferă produse variate pe piata utilizatorilor, totuşi mai sunt incă de rezolvat anumite
aspecte ce ţin de performanta aplicatiilor şi implementarea unor metode mai adecvate
pentru analiza şi sinteza vorbirii naturale, cum ar fi: sinteza de voce de calitate naturala,
recunoaşterea vorbirii in condiţii reale nerestricţionate, recunoaşterea fără ambiguităţi a
semanticii vorbirii umane directe [Tod05].

In ceea ce priveşte aplicaţiile pentru persoane defavorizate, procesarea vorbirii ocupă


un loc important in asistenţa acordată persoanelor nevazatoare şi a celor cu deficiente de
vorbire [Ram05],[Wal01]. In Anglia există deja implementate sisteme complete de sinteza de
voce pentru nevazatori ce pornesc de la achiziţia de texte prin camera video, recunoaşterea
textului şi rostirea acestuia prin voce sintetizată. De asemenea, există sisteme pentru
invăţarea sau reeducarea vocii, in care persoanele cu deficiente de vorbire pot sa-si
urmărească interactiv vocea ca o undă stationară pe ecran. La noi in ţară nu există
asemenea sisteme adaptate special pentru persoanele defavorizate, iar cele implementate pe
baza unor programe străine suferă din cauza inadaptabilităţii acestora la specificul limbii
române.

1.2. Aplicaţii utilizate în prelucrarea şi analiza semnalului vocal

Cele mai cunoscute şi utilizate programe în prelucrarea semnalului audio în


momentul prezent sunt: Matlab, LabView, Goldwave şi CoolEdit.

Matlab (numele fiind un acronim pentru „Matrix Laboratory”) este un mediu


performant utilizat în domeniul calculului matematic şi aplicativ, inclusiv în cel al prelucrării
automate de semnal. Matlab dispune de numeroase instrumente software specializate pentru
anumite aplicaţii particulare, cum ar fi prelucrare de imagini, prelucrare de semnal, analiza
circuitelor electrice, aplicaţii de inteligenţă artificială, unelte de vizualizare a datelor, etc.
Aceste instrumente sunt organizate în aşa-numitele „toolbox”-uri accesibile utilizatorului prin
interfeţe grafice specializate, manipularea acestora făcându-se de asemeni prin interacţiune
grafică.
Un exemplu de astfel de instrument software pus la dispoziţia utilizatorului este
Simulink, care constă într-un pachet de programe ce pot fi folosite pentru modelarea,
simularea şi analiza sistemelor dinamice liniare sau neliniare. Modelarea se poate face în
timp continuu sau discret. Caracteristicile sistemului de studiat sunt precizate prin obiecte
grafice speciale, care sunt interconectate cu ajutorul mouse-ului de către utilizator (aşa-
numitul limbaj G – limbajul grafic). Astfel se pot introduce în sistem generatoare de semnal,
instrumente de vizualizare, blocuri de funcţii matematice, componente liniare şi neliniare.
Alte instrumente avansate de lucru sunt: SpTool, folosit pentru proiectarea de filtre
digitale, Dsp Tool, utilizat pentru prelucrarea digitală de semnal, inclusiv semnal audio, Neural
Network Tool – pentru proiectarea şi testarea sistemelor bazate pe reţele neuronale, Statistic
Tool – pentru calcule statistice, etc.
Aplicaţia dispune de un limbaj de nivel foarte înalt ce respectă principiile programării
structurate, cu o sintaxă asemănătoare limbajului C. Operaţiile de bază ale limbajului sunt
operaţii cu matrici, specificate prin variabile de tip vector ce dispun de redimensionare
automată. Operaţiile asupra vectorilor se realizează folosind funcţiile ce sunt puse la
dispoziţia utilizatorului prin intermediul unei biblioteci matematice extinse.

LabView este un mediu de dezvoltare grafică ce permite construirea de aplicaţii


destinate instrumentăţiei virtuale: măsurări şi teste de laborator, monitorizarea aparatelor
industriale, studiul comportamentului sistemelor. LabView permite proiectare aplicaţiilor
SCADA (Supervisory Control and Data Acquisition of Industrial Processes) şi MMI (Man-
Machine Interface).
Caracteristic interfeţei grafice LabView este tabloul de comandă („control panel”) în
care utilizatorul poate adăuga controale (comutatoare, indicatoare, reglaje) şi afişaje de date
(afişaje numerice, osciloscoape, multimetre, LED-uri indicatoare, grafice, histograme, etc.).
Tabloul de comandă se pune în legătură cu un flux de achiziţie de semnal (ce provine de la o
placă de achiziţie de semnal, placă audio sau video). Utilizatorul va putea apoi analiza şi testa
comportamenul sistemului în mod virtual folosind facilităţile programului şi apoi să-şi
construiască propriile aplicaţii. Pentru aceasta LabView dispune de:
• un mod de programare grafică (vizuală) prin intermediul căruia utilizatorul poate
asambla în mod grafic blocuri reprezentând anumite funcţii de achiziţie, prelucrare,
analiză şi afişare a semnalelor obţinute dintr-o gamă largă de dispozitive (dispozitive
conectate pe magistrale de tip GPIB, VXI, interfaţă serială, microcontrolere, plăci de
achiziţie, etc.);
• un modul numit „Application Builder”ce permite obţinerea de aplicaţii de sine-
stătătoare care pot fi distribuite ca programe executabile;
• conectivitate cu alte surse de date sau cu alte aplicatii din reţea prin interfeţe OLE,
DDE, NetDDE sau DLL, legături SQL şi protocoale TCP/IP sau UDP;
• o bibliotecă de peste 550 de drivere de instrumente de la peste 40 de furnizori,
arhitectura de conectare a acestora respectând standardul VXI plug&play;
• posibilitatea de analiză şi procesare în timp real a datele eşantionate.
LabView dispune şi de un limbaj de programare numit LabWindows/CVI (CVI este
un acronim pentru „C for Virtual Instrumentation”). Acesta este un mediu de programare
destinat proiectării aplicaţiilor folosind limbajul C. LabWindows/CVI pune la dispoziţia
utilizatorilor fişiere de instrumentaţie virtuală sub forma unor biblioteci dinamice, permiţându-
se astfel inserarea in codul sursă utilizator a aplicaţiilor predefinite.
Astfel, prin intermediul fişierelor de intrare/ ieşire integrate, a rutinelor de analiză şi a
instrumentelor de creare a interfeţei utilizator, programul furnizează elementele esenţiale în
vederea realizării unor aplicaţii profesionale de prelucrare de semnal, instrumentaţie virtuală
şi control de proces.

Două programe specifice lucrului cu fişiere audio sunt CoolEdit şi GoldWave.


Acestea permit înregistrarea de semnal audio, editarea formei de undă şi memorarea pe disc
a fişierelor audio în mai multe formate şi codificări.
Astfel, programul CoolEdit permite folosirea a 20 de formate audio şi multiple
frecvenţe de eşantionare a semnalului. Alte facilităţi ale programului sunt:
- mixarea semnalului din mai multe surse;
- „zero cross adjust” – ajustarea automată a eşantioanelor;
- „function scripting” – un limbaj de tip script pentru apelul funcţiilor predefinite;
- facilităţi pentru analiza semnalului audio: spectrul de frecvenţe şi faze,
histograme de analiză;
De asemenea programul dispune de numeroase filtre predefinite, cum ar fi:
- efecte legate de variaţia amplitudinii semnalului, cum ar fi: amplificare/atenuare,
normalizare, amplificare variabilă „fade in”/”fade out”;
- efecte de temporizare, cum ar fi introducerea de ecouri;
- mai multe tipuri de filtre digitale, cum ar fi de exemplu un egalizator pe mai multe
benzi de frecvenţă;
- reducerea zgomotului din semnalul achiziţionat;
- modificarea tempo-ului şi tonalităţii semnalului.

Pe lângă acestea, aplicaţia GoldWave permite în plus editarea formei de undă cu


ajutorul mouse-ului, diverse filtre FTJ, FTS, FTB, şi de asemeni un „expression evaluator” ce
permite generarea unor semnale audio complexe pornind de la funcţii matematice predefinite.

Ca o concluzie asupra situaţiei actuale de la nivelul aplicaţiilor de prelucrare de


semnal audio sau vocal, se poate spune că aplicaţiile existente nu sunt numeroase, ele deşi
având o tradiţie şi o dezvoltare desfăşurată pe parcursul mai multor ani, oferind multiple
facilităţi ce se pot folosi în analiza semnalului audio şi vocal, totuşi ele constituie doar un
punct de plecare (sau în unele cazuri nişte platforme de dezvoltare) pentru proiectarea şi
testarea unor algoritmi proprii de procesare de semnal.
Facilităţile de procesare oferite (cu referire la filtrele digitale existente în aceste
aplicaţii) sunt facilităţi „built-in” fără posibilităţi de dezvoltare ci doar de utilizare. Se poate intui
faptul că filtrajele adaptive, neliniare de care este nevoie în aplicaţiile de procesare a vorbirii
de exemplu vor trebui realizate de către proiectant, folosind eventual ca suport platformele de
lucru existente.
II. Metode actuale de procesare şi analiză a semnalului vocal

Analiza şi prelucrarea semnalului vocal constituie etapele premergătoare în


abordarea sintezei şi recunoaşterii de voce. Prelucrarea numerică a semnalului vocal
cuprinde toate metodele de operare directă asupra semnalului, în special metode de filtrare,
codificare şi compresie. Analiza semnalului vocal presupune determinarea parametrilor
semnalului pe baza eşantioanelor de vorbire înregistrate de la vorbitor, parametrii care vor fi
folosiţi în aplicaţia specifică de sinteză sau recunoaştere de voce.

2.1. Metode de prelucrare numerică a semnalului vocal

Prelucrarea semnalului vocal începe cu achiziţia semnalului de la sursă: microfon,


sau aparatură electronică de înregistrare. Achiziţia presupune conversia digitală a semnalului
analogic şi apoi filtrarea sa pentru eliminarea zgomotelor de achiziţie. Conversia se face cu o
frecvenţă de eşantionare de cel puţin 8 kHz (uzual se folosesc frecvenţe standard de 11 kHz,
16 kHz sau 22 kHz).
Conversia analog-digitală a semnalului presupune un anumit mod de reprezentare a
semnalului în format numeric. Stabilirea unui astfel de mod de reprezentare digitală se
numeşte codarea semnalului.

2.1.1. Metode de codare a semnalului vocal

Tehnica cea mai utilizată în codarea semnalului vocal este tehnica modulării
impulsurilor în cod (PCM – « Pulse Code Modulation ») [Vla97]. Folosind codarea PCM,
fiecare eşantion al semnalului este cuantizat (i se atribuie o valoare numerică) independent
de celelalte eşantioane. Astfel, un codor PCM determină nivelul de cuantizare al fiecărui
eşantion fără să ţină cont de nivelul eşantioanelor precedente, iar apoi atribuie acestui nivel
de cuantizare un cod binar (numit cuvânt de cod), ce reprezintă forma codată a semnalului. Ϊn
tehnica PCM există diferite moduri de cuantizare a valorii fiecărui eşantion şi de asociere a
cuvintelor de cod pentru un nivel de cuantizare. Cele mai uzuale tehnici folosite sunt codarea
liniară şi codarea logaritmică [Vla97] :

Codarea liniară constă în considerarea valorii scalate a eşantionului ca şi cuvânt de


cod. Astfel, un semnal de intrare cu valori între 0 şi 1000 mV va fi codat liniar cu valori între 0
şi o valoare maximă VM (255 pentru valori reprezentate pe octet). Valoarea eşantionului poate
fi o mărime cu semn, ţinând cont că semnalul vocal variază în jurul unei poziţii de referinţă, de
nivel 0. Astfel, cuvântul de cod poate fi la rândul lui un număr cu semn.

Codarea logaritmică aplică o transformare logaritmică valorii scalate a eşantionului,


şi apoi atribuie o reprezentare numerică rezultatului obţinut. Astfel, cuvântul de cod va conţine
semnul şi logaritmul valorii scalate a eşantionului. Acest standard de codare este folosit în
telefonia digitală, datorită faptului că în telefonie valorile de amplitudine mare a eşantioanelor
sunt puţin frecvente, şi ca urmare pot fi reprezentate cu o acurateţe mai mică decât valorile
de amplitudine mică, aşa cum este cazul în transformarea logaritmică.
Există două standarde pentru codarea logaritmică : legea μ-law, folosită în America
de Nord şi Japonia, respectiv legea A-law, folosită în Europa. Aceste tehnici de codare
standard sunt expuse în cadrul acestui referat, în capitolul III. Amplitudinea fiecărui eşantion
va fi reprezentată printr-un cuvânt de cod pe 8 biţi (faţă de 14 biţi cât ar fi fost necesari în
cazul metodei liniare pentru codarea unui semnal la o calitate percepută echivalentă).

Dacă în cazul codării PCM cuvântul de cod se reprezintă printr-un număr fix de cifre
binare, există metode care generează coduri de lungime variabilă. Codarea entropică este
o astfel de metodă, care urmăreşte codarea semnalului pe grupuri de eşantioane care au
valori apropiate, situate într-o subclasă a valorilor totale posibile. Astfel, pentru fiecare grup
de astfel de eşantioane, cuvântul de cod se generează pe un număr de biţi mai mic decât
numărul de biţi ce ar fi necesar pentru codarea plajei totale de valori pentru eşantioane. Un
exemplu de codare entropică de lungime variabilă este codarea Huffman, care presupune o
parcurgere a-priori a semnalului pentru gruparea eşantioanelor şi stabilirea claselor de valori.
Codarea Huffman poate de exemplu folosi o grupare a valorilor eşantioanelor pe segmente
corespunzătoare vocalelor şi consoanelor, în cazul consoanelor (care au valori ale
eşantioanelor mult mai mici comparativ cu vocalele) putându-se folosi o codificare mai
condensată. Spre deosebire de codarea Huffman, codarea aritmetică nu codează
eşantioanele pe grupe sau blocuri, ci ea caută secvenţe de valori identice ale semnalului,
cărora le atribuie anumite simboluri dintr-un dicţionar sau cuvinte de cod.

O metodă care se foloseşte pentru eliminarea redundanţei semnalului este codarea


predictivă [Feh93]. Metoda se utilizează pentru codarea vorbirii, dar şi a imaginii şi a surselor
de date, în vederea transmiterii informaţiei la distanţă. Metoda urmăreşte să elimine din
semnal ceea ce poate fi prezis despre el la receptor. Predictorii de la receptor şi de la
transmiţător trebuie să funcţioneze sincron, pe baza aceluiaşi set de reguli.
Tehnica cea mai uzuală ce se bazează pe metoda predicţiei se numeşte modulaţia
diferenţială a impulsurilor de cod ( DPCM – « Differential Pulse Code Modulation »).
Schema bloc a codorului DPCM este ilustrată în figura 2.1.

i(n)
x(n) e(n)
Q
-
xp(n| n-1,n-2,...,n-p)
ep(n)
xp(n)
Predictor

Figura 2.1. Schema canonică a codorului DPCM (PCM diferenţial)

Ϊn figura 2.1, e(n) este diferenţa dintre eşantionul de intrare x(n) şi o predicţie a
eşantionului notată cu xp(n| n-1,n-2,...,n-p). Această predicţie se calculează ca o combinaţie
liniară a unui număr de p eşantioane care au fost transmise anterior:

p
x p (n | n − 1, n − 2,..., n − p ) = ∑ a k x p (n − k ) , (2.1)
k =1

unde x p ( n −k ) reprezintă eşantionul reconstruit la momentul n-k:

x p (n − k ) = x p ( n − k | n − k −1, n − k − 2,..., n − k − p ) + e p ( n − k ) (2.2)

La fiecare pas, eroarea de predicţie e cuantizată într-o valoare ep(n) de către


cuantizorul Q, care totodată generează şi secvenţă de indici i(n).
Astfel, semnalul x(n) va putea fi reconstruit pe baza valorilor ep(n) recepţionate de la
transmiţător. Utilizarea metodei DPCM e susţinută de faptul că variaţia semnalului diferenţă
ep(n) e mai mică decât variaţia eşantionului x(n). Astfel, presupunând acelaşi debit de codare
şi acelaşi cuantizor, tehnica DPCM aduce o îmbunătăţire de aproximativ 6 dB a raportului
semnal/zgomot faţă de codarea PCM.

Pentru tratarea nestaţionarităţii semnalului vocal se folosesc metode de codare


adaptive. Principiul de bază al adaptării este de a realiza în codor estimarea unor aspecte
statistice ale semnalului vocal, precum energia, frecvenţa sau valorile spectrale [Feh93].
Astfel, în codificarea adaptivă ADPCM se calculează o estimaţie locală a deviaţiei
semnalului de intrare, care va controla câştigul unui amplificator situat în faţa unui cuantizor
cu variaţie unitară, aşa cum se ilustrează în figura 2.2 :

e(n) b(n) = ±1
Q
-
xp(n| n-1) G
Informaţia
xp(n) de adaptare
Predictor

Figura 2.2. Schema bloc a codorului delta adaptiv

Cu un astfel de codor adaptiv se poate obţine un câştig mai mare de 5 dB în raportul


semnal/zgomot faţă de sistemul DPCM.
Există două tipuri de metode de adaptare în codarea semnalului vocal: adaptarea
silabică şi adaptarea instantanee. Adaptarea silabică estimează caracteristica semnalului
vocal pe o durată de câteva milisecunde (4..25ms) pentru a se acomoda la modificările din
interiorul fonemelor şi silabelor. Adaptarea instantanee foloseşte constante de timp mai mici
(sub 4ms).
Modulaţia delta (DM – « Delta Modulation ») [Feh93] este un caz special de DPCM
în care cuantizorul foloseşte doar două valori posibile, ceea ce are ca rezultat aproximarea în
trepte a formei de undă. Modulaţia delta are variante de implementare atât cu cuantizor fix,
caz în care necesită o rată de eşantionare ridicată pentru a se putea acomoda variabilităţii
ridicate a semnalului vocal, cât şi variante adaptive.
Principiul modulaţiei delta este descris de următoarele ecuaţii :

b( n) = sgn[ x ( n) − x p ( n)] , (2.3)


x p ( n) =αx p ( n −1) + G n b( n) . (2.4)

Ϊn modulaţia delta apar două tipuri de zgomote (erori) de cuantizare : zgomotul de


suprapantă, datorat variaţiei mai rapide a semnalului decât posibilitatea de urmărire a
codorului, şi zgomotul de granularitate, care apare datorită variaţiei de nivel scăzut a
semnalului. Aceste tipuri de zgomote de cuantizare sunt ilustrate în figura 2.3 :

Zgomot granular
Zgomot de
suprapantă

Figura 2.3. Tipuri de zgomot în modulaţia delta

Tehnicile de modulaţie delta adaptivă cel mai des folosite sunt modulaţia delta cu
pantă variabilă şi modulaţia delta cu adaptare instantanee.

Modulaţia delta cu pantă variabilă (CVSDM – « Continuously Variable Slope Delta


Modulation ») are o schemă de adaptare silabică în forma unui filtru digital de ordinul 1 cu o
constantă de timp mai mare de 4ms. Metoda CVSD are schema bloc din figura 2.2, în care
câştigul amplificatorului are forma :

G n =αG n −1 + f (bn −1 , bn −2 , bn −3 ) , (2.5)

unde funcţia f() ia valorile 1 sau 0 după cum bn-1, bn-2 , bn-3 sunt sau nu toate de acelaşi semn.

Modulaţia delta cu adaptare instantanee are câştigul :

Gn = Gn −1 M (bn −1 , bn −2 ) , (2.6)

unde M ia una din două valori după cum bn-1, bn-2 sunt sau nu de acelaşi semn : M va fi
supraunitar pentru predicţia de suprapantă, şi subunitar pentru predicţia de granularitate.
Deosebirea dintre cele două metode este că adaptarea silabică este mai lentă, având
ca efect micşorarea zgomotului de granularitate, dar şi creşterea zgomotului de suprapantă.
La adaptarea instantanee creşte zgomotul de granularitate, dar algoritmul se adaptează rapid
la variaţiile de suprapantă.

2.1.2. Metode şi standarde de compresie a semnalului vocal

Codarea predictivă DPCM şi cea adaptivă ADPCM descrise anterior, din cauza
faptului că ele reduc debitul de date prin codare, se folosesc de asemeni şi în procesul de
compresie a semnalului vocal. Bazată pe tehnica ADPCM, mai există o metodă de compresie
pe subbenzi numită SB-ADPCM. Lărgimea de bandă disponibilă este împărţită pe mai multe
subbenzi separate, pe care apoi este aplicat algoritmul adaptiv de modulare diferenţială a
impulsurilor în cod, crescând astfel acurateţea codării precum şi lărgimea de bandă care
poate fi transmisă. Rata de date la aceste metode variază între 64kbps şi 48kbps [Vla97].
O altă metodă de compresie este numită compresia prin transformări, în care se
urmăreşte împărţirea semnalului de la intrare în segmente sau blocuri şi obţinerea unei
transformări digitale pentru fiecare segment sau bloc de date considerat. Pentru fiecare
segment se calculează anumiţi coeficienţi de transformare, care vor condensa energia
semnalului şi vor fi transmişi pe canalul de comunicaţie.
Principiul compresiei prin transformări, ilustrat în figura 2.4, este următorul :
Dacă la intrare avem un vector N-dimensional U(1..N), cu valoare medie nulă, printr-o
transformare liniară A obţinem un vector complex V(1..N) cu componente care sunt
necorelate mutual. Componentele din vectorul V se cuantizează independent şi se transmit
pe canal. La receptor, vectorului Vc obţinut din cuantizarea lui V i se aplică o transformare
inversă B pentru a recompune aproximarea vectorului iniţial U, care este Ur.

U V Vc Ur

u(1) v(1) vc(1) ur(1)


u(2) v(2) vc(2) ur(2)
Tr A Q Tr B
. . . .
. . . .
u(N) v(N) vc(N) ur(N)

Figura 2.4. Algoritmul de compresie prin transformări

Problema care se pune în continuare este de a obţine matricile A şi B precum şi a


cuantizorului optimal Q, astfel încât valoarea medie pătratică a distorsiunii între vectorii U şi
Ur să fie minimă. Algoritmul optimal a fost găsit de către Karhunen şi Loeve, numindu-se
transformarea KL.
Algoritmul KL nefiind o transformare rapidă, se înlocuieşte în multe abordări prin alte
transformări unitare, cum ar fi transformările de tip sinus, cosinus, DFT, Hadamard sau Slant.
O tehnică des folosită atât ca metodă de compresie, cât şi ca metodă de analiză şi
sinteză a semnalului vocal este tehnica predicţiei liniare LPC (« Linear Prediction
Coding »). Tehnica se bazează pe separarea semnalului de excitaţie de semnalul
corespunzător tractului vocal, determinarea unor parametrii de aproximare numiţi coeficienţi
LPC şi transmiterea acestora pe canalul de comunicaţie. La receptor, decodorul va prelua
aceşti parametrii şi îi va reconverti în forma de undă iniţială. Calitatea obţinută cu această
metodă nu este foarte ridicată, tehnica funcţionând cu aproximaţii, dar rata de bit este mult
îmbunătăţită.
Printre metodele care folosesc tehnica predicţiei liniare amintim :
Codorul de semnal vocal folosind predicţia liniară cu cod excitat CELP (« Code
Excited Linear Prediction ») este o tehnică reprezentativă de compresie a vorbirii ; este
folosită în SUA (Standardul Federal 1016) şi poate comprima vorbirea până la 4,8 kbps.
Standardul G.728 se bazează pe o schemă de cuantizare vectorială numită predicţie
liniară cu cod excitat de întârziere mică LD-CELP (« Low Delay Code Excited Linear
Prediction »). Standardul operează la 16 kbps dar lărgimea de bandă este limitată la 3,4 kHz.
Aceste metode bazate pe LPC folosesc cuantizarea vectorială cu dicţionare de coduri
(« code books ») atât la transmiţător, cât şi la receptor. Ϊn standardul 1016, bazat pe metoda
CELP, diferenţa dintre valoarea eşantionului şi cea găsită în dicţionar e comprimată şi
transmisă împreună cu indexul valorii din dicţionar. Calitatea standardului e comparabilă cu
cea dată de metoda ADPCM.
Standardul Federal 1015 al SUA foloseşte versiunea simplă a codării liniar predictive,
care poate opera la viteze de 2,4 kbps. Din cauza aproximaţiilor în codare, calitatea este mai
slabă decât în cazul metodelor bazate pe CELP.

2.1.3. Standarde de compresie a semnalului audio de înaltă fidelitate

Ϊn ultimii ani au fost create de către diverse firme pe plan internaţional câteva
standarde de compresie foarte performante, ce se adresează nu doar semnalului vocal, ci
semnalului audio în general. Dintre acestea amintim: TrueSpeech, MPEG, FLAC,
Lernot&Hauspie SBC, IMC, Microsoft, Ogg Vorbis, Qdesign, Atrac, Voxware,etc.

Standardul MPEG este poate cel mai cunoscut la ora actuală, oferind o calitate net
superioară a sunetului. Creat de către un grup de lucru numit Moving Picture Expert Group
(MPEG), standardul a fost utilizat pentru compresia sunetului pentru televiziunea digitală.
MPEG-audio este alcătuit dintr-o familie de trei scheme de codare şi compresie. Ele se
numesc MPEG-audio nivelul 1, nivelul 2 şi nivelul 3. Complexitatea algoritmilor creşte cu
numărul nivelului, nivelul 3 fiind cel mai complex, având performanţele cele mai bune [Vla97].
Toate cele trei nivele din standardul MPEG folosesc acelaşi principiu: o combinaţie
între codarea prin transformări şi împărţirea pe subbenzi de frecvenţă. Astfel, spectrul
semnalului este împărţit în subbenzi care se codează separat într-un mod optim.

Algoritmul de compresie MPEG este mai complex decât tehnicile de codare


adaptive, oferind rate de compresie mai mari şi o calitate mai bună a sunetului. Prin acest
algoritm se pot obţine rate de compresie cuprinse între 5 :1 şi 10 :1.
Algoritmul MPEG-audio cuprinde următoarele etape :
1) Semnalul audio este convertit în domeniul frecvenţă, iar spectrul este
divizat în 32 de subbenzi separate ;
2) Pentru fiecare subbandă se calculează amplitudinea semnalului
audio şi se determină nivelul zgomotului prin folosirea unui model
psihoacustic. Funcţia acestui model este de a analiza semnalul de intrare
audio în vederea localizării zgomotului de cuantizare în spectrul frecvenţă,
pentru a putea fi mascat.
3) Ϊn final, fiecare subbandă este cuantizată funcţie de nivelul
zgomotului de cuantizare din interiorul benzii respective.
Intrare audio Banc de filtre :
Conversia
timp-frecvenţă Alocarea nivelelor Semnal codat
de cuantizare şi Formatare
Model codare
psihoacustic

Figura 2.5. Schema bloc a codorului MPEG-audio

Performanţele celor trei nivele de compresie MPEG-audio sunt următoarele:


1) Nivelul 1 este o versiune simplificată a standardului MUSICAM. El
este adecvat pentru construirea unor codoare simple, cu performanţe medii,
şi permite obţinerea unei rate de transmisie de 192 kbps pe canal audio.
2) Nivelul 2 este identic cu standardul MUSICAM, iar calitatea obţinută
este aproape echivalentă cu calitatea CD-audio. Permite o rată de 96 kbps
pe fiecare canal.
3) Nivelul 3 este cel mai performant, fiind o combinaţie între standardele
MUSICAM şi ASPEC ; el permite obţinerea unei rate de 64 kbps pe fiecare
canal audio.

Ϊn concluzie, metodele de procesare a semnalului vocal în vederea analizei sunt


diverse şi bine puse la punct de grupuri de lucru şi firme puternic dezvoltate pe plan mondial,
atât în ceea ce priveşte codarea semnalului vocal, cât şi metodele de compresie. Nu este
exclus însă ca în viitor să apară noi metode şi algoritmi performanţi mai ales în domeniul
compresiei, folosind abordări adaptive care să elimine redundanţa inerentă a semnalului
vocal, dar care să păstreze integritatea semnalului la parametrii superiori, absolut necesară în
procesul sintezei şi recunoaşterii vorbirii.

2.2. Metode de analiză a semnalului vocal

Ţinând cont că semnalul vocal este cvasistaţionar pe segmente scurte de timp, adică
îşi păstrează proprietăţile nealterate pe parcursul fiecărui interval, metodele actuale de
prelucrare a semnalului vocal folosesc aşa-numita analiză pe termen scurt. Pentru a aborda
această modalitate de analiză, semnalul vocal este împărţit în segmente cu lungimea de 10-
30 ms, pe parcursul cărora semnalul se consideră staţionar.
Extragerea informaţiei din cadrul segmentelor de timp se face folosind o funcţie
fereastră, care are rolul de ponderare a parametrilor semnalului cu accentuarea valorilor
corespunzătoare eşantioanelor din centrului ferestrei (segmentului considerat) şi diminuarea
celor corespunzătoare marginilor ferestrei. Aceasta se face în scopul obţinerii unei estimări
netezite a parametrilor, care să permită trecerea fină de la o secvenţă de parametrii la
următoarea, corespunzător segmentelor de semnal considerate. Ϊn acelaşi scop se foloseşte
şi intercalarea segmentelor pe axa timpului, în acest caz începutul unui segment
suprapunându-se peste sfârşitul segmentului anterior. Acest tip de analiză se numeşte
analiză cu fereastră glisantă [Lup04].
Funcţiile fereastră cele mai uzuale sunt : fereastra Hamming, Hanning, fereastra
cosinus. Aceste funcţii au o formă gaussiană (prezentată în figura 2.6) pentru a asigura
ponderarea valorilor centrată pe mijlocul ferestrei.

x
Figura 2.6. Funcţie fereastră utilizată în ponderare

Mai departe, analiza semnalului vocal poate fi făcută în două moduri, ţinând cont de
domeniul de analiză: în domeniul timp şi în domeniul frecvenţă. Analiza în domeniul timp
presupune determinarea proprietăţilor semnalului vocal din studierea formei de undă a
semnalului, privită ca variaţia valorilor eşantioanelor vocale în funcţie de timp. Analiza în
domeniul frecvenţă presupune determinarea spectrului de frecvenţe a semnalului şi
determinarea parametrilor doriţi pe baza formei spectrale.

2.2.1. Analiza în domeniul timp a semnalului vocal

Prin analizarea directă a formei de undă a semnalului se pot extrage următorii


parametrii: amplitudinea maximă şi medie, energia semnalului vocal, numărul trecerilor prin
zero şi frecvenţa fundamentală.

Amplitudinea semnalului ne dă informaţii despre prezenţa sau absenţa semnalului


vocal, despre faptul că semnalul este sonor sau nesonor pe segmentul considerat. Ϊn cazul
sonor (rostirea unor sunete vocalice) amplitudinea este mare, pe când în cazul sunetelor
nesonore (zgomote, rostire de consoane) amplitudinea este redusă.
Amplitudinea medie pentru N eşantioane se calculează astfel [Pic93]:


1
M ( n) =
N
∑| x(m) | w(n − m)
m =−∞
, (2.7)

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


w(n-m) este fereastra utilizată în segmentul considerat.

Energia semnalului este utilă în determinarea caracteristicilor de putere transportată


a semnalului vocal. Pentru un semnal cu valoare medie nulă, energia pe termen scurt se
defineşte astfel [Lup04]:


1
E ( n) =
N
∑[ x(n) ⋅ w(n − m)]
m =−∞
2
. (2.8)

Segmentele sonore (vocalele) au o energie medie ridicată, pe când consoanele au


energie scăzută. Pentru majoritatea fonemelor, energia se concentrează în banda de
frecvenţe între 300 şi 3000 Hz.

Numărul trecerilor prin zero este util pentru determinarea caracteristicilor de


frecvenţă în interiorul unui segment de timp. Numărul trecerilor prin zero se calculează astfel
[Pic93]:

N −1

∑[1 − sgn( s(n + 1)T ) ⋅ sgn( s(nT ))] , (2.9)


NTZ = n =0

2
unde sgn(n) este funcţia semn:

+1, n ≥ 0
sgn( n) =  . (2.10)
−1, n < 0
Numărul trecerilor prin zero este o caracteristică ce se foloseşte în recunoaşterea
vorbirii, precum şi în determinarea caracterului sonor/nesonor. Ϊn interiorul segmentelor
sonore numărul trecerilor prin zero este mai redus, în timp ce în segmentele nesonore acest
parametru este mai ridicat.

Frecvenţa fundamentală este un parametru deosebit de important folosit atât în


sinteza cât şi în recunoaşterea vorbirii. Frecvenţa fundamentală corespunde cu periodicitatea
semnalului vocal. Determinarea acestui parametru nu se poate face întotdeauna cu
exactitate, din cauza variabilităţi semnalului vocal chiar pe porţiuni scurte de timp. Rostirea
vocalelor prezintă o frecvenţă fundamentală ce poate fi determinată, pe când consoanele,
care sunt rostiri neperiodice, nu au frecvenţă fundamentală.
Dintre metodele uzuale de determinare a frecvenţei fundamentale a semnalului vocal
amintim următoarele:

A. Metoda autocorelaţiei

Metoda se bazează pe calculul funcţiei de autocorelaţie a semnalului vocal, care ne


dă informaţii despre interdependenţa temporală a eşantioanelor. Funcţia de autocorelaţie se
defineşte astfel [Sto84]:

N −k −1
Rn ( k ) = ∑[ x(m + n) w(m)][ x(n + m + k ) w(m + k )]
m =0
. (2.11)

unde x(n) este valoarea eşantionului de semnal, iar


w(m) este funcţia fereastră utilizată.

Funcţia de autocorelaţie prezintă maxime la intervale de timp egale cu perioada


semnalului. Determinarea acestor maxime şi măsurarea distanţei dintre ele conduce la
determinarea frecvenţei fundamentale a semnalului.

B. Metoda funcţiei diferenţă de amplitudine medie

Metoda se bazează pe calculul funcţiei diferenţă de amplitudine medie, care are


expresia [Sto84]:

N −1
1
D (n) =
N
∑| s
k =0
k − s k −n | , cu 0 ≤ n ≤ N − 1 . (2.12)

Funcţia diferenţă de amplitudine medie D(n) prezintă minime la distanţă egală cu


perioada semnalului, şi are avantajul că se poate calcula mai rapid decât funcţia de
autocorelaţie.

C. Metoda cu limitare centrală

Metoda urmăreşte simplificarea calculelor prin reţinerea în procesul de calcul doar a


eşantioanelor de semnal ce depăşesc în valoare absolută o anumită valoare de prag. Apoi
semnalul se accentuează în felul următor: valorile pozitive se adună cu valoarea de prag, iar
din cele negative se scade valoarea de prag P:

x( n) + P, x (n) > 0


x(n) =  (2.13)
x( n) − P, x (n) < 0

Ϊn varianta metodei cu limitare infinită, valorile pozitive se înlocuiesc cu o valoare


maximă, iar cele negative cu o valoare minimă.
După faza de accentuare, se calculează funcţia de autocorelaţie definită anterior, ale
cărei maxime se vor putea determina mult mai uşor.
De asemeni, se poate utiliza cu bune rezultate o metodă combinată în care după
limitarea centrală se aplică metoda funcţiei diferenţă de amplitudine medie.

2.2.2. Analiza în domeniul frecvenţă a semnalului vocal

Analiza în domeniul frecvenţă a semnalului presupune descompunerea semnalului în


componente de frecvenţă cunoscută, cum este cazul analizei Fourier, sau în componente a
căror comportare în frecvenţă este cunoscută, cum e cazul analizei bazate pe filtre digitale.
Parametrii obţinuţi în urma descompunerii semnalului în componente diferă de cazul analizei
în domeniul timp, cele două abordări fiind complementare. Principalele metode folosite în
cadrul analizei în domeniul frecvenţă sunt [Lup04]: analiza prin banc de filtre, analiza Fourier,
analiza LPC, analiza cepstrală şi analiza perceptuală.

A. Analiza prin banc de filtre digitale

Analiza prin banc de filtre digitale are ca scop descompunerea semnalului în benzi de
frecvenţă şi determinarea ponderii componentelor din aceste benzi în semnalul iniţial, de
unde se va putea trage o concluzie asupra comportării în frecvenţă a semnalului vocal.
Schema bloc a unui astfel de analizor este dată în figura 2.7 [Lup04]:

x1(n)
Transformare
FTB 1
neliniară

x2(n)
Transformare
FTB 2
neliniară
x(n)
. .
. .
. .

xN(n)
Transformare
FTB N
neliniară

Figura 2.7. Schema bloc a analizorului cu banc de filtre

Semnalul iniţial x(n) este descompus în N benzi de frecvenţă prin intermediul filtrelor
trece-bandă FTB1...FTBN. Fiecare bandă este supusă apoi unei transformări neliniare pentru
deplasarea spectrului către domeniul frecvenţelor joase. Vectorii rezultaţi 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 operatori matematici (netezire, normalizare). Deseori se foloseşte calculul
energiei vectorilor rezultaţi pentru a determina ponderea lor în alcătuirea semnalului iniţial.

B. Analiza Fourier
Analiza Fourier este cea mai răspândită metodă de analiză a semnalului vocal pentru
că ea oferă imaginea completă a componentelor semnalului pe scara frecvenţei, rezultând
astfel spectrul de frecvenţe asociat. Analiza Fourier se bazează pe proprietatea unui semnal
periodic de a putea fi descompus în componente sinusoidale, aşa cum va fi expus în capitolul
2 al prezentului referat.
Această metodă de analiză se bazează pe calculul transformatei Fourier discrete, de
forma [Mat01]:

N −1
X ( k ) = ∑x( n)e − j 2πnk / N , k = 1,2,...,N , (2.14)
n =0

unde: x(n) reprezintă eşantioanele de semnal,


X(k) este valoarea componentei k din spectrul de frecvenţe,
N este numărul de eşantioane considerate, iar
j este unitatea imaginară.

Calculul se face în domeniul complex, rezultând pentru fiecare componentă X(k)


două valori reale corespondente:
- modulul sau amplitudinea: Ak= |X(k)| , respectiv
- faza: φk=arg(X(k)).
În practică se foloseşte mai mult spectrul amplitudinilor, sau spectrul de putere al
semnalului. Aceasta deoarece urechea umană e mai puţin sensibilă la spectrul de faze al
unui semnal vocal.
Cum pentru fiecare k e necesar calculul sumei (2.11) cu N valori, rezultă o
complexitate a algoritmului de calcul de forma O(N2). Pentru rapidizare sunt disponibili diverşi
algoritmi, dintre care cei mai cunoscuţi sunt algoritmii FFT („Fast Fourier Transform”-
Transformata Fourier Rapidă) cu decimare în frecvenţă sau decimare în timp. Algoritmul FFT
se bazează pe calculul recursiv al valorilor spectrale [Tod05] şi reduce complexitatea
algoritmului la O(Nlog2N).
Pe baza aflării spectrului de frecvenţe se pot determina o serie de parametrii specifici,
cum ar fi anvelopa spectrală sau forma şi valoarea formanţilor, ce ne dau informaţii despre
comportamentul în domeniul frecvenţei a semnalului pe segmentul de timp considerat.
Formanţii – maximele locale ale anvelopei spectrale- vor fi pe larg prezentaţi în capitolul
dedicat procesării semnalului vocal din cadrul acestui referat.
Ϊnainte de calculul spectrului, semnalul poate fi prelucrat printr-un filtru trece-sus,
realizându-se aşa-numita preaccentuare a semnalului. Această operaţie este efectuată în
scopul accentuării componentelor de frecvenţă ridicată, care de regulă sunt atenuate în
procesul vorbirii de către sistemul fonator [Lup04].

C. Analiza prin predicţie liniară

Analiza prin predicţie liniară sau analiza LPC („Linear Prediction Coding”) este o
metodă eficientă de determinare a unor parametrii recursivi ai semnalului vocal, care se vor
putea folosi în cadrul procesului de sinteză sau recunoaştere a vorbirii. Analiza prin metoda
LPC se bazează pe modelul producerii vorbirii prezentat în figura 2.8:

F0 Parametrii
G tractului vocal

s(n)
Filtru variabil
Excitaţie H(z)

Figura 2.8. Modelul producerii vorbirii prin metoda LPC


Modelul LPC al producerii vorbirii este generat în concordanţă cu producerea
sunetului de către sistemul fonator uman. 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 sunetul
produs (tren de impulsuri periodice pentru cazul vocalelor sau zgomot alb în cazul
consoanelor). Pentru un semnal de excitaţie periodic, se furnizează frecvenţa fundamentală
F0 ca parametru de intrare în generator.
Semnalul de excitaţie este apoi amplificat cu un factor G (numit câştigul modelului) şi
trecut printr-un filtru variabil având funcţia de transfer H(z). Filtrul variabil modelează
comportamentul tractului vocal din cadrul sistemului fonator, şi va produce la ieşire semnalul
scontat s(n). Filtrul este controlat pe baza unor parametrii care sunt coeficienţii LPC {a k}.
Parametrii sunt calculaţi pentru fiecare segment de vorbire de aproximativ 10-30 ms.

Funcţia de transfer a filtrului are expresia [Tod05]:

G G
H ( z) = p
=
A( z ) , (2.15)
1 − ∑ a k z −k
k =1

unde: G este câştigul filtrului, iar


ak sunt coeficienţii de predicţie LPC.

Câştigul se poate determina pe baza erorii de predicţie dintre semnalul calculat cu


ajutorul filtrului recursiv şi semnalul original. Pentru calculul parametrilor ak există mai multe
metode, dintre care cele mai cunoscute sunt metoda autocorelaţiei (prin algoritmul Levinson-
Durbin) şi metoda covarianţei.
Metoda de analiză prin predicţie liniară LPC are avantajul că necesită efort
computaţional relativ redus, rezultând un set de parametrii ce aproximează bine
comportamentul semnalului în domeniul frecvenţă. Analiza LPC determină simplificarea
spectrului 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 mijloace specifice inteligenţei artificiale,
cum ar fi reţelele neuronale. Totodată, analiza LPC este utilă şi în cazul sintezei de voce,
generând reducerea volumului de date în condiţiile menţinerii inteligibilităţii vocii.

D. Analiza cepstrală

Analiza cepstrală este o metodă ce derivă din analiza Fourier, şi se utilizează pentru
determinarea unor parametrii ai semnalului vocal utili mai ales în procesul recunoaşterii
vorbirii [Tod05]. Modelul acustic pe care se bazează analiza cepstrală este asemănător cu
modelul LPC şi este prezentat în figura 2.9:

s(n)
Excitaţie Filtru variabil
e(n) h(n)

Figura 2.9. Modelul producerii vorbirii prin metoda cepstrală

Semnalul vocal s(n) este produs de către un semnal de excitaţie e(n) corespunzător
corzilor vocale din sistemul fonator, care este filtrat de către un filtru variabil având răspunsul
la impuls h(n), ce corespunde tractului vocal. Avem astfel:

s ( n) = e( n) ⊗h( n) , (2.16)

unde: s(n) e semnalul rezultat;


e(n) – excitaţia;
h(n) – răspunsul filtrului.

Dacă translatăm ecuaţia (2.13) în domeniul frecvenţă, se poate scrie:


S ( f ) = E( f ) ⋅ H ( f ) . (2.17)

Prin logaritmare obţinem:

log S ( f ) = log E ( f ) + log H ( f ) . (2.18)

Din ecuaţia (2.15) rezultă posibilitatea separării excitaţiei sonore de influenţa tractului
vocal, de aici rezultând şi modul de calcul al cepstrumului [Gav00]:

Semnal vocal Transformata Transformata Cepstrum


Log
Fourier Fourier inversă

Figura 2.10. Modul de calcul al cepstrumului

Astfel:
- se calculează mai întâi spectrul S(f) al semnalului prin transformata Fourier;
- se aplică logaritmul;
- se aplică transformata Fourier inversă pentru a determina cepstrumul în domeniul
timp.

Analiza cepstrală ne oferă informaţii atât despre excitaţia sonoră, permiţând


estimarea frecvenţei fundamentale a semnalului, cât şi despre influenţa tractului vocal,
ducând la calculul spectrului netezit al semnalului vocal. Componentele cepstrale inferioare
(corespunzătoare unui segment de timp de la 0 la 2ms) permit estimarea frecvenţei
fundamentale prin determinarea maximului funcţiei cepstrale pe acest segment de timp.
Pentru calculul spectrului netezit se folosesc componentele cepstrale superioare, cărora li se
aplică din nou transformata Fourier.
De asemenea, se mai poate calcula un set de parametrii numiţi coeficienţi cepstrali
LPC, derivaţi direct din coeficienţii LPC. Formulele de calcul pentru aceşti parametrii sunt
[Fur01]:

c1 = −a1
n −1
k (2.19)
c n = −a n − ∑ (1 − ) ⋅ a k c n −k , 1 < n ≤ p
k =1 n
n −1
k
c n = −∑ (1 − ) ⋅ a k c n −k , n > p ,
k =1 n

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


cn sunt coeficienţii cepstrali LPC.

Coeficienţii cepstrali s-au dovedit a fi un set de parametrii mai robuşti decât


coeficienţii simpli LPC, utilizănd-se cu succes mai ales în procesul de recunoaştere a vorbirii
sau a vorbitorului [Lup04].

E. Analiza perceptuală
Acest mod de analiză este adaptat după modul de funcţionare al sistemului
perceptual auditiv al omului, şi anume după faptul că sesizarea diferitelor tonalităţi ale
sunetelor se face pe o scară logaritmică în interiorul urechii, proporţional cu frecvenţa
fundamentală a sunetului. Astfel, răspunsul urechii umane este neliniar în raport cu
frecvenţa, ea detectând diferenţe mici de frecvenţă mai uşor la frecvenţe joase decât la
frecvenţe înalte [Lup04].
Din acest motiv au fost adoptate diferite scări neliniare de frecvenţă, pentru care se
va calcula spectrul semnalului. Cele mai cunoscute sunt scara de frecvenţă Bark şi scara
Mel. Ambele sunt scări cu comportare logaritmică obţinute prin studii realizate asupra
percepţiei umane.
Există două metode de lucru în cadrul analizei perceptuale: analiza PLP şi analiza
cepstrală Mel.
Analiza PLP („Perceptual Linear Prediction”) foloseşte scara perceptuală Bark, fiind
o combinaţie între metodele de analiză Fourier şi LPC. Etapele de analiză în cadrul metodei
PLP cuprind [Her90]:
- calculul spectrului FFT prin transformata Fourier;
- aliniere spectrală după scara Bark;
- aplicarea unui set de filtre dreptunghiulare Bark pentru emularea rezoluţiei
perceptuale a urechii umane;
- preaccentuare pentru stimularea frecvenţelor înalte;
- conversia intensitate-tărie sonoră;
- aplicarea transformatei Fourier inverse pentru obţinerea funcţiei de autocorelaţie;
- calculul coeficienţilor LPC sau cepstrali, numiţi în acest caz coeficienţi PLP.
Coeficienţii PLP de ordin inferior ne dau informaţii despre conţinutul lingvistic al
segmentului considerat (informaţii semantice), pe când coeficienţii de ordin superior sunt utili
în procesul de recunoaştere a identităţii vorbitorului [Lup04].
Analiza cepstrală Mel se aseamănă cu metoda de analiză PLP, folosindu-se în
acest caz scara de frecvenţe Mel. Spre deosebire de cazul anterior, acum se foloseşte un set
de filtre triunghiulare Mel pentru a descompune semnalul pe benzile de frecvenţă asociate cu
scara Mel. Apoi pe fiecare bandă se calculează energia medie şi se aplică transformata
cosinus pentru a obţine un set de coeficienţi numiţi coeficienţi MFCC („Mel Frequency
Cepstral Coefficients”).
Coeficienţii MFCC au dat bune rezultate în procesul de recunoaştere a vorbirii, mai
ales în combinaţie cu setul de parametrii delta specificaţi de către Furui în [Fur01].

Ϊn concluzie, metodele de analiză a semnalului vocal utilizate în prezent sunt


numeroase, fiecare prezentând variante specifice şi beneficiind de aportul interesului şi
studiilor a numeroşi cercetători de pe mapamond. Aceste metode de analiză s-au dovedit
utile atât în sinteza de voce cât şi în recunoaşterea semanticii vorbirii sau a identităţii
vorbitorului.
Ca o observaţie, se poate spune că metodele de analiză au fost utilizate
distinct pe cele două domenii: domeniul timp şi domeniul frecvenţă. Pentru viitor, se
estimează astfel că o abordare în paralel a analizei pe cele două domenii va putea constitui o
bază de plecare mai robustă atât pentru sinteza de voce de calitate superioară, cât şi pentru
generarea unor sisteme performante de recunoaştere a vorbirii.
III. Metode de sinteză şi recunoaştere a vocii

3.1. Sinteza vorbirii

Sinteza semnalului vocal constă în generarea automată a semnalului vocal artificial.


In ultimii ani această tehnologie s-a implementat pentru mai multe limbi. Deocamdată nu s-a
reuşit obţinerea unui semnal vocal sintetizat pe care ascultătorul să nu reuşească să-l
deosebească de semnalul vocal natural.
In funcţie de domeniul de analiză abordat, metodele de sinteză a vorbirii se împart în
două categorii: metode de sinteză în domeniul timp şi metode de sinteză în domeniul
frecvenţă.
Metodele de sinteză în domeniul timp realizează concatenarea directă a formelor de
undă stocate în prealabil în baza de date vocală. Cele mai simple sintetizatoare bazate pe
aceste metode nu utilizează parametrizarea unităţilor acustice, utilizând direct forma de undă
a semnalului în domeniul timp.

Modelul general al acestui tip de sinteză este ilustrat în figura următoare:

Unităţi Formă de undă


Rostire codificată
Baza de date
acustice
vocală
CODIFICARE

Unităţi Secvenţe de
Text forme de undă Rostire
lexicale

SINTEZA

Figura 3.1. Modelul sintezei în domeniul timp

In cadrul acestui model, într-o primă fază de codificare şi înregistrare a formelor de


undă, unităţile acustice de tipul silabelor, fonemelor, demifonemelor, se înregistrează dintr-o
rostire preliminară a unui vorbitor. Ele se vor înregistra ca forme de undă cu o anumită
codificare (de exemplu PCM) într-o bază de date vocală.
In faza de sinteză propriu-zisă, după separarea unităţilor lexicale din textul de sintetizat
(unităţi lexicale care trebuie să fie de acelaşi tip cu unităţile acustice preînregistrate), se va
urmări punerea în corespondenţă cu unităţile acustice din baza de date vocală şi
reconstituirea secvenţelor de undă asociate. Apoi printr-un proces de concatenare a
secvenţelor de undă se va genera rostirea propriu-zisă.
Avantajul major al acestor metode de sinteză prin concatenare în domeniul timp este
reprezentat de calitatea aproape naturală a vocii sintetizate. Dintre dezavantaje se pot aminti
o cantitate importantă de resurse folosite în procesul memorării formelor de undă, dar şi
dificultăţile legate de modificarea prozodiei vorbirii.
Cele mai cunoscute metode de sinteză în domeniul timp sunt:
- metoda PSOLA, ce foloseşte principiul compunerii de segmente vocale care se
întrepătrund, şi
- metoda bazată pe corpus, ce foloseşte o bază de date (corpus vocal) de dimensiuni mari
în scopul producerii unei vorbiri de calitate cât mai naturală.
Metodele de sinteză în domeniul frecvenţă realizează sinteza vocală pe baza unor
parametrii acustici generaţi în urma aproximării unor caracteristici spectrale din domeniul
frecvenţă. Astfel, pentru a realiza sinteza unui text, mai întâi se generează parametrii acustici
corespunzători rostirii, şi apoi sunt generate formele de undă ale semnalului vocal [Bur96].

Modelul general al sintezei vorbirii în domeniul frecvenţă este următorul:

Unităţi Generare Baza de date


Rostire parametrii
acustice parametrizată
ANALIZA

Unităţi Secvenţe de Generare forme


Text lexicale parametrii de undă

SINTEZA

Rostire
Figura 3.2. Modelul sintezei în domeniul frecvenţă

In faza de analiză a sintezei din domeniul frecvenţă, unităţile acustice separate din
rostirea preliminară sunt parametrizate în funcţie de caracteristicile spectrale ale semnalului
vocal. Parametrii sunt apoi înregistraţi în baza de date şi indexaţi în scopul unei regăsiri facile.
In faza de sinteză, unităţile lexicale (cuvinte, silabe, foneme) din textul de sintetizat
sunt transformate în secvenţe de parametrii regăsiţi din baza de date parametrizată.
Parametrii acustici sunt ajustaţi în funcţie de prozodia cerută, iar pe baza lor vor fi generate
formele de undă corespondente.

Avantajul metodelor bazate pe sinteza în domeniul frecvenţă constă în primul rând din
posibilitatea realizării facile a aspectelor de prozodie (ritm, accent, intonaţie) prin calculul şi
generarea corespunzătoare a parametrilor acustici şi spectrali. Un alt avantaj rezultă din
faptul că în baza de date se păstrează nu formele de undă, ca în cazul metodelor din
domeniul timp, ci parametrii acustici, ceea ce duce la o mare economie de resurse de
memorie şi computaţionale.
Ca dezavantaj se poate aminti faptul că parametrizarea rostirii de la intrare în faza de
analiză duce la aproximarea semnalului vocal şi ca urmare în faza de reconstrucţie a
semnalului de la ieşire vorbirea rezultată va avea o calitate ‚sintetică’, depărtându-se de
vorbirea naturală.

Ca exemple de metode ce utilizează analiza semnalului vocal în domeniul frecvenţă


putem aminti:

- metoda de sinteză prin predicţie liniară (LPC – Linear Prediction Coding), ce utilizează
pentru generarea semnalului vocal o serie de parametrii numiţi coeficienţi de predicţie;
- metoda de sinteză formantică, ce utilizează informaţiile despre formanţii spectrali în
procesul generării unităţilor acustice.
În continuare se prezintă trei metode cu rezultate bune în sinteză, două în domeniul timp
-metoda TD-PSOLA şi metoda bazată pe corpus, a treia în domeniul frecvenţă: metoda LPC.

3.1.1. Metoda de sinteză TD-PSOLA

Numele metodei constituie un acronim pentru „Time Domain – Pitch Synchronous


Overlapp and Add”, adică metoda în domeniul timp ce foloseşte suprapunerea şi compunerea
formelor de undă sincron cu frecvenţa [Dut93].
Metoda comportă două faze principale, care sunt comune şi altor metode: faza de
analiză şi faza de sinteză.
In faza de analiză se împarte semnalul original în segmente de durată mică (de obicei
având ca durată dublul perioadei fundamentale a semnalului 2T0), segmente care nu sunt
separate, ci se suprapun. Aceste segmente se aleg sincron cu frecvenţa (numită „pitch”).
Pentru aceasta, aici în faza de analiză se aleg nişte indicatori de fecvenţă numiţi „pitch
marks”, ce vor indica centrul segmentului corespunzător din cadrul semnalului vocal.
In faza de sinteză se calculează durata şi frecvenţa de bază a semnalului din cadrul
segmentului considerat. In funcţie de aceşti parametrii, ţinând cont şi de indicatorii „pitch
markers” stabiliţi în faza de analiză, segmentul vocal se rearanjează pe axa timpului,
modificându-şi frecvenţa fundamentală, dilatându-se sau contractându-se temporal dacă cum
este necesar.
In final semnalul sintetizat rezultă prin compunerea segmentelor vocale ce se
suprapun („Overlap and Add”). Aici va trebui avut grijă la îmbinarea segmentelor, pentru a nu
apărea discontinuităţi spectrale deranjante în vorbirea sintetizată.

Modelare matematică :

Modelul metodei de sinteză TD-PSOLA este ilustrat în următoarea diagramă:

(x1, p1) (X1, P1)


(x2, p2) (X2, P2)
x(n) . . X(n)
Extragerea . Mapare . Overlap
segmentelor . .
. .
(xn, pn) (Xm, Pm)

ANALIZA Segm. suprapuse SINTEZA Segm. mapate

Figura 3.3. Metoda de sinteză TD-PSOLA

Faza de analiză porneşte de la semnalul original x(n), şi printr-un procedeu special de


segmentare, se vor obţine segmentele suprapuse (adică segmente care se intersectează pe
axa timpului): x1, x2, ... xn . Corespunzător fiecărui segment se aleg indicatorii de frecvenţă
„pitch marks”: p1, p2, ... , pn . Indicatorii de frecvenţă se pot alege la mijlocul segmentului sau
la valoarea maximă a intensităţii de semnal.
Segmentele suprapuse xi(n) („overlapping segments”) vor fi extrase prin aplicarea unei
funcţii fereastră segmentului original [Bur97]:

xi(n) = x(n) h(n-pi) , (3.1)

unde h(n) este funcţia fereastră, iar


pi este indicatorul de frecvenţă pentru segmentul i.
Semnalul original va fi atunci regăsit ca o sumă de segmente vocale suprapuse:

x(n) = xi(n) , (3.2)

unde simbolul reprezintă o sumă de intervale care se suprapun („overlapping


sum”).

In faza de sinteză va avea loc un proces de mapare a setului de segmente s={x i(n)}
determinate anterior într-un alt set de segmente S={Xi(n)}. Segmentele Xi(n) se numesc
segmente mapate sau repoziţionate, setul S fiind un subset sau supraset al lui s, fiind
constituit din segmentele xi(n) repoziţionate pe axa timpului.
S este un subset al lui s dacă există elemente x i(n) din semnalul original care nu vor fi
utilizate în compunerea semnalului sintetizat. Dacă, dimpotrivă, în faza de sinteză se vor
utiliza dubluri ale segmentelor originale, atunci S se va constitui într-un set extins (supraset)
al lui s.

Maparea segmentelor se va face în următorul mod:

 xi (n) → X i (n)

 Fi → Fi
A S
(3.3)
 D A → DS
 i i

unde: - xi(n) sunt segmentele suprapuse iniţiale,


- Xi(n) sunt segmentele mapate sau repoziţionate
A S
- Fi , Fi reprezintă frecvenţele de bază ale segmentului cu indicele i în faza
de analiză, respectiv sinteză, iar
A S
- Di , Di reprezintă durata segmentului i în faza de analiză, respectiv
sinteză.

Ultima fază reprezintă sinteza propriu-zisă, în care are loc compunerea segmentelor
mapate Xi(n) printr-un proces de suprapunere (overlapping):

X(n) = Xi(n) , (3.4)

unde X(n) reprezintă semnalul sintetizat de la ieşire, iar


xi(n) reprezintă segmentele repoziţionate în urma fazei de mapare.

In figura 8 se arată modul de segmentare a unui semnal şi de repoziţionare pe axa


timpului a segmentelor extrase. Să presupunem că avem un semnal x(t) care prezintă vârfuri
de intensitate la perioada T0.
In faza de analiză, vom extrage două segmente x1(t) şi x2(t) de perioadă 2T0 centrate în
vârfurile de intensitate, aşa cum se observă din figură. Cele două segmente se suprapun pe
axa timpului de-a lungul unei perioade de semnal T0, şi corespund cu două maxime succesive
de intensitate ale semnalului original.
Fiecare segment va avea un indicator de frecvenţă „pitch mark” ales ca un punct de
referinţă pe axa timpului al segmentului respectiv. Acesta se poate alege în orice poziţie în
interiorul segmentului. In cazul nostru, vom alege poziţia sa la mijlocul segmentului,
corespunzând chiar maximului de intensitate al semnalului.
După extragerea segmentelor din semnalul iniţial, acestea vor fi ponderate prin
intermediul unei funcţii fereastră special alese (de obicei se aleg funcţiile Blackman, Hanning
sau Hamming). Ponderarea cu funcţia fereastră are ca scop aplatizarea formei de undă la
capetele segmentului pentru a nu denatura semnalul original, care trebuie să se regăsească
prin compunerea segmentelor extrase, conform relaţiei (2).
Urmează faza de sinteză, în care va avea loc procesul de mapare al segmentelor.
Maparea reprezintă o repoziţionare pe axa timpului a segmentelor extrase, în funcţie de
modificările parametrilor prozodici, şi anume a frecvenţei şi duratei semnalului.
In cazul în care se doreşte modificarea frecvenţei semnalului pentru a schimba
tonalitatea (înălţimea) vocii, segmentele iniţiale trebuie deplasate pe axa timpului. Deplasarea
în avans determină mărirea frecvenţei (T1 < T0 , unde T1 este noua perioadă ), iar întârzierea
segmentului determină micşorarea frecvenţei (T1 < T0 ), situaţie care este ilustrată în figura 14.
Dacă se doreşte modificarea duratei semnalului sintetizat pentru a schimba ritmul
vorbirii, frecvenţa va trebui să rămână aceeaşi pentru a nu altera tonalitatea vocii. De
asemenea, în acest caz nu trebuie modificată lungimea segmentului considerat, pentru că
aceasta ar duce implicit la modificarea frecvenţei semnalului. Schimbarea duratei se va face
doar prin adăugarea, respectiv omiterea unor perioade întregi ale formei de undă, cu alte
cuvinte unele segmente vor fi dublate, iar altele omise în cadrul semnalului sintetizat.
Maparea, adică repoziţionarea segmentelor pe axa timpului, se va face astfel: mai întâi
se determină noua frecvenţa şi durată a semnalului. Cunoscând noua durată se determină
segmentele care vor intra în compunerea semnalului sintetizat. Pentru aceste segmente, pe
baza noilor frecvenţe, se calculează poziţiile indicatorilor de frecvenţă „pitch marks” de-a
lungul axei timpului. Apoi eşantioanele de semnal se deplasează în poziţia indicată de fiecare
dintre aceste referinţe.
In final, segmentele repoziţionate vor fi îmbinate pentru a recompune semnalul
sintetizat. Pe porţiunile comune ale segmentelor, semnalul va trebui normalizat. Normalizarea
se face prin medierea pătratică a amplitudinilor celor două segmente:

x1 ( n) + x 2 ( n)
x ( n) = (3.5)
x12 (n) + x 22 (n)
SEMNALULO
RIGINAL
x(t)

x1(t) SEGMENTELE
EXTRASE
p1(t)
T0

x2(t)
p2(t)

x1(t) T0

p1(t)
SEGMENTELE
PONDERATE

x2(t)

p2(t)

T1 > T0

X1(t) SEGMENTELE
MAPATE
p1(t)

X2(t)
p2(t)

Figura 3.4. Extragerea şi maparea segmentelor în sinteza TD-PSOLA


Avantajele şi dezavantajele metodei TD-PSOLA:

Metoda asigură o calitate superioară a sintezei rezultată în urma utilizării segmentelor


de vorbire extrase direct din vorbirea umană reală. Modul de alegere a segmentelor centrate
pe maximul de intensitate sonoră asigură erori minime datorate compunerii segmentelor
suprapuse. Astfel, erorile vor putea apare doar la capetele intervalelor, unde semnalul sonor
are energie mică [Dut93], [Edg96].
De asemenea, un alt avantaj major al metodei constă în posibilitatea modificării facile a
frecvenţei şi duratei de semnal, ceea ce asigură schimbarea prozodiei semnalului vocal
sintetizat şi implicit creşterea calităţii sintezei.
Ca dezavantaje, trebuie totuşi menţionate zgomotele care pot apărea la capetele
intervalelor de segment, datorită erorilor introduse de mediere. De asemenea, în interiorul
tranziţiilor pot apărea distorsiuni cauzate de erorile de fază, unele porţiuni nesonore putând
deveni sonore în urma compunerii segmentelor suprapuse.

Imbunătăţiri ale metodei:

Pentru a elimina o parte din neajunsurile metodei, au fost încercate diferite abordări
sau îmbunătăţiri. Cele mai cunoscute sunt LP-PSOLA şi MBROLA.
Tehnica LP-PSOLA („Linear Prediction PSOLA”) este o combinaţie între alogoritmul
de sinteză LPC şi algoritmul PSOLA. Metoda separă excitaţia de semnalul corespunzător
tractului vocal într-un mod asemănător metodei prin predicţie liniară LPC, folosind
minimizarea erorii e(t) a semnalului de predicţie (eroare ce se mai numeşte semnal rezidual).
Apoi algoritmul PSOLA se aplică doar pe acest semnal rezidual, care are proprietatea de a fi
decorelat în interiorul fiecărui segment considerat [Edg96].
Avantajul care apare din această abordare constă în controlul mult mai bun asupra
structurii spectrale a semnalului, precum şi în calitatea mult îmbunătăţită a tranziţiilor dintre
segmente.
Metoda MBROLA („Multiband Resynthesis Overlap and Add”), proiectată în cadrul
Facultăţii politehnice din Mons, Belgia, are avantajul de a netezi discontinuităţile spectrale ce
apar în TD-PSOLA. Metoda lucrează şi ea în domeniul timp, folosind o bază de date vocală
normalizată şi interpolări la capetele intervalelor de sinteză. Metoda este implementată în
cadrul unui sintetizor de voce care primeşte la intrare un fişier cu parametrii prozodici şi
produce vorbirea sintetizată pe baza concatenării difonemelor din baza de date vocală
[Dut93].

3.1.2 Metoda de sinteză bazată pe corpus

Metoda bazată pe corpus este o metodă relativ nouă (bazele teoretice ale metodei s-
au dezvoltat în anii 1996-1997), ce elimină unele deficienţe ale sistemelor de concatenare ce
folosesc unităţi lexicale fixe (foneme, difoneme). Metoda îmbunătăţeşte calitatea semnalului
sintetizat prin utilizarea unor segmente fonetice cât mai lungi, ştiut fiind faptul că sistemele
care folosesc îmbinări frecvente ale unităţilor lexicale pierd mult din naturaleţea vorbirii
[Hun96], [Mob00].
Metoda utilizează un corpus vorbit (o bază de date cu înregistrări din vorbirea naturală)
de dimensiuni relativ mari. În timpul sintezei se vor selecta cele mai lungi unităţi (segmente)
fonetice din acel corpus pentru generarea vorbirii. Aceasta va duce pe de o parte la
reducerea numărului de concatenări şi implicit la creşterea calităţii vorbirii, iar pe de altă parte
la reducerea necesităţilor de prelucrare a semnalului vocal prin utilizarea tehnicilor DSP (de
prelucrare digitală a semnalului)

Problemele care trebuie rezolvate aici sunt [Mob00]:

1. Măsurarea distanţelor acustice între unităţi pentru alegerea segmentelor fonetice celor mai
potrivite.
Baza de date va conţine mai multe unităţi fonetice corespunzătoare unui anumit segment
lingvistic (de exemplu o mulţime de foneme „a”, o mulţime de silabe „ma”, etc.), iar dintre
acestea va trebui selectată doar o singură unitate, ce se potriveşte cel mai bine contextului
vorbirii.
2. Construirea optimă a bazei de date vocale în raport cu domeniul lingvistic, din punct de
vedere al vocabularului şi limbajului folosit.
De obicei se folosesc baze de date vocale ce conţin mai multe ore de vorbire înregistrată.
Baza de date este marcată pentru a ţine cont de caracteristicile prozodice.
3. Acordarea trăsăturilor unităţilor ce se concatenează. Aici se folosesc două tipuri de
trăsături: segmentale şi prozodice.
Trăsăturile segmentale se referă la concatenarea a două segmente din context lingvistic
apropiat. Astfel, este de urmărit să se concateneze două segmente cu trăsături spectrale
cât mai apropiate pentru a asigura o tranziţie cât mai fină între unităţi.
Trăsăturile prozodice se referă la concatenarea a două unităţi integrate pe aceeaşi linie
prozodică, pentru a nu apărea salturi în intonaţia şi melodicitatea vorbirii.

Algoritmul de selecţie al unităţilor acustice [Mob00] :

În vederea selectării unităţilor fonetice din baza de date vocală se va lua în


considerare minimizarea a două tipuri de costuri: costul pentru distorsiunea unităţilor („Target
Cost”) şi costul pentru distorsiunea concatenării („Concatenation Cost”).

Costul pentru distorsiunea unităţilor „Target Cost” calculează distanţele acustice


dintre unităţile candidat din baza de date vocală şi unităţile ţintă care apar în textul de
sintetizat:

TC = D( UC , UT ) , (3.6)

unde:
- TC = Target Cost;
- UC reprezintă unitatea candidat;
- UT este unitatea ţintă.

Costul pentru distorsiunea concatenării „Concatenation Cost” calculează distanţele


spectrale dintre cele două unităţi care se concatenează. Distanţele spectrale se calculează în
punctul de concatenare:

CC = D( UN , UN+1 ) , (3.7)

unde:
- CC = Concatenation Cost;
- UN şi UN+1 reprezintă două unităţi fonetice succesive din semnalul sintetizat.

Adnotarea bazei de date vocală:

Unităţile acustice din baza de date vocală se adnotează prin vectori de trăsături
multidimensionali, ce conţin proprietăţile segmentale şi prozodice ale semnalului vocal.
Proprietăţile segmentale (din interiorul unităţilor fonetice) se referă la parametrii
lingvistici şi de semnal din segmentul considerat.

Parametrii lingvistici pot fi:


- fonemele asociate unităţii acustice L[i];
- contextul lingvistic al unităţii fonematice C[i].
-
Parametrii de semnal se referă la:
- frecvenţa fundamentală F0;
- durata D;
- amplitudinea de semnal A(n);
- coeficienţii spectrali X(n).
Proprietăţile prozodice ţin cont de prozodia segmentală, care este legată de
accentuarea silabelor din interiorul unui cuvânt, precum şi de prozodia suprasegmentală,
legată de intonaţia şi modul de rostire al propoziţiilor. Proprietăţile prozodice sunt:
- conturul frecvenţei fundamentale ΔF(n);
- conturul amplitudinii de semnal ΔA(n);
- modificarea duratei segmentului ΔD.

Astfel, vectorul de trăsături corespunzător unităţii fonetice este de forma:

VT = [ L[i], C[i] - F0, A(n), D, X(n) - ΔF(n), ΔA(n), ΔD ] (3.8)

unde:
- VT reprezintă vectorul de trăsături al unităţii fonetice;
- L[i], C[i] reprezintă parametrii lingvistici ai unităţii;
- F0, A(n), D, X(n) reprezintă parametrii de semnal;
- ΔF(n), ΔA(n), ΔD reprezintă parametrii prozodici ai segmentului considerat, toţi
parametrii având semnificaţia indicată mai sus.

Potrivirea unităţilor candidat cu unităţile ţintă [Hun96], [Mob00]:

Potrivirea unităţilor candidat cu unităţile ţintă se face la run-time, astfel:

Pentru distorsiunea unităţilor (Target Cost) se compară trăsăturile ce derivă din


textul de sintetizat cu trăsăturile unităţilor din baza de date vocală. Nu se iau în calcul toate
trăsăturile care apar în vectorul de trăsături (relaţia 8), ci doar cele care se pot determina run-
time. De exemplu, pentru unităţile ţintă, ce derivă din textul de intrare, nu se pot determina
parametrii de semnal.

ma

ma
Text ma Baza de date
ma vocală
ma

[VT-ţintă] [VT-candidat]

Figura 3.5 Potrivirea unităţii fonetice cu unităţile candidat

Pentru distorsiunea de concatenare (Concatenation Cost) se iau în considerare


toate trăsăturile unităţilor candidat. Acestea sunt integrate în baza de date, fiind calculate în
cadrul unui proces off-line.

ma şi na
ma şi
na
ma şi
na
ma şi na

[VT (`ma`)] [VT (`şi`)] [VT (`na`)]

Figura 3.6. Potrivirea unităţilor de concatenat


În vederea calculării costurilor, fiecare unitate din baza de date va fi asociată cu o stare
într-un graf. Fiecare stare are asociat un Target Cost, iar fiecare tranziţie în graf are asociat
( i +1) k
un Concatenation Cost. In figura 4.5, Tij reprezintă costul unităţii Target Cost, iar C ij
reprezintă costul concatenării Concatenation Cost:

T11 C1121 T21


21
C1122 C12

C1222
S T12 T22 F
21 23
C 13 C
11
C1322 C1223
C1323
T13 T23

Figura 3.7. Calculul costurilor pentru selecţia unităţilor

De exemplu în cazul folosirii silabelor ca unităţi fonetice de bază, nodurile grafului


conţin toate variantele de silabe din baza de date care sunt asociate cuvântului căutat. Astfel,
pentru cuvântul “maşină”, prima coloană a grafului conţine toate variantele din baza de date
pentru silaba « ma », a doua coloană conţine variantele silabice pentru « şi », iar a treia
coloană – silabele « nă ». Fiecare silabă sau nod în graf are asociat un cost de unitate care
exprimă calitatea şi proprietăţile prozodice ale unităţii (silabei), iar tranziţiile în graf au
asociate un cost de tranziţie sau concatenare, care exprimă calitatea îmbinării dintre două
silabe.
Selecţia optimă a unităţilor pentru sinteza textului dorit va fi echivalentă cu găsirea căii
care minimizează costul total al parcurgerii grafului. Costul total are expresia :

N
COST = ∑(Tij + Cij( i +1) k ) , j =1, ni ; k =1, ni +1
i =1
(3.9)

unde :
- COST este costul total al parcurgerii grafului;
- i este indicele de nivel al grafului
- N este numărul total de nivele
- j exprimă indicele unităţii curente alese de pe nivelul i ;
- k exprimă indicele unităţii alese de pe nivelul următor (i+1) ;
- ni este numărul de noduri de pe nivelul i ;
- Tij este costul unităţii curente de pe nivelul i ;
- C ij( i +1) k este costul de tranziţie dintre unitatea curentă şî unitatea următoare .

Aşadar algoritmul de găsire a căii din graf care minimizează acest cost va duce la
selecţia optimă a unităţilor (numită în literatură « unit selection »).
Calculul costurilor; măsuri ale distanţelor dintre unităţi [Mob00] :

Există două metode pentru calculul costurilor (Target Cost Tij , respectiv Concatenation
( i +1) k
Cost Cij ) din graful stărilor: metoda “Weight Space Search” şi metoda “Context
Clustering”.

1. Metoda “Weight Space Search” (căutare în spaţiul stărilor)

Metoda calculează spaţiul total de ponderi (costuri) din graf prin intermediul unei
abordări de tip analiză-sinteză. Astfel, se iau diferite texte de intrare care se sintetizează prin
toate posibilităţile de combinare a unităţilor din baza de date. Apoi textul se rosteşte propriu-
zis de către un vorbitor uman, şi apoi se calculează distanţele dintre rostirea sintetizată şi
rostirea naturală.
Distanţele calculate în interiorul unităţilor dau costul unităţii (Target Cost), iar distanţele
calculate în vecinătatea punctelor de concatenare dau costurile de tranziţie (Concatenation
Cost).
Pentru calculul distanţelor se poate folosi distanţa euclidiană cepstrală, calculată pe
baza parametrilor de semnal ai unităţilor acustice.

∑(ci −ci ' )


2
D= , (3.10)
i

unde:
- D este distanţa euclidiană cepstrală ;
- Ci, respectiv Ci’ sunt coeficienţii cepstrali ai segmentelor acustice comparate.

Pe lângă distanţele cepstrale se pot folosi diferenţe perceptuale între semnalul


sintetizat şi rostirea naturală, şi de asemeni se pot calcula predictori perceptuali care să
cuantifice calitatea rostirii sintetizate prin concatenarea a două unităţi.

Metoda “Weight Space Search” este o metodă care dă rezultate bune, dar are
dezavantajul că este necesar un număr mare de rostiri pentru calculul ponderilor. Metoda
următoare nu necesită rostiri suplimentare pentru determinarea acestor ponderi, folosind
distanţe bazate pe similarităţi acustice:

2. Metoda “Context Clustering” (Gruparea unităţilor în funcţie de context)

Metoda se bazează pe construirea unor arbori de decizie (« decision tree clustering »)


care grupează în clase de echivalenţă toate apariţiile fonematice din baza de date. O clasă de
echivalenţă conţine toate apariţiile unei foneme din baza de date care se referă la acelaşi
context lexical.
In exemplul 1 pentru fonema « a », celor trei contexte lexicale diferite le sunt asociate
trei clase de echivalenţă, fiecare clasă conţinând costuri asociate fiecărei apariţii ale fonemei
în contextul respectiv din baza de date :

[a] : Clasa 1. « masă » : Ctx=[ms] ; Costuri: [T11, CC11], ..., [T1n , CC1n];
Clasa 2. « casă » : Ctx=[cs] ; Costuri: [T21, CC21], ..., [T2n , CC2n];
Clasa 3. « fată » : Ctx=[ft] ; Costuri: [T31, CC31], ..., [T3n , CC3n];
.....

Exemplul 1. Clase de echivalenţă pentru fonema « a »

In acest exemplu, Ctx indică apariţia contextuală a fonemei, Tij este costul unităţii
(Target Cost), CCij este costul de concatenare (Concatenation Cost), aici fiind luate în
considerare ponderile asociate contextului stânga, respectiv dreapta al fonemei. Arborele de
decizie asociat acestui exemplu cu trei clase de echivalenţă este următorul:

Ctx=[ms] Ctx=[cs] Ctx=[ft]

T11, CC11 T21, CC21 T31, CC31

T1n , CC1n T2n , CC2n T3n , CC3n

Figura 3.8. Arborele de decizie pentru fonema “a”

In interiorul clasei de echivalenţă pentru o anumită fonemă, costurile se păstrează ca


nişte măsuri de similaritate acustică. Astfel, pentru costul unităţii (Target Cost) se calculează
o distanţă spectrală a segmentului faţă de un segment de referinţă ales din interiorul clasei,
iar pentru costul de concatenare (Concatenation Cost) - o distanţă spectrală calculată în
punctele de concatenare, relativă la acelaşi segment de referinţă.
Dacă în cadrul unui cuvânt de sintetizat, pentru o anumită fonemă nu se găseşte o
clasă de echivalenţă corespunzătoare contextului dorit, se va folosi aceeaşi fonemă dar dintr-
o altă clasă de echivalenţă (dintr-un alt context), iar costurile se vor interpola pe baza
ponderilor existente. La fel se va proceda şi în cazul în care nu este disponibilă o fonemă cu
caracteristicile prozodice de genul dorit.
Selecţia unităţilor de concatenat se face pe baza arborilor de decizie fonematici,
folosind costurile de unitate şi de concatenare pentru fonemele componente. Funcţiile de cost
TC (Target Cost) şi CC (Concatenation Cost) sunt minimizate folosind un algoritm de
programare dinamică. Secvenţa de foneme care minimizează costul global pe toată
propoziţia va fi secvenţa optimă de concatenat.
Avantajul metodei Context Clustering este acela că baza de date cu unităţile acustice
e organizată off-line, reducându-se astfel timpul de calcul în timpul sintezei (run-time).

Algoritmul metodei bazată pe corpus vocal

In rezumat, algoritmul metodei bazată pe corpus este următorul (se va exemplifica


pentru abordarea Context Clustering) :

A. Faza de analiză :

1. Se înregistrează baza de date vocală ;


2. Baza de date este segmentată în unităţi acustice de diferite lungimi;
3. Baza de date se adnotează cu informaţiile contextuale, prozodice şi de semnal,
calculându-se vectorii de trăsături ai unităţi acustice ;
4. Se construiesc arborii de decizie bazaţi pe clasele de echivalenţă ;
5. Se calculează costurile Target Cost şi Concatenation Cost şi se introduc în arborii
de decizie.

B. Faza de sinteză :

1. Se preia textul de la intrare şi se determină unităţile lexicale (propoziţii, cuvinte,


silabe şi foneme);
2. Se determină toate posibilităţile de construire a propoziţiilor pe baza unităţilor
lexicale componente ;
3. Pentru fiecare secvenţă de unităţi lexicale se determină informaţia de context şi
caracteristicile prozodice ;
4. Se caută în arborii de decizie secvenţa optimă de unităţi acustice
corespunzătoare contextului lexical;
5. Se sintetizează rostirea prin concatenarea unităţilor acustice din baza de date.

Avantajele şi dezavantajele metodei bazate pe corpus :

Metoda bazată pe corpus este o metodă de sinteză a vorbirii de calitate înaltă, folosind
concatenarea unităţilor acustice maximale care se găsesc înregistrate într-un corpus vocal.
Calculul vectorilor de trăsături ale unităţilor în faza de analiză ce se realizează off-line,
definirea unor ponderi care să asigure concatenarea unităţilor optime, includerea trăsăturilor
prozodice în calculul costurilor, reducerea sau chiar anularea nevoii de procesare a
semnalului vocal, toate acestea reprezintă caracteristi-cile şi totodată avantajele cele mai
importante ale metodei.
Ca dezavantaje sunt de menţionat necesitatea înregistrării, normalizării şi întreţinerii
unui corpus vocal de dimensiuni mari, precum şi faza de analiză laborioasă necesară
adnotării bazei de date cu caracteristici prozodice şi segmentale, aceste aspecte putând
reprezenta provocări majore pentru cei care vor să abordeze metoda bazată pe corpus.

3.1.3 Sinteza bazată pe predicţie liniară

Termenul de predicţie liniară a fost introdus prima dată de către N. Wiener (în 1966),
această tehnică fiind folosită într-o gamă largă de aplicaţii. În domeniul cercetării semnalului
vocal, această tehnică a fost folosită prima dată de către Itakura şi Saito (în 1968) şi Atal şi
Schroeder (în 1968), pentru analiza şi sinteza semnalului vocal.
Importanţa predicţiei liniare constă în faptul că, sursa de semnal vocal şi
caracteristicile ei spectrale pot fi reprezentate în mod exact şi eficient de un număr mic de
parametri. În plus, aceşti parametri se obţin prin calcule relativ simple.
La început această tehnică a fost dezvoltată cu scopul de a coda semnalul vocal, iar
mai apoi a devenit foarte importantă în analiza şi sinteza acestuia.
Această metodă de sinteză este cunoscută sub denumirea de sinteză LPC (Linear
Predictive Coding synthesis) şi face parte din categoria sistemelor de analiză-sinteză a
semnalului vocal (analysis by synthesis systems).
Într-un sistem de analiză-sinteză, unda vocală este sintetizată folosind o sursă de
excitaţie şi parametri de articulaţie, care au fost în prealabil extraşi cu ajutorul unui circuit care
modelează mecanismul de producere al vorbirii. Modelul sistemului fonator pe care se
bazează metoda analizei şi sintezei prin predicţie liniară este modelul ‘sursă-filtru’, model
prezentat în figura următoare:

F0 Parametrii
G tractului vocal

s(n)
Filtru variabil
Sursă H(z)

Figura 3.9. Modelul producerii vorbirii prin metoda LPC

Modelul LPC al producerii vorbirii este generat în concordanţă cu producerea


sunetului de către sistemul fonator uman. 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 sunetul
produs (tren de impulsuri periodice pentru cazul vocalelor sau zgomot alb în cazul
consoanelor). Pentru un semnal de excitaţie periodic, se furnizează frecvenţa fundamentală
F0 ca parametru de intrare în generator.
Semnalul de excitaţie este apoi amplificat cu un factor G (numit câştigul modelului) şi
trecut printr-un filtru variabil având funcţia de transfer H(z). Filtrul variabil modelează
comportamentul tractului vocal din cadrul sistemului fonator, şi va produce la ieşire semnalul
scontat s(n). Filtrul este controlat pe baza unor parametrii care sunt coeficienţii LPC {a k}.
Parametrii sunt calculaţi pentru fiecare segment de vorbire de aproximativ 10-30 ms.

Funcţia de transfer a filtrului are expresia [Tod05]:

G G
H ( z) = p
=
A( z ) , (3.11)
1 − ∑ a k z −k
k =1

unde: G este câştigul filtrului, iar


ak sunt coeficienţii de predicţie LPC.

Câştigul se poate determina pe baza erorii de predicţie dintre semnalul calculat cu


ajutorul filtrului recursiv şi semnalul original. Pentru calculul parametrilor ak există mai multe
metode, dintre care cele mai cunoscute sunt metoda autocorelaţiei (prin algoritmul Levinson-
Durbin) şi metoda covarianţei.

Astfel, metoda de sinteză LPC are ca obiectiv estimarea parametrilor unui sistem
susceptibil de a genera un semnal artificial cât mai apropiat de semnalul original. În cazul
acestei metode de sinteză, semnalul sintetizat poate fi văzut ca şi o combinaţie liniară a p
eşantioane precedente la care se adaugă şi efectul semnalului de excitaţie.
Un aspect important în analiza prin predicţie liniară este alegerea numărului de
coeficienţi de predicţie p. Acesta depinde de frecvenţa de eşantionare a semnalului: de
exemplu la o frecvenţă de eşantionare de 8 kHz se vor lua în calcul 10 –12 poli. De
asemenea numărul coeficienţilor utilizaţi este în strânsă corelare cu eroarea de predicţie.
Astfel s-a observat că eroarea de predicţie scade o dată cu creşterea numărului de coeficienţi
de predicţie luaţi în calcul.
Cu ajutorul sintezei prin predicţie liniară se poate obţine o voce sintetizată de calitate
destul se bună. Totuşi, datorită modelului - numai poli - folosit în această metodă de sinteză,
în cazul sunetelor nazalizate de exemplu, modelarea spectrală a formanţilor este de o calitate
mai slabă. În astfel de situaţii, sintetizorul LPC produce frecvent vârfuri spectrale (spectral
peaks ) a căror lăţime de bandă este prea mare, acest lucru concretizându-se în vocea
sintetizată prin apariţia unui bâzâit (‘buzzines’ ).
Pentru îmbunătăţirea determinării funcţiei de transfer a tractului vocal se pot calcula
şi zerourile pe lângă polii spectrali. Astfel, este posibilă transformarea unui pol în zerou, printr-
o dezvoltare în serie şi de asemenea, în mod asemănător se poate elimina un zerou spectral.
Această soluţie este însă incompatibilă cu cerinţa de compresie a datelor , respectiv cu
cerinţa de reducere a debitului de informaţie.

3.2. Recunoaşterea vorbirii

Recunoaşterea vorbirii este procesul de extragere automată a informaţiei lingvistice


conţinută de o undă vocală folosind calculatoare sau circuite electronice. Informaţia
lingvistică, cea mai importantă informaţie din semnalul vocal, se mai numeşte şi informaţie
fonetică. Într-un sens mai larg, recunoaşterea vorbirii include şi recunoaşterea vorbitorului,
ceea ce implică extragerea informaţiilor individuale caracteristice persoanei care vorbeşte.
Metodele de recunoaştere automată a vorbirii sunt studiate de multă vreme, cu
scopul principal de a realiza sisteme de interacţiune om-maşină. Prima lucrare ştinţifică
referitoare la recunoaşterea vorbirii a fost publicată în 1952 şi descria dispozitivul Audrey al
firmei Bell Labs. Acesta realiza recunoaşterea cifrelor. De atunci cercetările legate de
recunoaşterea vorbirii s-au intensificat, apărând între timp primele sisteme conversaţionale
om-maşină. Un astfel de sistem este compus dintr-un sintetizor şi un dispozitiv care
realizează recunoaşterea vorbirii. Această configuraţie dă rezultate foarte bune datorită
faptului că erorile pot fi detectate cu ajutorul auzului şi corectate imediat.

3.2.1. Avantajele recunoaşterii vorbirii

Ca şi sintetizoarele vocale, dispozitivele care realizează recunoaşterea vorbirii au


patru avantaje specifice ([Fur01]):

1. Comanda vocală este uşor de realizat deoarece nu implică eforturi deosebite,


cum este cazul scrisului sau lucrului cu butoane.
2. Vocea introduce informaţiile de trei până la patru ori mai repede decât maşinile
de scris şi de opt până la zece ori mai repede decât scrisul de mână.
3. Informaţia poate fi introdusă chiar şi când utilizatorul se mişcă sau face alte
activităţi care implică folosirea mâinilor, picioarelor, ochilor sau urechilor.
4. Costurile introducerii informaţiei sunt mici, deoarece implică folosirea unui
microfon sau telefon. Mai mult, pentru o comandă de la distanţă se pot folosi
reţelele telefonice existente sau Internetul.

În ciuda acestor avantaje, recunoaşterea vorbirii are şi unele puncte slabe. De


exemplu, conversaţia nu este tipărită şi este necesară anularea zgomotului în condiţiile unui
mediu zgomotos.

3.2.2. Dificultăţi întâmpinate în procesul recunoaşterii vorbirii

Dificultăţile întâmpinate în procesul recunoaşterii vorbirii sunt:

1. Probleme legate de coarticulare.

Spectrul unui fonem într-un cuvânt sau într-o propoziţie este influenţat de fonemele
vecine ca o consecinţă a coarticulării. Un astfel de spectru este foarte diferit de acelea ale
fonemelor izolate sau ale silabelor deoarece organele articulatorii nu se mişcă la fel în
vorbirea continuă ca şi în cazul rostirilor izolate. Cu toate că această problemă poate fi
evitată în cazul recunoaşterii de cuvinte izolate folosind cuvinte ca şi unităţi lingvistice de
bază, performanţele recunoaşterii continue depind de gradul de rezolvare al acestui
obstacol. În acest din urmă caz, dificultăţile sunt date de omisiunile din vorbire, cauzate
de o rostire rapidă, în care vorbitorul leagă cuvintele împreună „înghiţind” unele silabe.

2. Dificultăţi în segmentare.

Spectrul se schimbă continuu de la o fonemă la alta datorită interacţiunilor dintre ele.


Spectrul semnalului vocal poate fi comparat cu un şir de litere scris de mână. În ambele
cazuri este dificil de determinat marginile fonemei. Cu toate că consoanele nesonore pot
fi segmentate relativ uşor pe baza variaţiei spectrale, nu acelaşi lucru se poate spune şi
despre sunetele sonore.

3. Caracteristicile individuale şi alţi factori care cauzează variabilitatea semnalului vocal.

Caracteristicile acustice variază de la vorbitor la vorbitor chiar şi în cazul aceluiaşi


cuvânt rostit. Acest fapt se datorează diferenţelor care apar între modalităţile de rostire,
cât şi organelor articulatorii. Pentru ca lucrurile să fie mai complicate, foneme diferite
rostite de vorbitori diferiţi pot avea acelaşi spectru. Sistemele de transmisiuni sau
zgomotul afectează de asemenea caracteristicile fizice ale vocii.

4. Cunoştinţe lingvistice insuficiente.

Caracteristicile fizice ale semnalului vocal adesea nu conţin suficientă informaţie


fonetică în şi despre ele. Vorbirea în propoziţii se bazează pe anumite reguli sintactice pe
baza cărora ascultătorul poate prezice următorul cuvânt. Ceea ce se cunoaşte în
momentul actual legat de structura lingvistică a rostirilor nu ne permite să modelăm
mecanismul de folosire a constrângerilor lingvistice în perceperea vorbirii.

3.2.3. Clasificarea sistemelor de recunoaştere a vorbirii

Recunoaşterea vorbirii se poate clasifica în recunoaştere de cuvinte izolate, caz în


care sunt identificate cuvinte rostite individual, şi recunoaştere continuă, în care sunt
recunoscute secvenţe rostite în mod continuu. Recunoaşterea vorbirii continue se împarte la
rândul ei în două părţi: transcriere şi înţelegere.
Recunoaşterea de cuvinte izolate are drept scop final recunoaşterea corectă a
fiecărui cuvânt rostit, în timp ce recunoaşterea continuă a vorbirii urmăreşte înţelegerea
sensului propoziţiilor. Ca urmare, în acest din urmă caz este nevoie de cunoştinţe lingvistice
puternice.
Dintr-un alt punct de vedere recunoaşterea vorbirii continue se poate clasifica în
recunoaştere independentă de vorbitor şi recunoaştere dependentă de vorbitor. Sistemele din
prima categorie pot recunoaşte rostiri ale oricărei persoane, în timp ce în cel de-al doilea caz,
referinţele (modelele) sunt altele pentru fiecare vorbitor.
Ca şi referinţe (modele) se poate utiliza o gamă largă de unităţi lingvistice, începând
cu fonemele şi terminând cu cuvintele. Când sunt folosite cuvintele, semnalul de intrare
digitizat este comparat cu fiecare dintre referinţe, până când este găsită una care se
potriveşte. Algoritmii bazaţi pe foneme în schimb, analizează intrarea ca pe un şir de sunete
pe care îl convertesc în cuvinte cu ajutorul unui dicţionar bazat pe pronunţie.
Când sunt folosite cuvintele ca şi unităţi lingvistice de bază procentul de recunoaştere
este ridicat deoarece este evitată problema coarticulării între cuvinte. Un vocabular mare
necesită mai multă memorie şi mai multe calcule, făcând antrenarea destul de dificilă. De
asemenea, cuvintele ca şi unităţi lingvistice, nu pot rezolva problema coarticulării în cazul
vorbirii continue. Folosirea fonemelor ca şi referinţe nu măreşte cu mult necesităţile de
memorie şi nici numărul de calcule, iar antrenarea poate fi făcută mai eficient. Mai mult decât
atât, poate fi luată în consideraţie şi coarticularea în interiorul cuvintelor şi între cuvinte.
Deoarece nu au fost stabilite încă reguli pentru coarticulare, sunt necesare mai multe foneme
ca şi unităţi lingvistice în funcţie de context.
Alegerea celor mai potrivite unităţi lingvistice pentru recunoaşterea vorbirii depinde de
tipul recunoaşterii (dacă e recunoaştere de cuvinte izolate sau de vorbire continuă) şi de
mărimea vocabularului.

3.2.4. Recunoaşterea continuă a vorbirii

Cele mai complexe sisteme de recunoaştere sunt cele care realizează recunoaşterea
continuă a vorbirii. În acest caz utilizatorul rosteşte un mesaj, iar sistemul trebuie să fie
capabil să-l înţeleagă. Printre problemele dificile de rezolvat se numără: determinarea
capetelor rostirii (vorbitorul vorbind într-o manieră liberă, fără constrângeri), efectele datorate
coarticulării sau funcţionarea în condiţii de zgomot.
Procesul de recunoaştere a vorbirii are la bază o căutare al cărei scop este găsirea
unei secvenţe de cuvinte care are probabilitatea cea mai mare de a fi generat semnalul vocal
de la intrarea sistemului. Căutarea se face pe baza aşa – numitelor ”surse de cunoştinţe”.
Acestea pot fi: un dicţionar care conţine cuvintele care pot fi recunoscute, fiecare cuvânt fiind
reprezentat ca şi o secvenţă de foneme, un model lingvistic, care ataşează o anumită
probabilitate fiecărei secvenţe de cuvinte şi un model acustic, care modelează relaţia dintre
vectorii de parametri şi foneme.
Figura 3.2.1. Structura unui sistem de recunoaştere a vorbirii.

Procesul de recunoaştere poate fi modelat ca şi un sistem de comunicaţie împărţit în


patru etape (Figura 3.2.1): generare text, producere vorbire, procesare acustică şi decodare
lingvistică. Vorbitorul se presupune a fi un traductor care transformă în vorbire textul
gândurilor pe care intenţionează să le comunice interlocutorilor. Din punctul de vedere al
sistemului de comunicaţie gândurile sunt sursa de informaţie. Conform teoriei informaţiei,
secvenţa de date se transmite pe un canal, care acţionează asupra structurii ei. În cazul
sistemului de recunoaştere canalul acustic este format din partea de producere a vorbirii şi
cea de procesare acustică. La intrarea canalului avem secvenţa de cuvinte W, care la ieşire
este convertită în secvenţa de observaţii acustice Y, decodată mai apoi în secvenţa estimată
de cuvinte Ŵ , cu ajutorul decodorului lingvistic. Se poate scrie că

Wˆ = arg max P (W | Y ) . (1)


w

Ţinând cont de regula lui Bayes, ecuaţia de mai sus se transformă în

P (Y | W ) P (W )
Wˆ = arg max .
w P (Y )
(2)

Cum P(Y) este independent de W regula de decodare bazată pe o estimare de tip


maximum aposteriori este

Wˆ = arg max P (Y | W ) P (W ) .
w
(3)

Primul termen din dreapta ecuaţiei de mai sus corespunde modelului acustic şi
estimează probabilitatea unei secvenţe de observaţii acustice pe baza unui şir de cuvinte. Cel
de-al doilea termen corespunde modelului lingvistic şi descrie probabilitatea unei secvenţe de
cuvinte. Astfel de modele pot conţine constrângeri sintactice şi semantice în funcţie de
cerinţele sistemului de recunoaştere. Când sunt folosite numai constrângeri semantice
modelul lingvistic se numeşte gramatică.

3.2.5. Modele Markov cu stări ascunse aplicate în recunoaşterea vorbirii

Pentru implementarea recunoaşterii vorbirii avem nevoie de un model cu ajutorul


căruia să putem descrie condiţiile în care se produce vorbirea. Modelul este util atât pentru
procesarea semnalelor (de exemplu eliminarea zgomotului) cât şi pentru identificarea sursei
care le-a generat, fără a dispune de informaţii despre ea. Mai mult decât atât, modelele pot
rezolva probleme complexe de predicţie, recunoaştere sau identificare.
În domeniul semnalelor electrice, domeniu din care fac parte şi semnalele vocale,
există două tipuri de modele: dinamice şi stochastice. Modelul dinamic presupune extragerea
caracteristicilor semnalului. De exemplu, un semnal sinusoidal este complet determinat de
către amplitudinea, frecvenţa şi faza sa. Modelul stochastic se bazează pe caracteristicile
statistice ale semnalului ca urmare a variaţiilor aleatoare ale unora dintre parametrii săi. Astfel
de modele descriu procese aleatoare caracterizate de repartiţii de tip Poisson sau Gauss sau
de procese Markov.
Vorbirea este un proces aleator, deci pentru modelarea ei este mai adecvat să
construim un model stochastic. Modul de prelucrare al semnalului vocal în cadrul unei sesiuni
de recunoaştere include însă şi o modelare dinamică: separarea semnalului vocal în cadre de
scurtă durată şi determinarea caracteristicilor acestora.Vorbirea fiind constituită dintr-o
succesiune de astfel de cadre se poate spune că modelul nostru stochastic este compus
practic dintr-o succesiune de modele dinamice, care depind unul de altul din punct de vedere
statistic. Un limbaj nu este o succesiune aleatoare de sunete. Probabilitatea ca după un
model dinamic anume, cunoscut, să urmeze un alt model dinamic cunoscut se poate stabili
empiric prin observaţii repetate.
Vorbirea este alcătuită din succesiuni de foneme. Fiecare dintre aceste foneme poate
fi privită ca şi o stare a unui proces. În concluzie, succesiunea de foneme este o succesiune
de stări. Deci vorbirea poate fi descrisă de un model cu mai multe stări. La trecerea dint-o
stare în alta se emite un simbol (fonemă) care poate fi observat. Trecerea dintr-o stare în alta
este aleatoare, dar numai într-o anumită măsură, deoarece după o fonemă oarecare poate
urma o alta dintr-un grup restrâns. Avem de-a face deci cu un model statistic, cunoscut în
literatura de specialitate sub denumirea de model Markov.

Modelele Markov cu stări ascunse pot fi împărţite în modele discrete şi modele


continue, în funcţie de natura observaţiilor ataşate fiecărei stări.

Un HMM discret este caracterizat de următoarele mărimi:

1. O mulţime de N stări S={s1,s2,...,sN}. În fiecare moment t modelul se află în una


din aceste stări, care va fi notată cu qt.

2. O mulţime de K simboluri V={v1,v2,…,vk}. În fiecare moment modelul generează


un simbol din această mulţime, notat cu Ot.

3. Matricea tranziţiilor între stări - A, care conţine probabilităţile de tranziţie între


două stări:

N
A = {aij } , unde a ij = P (qt +1 = s j | qt = s i ) , i, j =1... N şi ∑a
j =1
ij =1 (4)

4. Matricea probabilităţii de emisie a simbolurilor – B, formată din probabilităţile de


emisie ale fiecărui simbol din mulţimea V, în fiecare stare din mulţimea S:

B = {bi (v k )} , unde bi (v k ) = P(Ot = v k | q t = si ) ,


K
i =1... N , k =1... K şi ∑b (v
k =1
i k ) =1
(5)

5. Matricea stărilor iniţiale - π , conţinând probabilităţile de a fi în una dintre stări la


momentul iniţial:
N
π = {π i } , unde π i = P(q1 = si } , i =1... N şi ∑π
i =1
i =1 (6)

Pentru modelul în ansamblu se foloseşte notaţia: λ = {π , A, B} . Secvenţa de


observaţii se notează cu O = {O1 , O2 ,..., OT } , iar secvenţa de stări sau drumul cu
Q = {q1 , q 2 ,..., qT } .
În implementarea HMM apar trei probleme majore:

1. Problema evaluării. Dându-se secvenţa de observaţii O = {O1 , O2 ,..., OT } şi


un model λ = ( A, B, π ) , să se determine probabilitatea P (O | λ) ca secvenţa
de observaţii O să fi fost generată de modelul λ .
2. Problema alegerii secvenţei optime de stări. Fiind dată secvenţa de observaţii
O = {O1 , O2 ,..., OT } şi un model λ = ( A, B, π ) să se determine
succesiunea de stări Q = q1 q 2 ... qT ale modelului λ care a generat secvenţa
de observaţii O .
3. Problema antrenării. Presupune ajustarea parametrilor modelului λ în vederea
maximizării probabilităţii P (O | λ) .

În Figura 2 este prezentată schema unui sistem de recunoaştere a cuvintelor bazat


pe un HMM discret.
Acest tip de sistem necesită rezolvarea celor trei probleme enunţate anterior. Astfel
soluţia primei probleme este utilizată în faza de recunoaştere. Fiecărui cuvânt îi corespunde
un model λ . Recunoaşterea presupune calcularea pentru fiecare model în parte a
probabilităţii P (O | λ) , atunci când la intrare este aplicată secvenţa de observaţii O .
Modelul cu probabilitatea cea mai mare ne dă cuvântul recunoscut. Soluţia celei de-a doua
probleme ne dă secvenţa optimă de stări ale modelului, iar prin rezolvarea problemei cu
numărul trei realizăm antrenarea modelului.
Figura 3.2.2. Structura unui sistem de recunoaştere a
cuvintelor bazat pe un HMM discret.

3.2.6. Realizarea unui sistem de recunoaştere a cuvintelor izolate bazat pe


modele Markov ascunse

În cele ce urmează vom prezenta câteva detalii legate de implementarea unui sistem
de recunoaştere a cuvintelor izolate realizat de colectivul nostru:

1. Analiza spectrală.

Această primă etapă presupune extragerea coeficienţilor LPC ai semnalului vocal,


pentru fiecare semnal în parte, după următorul algoritm:

- citirea semnalului din fisier;


- preaccentuarea semnalului cu un filtru trece – sus cu funcţia de transfer
H ( z ) =1 − 0,95 z −1

- detecţia linişte – vorbire, realizată pe baza calculului energiei şi a numărului de treceri


prin zero a semnalului;
- împărţirea în cadre a semnalului cu ajutorul unei ferestre Hamming de lungime egală
cu 256 de eşantioane (pentru această implementare am utilizat un grad de acoperire
al ferestrelor de 50%);
- pentru fiecare cadru se realizează analiza LPC cu un predictor de ordinul 12;
- coeficienţii LPC ai unui semnal se salvează într-un fişier.

2. Cuantizarea vectorială.

Cuantizarea vectorială (VQ) este o generalizare a cuantizării scalare aplicată la vectori,


pe mulţimea numerelor reale. Ideea nouă adusă de VQ este saltul de la o dimensiune la mai
multe. Cuantizarea scalară este larg utilizată în conversia analog-digitală. Cuantizarea
vectorială se utilizează în sisteme sofisticate de prelucrare a semnalelor, vectorul cuantizat
reprezentând o concentraţie mare de informaţie. Un vector poate reprezenta un segment de
semnal, cum ar fi semnalul vocal, proprietăţile semnalului concentrându-se în valorile sale,
obţinute prin prelucrări specifice. Vectorul poate fi folosit pentru a coda semnalul în vederea
transmiterii, recunoaşterii, stocării, etc. Partea forte a VQ este rata de compresie mare a
informaţiei, memoria necesară pentru reţinerea semnalului reducându-se simţitor. Punctul
slab al VQ este raportul semnal / zgomot ridicat ce rezultă prin codare-decodare (20-30 dB),
dar în cazul recunoaşterii, aceasta are o importanţă mai redusă comparativ cu cîştigul ce se
obţine în termeni de memorie necesară şi timp de calcul.

2.1. Cuantizarea vectorială în recunoaşterea vorbirii

Odată obţinute caracteristicile semnalelor sub formă de vectori acustici, cuantizarea


vectorială are rolul de a-i transforma în simboluri dintr-o mulţime finită, astfel încât antrenarea
unor modele şi recunoaşterea pot decurge mai rapid.
În mod similar cuantizării scalare, cuantizarea vectorială presupune aproximarea unui
vector oarecare printr-unul dintr-un set finit de vectori - prototip (echivalenţi nivelelor de
cuantizare scalară) faţă de care se află la o distanţă minimă. Cuantizarea vectorială ca atare
trebuie precedată de construcţia mulţimii vectorilor - prototip, operaţie cunoscută sub numele
de antrenare a sistemului de cuantizare şi făcută pe baza unei mulţimi de date de
antrenament. În cazul unui sistem de recunoaştere automată a vorbirii, aceasta poate fi o
parte sau chiar toată mulţimea semnalelor utilizate pentru antrenarea sistemului. După ce
mulţimea vectorilor - prototip Pi (codebook) a fost construită şi elementele ei ordonate,
cuantizarea unui vector oarecare X va consta în înlocuirea lui prin indicele celui mai apropiat
vector - prototip:

Q ( X ) = arg min i d ( X ; Pi ) (7)

unde Q este operatorul de cuantizare, iar d(X;Q(X)) este distorsiunea de cuantizare,


minimizarea distorsiunii de cuantizare totale

D = ∑d ( x, Q( x ))
x
(8)

fiind obiectivul urmărit în construcţia mulţimii vectorilor - prototip (centroizi).


Problema construcţiei mulţimii vectorilor - prototip pentru un sistem de cuantizare
vectorială este un caz particular al problemei găsirii unei structuri de clase pentru o mulţime
de date prin algoritmi de grupare (clustering), algoritmi care la rândul lor fac parte din
categoria mai largă a metodelor de învăţare nesupervizată. Algoritmii de grupare urmăresc
construcţia pe baza datelor a unor asemenea clase, plecând de la o măsură a distanţei între
puncte din spaţiul datelor şi de la ideea că puncte apropiate trebuie să aparţină unei aceleiaşi
clase.
Algoritmii de grupare cei mai folosiţi în antrenarea sistemelor de cuantizare vectorială
a caracteristicilor semnalului vocal sunt cei de tip K-medii (K-means), din a căror categorie
face parte şi algoritmul LBG (Linde – Buzo – Gray). Algoritmul porneşte de la un dicţionar cu
un singur centroid, după care acesta se perturbă cu o cantitate mică, obţinându-se astfel doi
centroizi ş.a.m.d. până când se obţine numărul de centroizi dorit. La fiecare pas trebuie
întrunite condiţiile de convergenţă ale algoritmului Lloyd.

2.2. Obţinerea dicţionarului şi codarea vectorilor de parametri

În cazul nostru, dicţionarul se obţine cu ajutorul algoritmului propus de Linde, Buzo şi


Gray, implementat pentru 32 de centroizi. În final vom avea o matrice de 32 de linii
corespunzătoare celor 32 de centroizi şi 12 coloane corespunzătoare celor 12 coeficienţi LPC
dintr-o fereastră de analiză.
Codarea se face determinând pentru fiecare cadru de semnal centroidul
corespunzător (cel mai apropiat dintre toţi). Vectorul de coeficienţi LPC se va înlocui cu
numărul liniei corespunzătoare centroidului determinat. În acest mod semnalul se va
transforma într-o înşiruire de numere întregi cu valori între 1 şi 32. Aceste secvenţe se
salvează pentru fiecare semnal în parte.

3. Antrenarea modelelor

Pentru fiecare cuvânt în parte se antrenează un model pe baza codurilor VQ obţinute


la pasul anterior. Modelele Markov Ascunse folosite au fost de tip discret.
Matricea stărilor iniţiale se iniţializează cu 1 pe prima poziţie şi 0 în rest, iar matricea
tranziţiilor şi cea a observaţiilor se iniţializează în mod aleator cu numere subunitare pozitive,
într-o manieră stochastică (suma numerelor de pe o linie este egală cu 1). Totodată, se
stabileşte un prag pentru care se consideră că algoritmul a convers şi un număr maxim de
iteraţii necesar în atingerea acestui deziderat.
Folosind cele trei matrice iniţializate anterior se calculează pe baza algoritmului
forward – backward probabilitatea ca modelul să se afle într-o anumită stare la un moment
dat, probabilitatea ca modelul să treacă din starea Si la momentul t în starea Sj la momentul
t+1 şi logaritmul probabilităţii modelului. Pe baza acestor valori se face o estimare a noilor
matrici ale stărilor iniţiale, tranziţiilor şi observaţiilor, urmărind respectarea condiţiei de
probabilitate. Se testează convergenţa şi în caz că s-a realizat se salvează cele trei matrici în
fişierul corespunzător modelului cuvântului respectiv.

4. Recunoaşterea cuvintelor izolate

Pentru fiecare model în parte se calculează cu ajutorul algoritmului forward –


backward logaritmul probabilităţii ca acel model să fi generat cuvântul de la intrarea
sistemului. Modelul cu probabilitatea cea mai mare este desemnat câştigător.
Pentru a testa sistemul s-au realizat două experimente: unul care implică un singur
vorbitor şi unul cu doi vorbitori. Baza de date folosită a fost compusă din 200 de cuvinte (20
de rostiri ale cifrelor de la 0 la 9 prevalate de la doi vorbitori), înregistrate în format WAV.
În cazul recunoaşterii pentru un singur vorbitor, cele 100 de cuvinte corespunzătoare
unui vorbitor s-au împărţit în două seturi de câte 50, unul folosit pentru antrenare şi unul
pentru testare. Dicţionarul folosit pentru cuantizarea vectorială a fost format din 32 de vectori
de cod. Rezultatele obţinute sunt sintetizate în Tabelul 1.
Tabelul 1.

Vorbitor Procent de recunoaştere


1 91%
2 94%
În cazul a doi vorbitori, cele 200 de cuvinte s-au împărţit astfel:
- 100 de cuvinte (50 de la primul vorbitor şi 50 de la cel de-al doilea) pentru antrenare;
- 100 de cuvinte (50 de la primul vorbitor şi 50 de la cel de-al doilea) pentru testare.
Rezultatele obţinute sunt sintetizate în Tabelul 2.
Tabelul 2.

Număr centroizi Procent de recunoaştere


32 86%
64 94%
128 96%

După cum se observă, performanţele sistemului se îmbunătăţesc odată cu creşterea


numărului de centroizi, un număr de 64 fiind suficient pentru a obţine rezultate bune cu
resurse rezonabile de memorie.
Rezultatele obţinute ne îndreptăţesc să credem că Modelele Markov Ascunse sunt
implementate corect, fapt pentru care s-a trecut la conversia codului din MATLAB în C++ în
vederea folosirii în sistemul de recunoaştere final.

3.3. Sistemul Text-to-Speech

3.3.1. Caracteristicile unui sistem text-to-speech. Metode de bază folosite

Sistemul text-to-speech este sistemul care asigură realizarea unui proces complet de
conversie a unui text în vorbire continuă. In cadrul acestui proces sunt prezente două faze
distincte: faza de analiză lingvistică şi faza de generare a parametrilor acustici, aşa cum se
Text
prezintă în figură:
Tex
Generare
t- parametrii
Analiză Rostire
to- lingvistică acustici
Spe
Figura 3.3.1. Sistemul text-to-speech
ech
Text
Analiza lingvistică are ca scop determinarea unităţilor lingvistice din cadrul textului,
cum ar fi: propoziţii, cuvinte, silabe, foneme. Generarea parametrilor acustici urmăreşte
identificarea şi extragerea dintr-o bază de date vocală a parametrilor corespunzători unităţilor
lingvistice. Pe baza acestor parametrii, un sintetizor vocal va genera rostirea propriu-zisă.
Există trei metode de bază în sinteza text-to-speech: metoda bazată pe concatenarea
formelor de undă, metoda bazată pe analiză-sinteză, şi metoda bazată pe reguli [Bur97].

Metoda directă, bazată pe concatenarea formelor de undă, este cea mai simplă şi
presupune înregistrarea în baza de date vocală a sunetelor înregistrate ca atare (codificate
sau nu). Rostirea este generată prin alăturarea înregistrărilor ce corespund unităţilor
lingvistice al textului de sintetizat. Metoda este schematizată în figura următoare:

Forme de Codificare Compunerea


undă Memorare formelor de Rostire
undă

Figura 3.3.2. Metoda bazată pe concatenarea formelor de undă


Metoda directă are avantajul unei calităţi ridicate a vorbirii sintetizate, având rata
debitului de date de 64-128 kbit/s (fără codificare). Calitatea rostirii depinde de calitatea
unităţilor acustice stocate în baza de date vocală, precum şi de modul de conectare al
unităţilor acustice. In schimb este dificilă schimbarea trăsăturilor prozodice ale vorbirii: ritm,
intonaţie, accent şi timbru. Pentru reducerea dimensiunilor bazei de date, de obicei formele
de undă se codifică folosind metodele PCM sau ADPCM, rezultând astfel o rată de date de
16-32 kbit/s

In cadrul metodei bazată pe analiză-sinteză, formele de undă preînregistrate sunt


transformate în secvenţe de parametrii care se memorează în baza de date vocală. Metoda
presupune două faze distincte: faza de analiză, în care sunt generaţi parametrii din formele
de undă iniţiale, si faza de sinteză, in care se generează rostirea prin concatenarea
secvenţelor de parametrii şi trimiterea secvenţei rezultate către sintetizatorul de voce.

Metodele clasice care ilustrează această categorie sunt metoda formantică şi metoda
predicţiei liniare LPC.

In primă fază, se înregistrează unităţile acustice dintr-o rostire preliminară. Apoi se va


genera secvenţa de parametrii corespunzătoare unităţilor acustice. In cadrul metodei
formantice, secvenţa de parametrii este constituită pe baza frecvenţelor şi lăţimilor de bandă
ale formanţilor. Metoda LPC furnizează ca secvenţă de parametrii de sinteză un set de
coeficienţi de predicţie, care aproximează forma spectrală a undei sonore. In a treia fază se
concatenează secvenţele de parametrii şi se generează rostirea propriu-zisă [Bur97].

Metoda este ilustrată în figura următoare:

Secvenţă de Compunerea
Codificare
parametrii secvenţelor Rostire
Memorare
de parametrii

Figura 3.3.3. Metoda bazată pe analiză-sinteză

Analiza se bazează de obicei pe un model de producţie vocală, care este specific


metodei folosite. Astfel, unităţile sonore preînregistrate sunt analizate în conformitate cu acest
model de producţie vocală, se parametrizează şi se înregistrează în baza de date secvenţa
de parametrii corespunzătoare unitaţilor acustice. Sinteza va rezulta în urma compunerii
secvenţelor de parametrii caracteristici fiecărei unităţi.

Metoda formantică utilizează ca model de producţie vocală o secvenţă de circuite de


rezonanţă acordate pe frecvenţele formanţilor. Metoda LPC foloseşte ca model un filtru liniar
ce are la intrare un semnal de excitaţie sonor sau nesonor.

Rata debitului de date în cazul metodei bazată pe analiză-sinteză este mult mai
redusă datorită avantajului parametrizării, şi anume de 2,5-9 kbit/s.

Metoda bazată pe reguli are la intrare o secvenţă de litere sau simboluri fonematice,
un set de parametrii care modelează trăsăturile prozodice ale secvenţei (cum ar fi frecvenţa
fundamentală, amplitudinea, durata), şi un set de reguli de sinteză fonetice şi lingvistice care
specifică modalităţile de recompunere a unităţilor acustice pentru a genera rostirea [Bur97].

Metoda este ilustrată în figura următoare:

Secvenţă de Codificare
simboluri Memorare
Trăsături Codificare Generare
prozodice Memorare parametrii Rostire

Set de Codificare
reguli Memorare

Figura 3.3.4. Metoda bazată pe reguli

In baza de date se memorează parametrii caracteristici pentru unităţile elementare cu


care se lucrează (foneme, difoneme, silabe). In faza de sinteză, unităţile se vor concatena pe
baza unor reguli de concatenare. Trăsăturile prozodice (amplitudine, tonalitate, durată) se
controlează printr-un set de reguli prozodice ce se aplică pentru fiecare unitate în parte.

Calitatea sintezei depinde în acest caz atât de calitatea unităţilor elementare


înregistrate în baza de date, cât şi de modul de realizare şi performanţa regulilor prozodice şi
de concatenare [Bur97].
3.3.2. Etape procesuale în cadrul sintezei text-to-speech

Etapele procesuale ale sintezei text-to-speech se împart în două categorii de bază


[Bur97]:

1) Analiza textului de la intrare în scopul obţinerii unei reprezentări fonetice şi


prozodice a textului;
2) Transformarea reprezentării fonetice-prozodice în semnal vocal, pe baza
folosirii unor reguli de sinteză.

Analiza textului cuprinde: preprocesarea lingvistică, analiza sintactică şi lexicală,


transcrierea fonetică şi determinarea prozodiei.
Sinteza presupune generarea secvenţei de parametrii corespunzătoare textului şi
sinteza propriu-zisă a vorbirii.

Preprocesarea lingvistică este prima etapă în analiza textului de la intrare, în care


se urmăreşte aducerea textuuli la o formă normalizată. Aici se refac abrevierile (de exemplu
„Dr.” devine „doctor”), se transformă numerele care apar ca cifre în numere exprimate literar
(„1000” devine „o mie”), şi de asemenea tot în acestă fază se detectează terminatorii de
propoziţie, care vor da primele informaţii despre tipul propoziţiei (` . ` ` ? ` `! ` , ce corespund
cu o propoziţie afirmativă, interogativă, respectiv imperativă).

Analiza sintactică este necesară pentru a aduce textul la o formă corectă din punct
de vedere gramatical, ştiut fiind faptul că orice greşeală de scriere a unui cuvânt îl poate face
greu inteligibil în urma sintezei vocale. Astfel, cuvintele sunt confruntate cu modul corect de
scriere aşa cum apare de exemplu într-un dicţionar, şi de asemenea, în cazul limbii române,
se verifică şi corectitudinea inserării diacriticelor (`ă` `î` `ş` `ţ`).

Urmează etapa de determinare a unităţilor lexicale, efectuată prin intermediul unui


parser sau analizor lexical. Aici se determină unităţile textuale dorite, cum ar fi: propoziţii,
cuvinte, silabe, foneme. Dacă de exemplu se doreşte regăsirea silabelor din cadrul cuvintelor,
analizorul va trebui să fie ghidat de un set de reguli sintactice şi de despărţire a cuvintelor în
silabe, reguli specifice limbii pentru care se va realiza sinteza.

Etapa de transcriere fonetică are ca scop realizarea unei transcrieri standardizate a


fonemelor din text (grafeme), folosind un set de simboluri fonetice standardizate ( de exemplu
grupul `che` va avea transcrierea fonetică [ce], iar `ce` va avea transcrierea fonetică [c~e];
astfel sintetizatorul va şti că va trebui să folosească seturi diferite de parametrii pentru a
genera două tipuri distincte de rostire).

Urmează apoi etapa de determinare a prozodiei pentru segmentele vocale


analizate. Pe baza unor reguli prozodice specifice limbii, se va determina accentul, intonaţia
şi ritmul corect pentru fiecare unitate fonematică. Regulile prozodice se aplică atât la nivelul
suprasegmental al propoziţiilor, realizându-se un contur prozodic al propoziţiei, cât şi la nivel
segmental, în interiorul cuvintelor.

Regulile aplicate dau pentru fiecare unitate de sintetizat o anumită corecţie la nivelul
parametrilor: frecvenţă fundamentală, amplitudine şi durată, în funcţie de tipul popoziţiei
determinat în etapa de procesare lingvistică, de locul cuvântului în propoziţie, precum şi de
locul silabei sau fonemei în cadrul cuvântului.

Pe lângă prozodia lingvistică, care se determină pe baza analizei lingvistice a textului,


în ultimii ani se ţine cont tot mai mult şi de prozodia emoţională, pentru a simula stările
emoţionale pe care le poate avea un vorbitor (bucurie, teamă, linişte, etc.).

După aceste etape de analiză a textului, urmează etapele încadrate în faza de


sinteză. Prima dintre ele este etapa de generare a parmetrilor acustici pentru sinteză. Pe
baza simbolurilor fonematice care provin din etapa de transcriere fonetică şi a modificărilor
prozodice determinate pe baza regulilor privind intonaţia şi ritmul, se generează secvenţa de
parametrii corespunzătoare textului de sintetizat.

Simboluri fonetice
( a b c ...)

Baza de
Text date
Prozodie Cunoştinţe
vocală

Secvenţă de parametrii
( a1 a2 a3 ...)

Figura 3.3.5. Etapa de generare a parmetrilor acustici [Bur97]

În această etapă se folosesc cunoştinţele înmagazinate în baza de date vocală, de


unde se regăsesc parametrii de bază pentru fiecare unitate fonetică. Parametrii de bază se
vor modifica în urma alterărilor prozodice, şi apoi se vor concatena pentru a genera secvenţa
parametrică pentru întregul context propoziţional.

In continuare urmează faza de sinteză propriu-zisă, în care secvenţele de


parametrii se transformă în forme de undă care pot fi redate sonor prin intermediul unui
dispozitiv audio. Constituirea formelor de undă din secvenţa de parametrii se realizează pe
baza unor reguli de sinteză bine determinate.

Etapele procesuale ale sintezei TTS sunt ilustrate în figura următoare:


Text

Preprocesare lingvistică Text în formă normalizată

Analiză sintactică Text corect gramatical

Determinare unităţi Propoziţii, cuvinte, foneme


lexicale

Transcriere fonetică Simboluri fonetice

Determinarea prozodiei Parametrii prozodici

Generare parametrii Parametrii de sinteză


acustici

Sinteza Forme de undă

Rostire

Figura 3.3.6. Etapele procesuale ale sintezei TTS [Bur97]


3.4 Metoda de sinteză bazată pe silabe

Ca o aplicaţie a metodelor de sinteză prin concatenare, colectivul nostru a proiectat şi


implementat o metodă de sinteză pornind de la text, metodă bazată pe concatenarea
silabelor. Pentru implementarea metodei a fost necesară stabilirea unor reguli lingvistice în
faza de analiză a textului.
Metoda se rezumă la următorii paşi (fig. 1):
- analiza textului, ce cuprinde fazele de: preprocesare, analiză de sintaxă,
determinare a unităţilor lingvistice (silabele), determinare a prozodiei
intrasegmentale (accentele);
- regăsirea unităţilor acustice din baza de date vocală;
- concatenarea unităţilor;
- sinteza propriu-zisă.

Preprocesare

Analiza sintaxei

Determinarea
unităţilor lingvistice

Determinarea
prozodiei locale

Regăsirea unităţilor
acustice

Concatenarea
unităţilor

Sinteza

Figura 1. Metoda de sinteză bazată pe concatenarea silabelor

1. Preprocesarea textului

Preprocesarea textului se referă la transcrierea în formă textuală a informaţiilor din textul


iniţial care:
a) nu sunt scrise cu foneme, ci folosind alte caractere: cifre sau simboluri;
b) nu formează direct unităţi lexicale, ci prescurtări ale acestora (abrevieri).
a) Din prima categorie fac parte numerele, alcătuite din cifre, precum şi anumite simboluri
scrise cu caractere speciale, cum ar fi :

Simboluri pentru operaţiile aritmetice :


‘+’ <-> ‘plus’
’-’ <-> ‘minus’
’x’ <-> ‘ori’ <-> ‘înmulţit cu’
’ :’ sau ’/’ <-> ’supra’ <->’împărţit la’

Simboluri pentru peratorii aritmetici :


’<’ <-> ‘mai mic’
’>’ <-> ‘mai mare’
’<=’ <-> ‘mai mic sau egal’
’>=’ <-> ‘mai mare sau egal’
’=’ <-> ‘egal’
’!=’ sau ‘<>’ <-> ‘diferit’

b) Abrevierile sunt şi ele împărţite pe categorii:

Unităţi de măsură:
‘m’ <-> ‘metru’
‘g’ <-> ‘gram’
‘l’ <-> ‘litru’ ,
‘Hz’ <-> ‘herţi’
‘dB’ <-> ‘decibeli’

Prefixe reprezentând subunităţi de măsură:


‘n’ <-> ‘nano’
‘m’ <-> ‘mili’
‘c’ <-> ‘centi’
‘d’ <-> ‘deci’
‘da’ <-> ‘deca’
‘k’ <-> ‘kilo’
‘M’ <-> ‘mega’

Grade universitare:
‘asist.’ <-> ‘asistent’
‘sl.’ <-> ‘şef lucrări’
‘conf.’ <-> ‘conferenţiar’
‘prof.’ <-> ‘profesor’

Grade de armată:

‘serg.’ <-> ‘sergent’


‘plut.’ <-> ‘plutonier’
‘mai.’ <-> ‘maior’
‘căp.’ <-> ‘căpitan’
‘col.’ <-> ‘colonel’
‘gen.’ <-> ‘general’
Alte abrevieri:
‘loc.’ <-> ‘localitatea’
‘str.’ <-> ‘strada’
‘bl.’ <-> ‘bloc’
‘sc.’ <-> ‘scara’
‘ap.’ <-> ‘apartamentul’
‘tel.’ <-> ‘telefon’

Dintre toate aceste categorii de informaţii, cele mai importante şi cel mai des folosite sunt
numerele. Pentru explicitarea acestora sub formă textuală, fonematică, au fost concepute
reguli lexicale speciale. Aceste reguli ţin cont de poziţia unei anumite cifre în cadrul numărului
pentru a o denomina printr-o anumită categorie verbală :

Tabelul 1.

Indice Categorie
n=0 -
n=1 zeci
n=2 sute
n=3 mii
n=4 zeci de mii
n=5 sute de mii
n=6 milioane
n=7 zeci de milioane
...

2. Analiza sintaxei

Analiza corectitudinii textului din punct de vedere al sintaxei reprezintă al doilea pas
preliminar efectuat în vederea realizării unei sinteze de vorbire de calitate. Orice greşeală de
sintaxă care apare în textul iniţial (generată de obicei prin omiterea unei litere din cuvânt sau
de omiterea diacriticelor) va duce la sinteza unui cuvânt eronat, ceea ce va avea ca efect atât
o senzaţie de notă discordantă în rostirea globală, cât şi solicitarea unui efort din partea
auditorului de recreare mentală a cuvântului corect. Acest efort induce diminuarea atenţiei
faţă de cuvintele care urmează, şi chiar la pierderea sensului întregii propoziţii care conţine
aceste cuvinte.
Pentru a înlătura aceste dezavantaje şi a realiza o sinteză de voce de calitate
ridicată, este prin urmare nevoie de un analizor de verificare a corectitudinii sintactice a
textului. Un astfel de analizor se poate proiecta prin două metode de bază : prin construirea
unui vocabular complet pentru limba respectivă, sau prin folosirea unor reguli gramaticale
sintactice, însoţite de specificarea unor condiţii de excepţie.
Prima metodă este mai completă, dar are dezavantajul unui efort mare de construire
a unui vocabular pentru acea limbă (care poate avea mai multe zeci de mii de cuvinte),
vocabular ce trebuie să conţină şi informaţii despre construirea formei flexionate a cuvintelor
(de exemplu rădăcină sau morfemă, terminaţii pentru declinare sau conjugare).
A doua metodă necesită generarea unui set de reguli pentru regăsirea formei de
bază neflexionate a cuvintelor şi verificarea corectitudinii acestora printr-un dicţionar. Metoda
are dezavantajul unui anumit grad de necompletitudine, depinzând de numărul de excepţii
introduse în analizor.
Pentru limba română s-au construit câteva variante de vocabulare ([],[]), şi un
analizor de sintaxă integrat în produsul Microsoft Office Word. Toate aceste variante au
necesitat un volum mare de muncă din partea unor echipe întregi de lingvişti şi programatori.
Autorul a propus în această lucrare o metodă bazată pe reguli gramaticale, variantă
cu un cost de proiectare mult mai redus decât în cazul realizării de vocabulare. Metoda are ca
punct de plecare generatorul automat de analizoare LEX, alimentat de o gramatică ce
specifică regulile sintactice de flexionare a cuvintelor din limba română. Pe lângă aceste
reguli au fost introduse şi un număr de excepţii care asigură un grad înalt de completitudine în
ceea ce priveşte acoperirea formelor gramaticale din limba română.
Metoda este prezentată în figura 1. La intrare se prezintă un text cursiv ce conţine
cuvinte în limba română în diferite forme flexionate. Folosind un set de reguli sintactice de
flexionare şi un set de excepţii, analizorul LEX generează forma de bază, 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 sintaxă greşită sau care nu au fost potrivite cu setul de reguli din
LEX.
LEX

REGULI
de
TEXT flexionare
Forma de
Forma bază DICŢIONAR
flexionată neflexionată

EXCEPŢII

Figura 2. Metoda de analiză de sintaxă propusă de autori

Analizorul sintactic ia în considerare următoarele categorii sau părţi de vorbire din


limba română:
SUBSTANTIV
VERB
ADJECTIV
PǍRŢI DE VORBIRE ADVERB
ARTICOL
CONJUNCŢIE
PREPOZIŢIE
NUMERAL
PRONUME
INTERJECŢIE

Părţile principale de vorbire pot fi flexionate astfel:


Comun NOMINATIV / ACUZATIV

SUBSTANTIV Propriu GENITIV / DATIV


Diminutiv
VOCATIV

ADJECTIV NOMINATIV / ACUZATIV


ADVERB
ARTICOL GENITIV / DATIV
PRONUME
PARTICIPIU
INFINITIV
PERFECT SIMPLU
VERB PREZENT MAI MULT CA PERFECT
IMPERFECT GERUNZIU

CONJUNCTIV VIITOR

Pe lângă aceste flexionări, trebuie să se ia în considerare de asemeni şi formele de


singular/plural, articulat/nearticulat aplicabile substantivului, adjectivului, articolului şi
pronumelui.
Pentru generarea regulilor de flexionare, metoda ia în considerare terminaţiile
cuvintelor care pot apărea în diferite forme flexionate. Setul de reguli introdus în LEX este
organizat pe 10 grupe distincte, corespunzătoare celor 10 tipuri gramaticale (părţi de vorbire)
prezentate anterior. Fiecare grupă are un subset de reguli care în funcţie de terminaţia
cuvântului construiesc forma neflexionată corespunzătoare şi o transferă modulului de
verificare cu dicţionarul.

2.1. Modul de funcţionare al analizorului de sintaxă

Pentru fiecare cuvânt din textul sursă se parcurge tot setul de reguli, încercându-se
potrivirea cu fiecare clasă 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 înlocuieşte terminaţia
curentă cu forma neflexionată precizată tot de regula respectivă, apoi se declanşează
acţiunea de verificare a existenţei formei neflexionate în dicţionar. Dacă există, cuvântul se
memorează împreună cu modul de flexionare specificat de acea regulă. Modul de flexionare
cuprinde : cazul, genul, articularea, numărul persoanei – pentru substantive , iar pentru verbe
– tipul de conjugare. Apoi cuvântul se confruntă cu următoarele reguli, generându-se în final o
listă cu toate formele găsite posibile de analizor (figura 2) :
Cuvânt neflexionat C.nf C.nf
Cuvânt flexionat C.f. C.f.
Tip dicţionar T.d. T.d.
Parte de vorbire P.v. P.v.
Număr persoane N.p. N.p.
Gen G. G.
Caz C. C.
Timp T. T.
Articulare A. A.

Figura 3. Lista generată cu formele flexionate posibile

În lista din figura 2, <Tip dicţionar> reprezintă categoria sintactică specificată de


dicţionar, iar <Parte de vorbire> reprezintă categoria specificată de analizor. La modul
esenţial cele două categorii trebuie să coincidă, dar există cazuri în care categoria specificată
de dicţionar este o particularizare a unui caz mai general specificat de regulile analizorului.

De exemplu, fie regula :

Ri : Term_flex.=’A’ => Term_nonflex.=’Ǎ’ ; P.v.=’SUBST’ ; N.p.=’SING’ ;


G.=’FEM’ ; C.=’NOM’ ; A.=’HOT’

Regula se referă la cuvinte care au terminaţia ‘A’. În acest caz se asumă cuvântul ca
fiind substantiv, de număr singular, gen feminin, caz nominativ, articulat hotărât, având
terminaţia formei neflexionate ‘Ǎ’. Dacă avem două cuvinte :

1) cuvântul ‘FATA’: avem P.v.=’SUBST’ din analizor, iar din dicţionar


T.d.= ’SUBST’, dar
2) cuvântul ‘FRUMOASA’: avem P.v.=’SUBST’ din analizor, iar din
dicţionar T.d.= ’ADJ’.

Pentru a verifica dacă formele găsite sunt valide, se face o confruntare pe bază de
compatibilitate a categoriilor specificate de analizor prin reguli şi cele găsite din dicţionar.
Dacă cele două categorii nu sunt compatibile, atunci acea formă se elimină din listă. Dacă
sunt compatibile, atunci forma flexionată se declară validă.
Compatibilităţile dintre categoriile sintactice analizor / dicţionar sunt prezentate în
tabelul următor:

Tabelul 1.
Categorie sintactică analizor Categorie sintactică dicţionar

Substantiv Substantiv, Adjectiv, Adverb,


Pronume
Articol sau Numeral Articol, Numeral, Pronume
Verb Verb

2.2. Regulile specificate în analizorul de sintaxă


Setul de reguli pentru analiza de sintaxă este organizat modular, urmărind cele 10
categorii gramaticale prezente în dicţionar. Fiecare categorie se împarte în subcategorii (de
ex. pentru substantive avem substantive comune, nume proprii, diminutive), iar pentru fiecare
subcategorie se generează reguli pentru toate formele flexionate (declinări la substantive,
conjugări la verbe), grupate după clase de terminaţii comune. La fiecare clasă se mai adaugă
un set de excepţii (figura 3).

REGULI
SINTAXǍ

CATEGORII Substantiv Adjectiv Verb …

SUBCATEGORII Subst. comun Diminutiv …

FORME Nominativ Dativ …


FLEXIONATE

TERMINAŢII Subst: ‘ea’ Subst: ‘ia’ …

EXCEPŢII

Figura 4. Organizarea setului de reguli pentru analiza de sintaxă

2.3. Despărţirea în silabe

Aşa cum am văzut anterior, prima etapă în analiza textului de sintetizat constă în
determinarea unităţilor fonetice de bază, şi anume: propoziţiile, cuvintele şi silabele. Dacă
extragerea propoziţiilor şi a cuvintelor nu ridică probleme deosebite, aceasta efectuându-se
pe baza semnelor de punctuaţie şi a caracterelor de separaţie, nu acelaşi lucru se poate
spune despre stabilirea silabelor componente ale unui cuvânt. Pentru a realiza acest
deziderat a fost necesară proiectarea unui set de reguli fonetice pentru despărţirea în silabe.

Principiul folosit la determinarea unităţilor fonetice este ilustrat în figura 5.4. Astfel,
analizorul are o structură pe trei nivele, corespunzător cu trei module având roluri distincte în
identificarea şi tratarea unităţilor fonetice. Cele trei module sunt:

- modulul de analiză lexicală;


- modulul de analiză sintactică;
- modulul de procesare.
Proceduri Shell Procesare
de calcul Procesare unităţi

Propoziţii
Reguli Analizor
sintactice Sintactic
Cuvinte

Silabe
Text
Analizor
Lexical Cifre

Reguli
Separatori
lexicale

Text Figura 5. Analizorul lingvistic pentru despărţirea în silabe

Shell-ul program are rolul de master, apelând modulele de nivel inferior. Astfel, acesta
apelează analizorul sintactic pentru a-i returna unităţile sintactice. Analizorul sintactic va apela
la rândul lui analizorul lexical pentru parcurgerea efectivă a textului şi regăsirea unităţilor
lexicale de bază.Separatori
Propoziţie Propoziţie Separatori Propoziţie Separatori
Analizorul lexical extrage caracterele din text şi le grupează în unităţi fonetice primare.
Aici intră determinarea caracterelor alfabetice, numerice, a caracterelor speciale şi semnelor
de punctuaţie. Pe baza unor reguli de producţie lexicale, caracterele alfabetice vor fi grupate
în silabe, caracterele numerice în cifre şi numere, iar caracterele speciale şi semnele de
punctuaţie vor fi folositeSpaţiu
în determinarea cuvintelor şiPunct
Tab propoziţiilor. Virgulă
Tab ? ! ...
Analizorul sintactic preia silabele, respectiv caracterele speciale şi cifrele furnizate de
analizorul lexical şi le grupează în cuvinte şi propoziţii. Şi aici a fost necesară stabilirea unui
set de reguli sintactice pentru departajarea unităţilor fonetice corespunzătoare.
Modulul de procesare preia în final unităţile fonetice găsite anterior şi, pe baza unor
proceduri de calcul, le clasifică şi le memorează în structuri speciale. De aici vor fi preluate şi
transformate în forme de undă de către modulul de sinteză.
Cuvânt Cuvânt
Cuvânt Separatori Separatori Separatori

2.3.1. Analizorul sintactic folosit în extragerea propoziţiilor şi cuvintelor

Spaţiu Tab Punct


Tab Virgulă ? ! ...
Analizorul sintactic foloseşte un set de reguli de producţie care specifică sintaxa
textului de la intrare. Textul iniţial este considerat ca o listă de propoziţii, fiecare propoziţie
fiind o listă de cuvinte, fiecare cuvânt fiind compus din mai multe silabe. Propoziţiile, respectiv
Număr prin separatori. Astfel, unităţile sintactice prezintă următoarea
cuvintele sunt despărţite
structură ierarhică:

Întreg Real

Silabă Silabă Silabă Silabă ...


Silabă Tab
Figura 6. Structura ierarhică a analizorului sintactic

În figura 6, unităţile care apar pe un fond de culoare mai închisă (silabele, respectiv
numerele întregi sau reale, precum şi separatorii) sunt de fapt ieşirile analizorului lexical,
adică sunt unităţi care au fost determinate prin analiza lexicală a textului. Astfel, analizorul
sintactic invocă analizorul lexical pentru a-i fi furnizat la fiecare apel unitatea lexicală
următoare din text: o silabă, 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 text. Analizorul sintactic are posibilitatea ca după regăsirea fiecărui tip
de unitate să apeleze o procedură de calcul pentru procesarea specifică a unităţii.
În implementarea sistemului, a fost aleasă varianta de apel de procedură doar pentru
unităţi de tipul silabei şi a separatorilor. Aceste unităţi se vor memora în interiorul analizorului
lexical care le depistează. Memorarea cuvintelor şi a propoziţiilor se va face în interiorul
modulului de procesare, şi nu la nivelul analizorului sintactic.

2.3.2. Analizorul lexical utilizat în determinarea silabelor


Analizorul lexical este apelat de către analizorul sintactic pentru regăsirea unităţilor
fonetice de bază, şi anume : silabele, caracterele despărţitoare şi numerele. Analizorul
sintactic va grupa aceste unităţi lexicale de bază în cuvinte şi propoziţii. Analizorul sintactic
este implementat prin program, pe când analizorul lexical este rezultat în urma generării
automate prin intermediul unui generator de parsere de text, numit LEX .
Generatorul automat LEX construieşte un analizor lexical pornind de la o gramatică
ce descrie regulile de producţie ale analizorului. Gramatica se scrie în limbaj standard BNF
(Backus-Naur Form) şi specifică secvenţele de caractere care trebuie recunoscute din textul
de la intrare, precum şi acţiunile de efectuat corespunzătoare acestor secvenţe. Secvenţele
de caractere de recunoscut ţin cont de contextul stânga şi dreapta în care ele apar.
Analizorul generat preia aşadar de la intrare un text pe care îl va parcurge secvenţial
în scopul regăsirii secvenţelor specificate în gramatica BNF. In cazul nostru secvenţele se
referă la regăsirea numerelor, caracterelor speciale şi a silabelor. Procesul realizat de către
analizorul lexical este ilustrat în figura următoare:

Text CCCCCCCCCCCCC

Cifră Separator Alfanumeric

Reguli de
producţie

Silabă
Intreg Real Sep. 1 … Sep. n

Tratare_număr Tratare_separator Tratare_silabă

Figura 7. Analizorul lexical pentru regăsirea silabelor

Aşa cum se vede din figură, textul de la intrare este interpretat ca un şir de caractere.
La început, caracterul curent este clasificat în una din categoriile : cifră, caracter special sau
separator, respectiv caracter alfanumeric. Luând în considerare şi contextul anterior precum
şi contextul următor în care poate să apară, caracterul curent împreună cu caracterele
anterior parcurse se grupează pentru a alcătui o unitate lexicală : un număr, un separator sau
o silabă. Reguli de producţie specifice pentru fiecare categorie indică modul în care se
formează aceste unităţi, realizând totodată şi o subclasificare a lor (de exemplu pentru
numere dacă este întreg sau real, iar pentru separator – tipul acestuia).
Odată identificat tipul unităţii, caracterele componente sunt memorate şi transmise
analizorului sintactic prin intermediul unor proceduri numerice (Tratare_număr,
Tratare_separator, Tratare_silabă).

2.3.3. Determinarea accentelor


Schema de principiu a analizorului lingvistic folosit pentru determinarea accentelor
este ilustrat în figura 8.

Analizor Reguli ACCENTE


sintactic lexicale
SN_3

SN_2
Analizor
F1 F2 ... Fn Sep lexical
CUVÂNT SN_1

SN

Figura 8. Analizorul lingvistic pentru determinarea accentelor

Parserul de text sau analizorul sintactic returnează cuvântul curent din stream-ul de
intrare, cuvânt alcătuit dintr-o serie de foneme şi terminat cu un separator. Cuvântul este
introdus la intrarea analizorului lexical care, pe baza unor reguli lexicale, va determina silaba
accentuată din cuvânt. În limba română, silaba accentuată este una din ultimele trei silabe ale
cuvântului (SN = ultima silabă, SN_1 = penultima silabă, respectiv SN_2, SN_3 = silabele
anterioare). Regulile sunt constituite dintr-o regulă de bază, şi anume aceea că penultima
silabă este cea accentuată (regula generală pentru limba română), respectiv un set consistent
de excepţii organizat pe grupuri de cuvinte ce au terminaţii comune.
Analizorul lexical pentru determinarea accentelor a fost proiectat tot pe baza
facilităţilor oferite de către generatorul automat LEX. Astfel regulile analizorului sunt furnizate
generatorului LEX în format BNF, stream-ul de intrare fiind chiar cuvântul curent extras din
text de către analizorul sintactic.

2.3.4. Regăsirea unităţilor acustice şi sinteza de voce

În această etapă se urmăreşte mai intâi regăsirea unităţilor acustice din baza de date
necesare pentru sinteză. Aceasta înseamnă potrivirea unităţilor lingvistice determinate pe
baza analizei textului de la intrare, cu unităţile acustice înregistrate în baza de date. Pot exista
următoarele situaţii:
a). Silaba dorită să fie regăsită identic în baza de date vocală, atât din punct de
vedere fonetic, cât şi din punct de vedere prozodic. În acest caz silaba se reţine ca atare
pentru a fi înglobată în cuvântul de sintetizat.
b). Silaba este regăsită fonetic, dar nu şi prozodic. Se preferă în acest caz
constituirea acesteia din silabe şi foneme mai scurte, care să respecte prozodia cerută (silabă
accentuată sau neaccentuată).
c). Silaba nu este regăsită fonetic în baza de date. Şi in acest caz silaba va fi
compusă pe baza fonemelor separate extrase din baza de date.

Urmează apoi îmbinarea unităţilor acustice regăsite din baza vocală. Unităţile se
concatenează cu pauze corespunzătoare pauzei dintre cuvinte, care se va ajusta în funcţie
de ritmul cerut vorbirii.
Şi în fine, ultima fază este cea de sinteză propriu-zisă, în care formele de undă
corespunzătoare textului de la intrare sunt redate sonor prin intermediul plăcii audio a
calculatorului.

2.3.5. Avantajele metodei


Metoda de sinteză bazată pe concatenarea silabelor are următoarele avantaje:
- necesită un efort mai mic de construire şi întreţinere a bazei de date vocale decât în
cazul metodei bazate pe corpus;
- prezintă o calitate mai înaltă a sintezei faţă de metoda bazată pe foneme sau
difoneme, din cauza unui număr mai redus de puncte de concatenare;
- păstrează simplitatea metodelor de sinteză prin concatenare, în raport cu metodele
parametrice de sinteză;
- metoda propusă bazată pe reguli are o abordare unitară în toate fazele de
proiectare;
- utilizarea regulilor lingvistice în analiza textului asigură un efort de proiectare mult
mai redus în raport cu alte abordări.

Implementare

Metoda a fost implementată utilizând mediul de programare Visual C++ 6.0.


Analizoarele lexicale au fost realizate folosind programul LEX, care permite construirea de
parsere de text având la intrare o gramatică cu regulile de parcurgere în format BNF.

Etapele urmărite de noi în proiectarea sistemului de sinteză de voce au fost


următoarele (figura 9):

1. Construirea unei baze de date vocale, ce cuprinde fazele de înregistrare, normalizare


şi segmentare;
2. Analiza lingvistică a textului de sintetizat ce cuprinde fazele de determinare a
silabelor şi accentelor din text.
3. Potrivirea unitătilor acustice şi sinteza propriu-zisă.

Determinare Determinare Îmbinarea


Text Sinteză
silabe accente unităţilor

Baza de
date
vocală

Înregistrare Normalizare Segmentare

Figura 9. Sistemul de sinteză în limba română LIGHTVOX

Prima etapă în proiectarea sistemului a fost construirea unei baze de date vocale.
În cazul sistemului LIGHTVOX, baza de date vocală cuprinde formele de undă asociate
silabelor limbii române.

Constituirea bazei de date pentru sinteză presupune un proces de înregistrare a


rostirii unui vorbitor uman, rostire care trebuie să includă toate tipurile de unităţi fonetice
dorite, în cazul nostru silabele. Nu au fost incluse în baza de date toate silabele limbii
române, ci doar un subset al acestora, silabele care n-au fost incluse fiind generate pe baza
celor existente.
Procesul de înregistrare a semnalului vocal presupune folosirea unei aparaturi
speciale constituită dintr-un microfon profesional, o placă digitizoare de semnal acustic, şi un
program software specializat pentru lucrul cu fişiere audio de tip WAVE. Noi am folosit un
microfon dinamic semiprofesional, o placă audio Creative SoundBlaster, şi un program de
digitizare audio Cool Edit Pro versiunea 2.0.
În urma înregistrării fişierelor audio s-a realizat o fază de normalizare, adică de
aducere a eşantioanelor vocale la o formă unitară în tot cuprinsul bazei vocale. Normalizarea
presupune prelucrarea digitală a semnalului vocal înregistrat, proces care poate fi făcut
manual sau semiautomat, prin intermediul unui program software specializat, sau automat, în
cazul în care se proiectează algoritmi speciali de normalizare.
Noi am utilizat pentru normalizare un program de digitizare audio. Baza de date
normalizată are toate înregistrările de aceeaşi amplitudine (rostirile prezentând aceeaşi tărie
sonoră), precum şi frecvenţă fundamentală constantă (corespunzând unor rostiri de aceeaşi
tonalitate, acelaşi ritm şi intonaţie constantă. Aceste cerinţe legate de amplitudine şi frecvenţă
fundamentală se referă În primul rînd la segmentele vocale care prezintă aceste caracteristici
– cu alte cuvinte la segmentele corespunzătoare vocalelor fonetice.
După faza de normalizare a urmat etapa de segmentare a bazei de date în scopul
obţinerii unităţilor acustice cu care lucrează sistemul. În cazul nostru, înregistrările au fost
segmentate pentru a obţine silabele dorite. Noi am proiectat un algoritm de segmentare
automată în regiuni având aceleaşi caracteristici şi un algoritm de potrivire a fonemelor cu
regiunile detectate. Astfel silabele au fost uşor de pus în evidenţă din semnalul iniţial şi
salvate în baza de date. Procesul de segmentare nu este obligatoriu să urmeze după
normalizare, cele două etape fiind interschimbabile în funcţie de abordare.
Baza de date vocală cuprinde totalitatea unităţilor fonetice utilizate pentru sinteză, şi
anume un subset al silabelor limbii române. Baza de date este organizată sub formă
arborescentă, în care nodurile arborelui reprezintă caracteristicile silabelor, iar nodurile frunză
corespund silabelor propriu-zise.
Silabele au fost introduse în baza de date în funcţie de următoarea clasificare:
- după lungimea silabei: silabe de două, trei sau patru litere;
- după poziţia din cadrul cuvântului: silabe de segment median sau final;
- după accentuare: silabe accentuate sau neaccentuate.
Baza de date vocală a fost apoi indexată pentru regăsirea uşoară a informaţiilor.

După ce baza de date vocală a fost înregistrată, segmentată şi normalizată, a urmat


procesul de analiză lingvistică a textului de sintetizat.

O primă etapă de analiză este extragerea unităţilor fonetice din textul prezentat la
intrare. La început se analizează semnele de punctuaţie existente în text, în funcţie de care
separă propoziţiile. Semnele de punctuaţie dau un indiciu şi despre tipul propoziţiei
(afirmativă, interogativă, imperativă), de mare importanţă pentru determinarea intonaţiei şi
accentuării elementelor propoziţionale.
Fiecare propoziţie este apoi împărţită în cuvinte, pe baza caracterelor textuale
despărţitoare. În această fază s-a inserat o etapă de preprocesare a textului, în care cifrele
existente să fie transcrise sub formă literală, iar abrevierile din text să fie expandate în cuvinte
întregi.
Etapa cea mai importantă care urmează este stabilirea silabelor componente din
cadrul unui cuvânt. Pentru această etapă a fost necesară o analiză lexicală bazată pe
determinarea unui set de reguli de despărţire în silabe a cuvintelor, reguli care sunt specifice
pentru limba română. Regulile cuprind un nucleu de elemente de ordin global, şi un set de
excepţii ataşat acestui nucleu. Rolul acestui set de reguli este de a determina fonemele
componente ale fiecărei silabe din cadrul unui cuvânt.
Analizorul lingvistic pentru despărţirea în silabe are o structură alcătuită din trei
module: analizorul lexical, analizorul sintactic şi modulul de procesare
Analizorul lexical extrage caracterele din text şi le grupează în unităţi fonetice
primare. Aici intră determinarea caracterelor alfabetice, numerice, a caracterelor speciale şi
semnelor de punctuaţie. Pe baza unor reguli de producţie lexicale, caracterele alfabetice vor fi
grupate în silabe, caracterele numerice în cifre şi numere, iar caracterele speciale şi semnele
de punctuaţie vor fi folosite în determinarea cuvintelor şi propoziţiilor.
Analizorul sintactic preia silabele, respectiv caracterele speciale şi cifrele furnizate de
analizorul lexical şi le grupează în cuvinte şi propoziţii. Şi aici a fost necesară stabilirea unui
set de reguli sintactice pentru departajarea unităţilor fonetice corespunzătoare.
Modulul de procesare preia în final unităţile fonetice găsite anterior şi, pe baza unor
proceduri de calcul, le clasifică şi le memorează în structuri speciale. De aici vor fi preluate şi
transformate în forme de undă de către modulul de sinteză.
Analizorul lexical pentru determinarea silabelor a fost proiectat pe baza facilităţilor
oferite de către generatorul automat LEX, care generează un parser de text pe baza regulilor
de producţie furnizate.
După etapa de despărţire în silabe, urmează etapa de determinare a accentelor din
interiorul cuvintelor. Folosind un al doilea analizor lexical, de data aceasta proiectat pentru
determinarea accentelor, au fost stabilite silabele accentuate, respectiv silabele neaccentuate
din cadrul cuvintelor care au fost extrase în etapa anterioară.
Parserul de text sau analizorul sintactic returnează cuvântul curent din stream-ul de
intrare, cuvânt alcătuit dintr-o serie de foneme şi terminat cu un separator. Cuvântul este
introdus la intrarea analizorului lexical care, pe baza unor reguli lexicale, va determina silaba
accentuată din cuvânt. În limba română, silaba accentuată este una din ultimele trei silabe ale
cuvântului (SN = ultima silabă, SN_1 = penultima silabă, respectiv SN_2, SN_3 = silabele
anterioare).
Regulile de accentuare sunt constituite dintr-o regulă de bază, şi anume aceea că
penultima silabă este cea accentuată (regula generală pentru limba română), respectiv un set
consistent de excepţii organizat pe grupuri de cuvinte ce au terminaţii comune.
Urmează apoi faza de potrivire a unităţilor fonetice, determinate pe baza analizei
textului de la intrare, cu unităţile acustice înregistrate în baza de date. Aici pot exista
următoarele situaţii:
a) silaba dorită este regăsită identic în baza de date vocală, atât din punct de vedere
fonetic, cât şi din punct de vedere prozodic. În acest caz silaba se reţine ca atare pentru a fi
înglobată în cuvântul de sintetizat.
b) silaba este regăsită fonetic, dar nu şi prozodic. Se preferă în acest caz constituirea
acesteia din silabe şi foneme mai scurte, care să respecte prozodia cerută (silabă accentuată
sau neaccentuată).
c) silaba nu este regăsită fonetic în baza de date. Şi in acest caz silaba va fi compusă
pe baza fonemelor separate extrase din baza de date.
Urmează apoi îmbinarea unităţilor acustice regăsite din baza vocală. Unităţile se
concatenează cu pauze corespunzătoare pauzei dintre cuvinte, care se ajustează în funcţie
de ritmul cerut vorbirii.
Şi în fine, ultima fază este cea de sinteză propriu-zisă, în care formele de undă
corespunzătoare textului de la intrare sunt redate sonor prin intermediul plăcii audio a
calculatorului.

Ca şi rezultate şi observaţii experimentale, s-a constatat o audiţie satisfăcătoare a


textului sintetizat, care respectă prozodia segmentală (accentuarea cuvintelor) din limba
română. Ceea ce se observă este fluenţa rostirii şi un grad ridicat de naturaleţe. Ca şi
îmbunătăţiri viitoare, este clar că folosirea unor condiţii profesioniste de înregistrare a
semnalului vocal şi utilizarea unei voci cu calităţi acustice superioare pot duce la creşterea
semnificativă a calităţii rostirii sintetizate.

Tot în această fază a proiectării au fost proiectate baza de date în format electronic
(biblioteca de cărţi electronice), precum şi interfaţa de acces vocal la această bază de
date. De asemeni a fost realizat şi testat prototipul final al aplicaţiei.

Biblioteca de cărţi în format electronic a fost realizată prin conversia în format text
electronic a unor cărţi din diferite domenii de activitate, rezultând o minibibiotecă electronică
ordonată după autori. Conversia a fost făcută respectând standardul ASCII format Windows
Central European, prin preluarea unor documente în regim free de pe Internet, respectiv prin
scanarea unor cărţi şi utilizarea unui program OCR pentru recunoaşterea caracterelor.
Interfaţa de acces vocal permite utilizatorului alegerea unui autor prin intermediul
tastaturii (în cazul unui nevăzător, acesta va folosi o tastatură specială ce are aplicate
caractere de tip Braille), apoi citirea automată prin intermediul programului a titlurilor
disponibile, şi în final selectarea titlului dorit. Prin intermediul unor comenzi de la tastatură de
tip shortcut, nevăzătorul poate audia cartea electronică solicitată, poate întrerupe audierea
sau poate reasculta ultima frază rostită.

Concluzie:

În această ultimă fază a proiectării a fost realizat prototipul unui sistem vocal
interactiv pe bază de sinteză de voce, destinat a fi utilizat de către persoanele nevăzătoare. A
fost implementată o metodă proprie de sinteză vocală bazată pe concatenarea silabelor. A
fost construită o bibliotecă de cărţi electronice şi o interfaţă de acces vocal la această
bibliotecă ce poate fi accesată de către nevăzători.
Sistemul a fost testat pe o configuraţie locală, urmând implementarea pe o reţea de
calculatoare, precum şi perfecţionarea în funcţie de cerinţele directe ale persoanelor
nevăzătoare.
Bibliografie :

[Bur05] Burileanu C., Oancea E., Radu M., Text-to-Speech Synthesis for Romanian
Language: Present and Future Trends, http://www.racai.ro/books/awde/ burileanu. htm
2005

[Bur97] Burileanu C. & al., Text-to-Speech Synthesis for Romanian Language, în Recent
Advances in Romanian LanguageTechnology, Editura Academiei Române, Bucureşti, 1997

[Buz 06] Buza O., Toderean G., Syllable detection for Romanian text-to-speech synthesis,
Sixth International Conference on Communications COMM’06 Bucharest, June 2006, pp.
135-138.

[Buz 07] Buza O., Toderean G., A Romanian Syllable-Based Text-To-Speech System, 6th
WSEAS International Conference on Signal Processing, Robotics and Automation (ISPRA
'07), CD-Rom Proceedings, Corfu Island, Greece, February 16-19, 2007

[Feh93] Feher, K., Comunicaţii digitale avansate, Editura Tehnică Bucureşti, 1993.

[Fur01] Furui, S., Digital Speech Processing. Syntesis and Recognition, Marcel Dekker
Publications, 2001.

[Her90] Hermansky, H., Perceptual linear predictive (pip) analysis for speech, The Journal of
The Acoustical Society of America, vol. 87, pp.1738-1752, apr. 1990.

[Her92] Hermansky, H., Morgan, N., RASTA-PLP Speech Analysis Technique, IEEE Trans.
Speech and Audio, vol. 1, pp. 121-124, 1992.

[His05] History of Speech Recognition and Transcription Software, http://www.dragon-


medical-transcription.com/historyspeechrecognition.html, 2005

[Hos00] Hosom J.P., Automatic Time Alignment of Phonemes Using Acoustic-Phonetic


Information, Computer Science and Engineering, Oregon Graduate Institute of Science and
Technology, Beaverton, OR, USA, Published as Technical Report CSE-00-TH-002 May 2000

[Jur00] Juravski D., Speech and language processing : an introduction to natural language
processing, computational linguistics, and speech recognition, 2000

[Kai00] Kaiser, E.C., Book Review: Extended Finite State Models of Langauge, in
Computational Linguistics, vol. 26, num. 2, pp. 282-285, Jun, 2000

[Kai01] Alexander B. Kain, High Resolution Voice Transformation, OGI School of Science &
Engineering at Oregon Health & Science University, 2001

[Kes04] Judith M. Kessens and Helmer Strik, On automatic phonetic transcription quality:
lower word error rates do not guarantee better transcriptions, Computer Speech & Language,
Volume 18, Issue 2, Pages 123-141, 2004

[Kla02] E. Klabbers, J. van Santen and J. Wouters, Prosodic Factors for Predicting Local
Pitch Shape, in IEEE Workshop on Speech Synthesis, Santa Monica, CA, USA, 2002

[Lup04] Lupu E., Pop P., Prelucrarea numerică a semnalului vocal, vol.1, Ed. Risoprint, 2004.

[Mah00] Mahomed, M. and Gader, P., Generalized Hidden Markov Models. IEEE
Transactions on Fuzzy Systems, 2:67–93, 2000

[Mob00] Mobius B., Corpus-based speech synthesis: methods and challenges. In:
Arbeitspapiere des Instituts für Maschinelle Sprachverarbeitung (Univ. Stuttgart), AIMS 6 (4),
pp. 87–116, 2000
[Mon05] Elizabeth Montalbano, Microsoft Gets Exchange to Speak Up, PC World, August 02,
2005

[Pra04] V. Kamakshi Prasad , T. Nagarajan and Hema A. Murthy, Automatic segmentation of


continuous speech using minimum phase group delay functions, Speech Communication,
Volume 42, Issues 3-4, Pages 429-446, April 2004

[Ram05] Ramon Lopez Cozar Delgado, Masahiro Araki, Spoken, Multilingual and Multimodal
Dialogue Systems: Development and Assessment, ISBN: 0-470-02155-1, Wiley Publisher
House, September 2005

[Ros04] A-V. I. Rosti and M. J. F. Gales, Factor analysed hidden Markov models for speech
recognition, Computer Speech & Language, Volume 18, Issue 2, Pages 181-200, April 2004

[Tat05] Mark Tatham , Katherine Morton, Developments in Speech Synthesis, ISBN: 0-470-
85538-X, Wiley Publisher House, 2005

[Tod05] G. Toderean, Al. Caruntu, Metode de recunoaştere a vorbirii, Editura Risoprint, Cluj-
Napoca, 2005.

[Tro02] Trouvain, J. Tempo control in speech synthesis by prosodic phrasing. Proceedings of


Konvens, Saarbrucken, Germany, 2002

[Tuf01] Tufis, D. and Barbu, A.M., Automatic construction of translation lexicons, Advances in
Automation, Multimedia, Video System and Modern Computer Science, Electrical and
Computer Engineering Series, WSES Press, http://www.worldses.org, pp. 156–161, 2001

[Vei04] Veikko Surakka, Marko Illi, Gazing and frowning as a new human--computer
interaction technique, ACM Transactions on Applied Perception (TAP), Volume 1 , Issue 1,
July 2004,Pages: 40 – 56, ISSN:1544-3558, 2004

[Vla97] Vlaicu A., Dobrotă V., Tehnologii Multimedia – Sisteme, reţele şi aplicaţii, Editura
UTCN, Cluj-Napoca, 1997

[Wal01] Patricia Walsh, Randy Lundquist, and John A. Gardner, The Audio-Accessible
Graphing Calculator, Proceedings of the 2001 CSUN International Conference on Technology
and Persons with Disabilities, Los Angeles, CA, March 21-24, 2001

[Wou00] Johan Wouters and Michael W. Macon, Unit Fusion for Concatenative Speech
Synthesis, in Proceedings of the International Conference on Spoken Language Processing
(ICSLP), Oct, 2000

Director de proiect,
Prof. Dr. Ing. Gavril Toderean

S-ar putea să vă placă și