Raport Final 1

91
Raport de Cercetare Grant: SISTEM INTERACTIV PE BAZA DE VOCE DESTINAT PERSOANELOR NEVAZATOARE Autor: Toderean Gavril, Buza Ovidiu Universitatea Tehnică din Cluj-Napoca

Transcript of Raport Final 1

Page 1: Raport Final 1

Raport de Cercetare

Grant:

SISTEM INTERACTIV PE BAZA DE VOCE DESTINAT PERSOANELOR NEVAZATOARE

Autor: Toderean Gavril, Buza Ovidiu

Universitatea Tehnică din Cluj-Napoca

Page 2: Raport Final 1

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.

Page 3: Raport Final 1

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

Page 4: Raport Final 1

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].

Page 5: Raport Final 1

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

Page 6: Raport Final 1

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,

Page 7: Raport Final 1

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.

Page 8: Raport Final 1

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

Page 9: Raport Final 1

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.

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:

, (2.1)

unde ) reprezintă eşantionul reconstruit la momentul 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].

Predictor

Qx(n) e(n)

i(n)

ep(n)

-

xp(n)

xp(n| n-1,n-2,...,n-p)

Page 10: Raport Final 1

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 :

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 :

, (2.3)

. (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 :

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

Predictor

Qe(n) b(n) = ±1

-

xp(n)

xp(n| n-1) G

Informaţia de adaptare

Zgomot de suprapantă

Zgomot granular

Page 11: Raport Final 1

câştigul amplificatorului are forma :

, (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 :

, (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.

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

U

u(1)u(2)..u(N)

Tr A

V

v(1)v(2)..v(N)

Vc

vc(1)vc(2)..vc(N)

Ur

ur(1)ur(2)..ur(N)

Q Tr B

Page 12: Raport Final 1

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.

Page 13: Raport Final 1

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.

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

x

y

Banc de filtre :Conversia timp-frecvenţă

Model psihoacustic

Alocarea nivelelor de cuantizare şi

codareFormatare

Intrare audio

Semnal codat

Page 14: Raport Final 1

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]:

, (2.7)

unde: x(m) este eşantionul curent al semnalului vocal, iarw(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]:

. (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]:

, (2.9)

unde sgn(n) este funcţia semn:

. (2.10)

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

Page 15: Raport Final 1

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]:

. (2.11)

unde x(n) este valoarea eşantionului de semnal, iarw(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]:

, cu . (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:

(2.13)

Ϊ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.

Page 16: Raport Final 1

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]:

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

FTB 1 Transformare neliniară

x1(n)

FTB 2 Transformare neliniară

x2(n)

FTB N Transformare neliniară

xN(n)

.

.

.

.

.

.

x(n)

Page 17: Raport Final 1

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]:

, k = 1,2,...,N , (2.14)

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, iarj 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:

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

Excitaţie Filtru variabil H(z)

F0 GParametrii tractului vocal

s(n)

Page 18: Raport Final 1

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 {ak}. Parametrii sunt calculaţi pentru fiecare segment de vorbire de aproximativ 10-30 ms.

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

, (2.15)

unde: G este câştigul filtrului, iarak 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:

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:

, (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:

. (2.17)

Excitaţiee(n)

Filtru variabil h(n)

s(n)

Page 19: Raport Final 1

Prin logaritmare obţinem:

. (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]:

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]:

(2.19)

,

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

Transformata Fourier

Log Transformata Fourier inversă

Semnal vocal Cepstrum

Page 20: Raport Final 1

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.

Page 21: Raport Final 1

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:

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ă.

Rostire Unităţi acustice

Formă de undă codificată

Baza de date vocală

Text Unităţi lexicale

Secvenţe de forme de undă

Rostire

SINTEZA

CODIFICARE

Page 22: Raport Final 1

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:

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.

SINTEZA

Rostire Unităţi acustice

Generare parametrii

Baza de date parametrizată

TextUnităţi lexicale

Secvenţe de parametrii

Rostire

ANALIZA

Generare forme de undă

Page 23: Raport Final 1

Î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ă:

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.

Extragerea segmentelor

(x1, p1)(x2, p2)....(xn, pn)

Mapare

(X1, P1)(X2, P2)....(Xm, Pm)

ANALIZA SINTEZA

Overlapx(n) X(n)

Segm. suprapuse Segm. mapate

Page 24: Raport Final 1

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:

(3.3)

unde: - xi(n) sunt segmentele suprapuse iniţiale, - Xi(n) sunt segmentele mapate sau repoziţionate

- reprezintă frecvenţele de bază ale segmentului cu indicele i în faza

de analiză, respectiv sinteză, iar

- 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.

Page 25: Raport Final 1

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:

(3.5)

Page 26: Raport Final 1

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

x1(t)

x2(t)

x1(t)

x2(t)

X2(t)

X1(t)

x(t)

p1(t)

p2(t)

p1(t)

p2(t)

p1(t)

p2(t)

SEMNALULORIGINAL

SEGMENTELE MAPATE

SEGMENTELE PONDERATE

SEGMENTELE EXTRASE

T0

T0

T1 > T0

Page 27: Raport Final 1

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

Page 28: Raport Final 1

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).

Page 29: Raport Final 1

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.

[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.

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

Figura 3.6. Potrivirea unităţilor de concatenat

ma

Textma

ma

maBaza de date

vocală

ma

ma

ma

ma

ma

şi

şi

şi

şi

na

na

na

na

Page 30: Raport Final 1

Î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

un Concatenation Cost. In figura 4.5, Tij reprezintă costul unităţii Target Cost, iar

reprezintă costul concatenării Concatenation Cost:

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 :

, (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 ;

- 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 »).

S

T11

T12

T13

T21

T22

T23

F

Page 31: Raport Final 1

Calculul costurilor;  măsuri ale distanţelor dintre unităţi [Mob00] :

Există două metode pentru calculul costurilor (Target Cost T ij , respectiv Concatenation

Cost ) 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.

, (3.10)

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:

Page 32: Raport Final 1

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 ;

A

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

T11, CC11

T1n , CC1n

T21, CC21

T2n , CC2n

T31, CC31

T3n , CC3n

Page 33: Raport Final 1

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:

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ă

Sursă Filtru variabil H(z)

F0 GParametrii tractului vocal

s(n)

Page 34: Raport Final 1

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 {ak}. Parametrii sunt calculaţi pentru fiecare segment de vorbire de aproximativ 10-30 ms.

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

, (3.11)

unde: G este câştigul filtrului, iarak 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

Page 35: Raport Final 1

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

Page 36: Raport Final 1

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.

Page 37: Raport Final 1

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ă

. (1)

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

. (2)

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

. (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.

Page 38: Raport Final 1

Î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:

, unde , şi (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:

, unde ,

, şi (5)

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

, unde , şi (6)

Page 39: Raport Final 1

Pentru modelul în ansamblu se foloseşte notaţia: . Secvenţa de

observaţii se notează cu , iar secvenţa de stări sau drumul cu

.În implementarea HMM apar trei probleme majore:

1. Problema evaluării. Dându-se secvenţa de observaţii şi un

model , să se determine probabilitatea ca secvenţa de observaţii să fi fost generată de modelul .

2. Problema alegerii secvenţei optime de stări. Fiind dată secvenţa de observaţii şi un model să se determine succesiunea

de stări ale modelului care a generat secvenţa de observaţii .

3. Problema antrenării. Presupune ajustarea parametrilor modelului în vederea maximizării probabilităţii .

Î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 , atunci când la intrare este aplicată secvenţa de observaţii . 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.

Page 40: Raport Final 1

Figura 3.2.2. Structura unui sistem de recunoaştere acuvintelor 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

Page 41: Raport Final 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:

(7)

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

(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

Page 42: Raport Final 1

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:

Page 43: Raport Final 1

- 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 prezintă în figură:

Figura 3.3.1. Sistemul text-to-speech

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:

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

Analiză lingvistică

Generare parametrii

acusticiText Text-to-Speech Text

Rostire

CodificareMemorare

Compunerea formelor de

undă

Forme de undă

Rostire

Page 44: Raport Final 1

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:

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:

CodificareMemorare

Compunerea secvenţelor

de parametrii

Secvenţă de parametrii

Rostire

CodificareMemorare

Secvenţă de simboluri

Page 45: Raport Final 1

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].

Generare parametrii

RostireTrăsături prozodice

Set de reguli

CodificareMemorare

CodificareMemorare

Page 46: Raport Final 1

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

Page 47: Raport Final 1

prozodice determinate pe baza regulilor privind intonaţia şi ritmul, se generează secvenţa de parametrii corespunzătoare textului de sintetizat.

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:

Simboluri fonetice( a b c ...)

Prozodie CunoştinţeBaza de

date vocală

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

Text

Page 48: Raport Final 1

Figura 3.3.6. Etapele procesuale ale sintezei TTS [Bur97]

Text

Preprocesare lingvistică Text în formă normalizată

Analiză sintactică Text corect gramatical

Determinare unităţi lexicale

Propoziţii, cuvinte, foneme

Transcriere fonetică Simboluri fonetice

Determinarea prozodiei Parametrii prozodici

Generare parametrii acustici

Parametrii de sinteză

Sinteza Forme de undă

Rostire

Page 49: Raport Final 1

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ă.

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).

Preprocesare

Analiza sintaxei

Determinarea unităţilor lingvistice

Determinarea prozodiei locale

Regăsirea unităţilor acustice

Concatenarea unităţilor

Sinteza

Page 50: Raport Final 1

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’

Page 51: Raport Final 1

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.

Page 52: Raport Final 1

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.

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ă:

SUBSTANTIVVERBADJECTIVADVERBARTICOLCONJUNCŢIEPREPOZIŢIENUMERALPRONUMEINTERJECŢIE

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

TEXT

Forma flexionată

REGULIde

flexionare

EXCEPŢII

Forma de bază

neflexionată

DICŢIONAR

LEX

PǍRŢI DE VORBIRE

Page 53: Raport Final 1

ADJECTIV NOMINATIV / ACUZATIVADVERBARTICOL GENITIV / DATIVPRONUME

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) :

NOMINATIV / ACUZATIV

GENITIV / DATIV

VOCATIV

SUBSTANTIV Propriu

Comun

Diminutiv

VERB

INFINITIV

IMPERFECT

CONJUNCTIV

PREZENT

PARTICIPIU

PERFECT SIMPLU

MAI MULT CA PERFECT

GERUNZIU

VIITOR

Page 54: Raport Final 1

Cuvânt neflexionat Cuvânt flexionat

C.nf C.f.

C.nf 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

Page 55: Raport Final 1

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).

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.

REGULI SINTAXǍ

CATEGORII

SUBCATEGORII

FORME FLEXIONATE

TERMINAŢII

EXCEPŢII

Substantiv Adjectiv Verb …

Subst. comun Diminutiv …

Nominativ Dativ …

Subst: ‘ea’ Subst: ‘ia’ …

Page 56: Raport Final 1

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ă.

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ă.

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

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 cuvintele sunt despărţite prin separatori. Astfel, unităţile sintactice prezintă următoarea structură ierarhică:

TextSilabe

Cifre

Analizor Lexical

Analizor Sintactic

Regulilexicale

Regulisintactice

Cuvinte

Propoziţii

Separatori

ShellProcesare

Proceduri de calcul

Procesareunităţi

Page 57: Raport Final 1

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.

Text

Propoziţie Separatori Propoziţie Separatori Propoziţie Separatori

Spaţiu Tab TabPunct Virgulă ? ! . . .

Cuvânt Separatori Cuvânt Separatori Cuvânt Separatori

Spaţiu Tab TabPunct Virgulă ? ! . . .

Număr

Întreg Real

Silabă Silabă TabSilabă Silabă . . .Silabă

Page 58: Raport Final 1

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:

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ă).

Text

C C C C C C C C C C C C C

Cifră AlfanumericSeparator

Reguli de producţie

Intreg Real Sep. 1 Sep. nSilabă

Tratare_număr Tratare_separator Tratare_silabă

Page 59: Raport Final 1

2.3.3. Determinarea accentelor

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

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.

Analizor lexical

Analizor sintactic

Regulilexicale

SN

F1 F2 ... Fn SepSN_1

SN_2

CUVÂNT

ACCENTE

SN_3

Page 60: Raport Final 1

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ă.

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.

TextDeterminare

silabeDeterminare

accenteÎmbinarea unităţilor

Sinteză

Baza de date

vocală

Înregistrare Normalizare Segmentare

Page 61: Raport Final 1

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

Page 62: Raport Final 1

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

Page 63: Raport Final 1

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.

Page 64: Raport Final 1

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

Page 65: Raport Final 1

[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