Sistem Interactiv PE Baza DE Voce Destinat Persoanelor Nevazatoare

SISTEM INTERACTIV PE BAZA DE VOCE

DESTINAT PERSOANELOR NEVAZATOARE

Introducere

In prima parte a lucrării se prezintă studiile realizate asupra cercetăriolor din domeniul procesării vorbirii, în principal asupra produselor cu interactivitate vocală apărute pe plan internațional.

Au fost analizate mai întâi principalele aplicații disponibile utilizate în prelucrarea și analiza semnalului vocal, cum ar fi: mediul de analiză și dezvoltare Matlab, mediul de instrumentație virtuală LabView, programele de prelucrare audio Goldwave și CoolEdit.

A fost făcută de asemenea o sinteză a situației interne și internaționale în domeniul sistemelor și aplicațiilor de procesare a vorbirii.

In a doua parte a lucrării au fost prezentate cercetările efectuate asupra metodelor de analiză și prelucrare a semnalului vocal, dar și asupra metodelor de codare în vederea transmiterii datelor audio la distanță.

Au fost studiate metodele existente de analiză și prelucrare a semnalului vocal, atât metode de analiză în domeniul timp, cum ar fi: metoda autocorelației, metoda funcției diferență de amplitudine medie, metoda cu limitare centrală, dar și metode de analiză în domeniul frecvență : analiza prin banc de filtre digitale, analiza Fourier, analiza prin predicție liniară, analiza cepstrală, analiza perceptuală.

Au mai fost studiate metodele de codare și compresie a semnalului vocal, precum și standardele de compresie a semnalului audio de înaltă fidelitate.

Al treilea obiectiv al lucrării de față este prezentarea cercetărilor asupra metodelor de sinteză și recunoaștere a vocii, precum și a metodelor proprii concepute, metode utilizate în sistemul vocal interactiv care a fost proiectat și realizat în fază de prototip.

I. Studii asupra realizărilor în domeniul procesării vorbirii pe plan național și internațional

Procesarea vorbirii este un domeniu care a evoluat mult in ultimii ani pe plan internațional. Dacă in urmă cu câțiva ani se făceau progrese în ceea ce privește găsirea unor noi metode și tehnici de prelucrare a semnalului vocal, acum accentul se pune pe integrarea acestor metode performante în sisteme dedicate unor categorii diverse de utilizatori [Vei04].

Odată cu creșterea performanțelor sistemelor de calcul, utilizatorii au acum la îndemână o gamă largă de aplicații pornind de la dictare automată și introducerea de date cu ajutorul vocii, până la servicii interactive de tip cerere-răspuns care solicită un dialog vocal între calculator și operatorul uman. De asemenea aplicațiile dedicate persoanelor cu handicap sau deficiențe de vedere sau vorbire sunt tot mai solicitate, pentru ca și aceste persoane să beneficieze de o integrare socială cât mai apropiată de standardele la care se situează ceilalți membrii ai societății [Ram05], [Wal01].

Procesarea vorbirii cuprinde două domenii distincte de abordare : recunoașterea vocii, respectiv sinteza vocală.

Recunoașterea vorbirii (speech-to-text) este procesul de identificare a cuvintelor și de ințelegere a mesajului interlocutorului uman. Acest proces implică următoarele etape: captura și digitizarea semnalului vocal, scindarea acestuia in unități sonore, apoi construirea cuvintelor din aceste unități, și trimiterea spre aplicație a textului recunoscut [Tod05].

Arhitectura software utilizată in aplicațiile de recunoastere a vorbirii cuprinde doua componente: componenta acustică și cea lingvistică. Modulul acustic analizeaza sunetele vocii, elimină zgomotul de fond, reduce datele la un spectru de frecvente si apoi convertește sunetele in foneme (elementele de baza ale vorbirii). Modulul lingvistic analizează conținutul vorbirii si compară combinațiile de foneme cu cuvintele dintr-un vocabular și decide apoi care a fost propozitia sau comanda rostita de vorbitor.

Recunoașterea vorbirii este realizată de o componentă software numită motor de recunoaștere a vorbirii (Speech Recognition Engine SRE). Motoarele de recunoastere a vorbirii suportă două moduri de lucru: dictarea, in care utilizatorul introduce date vorbind direct spre computer, și comanda sau controlul, in care utilizatorul transmite comenzi prin vorbire.

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

In cazul programelor de comandă și control, dictionarul este limitat la lista de comenzi disponibile, fapt care crește performanța aplicațiilor și scade necesarul de putere de calcul din partea sistemului. In plus, aceste tipuri de programe sunt independente de vorbitor și nu necesită sesiuni de training [Ram05].

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

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

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

1.1. Situația internă și internațională în domeniul sistemelor și aplicațiilor de procesare a vorbirii

Situația internă

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

Există cursuri de tehnologia vorbirii și procesarea semnalului vocal, cum ar fi cele susținute de prof. Corneliu Burileanu la Facultatea de Electronică și Telecomunicații din cadrul Politehnicii București, Marian Boldea – la Universitatea Politehnica Timișoara, prof. Horia-Nicolai Teodorescu in cadrul Facultății de Electronică și Telecomunicatii a Universitatii Tehnice Gh. Asachi din Iași, Mircea Giurgiu in cadrul Facultății de Electronică și Telecomunicații a Universității Tehnice din Cluj.

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

Situația pe plan internațional

Pe plan internațional cercetările în domeniul tehnologiei vorbirii au avut avantajul sponsorizării de catre unele companii sau concerne internationale care urmăresc dezvoltarea unor categorii de produse care să le asigure profituri substanțiale și poziții de lideri pe piață.

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

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

Compania Microsoft și-a introdus tehnologiile vocale ca seturi API (Application Programming Interface) și unelte pentru dezvoltarea de aplicatii, dand posibilitatea programatorilor să inglobeze aceste tehnologii în interfețele bazate pe voce ale viitorului.

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

O altă firmă, SQZ Incorporated, oferă SpeechStudio Suite, o suită de instrumente avansate de dezvoltare numite voice-driven user interfaces (VUI), complementare cu Microsoft Visual Studio si SAPI 5.1. Terțe firme oferă controale add-on pentru mediile de dezvoltare, care adaugă rapid si simplu funcționalitate audio aplicațiilor utilizator.

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

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

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

Concluzii asupra situației actuale

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

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

1.2. Aplicații utilizate în prelucrarea și analiza semnalului vocal

Cele mai cunoscute și utilizate programe în prelucrarea semnalului audio în momentul prezent sunt: Matlab, LabView, Goldwave și CoolEdit.

Matlab (numele fiind un acronim pentru „Matrix Laboratory”) este un mediu performant utilizat în domeniul calculului matematic și aplicativ, inclusiv în cel al prelucrării automate de semnal. Matlab dispune de numeroase instrumente software specializate pentru anumite aplicații particulare, cum ar fi prelucrare de imagini, prelucrare de semnal, analiza circuitelor electrice, aplicații de inteligență artificială, unelte de vizualizare a datelor, etc. Aceste instrumente sunt organizate în așa-numitele „toolbox”-uri accesibile utilizatorului prin interfețe grafice specializate, manipularea acestora făcându-se de asemeni prin interacțiune grafică.

Un exemplu de astfel de instrument software pus la dispoziția utilizatorului este Simulink, care constă într-un pachet de programe ce pot fi folosite pentru modelarea, simularea și analiza sistemelor dinamice liniare sau neliniare. Modelarea se poate face în timp continuu sau discret. Caracteristicile sistemului de studiat sunt precizate prin obiecte grafice speciale, care sunt interconectate cu ajutorul mouse-ului de către utilizator (așa-numitul limbaj G – limbajul grafic). Astfel se pot introduce în sistem generatoare de semnal, instrumente de vizualizare, blocuri de funcții matematice, componente liniare și neliniare.

Alte instrumente avansate de lucru sunt: SpTool, folosit pentru proiectarea de filtre digitale, Dsp Tool, utilizat pentru prelucrarea digitală de semnal, inclusiv semnal audio, Neural Network Tool – pentru proiectarea și testarea sistemelor bazate pe rețele neuronale, Statistic Tool – pentru calcule statistice, etc.

Aplicația dispune de un limbaj de nivel foarte înalt ce respectă principiile programării structurate, cu o sintaxă asemănătoare limbajului C. Operațiile de bază ale limbajului sunt operații cu matrici, specificate prin variabile de tip vector ce dispun de redimensionare automată. Operațiile asupra vectorilor se realizează folosind funcțiile ce sunt puse la dispoziția utilizatorului prin intermediul unei biblioteci matematice extinse.

LabView este un mediu de dezvoltare grafică ce permite construirea de aplicații destinate instrumentăției virtuale: măsurări și teste de laborator, monitorizarea aparatelor industriale, studiul comportamentului sistemelor. LabView permite proiectare aplicațiilor SCADA (Supervisory Control and Data Acquisition of Industrial Processes) și MMI (Man-Machine Interface).

Caracteristic interfeței grafice LabView este tabloul de comandă („control panel”) în care utilizatorul poate adăuga controale (comutatoare, indicatoare, reglaje) și afișaje de date (afișaje numerice, osciloscoape, multimetre, LED-uri indicatoare, grafice, histograme, etc.). Tabloul de comandă se pune în legătură cu un flux de achiziție de semnal (ce provine de la o placă de achiziție de semnal, placă audio sau video). Utilizatorul va putea apoi analiza și testa comportamenul sistemului în mod virtual folosind facilitățile programului și apoi să-și construiască propriile aplicații. Pentru aceasta LabView dispune de:

un mod de programare grafică (vizuală) prin intermediul căruia utilizatorul poate asambla în mod grafic blocuri reprezentând anumite funcții de achiziție, prelucrare, analiză și afișare a semnalelor obținute dintr-o gamă largă de dispozitive (dispozitive conectate pe magistrale de tip GPIB, VXI, interfață serială, microcontrolere, plăci de achiziție, etc.);

un modul numit „Application Builder”ce permite obținerea de aplicații de sine-stătătoare care pot fi distribuite ca programe executabile;

conectivitate cu alte surse de date sau cu alte aplicatii din rețea prin interfețe OLE, DDE, NetDDE sau DLL, legături SQL și protocoale TCP/IP sau UDP;

o bibliotecă de peste 550 de drivere de instrumente de la peste 40 de furnizori, arhitectura de conectare a acestora respectând standardul VXI plug&play;

posibilitatea de analiză și procesare în timp real a datele eșantionate.

LabView dispune și de un limbaj de programare numit LabWindows/CVI (CVI este un acronim pentru „C for Virtual Instrumentation”). Acesta este un mediu de programare destinat proiectării aplicațiilor folosind limbajul C. LabWindows/CVI pune la dispoziția utilizatorilor fișiere de instrumentație virtuală sub forma unor biblioteci dinamice, permițându-se astfel inserarea in codul sursă utilizator a aplicațiilor predefinite.

Astfel, prin intermediul fișierelor de intrare/ ieșire integrate, a rutinelor de analiză și a instrumentelor de creare a interfeței utilizator, programul furnizează elementele esențiale în vederea realizării unor aplicații profesionale de prelucrare de semnal, instrumentație virtuală și control de proces.

Două programe specifice lucrului cu fișiere audio sunt CoolEdit și GoldWave. Acestea permit înregistrarea de semnal audio, editarea formei de undă și memorarea pe disc a fișierelor audio în mai multe formate și codificări.

Astfel, programul CoolEdit permite folosirea a 20 de formate audio și multiple frecvențe de eșantionare a semnalului. Alte facilități ale programului sunt:

mixarea semnalului din mai multe surse;

„zero cross adjust” – ajustarea automată a eșantioanelor;

„function scripting” – un limbaj de tip script pentru apelul funcțiilor predefinite;

facilități pentru analiza semnalului audio: spectrul de frecvențe și faze, histograme de analiză;

De asemenea programul dispune de numeroase filtre predefinite, cum ar fi:

efecte legate de variația amplitudinii semnalului, cum ar fi: amplificare/atenuare, normalizare, amplificare variabilă „fade in”/”fade out”;

efecte de temporizare, cum ar fi introducerea de ecouri;

mai multe tipuri de filtre digitale, cum ar fi de exemplu un egalizator pe mai multe benzi de frecvență;

reducerea zgomotului din semnalul achiziționat;

modificarea tempo-ului și tonalității semnalului.

Pe lângă acestea, aplicația GoldWave permite în plus editarea formei de undă cu ajutorul mouse-ului, diverse filtre FTJ, FTS, FTB, și de asemeni un „expression evaluator” ce permite generarea unor semnale audio complexe pornind de la funcții matematice predefinite.

Ca o concluzie asupra situației actuale de la nivelul aplicațiilor de prelucrare de semnal audio sau vocal, se poate spune că aplicațiile existente nu sunt numeroase, ele deși având o tradiție și o dezvoltare desfășurată pe parcursul mai multor ani, oferind multiple facilități ce se pot folosi în analiza semnalului audio și vocal, totuși ele constituie doar un punct de plecare (sau în unele cazuri niște platforme de dezvoltare) pentru proiectarea și testarea unor algoritmi proprii de procesare de semnal.

Facilitățile de procesare oferite (cu referire la filtrele digitale existente în aceste aplicații) sunt facilități „built-in” fără posibilități de dezvoltare ci doar de utilizare. Se poate intui faptul că filtrajele adaptive, neliniare de care este nevoie în aplicațiile de procesare a vorbirii de exemplu vor trebui realizate de către proiectant, folosind eventual ca suport platformele de lucru existente.

II. Metode actuale de procesare și analiză a semnalului vocal

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

2.1. Metode de prelucrare numerică a semnalului vocal

Prelucrarea semnalului vocal începe cu achiziția semnalului de la sursă: microfon, sau aparatură electronică de înregistrare. Achiziția presupune conversia digitală a semnalului analogic și apoi filtrarea sa pentru eliminarea zgomotelor de achiziție. Conversia se face cu o frecvență de eșantionare de cel puțin 8 kHz (uzual se folosesc frecvențe standard de 11 kHz, 16 kHz sau 22 kHz).

Conversia analog-digitală a semnalului presupune un anumit mod de reprezentare a semnalului în format numeric. Stabilirea unui astfel de mod de reprezentare digitală se numește codarea semnalului.

2.1.1. Metode de codare a semnalului vocal

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

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

Codarea logaritmică aplică o transformare logaritmică valorii scalate a eșantionului, și apoi atribuie o reprezentare numerică rezultatului obținut. Astfel, cuvântul de cod va conține semnul și logaritmul valorii scalate a eșantionului. Acest standard de codare este folosit în telefonia digitală, datorită faptului că în telefonie valorile de amplitudine mare a eșantioanelor sunt puțin frecvente, și ca urmare pot fi reprezentate cu o acuratețe mai mică decât valorile de amplitudine mică, așa cum este cazul în transformarea logaritmică.

Există două standarde pentru codarea logaritmică : legea μ-law, folosită în America de Nord și Japonia, respectiv legea A-law, folosită în Europa. Aceste tehnici de codare standard sunt expuse în cadrul acestui referat, în capitolul III. Amplitudinea fiecărui eșantion va fi reprezentată printr-un cuvânt de cod pe 8 biți (față de 14 biți cât ar fi fost necesari în cazul metodei liniare pentru codarea unui semnal la o calitate percepută echivalentă).

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

O metodă care se folosește pentru eliminarea redundanței semnalului este codarea predictivă [Feh93]. Metoda se utilizează pentru codarea vorbirii, dar și a imaginii și a surselor de date, în vederea transmiterii informației la distanță. Metoda urmărește să elimine din semnal ceea ce poate fi prezis despre el la receptor. Predictorii de la receptor și de la transmițător trebuie să funcționeze sincron, pe baza aceluiași set de reguli.

Tehnica cea mai uzuală ce se bazează pe metoda predicției se numește modulația diferențială a impulsurilor de cod ( DPCM – « Differential Pulse Code Modulation »). Schema bloc a codorului DPCM este ilustrată în figura 2.1.

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

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

Semnalul audio este convertit în domeniul frecvență, iar spectrul este divizat în 32 de subbenzi separate ;

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.

Ϊn final, fiecare subbandă este cuantizată funcție de nivelul zgomotului de cuantizare din interiorul benzii respective.

Figura 2.5. Schema bloc a codorului MPEG-audio

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

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.

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.

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

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, iar

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

Energia semnalului este utilă în determinarea caracteristicilor de putere transportată a semnalului vocal. Pentru un semnal cu valoare medie nulă, energia pe termen scurt se definește astfel [Lup04]:

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

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

Funcția de autocorelație prezintă maxime la intervale de timp egale cu perioada semnalului. Determinarea acestor maxime și măsurarea distanței dintre ele conduce la determinarea frecvenței fundamentale a semnalului.

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

Metoda se bazează pe calculul funcției diferență de amplitudine medie, care are expresia [Sto84]:

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

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

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.

Analiza Fourier

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

Această metodă de analiză se bazează pe calculul transformatei Fourier discrete, de forma [Mat01]:

, 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, iar

j este unitatea imaginară.

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

modulul sau amplitudinea: Ak= |X(k)| , respectiv

faza: φk=arg(X(k)).

În practică se folosește mai mult spectrul amplitudinilor, sau spectrul de putere al semnalului. Aceasta deoarece urechea umană e mai puțin sensibilă la spectrul de faze al unui semnal vocal.

Cum pentru fiecare k e necesar calculul sumei (2.11) cu N valori, rezultă o complexitate a algoritmului de calcul de forma O(N2). Pentru rapidizare sunt disponibili diverși algoritmi, dintre care cei mai cunoscuți sunt algoritmii FFT („Fast Fourier Transform”- Transformata Fourier Rapidă) cu decimare în frecvență sau decimare în timp. Algoritmul FFT se bazează pe calculul recursiv al valorilor spectrale [Tod05] și reduce complexitatea algoritmului la O(Nlog2N).

Pe baza aflării spectrului de frecvențe se pot determina o serie de parametrii specifici, cum ar fi anvelopa spectrală sau forma și valoarea formanților, ce ne dau informații despre comportamentul în domeniul frecvenței a semnalului pe segmentul de timp considerat. Formanții – maximele locale ale anvelopei spectrale- vor fi pe larg prezentați în capitolul dedicat procesării semnalului vocal din cadrul acestui referat.

Ϊnainte de calculul spectrului, semnalul poate fi prelucrat printr-un filtru trece-sus, realizându-se așa-numita preaccentuare a semnalului. Această operație este efectuată în scopul accentuării componentelor de frecvență ridicată, care de regulă sunt atenuate în procesul vorbirii de către sistemul fonator [Lup04].

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 de bază este furnizată de către un semnal de excitație, care poate să fie periodic sau neperiodic, în funcție de sunetul produs (tren de impulsuri periodice pentru cazul vocalelor sau zgomot alb în cazul consoanelor). Pentru un semnal de excitație periodic, se furnizează frecvența fundamentală F0 ca parametru de intrare în generator.

Semnalul de excitație este apoi amplificat cu un factor G (numit câștigul modelului) și trecut printr-un filtru variabil având funcția de transfer H(z). Filtrul variabil modelează comportamentul tractului vocal din cadrul sistemului fonator, și va produce la ieșire semnalul scontat s(n). Filtrul este controlat pe baza unor parametrii care sunt coeficienții LPC {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, iar

ak sunt coeficienții de predicție LPC.

Câștigul se poate determina pe baza erorii de predicție dintre semnalul calculat cu ajutorul filtrului recursiv și semnalul original. Pentru calculul parametrilor ak există mai multe metode, dintre care cele mai cunoscute sunt metoda autocorelației (prin algoritmul Levinson-Durbin) și metoda covarianței.

Metoda de analiză prin predicție liniară LPC are avantajul că necesită efort computațional relativ redus, rezultând un set de parametrii ce aproximează bine comportamentul semnalului în domeniul frecvență. Analiza LPC determină simplificarea spectrului semnalului, situație foarte avantajoasă în cazul recunoașterii vorbirii, când se va genera un set de vectori mult mai adecvați tratării prin mijloace specifice inteligenței artificiale, cum ar fi rețelele neuronale. Totodată, analiza LPC este utilă și în cazul sintezei de voce, generând reducerea volumului de date în condițiile menținerii inteligibilității vocii.

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)

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

Analiza perceptuală

Acest mod de analiză este adaptat după modul de funcționare al sistemului perceptual auditiv al omului, și anume după faptul că sesizarea diferitelor tonalități ale sunetelor se face pe o scară logaritmică în interiorul urechii, proporțional cu frecvența fundamentală a sunetului. Astfel, răspunsul urechii umane este neliniar în raport cu frecvența, ea detectând diferențe mici de frecvență mai ușor la frecvențe joase decât la frecvențe înalte [Lup04].

Din acest motiv au fost adoptate diferite scări neliniare de frecvență, pentru care se va calcula spectrul semnalului. Cele mai cunoscute sunt scara de frecvență Bark și scara Mel. Ambele sunt scări cu comportare logaritmică obținute prin studii realizate asupra percepției umane.

Există două metode de lucru în cadrul analizei perceptuale: analiza PLP și analiza cepstrală Mel.

Analiza PLP („Perceptual Linear Prediction”) folosește scara perceptuală Bark, fiind o combinație între metodele de analiză Fourier și LPC. Etapele de analiză în cadrul metodei PLP cuprind [Her90]:

calculul spectrului FFT prin transformata Fourier;

aliniere spectrală după scara Bark;

aplicarea unui set de filtre dreptunghiulare Bark pentru emularea rezoluției perceptuale a urechii umane;

preaccentuare pentru stimularea frecvențelor înalte;

conversia intensitate-tărie ;

aplicarea transformatei Fourier inverse pentru obținerea funcției de autocorelație;

calculul coeficienților LPC sau cepstrali, numiți în acest caz coeficienți PLP.

Coeficienții PLP de ordin inferior ne dau informații despre conținutul lingvistic al segmentului considerat (informații semantice), pe când coeficienții de ordin superior sunt utili în procesul de recunoaștere a identității vorbitorului [Lup04].

Analiza cepstrală Mel se aseamănă cu metoda de analiză PLP, folosindu-se în acest caz scara de frecvențe Mel. Spre deosebire de cazul anterior, acum se folosește un set de filtre triunghiulare Mel pentru a descompune semnalul pe benzile de frecvență asociate cu scara Mel. Apoi pe fiecare bandă se calculează energia medie și se aplică transformata cosinus pentru a obține un set de coeficienți numiți coeficienți MFCC („Mel Frequency Cepstral Coefficients”).

Coeficienții MFCC au dat bune rezultate în procesul de recunoaștere a vorbirii, mai ales în combinație cu setul de parametrii delta specificați de către Furui în [Fur01].

Ϊn concluzie, metodele de analiză a semnalului vocal utilizate în prezent sunt numeroase, fiecare prezentând variante specifice și beneficiind de aportul interesului și studiilor a numeroși cercetători de pe mapamond. Aceste metode de analiză s-au dovedit utile atât în sinteza de voce cât și în recunoașterea semanticii vorbirii sau a identității vorbitorului.

Ca o observație, se poate spune că metodele de analiză au fost utilizate distinct pe cele două domenii: domeniul timp și domeniul frecvență. Pentru viitor, se estimează astfel că o abordare în paralel a analizei pe cele două domenii va putea constitui o bază de plecare mai robustă atât pentru sinteza de voce de calitate superioară, cât și pentru generarea unor sisteme performante de recunoaștere a vorbirii.

III. Metode de sinteză și recunoaștere a vocii

3.1. Sinteza vorbirii

Sinteza semnalului vocal constă în generarea automată a semnalului vocal artificial. In ultimii ani această tehnologie s-a implementat pentru mai multe limbi. Deocamdată nu s-a reușit obținerea unui semnal vocal sintetizat pe care ascultătorul să nu reușească să-l deosebească de semnalul vocal natural.

In funcție de domeniul de analiză abordat, metodele de sinteză a vorbirii se împart în două categorii: metode de sinteză în domeniul timp și metode de sinteză în domeniul frecvență.

Metodele de sinteză în domeniul timp realizează concatenarea directă a formelor de undă stocate în prealabil în baza de date vocală. Cele mai simple sintetizatoare bazate pe aceste metode nu utilizează parametrizarea unităților acustice, utilizând direct forma de undă a semnalului în domeniul timp.

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

Figura 3.1. Modelul sintezei în domeniul timp

In cadrul acestui model, într-o primă fază de codificare și înregistrare a formelor de undă, unitățile acustice de tipul silabelor, fonemelor, demifonemelor, se înregistrează dintr-o rostire preliminară a unui vorbitor. Ele se vor înregistra ca forme de undă cu o anumită codificare (de exemplu PCM) într-o bază de date vocală.

In faza de sinteză propriu-zisă, după separarea unităților lexicale din textul de sintetizat (unități lexicale care trebuie să fie de același tip cu unitățile acustice preînregistrate), se va urmări punerea în corespondență cu unitățile acustice din baza de date vocală și reconstituirea secvențelor de undă asociate. Apoi printr-un proces de concatenare a secvențelor de undă se va genera rostirea propriu-zisă.

Avantajul major al acestor metode de sinteză prin concatenare în domeniul timp este reprezentat de calitatea aproape naturală a vocii sintetizate. Dintre dezavantaje se pot aminti o cantitate importantă de resurse folosite în procesul memorării formelor de undă, dar și dificultățile legate de modificarea prozodiei vorbirii.

Cele mai cunoscute metode de sinteză în domeniul timp sunt:

– metoda PSOLA, ce folosește principiul compunerii de segmente vocale care se întrepătrund, și

– metoda bazată pe corpus, ce folosește o bază de date (corpus vocal) de dimensiuni mari în scopul producerii unei vorbiri de calitate cât mai naturală.

Metodele de sinteză în domeniul frecvență realizează sinteza vocală pe baza unor parametrii acustici generați în urma aproximării unor caracteristici spectrale din domeniul frecvență. Astfel, pentru a realiza sinteza unui text, mai întâi se generează parametrii acustici corespunzători rostirii, și apoi sunt generate formele de undă ale semnalului vocal [Bur96].

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

Figura 3.2. Modelul sintezei în domeniul frecvență

In faza de analiză a sintezei din domeniul frecvență, unitățile acustice separate din rostirea preliminară sunt parametrizate în funcție de caracteristicile spectrale ale semnalului vocal. Parametrii sunt apoi înregistrați în baza de date și indexați în scopul unei regăsiri facile.

In faza de sinteză, unitățile lexicale (cuvinte, silabe, foneme) din textul de sintetizat sunt transformate în secvențe de parametrii regăsiți din baza de date parametrizată. Parametrii acustici sunt ajustați în funcție de prozodia cerută, iar pe baza lor vor fi generate formele de undă corespondente.

Avantajul metodelor bazate pe sinteza în domeniul frecvență constă în primul rând din posibilitatea realizării facile a aspectelor de prozodie (ritm, accent, intonație) prin calculul și generarea corespunzătoare a parametrilor acustici și spectrali. Un alt avantaj rezultă din faptul că în baza de date se păstrează nu formele de undă, ca în cazul metodelor din domeniul timp, ci parametrii acustici, ceea ce duce la o mare economie de resurse de memorie și computaționale.

Ca dezavantaj se poate aminti faptul că parametrizarea rostirii de la intrare în faza de analiză duce la aproximarea semnalului vocal și ca urmare în faza de reconstrucție a semnalului de la ieșire vorbirea rezultată va avea o calitate ‚sintetică’, depărtându-se de vorbirea naturală.

Ca exemple de metode ce utilizează analiza semnalului vocal în domeniul frecvență putem aminti:

metoda de sinteză prin predicție liniară (LPC – Linear Prediction Coding), ce utilizează pentru generarea semnalului vocal o serie de parametrii numiți coeficienți de predicție;

metoda de sinteză formantică, ce utilizează informațiile despre formanții spectrali în procesul generării unităților acustice.

În continuare se prezintă trei metode cu rezultate bune în sinteză, două în domeniul timp -metoda TD-PSOLA și metoda bazată pe corpus, a treia în domeniul frecvență: metoda LPC.

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.

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={xi(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 xi(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.

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)

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

Avantajele și dezavantajele metodei TD-PSOLA:

Metoda asigură o calitate superioară a sintezei rezultată în urma utilizării segmentelor de vorbire extrase direct din vorbirea umană reală. Modul de alegere a segmentelor centrate pe maximul de intensitate sonoră asigură erori minime datorate compunerii segmentelor suprapuse. Astfel, erorile vor putea apare doar la capetele intervalelor, unde semnalul sonor are energie mică [Dut93], [Edg96].

De asemenea, un alt avantaj major al metodei constă în posibilitatea modificării facile a frecvenței și duratei de semnal, ceea ce asigură schimbarea prozodiei semnalului vocal sintetizat și implicit creșterea calității sintezei.

Ca dezavantaje, trebuie totuși menționate zgomotele care pot apărea la capetele intervalelor de segment, datorită erorilor introduse de mediere. De asemenea, în interiorul tranzițiilor pot apărea distorsiuni cauzate de erorile de fază, unele porțiuni nesonore putând deveni sonore în urma compunerii segmentelor suprapuse.

Imbunătățiri ale metodei:

Pentru a elimina o parte din neajunsurile metodei, au fost încercate diferite abordări sau îmbunătățiri. Cele mai cunoscute sunt LP-PSOLA și MBROLA.

Tehnica LP-PSOLA („Linear Prediction PSOLA”) este o combinație între alogoritmul de sinteză LPC și algoritmul PSOLA. Metoda separă excitația de semnalul corespunzător tractului vocal într-un mod asemănător metodei prin predicție liniară LPC, folosind minimizarea erorii e(t) a semnalului de predicție (eroare ce se mai numește semnal rezidual). Apoi algoritmul PSOLA se aplică doar pe acest semnal rezidual, care are proprietatea de a fi decorelat în interiorul fiecărui segment considerat [Edg96].

Avantajul care apare din această abordare constă în controlul mult mai bun asupra structurii spectrale a semnalului, precum și în calitatea mult îmbunătățită a tranzițiilor dintre segmente.

Metoda MBROLA („Multiband Resynthesis Overlap and Add”), proiectată în cadrul Facultății politehnice din Mons, Belgia, are avantajul de a netezi discontinuitățile spectrale ce apar în TD-PSOLA. Metoda lucrează și ea în domeniul timp, folosind o bază de date vocală normalizată și interpolări la capetele intervalelor de sinteză. Metoda este implementată în cadrul unui sintetizor de voce care primește la intrare un fișier cu parametrii prozodici și produce vorbirea sintetizată pe baza concatenării difonemelor din baza de date vocală [Dut93].

3.1.2 Metoda de sinteză bazată pe corpus

Metoda bazată pe corpus este o metodă relativ nouă (bazele teoretice ale metodei s-au dezvoltat în anii 1996-1997), ce elimină unele deficiențe ale sistemelor de concatenare ce folosesc unități lexicale fixe (foneme, difoneme). Metoda îmbunătățește calitatea semnalului sintetizat prin utilizarea unor segmente fonetice cât mai lungi, știut fiind faptul că sistemele care folosesc îmbinări frecvente ale unităților lexicale pierd mult din naturalețea vorbirii [Hun96], [Mob00].

Metoda utilizează un corpus vorbit (o bază de date cu înregistrări din vorbirea naturală) de dimensiuni relativ mari. În timpul sintezei se vor selecta cele mai lungi unități (segmente) fonetice din acel corpus pentru generarea vorbirii. Aceasta va duce pe de o parte la reducerea numărului de concatenări și implicit la creșterea calității vorbirii, iar pe de altă parte la reducerea necesităților de prelucrare a semnalului vocal prin utilizarea tehnicilor DSP (de prelucrare digitală a semnalului)

Problemele care trebuie rezolvate aici sunt [Mob00]:

Măsurarea distanțelor acustice între unități pentru alegerea segmentelor fonetice celor mai potrivite.

Baza de date va conține mai multe unități fonetice corespunzătoare unui anumit segment lingvistic (de exemplu o mulțime de foneme „a”, o mulțime de silabe „ma”, etc.), iar dintre acestea va trebui selectată doar o singură unitate, ce se potrivește cel mai bine contextului vorbirii.

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.

Acordarea trăsăturilor unităților ce se concatenează. Aici se folosesc două tipuri de trăsături: segmentale și prozodice.

Trăsăturile segmentale se referă la concatenarea a două segmente din context lingvistic apropiat. Astfel, este de urmărit să se concateneze două segmente cu trăsături spectrale cât mai apropiate pentru a asigura o tranziție cât mai fină între unități.

Trăsăturile prozodice se referă la concatenarea a două unități integrate pe aceeași linie prozodică, pentru a nu apărea salturi în intonația și melodicitatea vorbirii.

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

În vederea selectării unităților fonetice din baza de date vocală se va lua în considerare minimizarea a două tipuri de costuri: costul pentru distorsiunea unităților („Target Cost”) și costul pentru distorsiunea concatenării („Concatenation Cost”).

Costul pentru distorsiunea unităților „Target Cost” calculează distanțele acustice dintre unitățile candidat din baza de date vocală și unitățile țintă care apar în textul de sintetizat:

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

unde:

– TC = Target Cost;

– UC reprezintă unitatea candidat;

– UT este unitatea țintă.

Costul pentru distorsiunea concatenării „Concatenation Cost” calculează distanțele spectrale dintre cele două unități care se concatenează. Distanțele spectrale se calculează în punctul de concatenare:

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

unde:

CC = Concatenation Cost;

UN și UN+1 reprezintă două unități fonetice succesive din semnalul sintetizat.

Adnotarea bazei de date vocală:

Unitățile acustice din baza de date vocală se adnotează prin vectori de trăsături multidimensionali, ce conțin proprietățile segmentale și prozodice ale semnalului vocal.

Proprietățile segmentale (din interiorul unităților fonetice) se referă la parametrii lingvistici și de semnal din segmentul considerat.

Parametrii lingvistici pot fi:

fonemele asociate unității acustice L[i];

contextul lingvistic al unității fonematice C[i].

Parametrii de semnal se referă la:

frecvența fundamentală F0;

durata D;

amplitudinea de semnal A(n);

coeficienții spectrali X(n).

Proprietățile prozodice țin cont de prozodia segmentală, care este legată de accentuarea silabelor din interiorul unui cuvânt, precum și de prozodia suprasegmentală, legată de intonația și modul de rostire al propozițiilor. Proprietățile prozodice sunt:

conturul frecvenței fundamentale ΔF(n);

conturul amplitudinii de semnal ΔA(n);

modificarea duratei segmentului ΔD.

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

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

unde:

VT reprezintă vectorul de trăsături al unității fonetice;

L[i], C[i] reprezintă parametrii lingvistici ai unității;

F0, A(n), D, X(n) reprezintă parametrii de semnal;

ΔF(n), ΔA(n), ΔD reprezintă parametrii prozodici ai segmentului considerat, toți parametrii având semnificația indicată mai sus.

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

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

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

[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

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

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

Există două metode pentru calculul costurilor (Target Cost Tij , 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:

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:

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

Faza de analiză :

Se înregistrează baza de date vocală ;

Baza de date este segmentată în unități acustice de diferite  lungimi;

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 ;

Se construiesc arborii de decizie bazați pe clasele de echivalență ;

Se calculează costurile Target Cost și Concatenation Cost și se introduc în arborii de decizie.

Faza de sinteză :

Se preia textul de la intrare și se determină unitățile lexicale (propoziții, cuvinte, silabe și foneme);

Se determină toate posibilitățile de construire a propozițiilor pe baza unităților lexicale componente ;

Pentru fiecare secvență de unități lexicale se determină informația de context și caracteristicile prozodice ;

Se caută în arborii de decizie secvența optimă de unități acustice corespunzătoare contextului lexical;

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ă 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, iar

ak sunt coeficienții de predicție LPC.

Câștigul se poate determina pe baza erorii de predicție dintre semnalul calculat cu ajutorul filtrului recursiv și semnalul original. Pentru calculul parametrilor ak există mai multe metode, dintre care cele mai cunoscute sunt metoda autocorelației (prin algoritmul Levinson-Durbin) și metoda covarianței.

Astfel, metoda de sinteză LPC are ca obiectiv estimarea parametrilor unui sistem susceptibil de a genera un semnal artificial cât mai apropiat de semnalul original. În cazul acestei metode de sinteză, semnalul sintetizat poate fi văzut ca și o combinație liniară a p eșantioane precedente la care se adaugă și efectul semnalului de excitație.

Un aspect important în analiza prin predicție liniară este alegerea numărului de coeficienți de predicție p. Acesta depinde de frecvența de eșantionare a semnalului: de exemplu la o frecvență de eșantionare de 8 kHz se vor lua în calcul 10 –12 poli. De asemenea numărul coeficienților utilizați este în strânsă corelare cu eroarea de predicție. Astfel s-a observat că eroarea de predicție scade o dată cu creșterea numărului de coeficienți de predicție luați în calcul.

Cu ajutorul sintezei prin predicție liniară se poate obține o voce sintetizată de calitate destul se bună. Totuși, datorită modelului – numai poli – folosit în această metodă de sinteză, în cazul sunetelor nazalizate de exemplu, modelarea spectrală a formanților este de o calitate mai slabă. În astfel de situații, sintetizorul LPC produce frecvent vârfuri spectrale (spectral peaks ) a căror lățime de bandă este prea mare, acest lucru concretizându-se în vocea sintetizată prin apariția unui bâzâit (‘buzzines’ ).

Pentru îmbunătățirea determinării funcției de transfer a tractului vocal se pot calcula și zerourile pe lângă polii spectrali. Astfel, este posibilă transformarea unui pol în zerou, printr-o dezvoltare în serie și de asemenea, în mod asemănător se poate elimina un zerou spectral. Această soluție este însă incompatibilă cu cerința de compresie a datelor , respectiv cu cerința de reducere a debitului de informație.

3.2. Recunoașterea vorbirii

Recunoașterea vorbirii este procesul de extragere automată a informației lingvistice conținută de o undă vocală folosind calculatoare sau circuite electronice. Informația lingvistică, cea mai importantă informație din semnalul vocal, se mai numește și informație fonetică. Într-un sens mai larg, recunoașterea vorbirii include și recunoașterea vorbitorului, ceea ce implică extragerea informațiilor individuale caracteristice persoanei care vorbește.

Metodele de recunoaștere automată a vorbirii sunt studiate de multă vreme, cu scopul principal de a realiza sisteme de interacțiune om-mașină. Prima lucrare ștințifică referitoare la recunoașterea vorbirii a fost publicată în 1952 și descria dispozitivul Audrey al firmei Bell Labs. Acesta realiza recunoașterea cifrelor. De atunci cercetările legate de recunoașterea vorbirii s-au intensificat, apărând între timp primele sisteme conversaționale om-mașină. Un astfel de sistem este compus dintr-un sintetizor și un dispozitiv care realizează recunoașterea vorbirii. Această configurație dă rezultate foarte bune datorită faptului că erorile pot fi detectate cu ajutorul auzului și corectate imediat.

3.2.1. Avantajele recunoașterii vorbirii

Ca și sintetizoarele vocale, dispozitivele care realizează recunoașterea vorbirii au patru avantaje specifice ([Fur01]):

Comanda vocală este ușor de realizat deoarece nu implică eforturi deosebite, cum este cazul scrisului sau lucrului cu butoane.

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

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.

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:

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.

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.

Caracteristicile individuale și alți factori care cauzează variabilitatea semnalului vocal.

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

4. Cunoștințe lingvistice insuficiente.

Caracteristicile fizice ale semnalului vocal adesea nu conțin suficientă informație fonetică în și despre ele. Vorbirea în propoziții se bazează pe anumite reguli sintactice pe baza cărora ascultătorul poate prezice următorul cuvânt. Ceea ce se cunoaște în momentul actual legat de structura lingvistică a rostirilor nu ne permite să modelăm mecanismul de folosire a constrângerilor lingvistice în perceperea vorbirii.

3.2.3. Clasificarea sistemelor de recunoaștere a vorbirii

Recunoașterea vorbirii se poate clasifica în recunoaștere de cuvinte izolate, caz în care sunt identificate cuvinte rostite individual, și recunoaștere continuă, în care sunt recunoscute secvențe rostite în mod continuu. Recunoașterea vorbirii continue se împarte la rândul ei în două părți: transcriere și înțelegere.

Recunoașterea de cuvinte izolate are drept scop final recunoașterea corectă a fiecărui cuvânt rostit, în timp ce recunoașterea continuă a vorbirii urmărește înțelegerea sensului propozițiilor. Ca urmare, în acest din urmă caz este nevoie de cunoștințe lingvistice puternice.

Dintr-un alt punct de vedere recunoașterea vorbirii continue se poate clasifica în recunoaștere independentă de vorbitor și recunoaștere dependentă de vorbitor. Sistemele din prima categorie pot recunoaște rostiri ale oricărei persoane, în timp ce în cel de-al doilea caz, referințele (modelele) sunt altele pentru fiecare vorbitor.

Ca și referințe (modele) se poate utiliza o gamă largă de unități lingvistice, începând cu fonemele și terminând cu cuvintele. Când sunt folosite cuvintele, semnalul de intrare digitizat este comparat cu fiecare dintre referințe, până când este găsită una care se potrivește. Algoritmii bazați pe foneme în schimb, analizează intrarea ca pe un șir de sunete pe care îl convertesc în cuvinte cu ajutorul unui dicționar bazat pe pronunție.

Când sunt folosite cuvintele ca și unități lingvistice de bază procentul de recunoaștere este ridicat deoarece este evitată problema coarticulării între cuvinte. Un vocabular mare necesită mai multă memorie și mai multe calcule, făcând antrenarea destul de dificilă. De asemenea, cuvintele ca și unități lingvistice, nu pot rezolva problema coarticulării în cazul vorbirii continue. Folosirea fonemelor ca și referințe nu mărește cu mult necesitățile de memorie și nici numărul de calcule, iar antrenarea poate fi făcută mai eficient. Mai mult decât atât, poate fi luată în considerație și coarticularea în interiorul cuvintelor și între cuvinte. Deoarece nu au fost stabilite încă reguli pentru coarticulare, sunt necesare mai multe foneme ca și unități lingvistice în funcție de context.

Alegerea celor mai potrivite unități lingvistice pentru recunoașterea vorbirii depinde de tipul recunoașterii (dacă e recunoaștere de cuvinte izolate sau de vorbire continuă) și de mărimea vocabularului.

3.2.4. Recunoașterea continuă a vorbirii

Cele mai complexe sisteme de recunoaștere sunt cele care realizează recunoașterea continuă a vorbirii. În acest caz utilizatorul rostește un mesaj, iar sistemul trebuie să fie capabil să-l înțeleagă. Printre problemele dificile de rezolvat se numără: determinarea capetelor rostirii (vorbitorul vorbind într-o manieră liberă, fără constrângeri), efectele datorate coarticulării sau funcționarea în condiții de zgomot.

Procesul de recunoaștere a vorbirii are la bază o căutare al cărei scop este găsirea unei secvențe de cuvinte care are probabilitatea cea mai mare de a fi generat semnalul vocal de la intrarea sistemului. Căutarea se face pe baza așa – numitelor ”surse de cunoștințe”. Acestea pot fi: un dicționar care conține cuvintele care pot fi recunoscute, fiecare cuvânt fiind reprezentat ca și o secvență de foneme, un model lingvistic, care atașează o anumită probabilitate fiecărei secvențe de cuvinte și un model acustic, care modelează relația dintre vectorii de parametri și foneme.

Figura 3.2.1. Structura unui sistem de recunoaștere a vorbirii.

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

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

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

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.

O mulțime de K simboluri V={v1,v2,…,vk}. În fiecare moment modelul generează un simbol din această mulțime, notat cu Ot.

Matricea tranzițiilor între stări – A, care conține probabilitățile de tranziție între două stări:

, unde , și (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)

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)

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:

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 .

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 .

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.

Figura 3.2.2. Structura unui sistem de recunoaștere a

cuvintelor bazat pe un HMM discret.

3.2.6. Realizarea unui sistem de recunoaștere a cuvintelor izolate bazat pe modele Markov ascunse

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

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

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

În cazul a doi vorbitori, cele 200 de cuvinte s-au împărțit astfel:

100 de cuvinte (50 de la primul vorbitor și 50 de la cel de-al doilea) pentru antrenare;

100 de cuvinte (50 de la primul vorbitor și 50 de la cel de-al doilea) pentru testare.

Rezultatele obținute sunt sintetizate în Tabelul 2.

Tabelul 2.

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ă

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:

Figura 3.3.4. Metoda bazată pe reguli

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

Calitatea sintezei depinde în acest caz atât de calitatea unităților elementare înregistrate în baza de date, cât și de modul de realizare și performanța regulilor prozodice și de concatenare [Bur97].

3.3.2. Etape procesuale în cadrul sintezei text-to-speech

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

Analiza textului de la intrare în scopul obținerii unei reprezentări fonetice și prozodice a textului;

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

Analiza textului cuprinde: preprocesarea lingvistică, analiza sintactică și lexicală, transcrierea fonetică și determinarea prozodiei.

Sinteza presupune generarea secvenței de parametrii corespunzătoare textului și sinteza propriu-zisă a vorbirii.

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

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

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

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

Urmează apoi etapa de determinare a prozodiei pentru segmentele vocale analizate. Pe baza unor reguli prozodice specifice limbii, se va determina accentul, intonația și ritmul corect pentru fiecare unitate fonematică. Regulile prozodice se aplică atât la nivelul suprasegmental al propozițiilor, realizându-se un contur prozodic al propoziției, cât și la nivel segmental, în interiorul cuvintelor.

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

Pe lângă prozodia lingvistică, care se determină pe baza analizei lingvistice a textului, în ultimii ani se ține cont tot mai mult și de prozodia emoțională, pentru a simula stările emoționale pe care le poate avea un vorbitor (bucurie, teamă, liniște, etc.).

După aceste etape de analiză a textului, urmează etapele încadrate în faza de sinteză. Prima dintre ele este etapa de generare a parmetrilor acustici pentru sinteză. Pe baza simbolurilor fonematice care provin din etapa de transcriere fonetică și a modificărilor prozodice determinate pe baza regulilor privind intonația și ritmul, se generează secvența de parametrii corespunzătoare textului de sintetizat.

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:

Figura 3.3.6. Etapele procesuale ale sintezei TTS [Bur97]

3.4 Metoda de sinteză bazată pe silabe

Ca o aplicație a metodelor de sinteză prin concatenare, colectivul nostru a proiectat și implementat o metodă de sinteză pornind de la text, metodă bazată pe concatenarea silabelor. Pentru implementarea metodei a fost necesară stabilirea unor reguli lingvistice în faza de analiză a textului.

Metoda se rezumă la următorii pași (fig. 1):

analiza textului, ce cuprinde fazele de: preprocesare, analiză de sintaxă, determinare a unităților lingvistice (silabele), determinare a prozodiei intrasegmentale (accentele);

regăsirea unităților acustice din baza de date vocală;

concatenarea unităților;

sinteza propriu-zisă.

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:

nu sunt scrise cu foneme, ci folosind alte caractere: cifre sau simboluri;

nu formează direct unități lexicale, ci prescurtări ale acestora (abrevieri).

a) Din prima categorie fac parte numerele, alcătuite din cifre, precum și anumite simboluri scrise cu caractere speciale, cum ar fi :

Simboluri pentru operațiile aritmetice :

‘+’ <-> ‘plus’

’-’ <-> ‘minus’

’x’ <-> ‘ori’ <-> ‘înmulțit cu’

’ :’ sau ’/’ <-> ’supra’ <->’împărțit la’

Simboluri pentru peratorii aritmetici :

’<’ <-> ‘mai mic’

’>’ <-> ‘mai mare’

’<=’ <-> ‘mai mic sau egal’

’>=’ <-> ‘mai mare sau egal’

’=’ <-> ‘egal’

’!=’ sau ‘<>’ <-> ‘diferit’

b) Abrevierile sunt și ele împărțite pe categorii:

Unități de măsură:

‘m’ <-> ‘metru’

‘g’ <-> ‘gram’

‘l’ <-> ‘litru’ ,

‘Hz’ <-> ‘herți’

‘dB’ <-> ‘decibeli’

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

‘n’ <-> ‘nano’

‘m’ <-> ‘mili’

‘c’ <-> ‘centi’

‘d’ <-> ‘deci’

‘da’ <-> ‘deca’

‘k’ <-> ‘kilo’

‘M’ <-> ‘mega’

Grade universitare:

‘asist.’ <-> ‘asistent’

‘sl.’ <-> ‘șef lucrări’

‘conf.’ <-> ‘conferențiar’

‘prof.’ <-> ‘profesor’

Grade de armată:

‘serg.’ <-> ‘sergent’

‘plut.’ <-> ‘plutonier’

‘mai.’ <-> ‘maior’

‘căp.’ <-> ‘căpitan’

‘col.’ <-> ‘colonel’

‘gen.’ <-> ‘general’

Alte abrevieri:

‘loc.’ <-> ‘localitatea’

‘str.’ <-> ‘strada’

‘bl.’ <-> ‘bloc’

‘sc.’ <-> ‘scara’

‘ap.’ <-> ‘apartamentul’

‘tel.’ <-> ‘telefon’

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

Tabelul 1.

2. Analiza sintaxei

Analiza corectitudinii textului din punct de vedere al sintaxei reprezintă al doilea pas preliminar efectuat în vederea realizării unei sinteze de vorbire de calitate. Orice greșeală de sintaxă care apare în textul inițial (generată de obicei prin omiterea unei litere din cuvânt sau de omiterea diacriticelor) va duce la sinteza unui cuvânt eronat, ceea ce va avea ca efect atât o senzație de notă discordantă în rostirea globală, cât și solicitarea unui efort din partea auditorului de recreare mentală a cuvântului corect. Acest efort induce diminuarea atenției față de cuvintele care urmează, și chiar la pierderea sensului întregii propoziții care conține aceste cuvinte.

Pentru a înlătura aceste dezavantaje și a realiza o sinteză de voce de calitate ridicată, este prin urmare nevoie de un analizor de verificare a corectitudinii sintactice a textului. Un astfel de analizor se poate proiecta prin două metode de bază : prin construirea unui vocabular complet pentru limba respectivă, sau prin folosirea unor reguli gramaticale sintactice, însoțite de specificarea unor condiții de excepție.

Prima metodă este mai completă, dar are dezavantajul unui efort mare de construire a unui vocabular pentru acea limbă (care poate avea mai multe zeci de mii de cuvinte), vocabular ce trebuie să conțină și informații despre construirea formei flexionate a cuvintelor (de exemplu rădăcină sau morfemă, terminații pentru declinare sau conjugare).

A doua metodă necesită generarea unui set de reguli pentru regăsirea formei de bază neflexionate a cuvintelor și verificarea corectitudinii acestora printr-un dicționar. Metoda are dezavantajul unui anumit grad de necompletitudine, depinzând de numărul de excepții introduse în analizor.

Pentru limba română s-au construit câteva variante de vocabulare ([],[]), și un analizor de sintaxă integrat în produsul Microsoft Office Word. Toate aceste variante au necesitat un volum mare de muncă din partea unor echipe întregi de lingviști și programatori.

Autorul a propus în această lucrare o metodă bazată pe reguli gramaticale, variantă cu un cost de proiectare mult mai redus decât în cazul realizării de vocabulare. Metoda are ca punct de plecare generatorul automat de analizoare LEX, alimentat de o gramatică ce specifică regulile sintactice de flexionare a cuvintelor din limba română. Pe lângă aceste reguli au fost introduse și un număr de excepții care asigură un grad înalt de completitudine în ceea ce privește acoperirea formelor gramaticale din limba română.

Metoda este prezentată în figura 1. La intrare se prezintă un text cursiv ce conține cuvinte în limba română în diferite forme flexionate. Folosind un set de reguli sintactice de flexionare și un set de excepții, analizorul LEX generează forma de bază, neflexionată, a fiecărui cuvânt de la intrare și o caută într-un dicționar. O interfață grafică va pune apoi în evidență cuvintele care au o sintaxă greșită sau care nu au fost potrivite cu setul de reguli din LEX.

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

Analizorul sintactic ia în considerare următoarele categorii sau părți de vorbire din limba română:

SUBSTANTIV

VERB

ADJECTIV

ADVERB

ARTICOL

CONJUNCȚIE

PREPOZIȚIE

NUMERAL

PRONUME

INTERJECȚIE

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

ADJECTIV NOMINATIV / ACUZATIV

ADVERB

ARTICOL GENITIV / DATIV

PRONUME

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

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.

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.

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

Figura 6. Structura ierarhică a analizorului sintactic

În figura 6, unitățile care apar pe un fond de culoare mai închisă (silabele, respectiv numerele întregi sau reale, precum și separatorii) sunt de fapt ieșirile analizorului lexical, adică sunt unități care au fost determinate prin analiza lexicală a textului. Astfel, analizorul sintactic invocă analizorul lexical pentru a-i fi furnizat la fiecare apel unitatea lexicală următoare din text: o silabă, un număr sau un separator.

Pe baza acestor unități lexicale, la acest nivel se formează unitățile sintactice de tip cuvânt, propoziție sau text. Analizorul sintactic are posibilitatea ca după regăsirea fiecărui tip de unitate să apeleze o procedură de calcul pentru procesarea specifică a unității.

În implementarea sistemului, a fost aleasă varianta de apel de procedură doar pentru unități de tipul silabei și a separatorilor. Aceste unități se vor memora în interiorul analizorului lexical care le depistează. Memorarea cuvintelor și a propozițiilor se va face în interiorul modulului de procesare, și nu la nivelul analizorului sintactic.

2.3.2. Analizorul lexical utilizat în determinarea silabelor

Analizorul lexical este apelat de către analizorul sintactic pentru regăsirea unităților fonetice de bază, și anume : silabele, caracterele despărțitoare și numerele. Analizorul sintactic va grupa aceste unități lexicale de bază în cuvinte și propoziții. Analizorul sintactic este implementat prin program, pe când analizorul lexical este rezultat în urma generării automate prin intermediul unui generator de parsere de text, numit LEX .

Generatorul automat LEX construiește un analizor lexical pornind de la o gramatică ce descrie regulile de producție ale analizorului. Gramatica se scrie în limbaj standard BNF (Backus-Naur Form) și specifică secvențele de caractere care trebuie recunoscute din textul de la intrare, precum și acțiunile de efectuat corespunzătoare acestor secvențe. Secvențele de caractere de recunoscut țin cont de contextul stânga și dreapta în care ele apar.

Analizorul generat preia așadar de la intrare un text pe care îl va parcurge secvențial în scopul regăsirii secvențelor specificate în gramatica BNF. In cazul nostru secvențele se referă la regăsirea numerelor, caracterelor speciale și a silabelor. Procesul realizat de către analizorul lexical este ilustrat în figura următoare:

Figura 7. Analizorul lexical pentru regăsirea silabelor

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

Odată identificat tipul unității, caracterele componente sunt memorate și transmise analizorului sintactic prin intermediul unor proceduri numerice (Tratare_număr, Tratare_separator, Tratare_silabă).

2.3.3. Determinarea accentelor

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

Figura 8. Analizorul lingvistic pentru determinarea accentelor

Parserul de text sau analizorul sintactic returnează cuvântul curent din stream-ul de intrare, cuvânt alcătuit dintr-o serie de foneme și terminat cu un separator. Cuvântul este introdus la intrarea analizorului lexical care, pe baza unor reguli lexicale, va determina silaba accentuată din cuvânt. În limba română, silaba accentuată este una din ultimele trei silabe ale cuvântului (SN = ultima silabă, SN_1 = penultima silabă, respectiv SN_2, SN_3 = silabele anterioare). Regulile sunt constituite dintr-o regulă de bază, și anume aceea că penultima silabă este cea accentuată (regula generală pentru limba română), respectiv un set consistent de excepții organizat pe grupuri de cuvinte ce au terminații comune.

Analizorul lexical pentru determinarea accentelor a fost proiectat tot pe baza facilităților oferite de către generatorul automat LEX. Astfel regulile analizorului sunt furnizate generatorului LEX în format BNF, stream-ul de intrare fiind chiar cuvântul curent extras din text de către analizorul sintactic.

2.3.4. Regăsirea unităților acustice și sinteza de voce

În această etapă se urmărește mai intâi regăsirea unităților acustice din baza de date necesare pentru sinteză. Aceasta înseamnă potrivirea unităților lingvistice determinate pe baza analizei textului de la intrare, cu unitățile acustice înregistrate în baza de date. Pot exista următoarele situații:

a). Silaba dorită să fie regăsită identic în baza de date vocală, atât din punct de vedere fonetic, cât și din punct de vedere prozodic. În acest caz silaba se reține ca atare pentru a fi înglobată în cuvântul de sintetizat.

b). Silaba este regăsită fonetic, dar nu și prozodic. Se preferă în acest caz constituirea acesteia din silabe și foneme mai scurte, care să respecte prozodia cerută (silabă accentuată sau neaccentuată).

c). Silaba nu este regăsită fonetic în baza de date. Și in acest caz silaba va fi compusă pe baza fonemelor separate extrase din baza de date.

Urmează apoi îmbinarea unităților acustice regăsite din baza vocală. Unitățile se concatenează cu pauze corespunzătoare pauzei dintre cuvinte, care se va ajusta în funcție de ritmul cerut vorbirii.

Și în fine, ultima fază este cea de sinteză propriu-zisă, în care formele de undă corespunzătoare textului de la intrare sunt redate sonor prin intermediul plăcii audio a calculatorului.

2.3.5. Avantajele metodei

Metoda de sinteză bazată pe concatenarea silabelor are următoarele avantaje:

– necesită un efort mai mic de construire și întreținere a bazei de date vocale decât în cazul metodei bazate pe corpus;

– prezintă o calitate mai înaltă a sintezei față de metoda bazată pe foneme sau difoneme, din cauza unui număr mai redus de puncte de concatenare;

– păstrează simplitatea metodelor de sinteză prin concatenare, în raport cu metodele parametrice de sinteză;

– metoda propusă bazată pe reguli are o abordare unitară în toate fazele de proiectare;

– utilizarea regulilor lingvistice în analiza textului asigură un efort de proiectare mult mai redus în raport cu alte abordări.

Implementare

Metoda a fost implementată utilizând mediul de programare Visual C++ 6.0. Analizoarele lexicale au fost realizate folosind programul LEX, care permite construirea de parsere de text având la intrare o gramatică cu regulile de parcurgere în format BNF.

Etapele urmărite de noi în proiectarea sistemului de sinteză de voce au fost următoarele (figura 9):

Construirea unei baze de date vocale, ce cuprinde fazele de înregistrare, normalizare și segmentare;

Analiza lingvistică a textului de sintetizat ce cuprinde fazele de determinare a silabelor și accentelor din text.

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.

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 ), precum și frecvență fundamentală (corespunzând unor rostiri de aceeași tonalitate, același ritm și intonație . Aceste cerințe legate de amplitudine și frecvență fundamentală se referă În primul rînd la segmentele vocale care prezintă aceste caracteristici – cu alte cuvinte la segmentele corespunzătoare vocalelor fonetice.

După faza de normalizare a urmat etapa de segmentare a bazei de date în scopul obținerii unităților acustice cu care lucrează sistemul. În cazul nostru, înregistrările au fost segmentate pentru a obține silabele dorite. Noi am proiectat un algoritm de segmentare automată în regiuni având aceleași caracteristici și un algoritm de potrivire a fonemelor cu regiunile detectate. Astfel silabele au fost ușor de pus în evidență din semnalul inițial și salvate în baza de date. Procesul de segmentare nu este obligatoriu să urmeze după normalizare, cele două etape fiind interschimbabile în funcție de abordare.

Baza de date vocală cuprinde totalitatea unităților fonetice utilizate pentru sinteză, și anume un subset al silabelor limbii române. Baza de date este organizată sub formă arborescentă, în care nodurile arborelui reprezintă caracteristicile silabelor, iar nodurile frunză corespund silabelor propriu-zise.

Silabele au fost introduse în baza de date în funcție de următoarea clasificare:

după lungimea silabei: silabe de două, trei sau patru litere;

după poziția din cadrul cuvântului: silabe de segment median sau final;

după accentuare: silabe accentuate sau neaccentuate.

Baza de date vocală a fost apoi indexată pentru regăsirea ușoară a informațiilor.

După ce baza de date vocală a fost înregistrată, segmentată și normalizată, a urmat procesul de analiză lingvistică a textului de sintetizat.

O primă etapă de analiză este extragerea unităților fonetice din textul prezentat la intrare. La început se analizează semnele de punctuație existente în text, în funcție de care separă propozițiile. Semnele de punctuație dau un indiciu și despre tipul propoziției (afirmativă, interogativă, imperativă), de mare importanță pentru determinarea intonației și accentuării elementelor propoziționale.

Fiecare propoziție este apoi împărțită în cuvinte, pe baza caracterelor textuale despărțitoare. În această fază s-a inserat o etapă de preprocesare a textului, în care cifrele existente să fie transcrise sub formă literală, iar abrevierile din text să fie expandate în cuvinte întregi.

Etapa cea mai importantă care urmează este stabilirea silabelor componente din cadrul unui cuvânt. Pentru această etapă a fost necesară o analiză lexicală bazată pe determinarea unui set de reguli de despărțire în silabe a cuvintelor, reguli care sunt specifice pentru limba română. Regulile cuprind un nucleu de elemente de ordin global, și un set de excepții atașat acestui nucleu. Rolul acestui set de reguli este de a determina fonemele componente ale fiecărei silabe din cadrul unui cuvânt.

Analizorul lingvistic pentru despărțirea în silabe are o structură alcătuită din trei module: analizorul lexical, analizorul sintactic și modulul de procesare

Analizorul lexical extrage caracterele din text și le grupează în unități fonetice primare. Aici intră determinarea caracterelor alfabetice, numerice, a caracterelor speciale și semnelor de punctuație. Pe baza unor reguli de producție lexicale, caracterele alfabetice vor fi grupate în silabe, caracterele numerice în cifre și numere, iar caracterele speciale și semnele de punctuație vor fi folosite în determinarea cuvintelor și propozițiilor.

Analizorul sintactic preia silabele, respectiv caracterele speciale și cifrele furnizate de analizorul lexical și le grupează în cuvinte și propoziții. Și aici a fost necesară stabilirea unui set de reguli sintactice pentru departajarea unităților fonetice corespunzătoare.

Modulul de procesare preia în final unitățile fonetice găsite anterior și, pe baza unor proceduri de calcul, le clasifică și le memorează în structuri speciale. De aici vor fi preluate și transformate în forme de undă de către modulul de sinteză.

Analizorul lexical pentru determinarea silabelor a fost proiectat pe baza facilităților oferite de către generatorul automat LEX, care generează un parser de text pe baza regulilor de producție furnizate.

După etapa de despărțire în silabe, urmează etapa de determinare a accentelor din interiorul cuvintelor. Folosind un al doilea analizor lexical, de data aceasta proiectat pentru determinarea accentelor, au fost stabilite silabele accentuate, respectiv silabele neaccentuate din cadrul cuvintelor care au fost extrase în etapa anterioară.

Parserul de text sau analizorul sintactic returnează cuvântul curent din stream-ul de intrare, cuvânt alcătuit dintr-o serie de foneme și terminat cu un separator. Cuvântul este introdus la intrarea analizorului lexical care, pe baza unor reguli lexicale, va determina silaba accentuată din cuvânt. În limba română, silaba accentuată este una din ultimele trei silabe ale cuvântului (SN = ultima silabă, SN_1 = penultima silabă, respectiv SN_2, SN_3 = silabele anterioare).

Regulile de accentuare sunt constituite dintr-o regulă de bază, și anume aceea că penultima silabă este cea accentuată (regula generală pentru limba română), respectiv un set consistent de excepții organizat pe grupuri de cuvinte ce au terminații comune.

Urmează apoi faza de potrivire a unităților fonetice, determinate pe baza analizei textului de la intrare, cu unitățile acustice înregistrate în baza de date. Aici pot exista următoarele situații:

a) silaba dorită este regăsită identic în baza de date vocală, atât din punct de vedere fonetic, cât și din punct de vedere prozodic. În acest caz silaba se reține ca atare pentru a fi înglobată în cuvântul de sintetizat.

b) silaba este regăsită fonetic, dar nu și prozodic. Se preferă în acest caz constituirea acesteia din silabe și foneme mai scurte, care să respecte prozodia cerută (silabă accentuată sau neaccentuată).

c) silaba nu este regăsită fonetic în baza de date. Și in acest caz silaba va fi compusă pe baza fonemelor separate extrase din baza de date.

Urmează apoi îmbinarea unităților acustice regăsite din baza vocală. Unitățile se concatenează cu pauze corespunzătoare pauzei dintre cuvinte, care se ajustează în funcție de ritmul cerut vorbirii.

Și în fine, ultima fază este cea de sinteză propriu-zisă, în care formele de undă corespunzătoare textului de la intrare sunt redate sonor prin intermediul plăcii audio a calculatorului.

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

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

Biblioteca de cărți în format electronic a fost realizată prin conversia în format text electronic a unor cărți din diferite domenii de activitate, rezultând o minibibiotecă electronică ordonată după autori. Conversia a fost făcută respectând standardul ASCII format Windows Central European, prin preluarea unor documente în regim free de pe Internet, respectiv prin scanarea unor cărți și utilizarea unui program OCR pentru recunoașterea caracterelor.

Interfața de acces vocal permite utilizatorului alegerea unui autor prin intermediul tastaturii (în cazul unui nevăzător, acesta va folosi o tastatură specială ce are aplicate caractere de tip Braille), apoi citirea automată prin intermediul programului a titlurilor disponibile, și în final selectarea titlului dorit. Prin intermediul unor comenzi de la tastatură de tip shortcut, nevăzătorul poate audia cartea electronică solicitată, poate întrerupe audierea sau poate reasculta ultima frază rostită.

Concluzie:

În această ultimă fază a proiectării a fost realizat prototipul unui sistem vocal interactiv pe bază de sinteză de voce, destinat a fi utilizat de către persoanele nevăzătoare. A fost implementată o metodă proprie de sinteză vocală bazată pe concatenarea silabelor. A fost construită o bibliotecă de cărți electronice și o interfață de acces vocal la această bibliotecă ce poate fi accesată de către nevăzători.

Sistemul a fost testat pe o configurație locală, urmând implementarea pe o rețea de calculatoare, precum și perfecționarea în funcție de cerințele directe ale persoanelor nevăzătoare.

Bibliografie :

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

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

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

[Buz 07] Buza O., Toderean G., A Romanian Syllable-Based Text-To-Speech System, 6th WSEAS International Conference on Signal Processing, Robotics and Automation (ISPRA '07), CD-Rom Proceedings, , 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, , 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 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, , 2002

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

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

[Mob00] Mobius B., Corpus-based speech synthesis: methods and challenges. In: Arbeitspapiere des Instituts für Maschinelle Sprachverarbeitung (Univ. Stuttgart), AIMS 6 (4), pp. 87–116, 2000

[Mon05] Elizabeth Montalbano, Microsoft Gets Exchange to Speak Up, PC World, August 02, 2005

[Pra04] V. Kamakshi Prasad , T. Nagarajan and Hema A. Murthy, Automatic segmentation of continuous speech using minimum phase group delay functions, Speech Communication, Volume 42, Issues 3-4, Pages 429-446, April 2004

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

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

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

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

[Tro02] Trouvain, J. Tempo control in speech synthesis by prosodic phrasing. Proceedings of Konvens, , 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

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, , 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, , 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 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, , 2002

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

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

[Mob00] Mobius B., Corpus-based speech synthesis: methods and challenges. In: Arbeitspapiere des Instituts für Maschinelle Sprachverarbeitung (Univ. Stuttgart), AIMS 6 (4), pp. 87–116, 2000

[Mon05] Elizabeth Montalbano, Microsoft Gets Exchange to Speak Up, PC World, August 02, 2005

[Pra04] V. Kamakshi Prasad , T. Nagarajan and Hema A. Murthy, Automatic segmentation of continuous speech using minimum phase group delay functions, Speech Communication, Volume 42, Issues 3-4, Pages 429-446, April 2004

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

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

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

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

[Tro02] Trouvain, J. Tempo control in speech synthesis by prosodic phrasing. Proceedings of Konvens, , 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

Similar Posts