Metode de Sinteza Si Recunoastere a Vocii
CUPRINS
Partea I – cosideratii teoretice
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 se pune accentul pe integrarea acestor metode performante în sisteme dedicate unor categorii diverse de utilizatori [9].
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 [7], [10].
Procesarea vorbirii cuprinde două domenii de abordare : recunoașterea vorbirii și sinteza vocală.
Recunoașterea vorbirii (speech-to-text) este procesul de identificare a cuvintelor și de ințelegere a mesajului interlocutorului. Acest proces implică următoarele etape: capturarea și digitizarea semnalului vocal, scindarea lui în unități sonore, apoi construirea cuvintelor din aceste unități, și trimiterea textului recunoscut spre aplicație [8].
Arhitectura software utilizată în aplicațiile de recunoastere a vorbirii cuprinde două componente: componenta acustică și componenta lingvistică.
Modulul acustic analizează sunetele vocii, elimină zgomotul de fond, reduce datele la un spectru de frecvente si convertește sunetele in foneme.
Modulul lingvistic analizează conținutul vorbirii și 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, în care utilizatorul introduce date vorbind direct spre calculator, și comanda(controlul), în care utilizatorul transmite comenzi prin vorbire. De obicei, recunoașterea vorbirii este utilizată pentru a eficientiza utilizarea unor aplicații, sau pentru a accesa anumite funcționalități mai rapid în defavoarea celorlalte dispozitive de intrare.
Aplicațiile care pot fi benefice de pe urma folosirii recunoașterii vorbirii sunt cele în care utilizatorul este nevoit să folosească cât mai puțin mâinile, de exemplu : un șofer care poate schimba melodia, clima și să fie atent la drum în același timp.
Sinteza de voce este procesul invers recunoașterii vorbirii și constă în 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 în 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 [11],[5].
Situația internă și internațională în domeniul sistemelor 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 [1].
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, prof. Horia-Nicolai Teodorescu in cadrul Facultății de Electronică și Telecomunicatii a Universitatii Tehnice Gh. Asachi din Iași, Marian Boldea – la Universitatea Politehnica Timișoara, Mircea Giurgiu in cadrul Facultății de Electronică și Telecomunicații a Universității Tehnice din Cluj dar și alții.
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 [6]. 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 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 [3].
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.
Prima versiune de SAPI a fost lansată în 1995, și a fost susținut pe Windows 95 și Windows NT 3.51 . Această versiune a fost una „low-level” în recunoaterii vorbirii continue.
Astfel, incepând din anul 2000, Microsoft livrează un SDK – Speech SDK 5.0 (Software Developer Kit) special conceput pentru dezvoltatorii de software– actualmente ajuns la versiunea 5.4. Din anul 2004, Microsoft mai ofera o unealtă de dezvoltare ce poate fi utilizată alături de SAPI 5.2, 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 abilitățile de telefonie mobilă.
În domeniul recunoașterii de voce trebuie amintite marile companii IBM, Lernout & Hauspie, 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 [3] .
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; Sonic Extractor de la Digital Syphon – oferă suport pentru 22 de limbi, se concentrează pe telefonie și televiziune; Tazti – folosește comenzi vocale pentru jocuri pe calculator și aplicații.
Concluzii asupra situației actuale
Deși cercetările din ultimele decenii si-au adus o contributie importantă în tehnologia sintezei și recunoașterii vorbirii, totuși mai sunt de rezolvat unele aspecte ce țin de performanta aplicatiilor și implementarea unor metode mai adecvate pentru analiza și sinteza vorbirii naturale, cum ar fi: recunoașterea vorbirii in condiții reale nerestricționate, recunoașterea fără ambiguități a semanticii vorbirii umane directe .
In ceea ce privește aplicațiile pentru persoane defavorizate, procesarea vorbirii ocupă un loc important în asistența acordată persoanelor nevazatoare și a celor cu deficiente de vorbire [7],[10]. In Anglia există 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ă. 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.
II. Metode actuale de procesare și analiză a semnalului vocal
Prelucrarea și analiza 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.
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 .
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.
Tehnica cea mai utilizată în codarea semnalului vocal este tehnica modulării impulsurilor în cod (PCM – Pulse Code Modulation ). 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, 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ă.
Standardul MPEG (Moving Picture Expert Group) este cel mai cunoscut standard de compresie a semnalului audio, oferind o calitate superioară a sunetului. Standardul a fost utilizat pentru compresia sunetului pentru televiziunea digitală.
Se combina in fluxul de date atât semnalul video cât și cel audio, permițând o căutare rapidă înainte și înapoi, pentu aplicații video fiind indispensabil să putem avea acces într-o maniera aleatoare la oricare din imaginile comprimate. 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.
Algoritmul de compresie MPEG oferă rate de compresie mai mari și o calitate mai bună a sunetului decât tehnicile de codare adaptive.
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
2.2. Metode de analiză a semnalului vocal
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. 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 (absența) semnalului vocal, despre faptul că semnalul este sonor sau nesonor pe segmentul considerat. În cazul sunetelor nesonore (zgomote) amplitudinea este redusă în timp ce în cazul sonor amplitudinea este mare.
Amplitudinea medie pentru N eșantioane se calculează astfel:
, (2.2)
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 [4]:
. (2.3)
Segmentele sonore (vocalele) au o energie medie ridicată, pe când consoanele au energie scăzută.
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 :
, (2.4)
unde sgn(n) este funcția semn:
. (2.5)
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 nesonore, numărul de treceri prin zero este mai ridicat, iar in segmentele sonore parametrul este mai redus.
Frecvența fundamentală este un parametru foarte important utilizat în sinteza și 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 nu au frecvență fundamentală.
2.2.2. Analiza în domeniul frecvență a semnalului vocal
Principalele metode folosite în cadrul analizei în domeniul frecvență sunt [4]: analiza prin banc de filtre, analiza Fourier, analiza LPC, analiza cepstrală și analiza perceptuală.
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.
Analiza Fourier este cea mai răspândită metodă de analiză a semnalului vocal – 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.
Această metodă de analiză se bazează pe calculul transformatei Fourier discrete, de forma:
, k = 1,2,…,N , (2.6)
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, pentru ca urechea umană e mai puțin sensibilă la spectrul de faze al unui semnal vocal.
Pentru rapidizare sunt disponibili diverși algoritmi, dintre care cei mai cunoscuți sunt 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 [8] și reduce complexitatea algoritmului.
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.
În 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.
Avantajul major al acestor metode 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
– metoda bazată pe corpus, ce folosește o bază de date 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 [1].
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.
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. Î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 de a realiza sisteme de interacțiune om-mașină.
3.2.1. Avantajele și dificultățile în procesul recunoașterii vorbirii
Dispozitivele care realizează recunoașterea vorbirii au patru avantaje :
Comanda vocală este ușor de realizat, 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
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.
Dificultățile întâmpinate în procesul recunoașterii vorbirii sunt:
a.)Probleme legate de coarticulare.
Spectrul unui fonem într-o propoziție sau într-un cuvânt este influențat de fonemele vecine ca o consecință a coarticulării. Această problemă poate fi evitată în cazul recunoașterii de cuvinte izolate folosind cuvinte ca unități lingvistice de bază, performanțele recunoașterii continue depind de gradul de rezolvare al acestui obstacol. Dificultățile sunt date de omisiunile din vorbire, cauzate de o rostire rapidă.
b.)Dificultăți în segmentare.
Spectrul semnalului vocal se schimbă continuu de la o fonemă la alta datorită interacțiunilor dintre ele. Este dificil de determinat marginile fonemei, cu toate că consoanele nesonore pot fi segmentate destul de ușor pe baza variației spectrale, nu același lucru se poate spune și despre sunetele sonore.
c.)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; pe de altă parte, fonemele diferite rostite de vorbitori diferiți pot avea același spectru. Zgomotul sau sistemele de transmisiuni afectează de asemenea caracteristicile fizice ale vocii.
d.) Cunoștințe lingvistice insuficiente.
Caracteristicile fizice ale semnalului vocal de cele mai multe ori 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 știe î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.2. Clasificarea sistemelor de recunoaștere a vorbirii
Recunoașterea vorbirii se clasifică î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 ca scop recunoașterea fiecărui cuvânt rostit, iar recunoașterea continuă a vorbirii urmărește înțelegerea sensului propozițiilor.
Pe de altă parte, recunoașterea vorbirii continue se poate clasifica în recunoaștere dependentă de vorbitor și recunoaștere independentă de vorbitor.În primul caz, , modelele sunt altele pentru fiecare vorbitor iar sistemele din a doua categorie pot recunoaște rostiri ale oricărei persoane.
Ca și modele se poate utiliza o gamă largă de unități lingvistice, de la foneme până la cuvinte. Când sunt folosite cuvintele, semnalul de intrare digitizat este comparat cu fiecare din 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.
Atunci când vorbim de cuvinte ca unități lingvistice de bază procentul de recunoaștere este ridicat deoarece este eliminată problema coarticulării între cuvinte. Un vocabular mare necesită multă memorie și multe calcule, făcând antrenarea destul de dificilă. De asemenea, cuvintele ca unități lingvistice, nu pot rezolva problema coarticulării în cazul vorbirii continue.
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.3. Recunoașterea continuă a vorbirii
Cele mai complexe sisteme de recunoaștere sunt cele care realizează recunoașterea continuă a vorbirii. Utilizatorul rostește un mesaj, iar sistemul trebuie să fie capabil să îl înțeleagă. Printre problemele greu de rezolvat amintim : funcționarea în condiții de zgomot, determinarea capetelor rostirii (vorbitorul vorbind într-o manieră liberă, fără constrângeri) sau efectele datorate coarticulării.
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, un model lingvistic, care atașează o 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.1.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. 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ă
.
3.2.4. 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 pentru procesarea semnalelor (de exemplu eliminarea zgomotului) dar și pentru a identifica sursa care le-a generat; modelele pot rezolva probleme de predicție, recunoaștere sau identificare.
Vorbirea este alcătuită din succesiuni de foneme. Fiecare dintre aceste foneme poate fi privită ca o stare a unui proces. Așadar, succesiunea de foneme este o succesiune de stări.
Vorbirea poate fi descrisă de un model cu mai multe stări. La trecerea dint-o stare în alta se emite un simbol (fonemă). Trecerea dintr-o stare în alta este aleatoare, î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 sub denumirea de model Markov.
Modelul Markov ascuns (MMA) este un model probabilistic foarte des utilizat și care duce la rezultate încurajatoare în domeniul recunoaterii vorbirii. Descrierea teoretic a modelului a fost dat de Baum în 1967, dar aplicaiile în domeniul recunoașterii semnalului vocal au apărut numai începând cu anul 1975 și sunt legate de numele lui Baker și Jelinek.
Un MMA conține doua procese :
secvența de stări X a modelului care conține informații privind structura temporală a vorbirii
setul de ieșiri sau simboluri de observații O ale stărilor care modeleză caracterul staționar al vorbirii
Modelul se numește ascuns, deoarece secvența de stări X nu este observabilă în mod direct.
Un MMA poate reprezenta o unitate lingvistică : un cuvânt, un fonem, o propoziie sau o frază. Unitatea lingvistică utilizată pentru recunoașterea vorbirii continue este fonemul. Ea stă la baza vorbirii. Orice cuvânt poate fi format prin concatenarea fonemelor iar orice frază sau propoziie poate fi construită prin înșirarea cuvintelor. Formarea cuvintelor din foneme este constrânsă de lexic, iar formarea propoziiilor din cuvinte este supervizată de reguli gramaticale.
Într-un asemenea sistem, în care avem mai multe modele Markov, câte unul pentru fiecare unitate lingvistică, probabilitatea condiționată ca o secvență de observație O să fie generată de un anumit model M care trece prin secvența de stări X se poate calcula relativ simplu, înmulind probabilitățiile de tranziție și probabilitățiile de apariție a unui simbol.
Într-un MMA însă secvența de stări X nu este cunoscută (de aceea se numește model ascuns). Pentru a calcula în aceste condiții probabilitatea condiționată, ca secvența de simboluri de observație O să fie generată de modelul M, trebuie să însumăm probabilitățiile pentru toate secvențele de stări posibile din model.
Pentru a putea fi utilizate pentru recunoașterea vorbirii trebuie rezolvate trei probleme importante în cazul MMA:
Problema evaluării. Dându-se secvența de observații și un model , care este probabilitatea ?
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 .
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.
În cazul Modelului Markov ascuns cu observații discrete, setului de observații i se impun anumite constrângeri : observațiile nu pot lua decât un numr finit de valori discrete : astfel observațiile aprute în mod natural sunt repartizate în setul de observații permise prin metoda cuantizrii vectoriale. Pentru a rezolva problema recunoașterii, trebuie să cunoaștem doar probabilitatea de apariție a simbolurilor pentru fiecare stare a modelului. Aceste probabilități se numesc probabilități de observație.
Implementarea unui model Markov continuu este posibilă folosind ca funcție densitate de probabilitate mixturile Gaussiene, însă numărul necesar de calcule este foarte mare și crește odată cu numrul funcțiilor Gaussiene din componența mixturii.
3.2.5. Aplicații care folosesc recunoașterea vocală
În principiu, orice aplicație care necesită interacțiune cu utilizatorul poate beneficia de o interfață de control vocală. Totuși, aplicațiile de recunoaștere vocală au o aplicabilitate marită înurmătoarele domenii:
Dictare – folosită în contextul domeniilor medicale si de afaceri, unde pot fi folosite un set de vocabulare speciale pentru a mări rata de recunoaștere a sistemului.
Comandă și control – sistemele sunt configurate să execute o anumită acțiune la recunoașterea unui cuvânt (a unei comenzi).
Telefonie – având în vedere că interacțiunea telefonică este in proporție de 90% realizată prin voce, recunoașterea vocală este foarte importantă în acest domeniu (ex: unele sisteme de poștă vocală permit utilizatorilor să vorbească comenzile, în loc să apese tastele telefonului)
Medical(Persoane cu handicap) – multe persoane care nu pot folosi tastatura/mouse-ul din cauza unei boli, pot folosi cu ușurință diferite interfețe vocale (ex: persoane care au auzul deficitar, pot folosi o aplicație pe telefonul mobil care transformă informația vorbită în text)
Aplicații embedded – folosite cu precădere în industria automobilistică, unde utilizatorul trebuie să fie atent la drum, si nu la interfața grafică a computerului de bord.
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 [2].
Metoda bazată pe concatenarea formelor de undă, este o metodă simplă care 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 are ca avantaj calitatea ridicată 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.
Este dificilă schimbarea trăsăturilor prozodice ale vorbirii: intonație, ritm, accent și timbru.
Figura 3.3.2. Metoda bazată pe concatenarea formelor de undă
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.
Metoda este ilustrată în figura următoare:
Figura 3.3.3. Metoda bazată pe analiză-sinteză
Analiza se bazează 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.
Rata debitului de date este mult mai redusă, în cazul metodei bazată pe analiză-sinteză 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 și un set de reguli de sinteză fonetice și lingvistice care specifică modalitățile de recompunere a unităților acustice pentru a genera rostirea [2].
Metoda este ilustrată în figura următoare:
Figura 3.3.4. Metoda bazată pe reguli
Se memorează în baza de date 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 [2].
3.3.2. Etape procesuale în cadrul sintezei text-to-speech
Etapele procesuale ale sintezei text-to-speech se împart în două categorii [2]:
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.
Preprocesarea lingvistică este prima etapă în analiza textului de la intrare, aici se urmărește aducerea textului la o formă normalizată. Se refac abrevierile (de exemplu „Dr.” devine „doctor”), se transformă numerele care apar ca cifre în numere exprimate literar și se detectează terminatorii de propoziție, care vor da informații despre tipul propoziției (` . ` ` ? ` `! ` , ce corespund cu o propoziție afirmativă, interogativă, respectiv imperativă).
Analiza sintactică este o fază importantă pentru că aduce textul la o formă corectă din punct de vedere gramatical, se cunoaște faptul că orice greșeală de scriere a unui cuvânt îl poate face greu inteligibil în urma sintezei vocale. Cuvintele sunt confruntate cu modul corect de scriere așa cum apar într-un dicționar, și în cazul limbii române, se verifică corectitudinea inserării diacriticelor (`ă` `î` `ș` `ț`).
Urmează etapa de determinare a unităților lexicale, efectuată prin intermediul unui analizor lexical sau al unui parser. 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.
Etapa de transcriere fonetică are ca scop realizarea unei transcrieri standardizate a fonemelor din text folosind un set de simboluri fonetice standardizate ( de exemplu grupul `che` va avea transcrierea fonetică [ce]).
Urmează 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 propozițiilor cât și în interiorul cuvintelor.
Pe lângă prozodia lingvistică, care se determină pe baza analizei lingvistice a textului se ține cont ș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.
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.5. Etapele procesuale ale sintezei TTS [2]
3.3 Metoda de sinteză bazată pe silabe
Metoda se rezumă la următorii pași :
analiza textului, ce cuprinde fazele de: preprocesare, analiză de sintaxă, determinare a unităților lingvistice, determinare a prozodiei intrasegmentale (accentele);
regăsirea unităților acustice din baza de date vocală;
concatenarea unităților;
sinteza propriu-zisă.
A. 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’
b) Abrevierile sunt și ele împărțite pe categorii:
Unități și subunități de măsură
‘m’ –> ‘metru’
‘g’ –> ‘gram’
‘l’ –> ‘litru’ ,
‘n’ –> ‘nano’
‘c’ –> ‘centi’
Grade universitare:
‘asist.’ –> ‘asistent’
‘conf.’ –> ‘conferențiar’
‘prof.’ –> ‘profesor’
B. 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.
Este 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.
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.
PARTEA A DOUA !!!!!!!!!!!!!!!!!!!!!!
CONCLUZII !!!!!!!!!
Bibliografie :
[1] 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
[2] Burileanu C. & al., Text-to-Speech Synthesis for Romanian Language, în Recent Advances in Romanian LanguageTechnology, Editura Academiei Române, București, 1997
[3] History of Speech Recognition and Transcription Software, http://www.dragon-medical-transcription.com/historyspeechrecognition.html, 2005
[4] Lupu E., Pop P., Prelucrarea numerică a semnalului vocal, vol.1, Ed. Risoprint, 2004.
[5] 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
[6] Elizabeth Montalbano, Microsoft Gets Exchange to Speak Up, PC World, August 02, 2005
[7] 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
[8] G. Toderean, Al. Caruntu, Metode de recunoaștere a vorbirii, Editura Risoprint, Cluj-Napoca, 2005.
[9] 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
[10] 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
[11] 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
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Metode de Sinteza Si Recunoastere a Vocii (ID: 162790)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
