Tehnologia Limbajului Vorbit

Lista cu Tabele

Lista acronime

ASR – Automatic Speech Recognition

ATWV – Actual Term Weighted Value

AVCSR – Audio-Video Continuous Speech Recognition

BIC – Bayesian Information Criterion

ChER- Character Error Rate

CLR – Cross Likelihood Ratio

CMU – Carnegie Mellon University

DER- Diarization Error Rate

DET – Detection Error Tradeoff

DCT – Discrete Cosinus Transform

DFT – Discrete Fourier Transform

DTW – Dynamic Time Warping

DTWSS- Dynamic Time Warping String Search

EDT- Event Dispatch Thread

EM – Expectation Maximization

FAP- False Alarme Probability

FFT- Transformata Fourier Discreta

FST – Finite-state Transducer

FSG- Finite State Grammar

GMM – Gaussian Mixture Model

HMM – Hidden Markov Model

HP- Hewlett Packard

HTK – Hidden Markov Toolkit

JSGF- Java Speech Grammar Format

LIUM- The Laboratoire d'Informatique de l'Université du Maine

LMG- Literal movement grammars

MAP – Maximum a posteriori

MERL- Laboratoarele Mitsubishi Electric Research Labs

MIT- Massachusetts Institute of Technology

MFCC – Mel-frequency cepstrum coefficients

ML – Maximum Likelihood

MP- Miss Probability

MTWV- Maximum Term Weighted Value

NIST – National Institute of Standards and Technology

OOV – Out Of Vocabulary

PhER – Phone Error Rate

PLP – Perceptual Linear Prediction

PPL – Perplexity

RAV- Recunoașterea Automatӑ a Vorbirii

RTTM- Real-Time Trade Matching

SER-Sentence Error Rate

SNR – Signal to Noise Ratio

ST – Sausage Technique

STD – Spoken Term Detection

TCP- Transmission Control Protocol

TWV – Term Weighted Value

UBM- Universal Background Model

UCSC-University Of California, Santa Cruz

UML- Unified Modeling Language

UTF- Universal Character Set Transformation Format

WER – Word Error Rate

XML- Extensible Markup Language

CAPITOLUL 1

INTRODUCERE

Motivarea lucrării

Lucrarea oferă o privire de ansamblu asupra tehnologiilor în domeniul recunoașterii vorbirii, accentul punându-se pe recunoașterea independentă de vorbitor. Progresele recente în tehnologie au crescut asteptările utilizatorilor în legatură cu diversitatea aplicațiilor de vorbire. Una dintre aceste schimbări principale o reprezintă nevoia de a susține ca date de intrare înregistrările în mai multe limbi. Astăzi există o diversitate de informații text disponbile pe Internet în cadrul carora se pot efectua căutări, dar cele în format audio sau video reprezintă o sursă mai comodă de informare. Procesarea informațiilor a devenit o activitate economică principală în lume, informațiile rostite reprezentând sursa majoră a acestor informații.

Lucrarea este motivată de toți acești factori și a fost creată pentru a ilustra mai mult forme de recunoaștere bazate pe calitătile vocii, ce pot servi la diverse aplicații utile în lumea reală. Procesul de recunoaștere automată a vorbirii (ASR) se ocupă de maparea unui semnal acustic cu o secvență de cuvinte.

Scopul detecției de termeni vorbiți este acela de a găsi un anumit termen într-o bază de înregistrări audio și reprezintă o oportunitate de a găsi informații în arhivele de vorbire înregistrate.

Vocea umană nu furnizează doar semantica cuvintelor rostite, ci reprezintă un semnal cu o infinită informație, caracteristice dependente de vorbitor precum gen, emoții, etnie, dialect,vârstă, identitate. În cadrul apelurilor telefonice de zi cu zi, ne bazăm pe aceste caracteristici ale vocii interlocutorului și încercăm să ne adaptăm propriul stil de vorbire în concordanță cu al său.

Recunoașterea genului cu ajutorul vocii se bazează pe forma tractului vocal, accent, ritm, stilul intonației și este utilă în simplificarea sarcinilor în domeniul vorbirii și îmbunătățirea serviciurilor destinate clienților.

Cea de-a treia parte abordată în lucrare, detectarea cifrelor rostite, prezintă importanța în diverse aplicații precum: apelarea telefonică vocală, sisteme automate bancare, intrarea automată a datelor, intrarea PIN-ului. Este o sarcină de recunoaștere cu un vocabular foarte redus și fiind pentru limba română, limba țintă a acestui subcapitol, avem puține resurse text, audio sau video disponibile. Experimentele făcute în cadrul acestei abordări, variind numărul de senone și de densități gaussiene ajută la determinarea modelului acustic optim pentru a obține o rată de detecție greșită cât mai mică.

1.2 Obiectivele lucrării

Având în vedere observațiile făcute în motivarea lucrării, obiectivul principal al acestei lucrări este de a arăta diversele forme pe care le poate lua un sistem de recunoaștere a vorbirii. Sistemul de recunoaștere a cifrelor, o parte a lucrării, trebuie să fie capabil să recunoască cifrele rostite de un vorbitor și să le afișeze în forma textuală, iar sistemul de recunoaștere a genului. Pentru a realiza aceste lucruri, au fost folosite următoarele obiective specifice:

a) Crearea modelelor (acustic, fonetic și lingvistic) pentru sistem de recunoaștere automată a vorbirii în limba română;

b) Realizarea unor experimente folosind diverse modele de gen și configurații ale procesului de decodare pentru a evalua cele mai bune rezultate;

c) Dezvoltarea unor aplicații care să realizeze aceste detecții de cifre, respectiv de gen și returnează rezultatele.

Lucrarea este organizată în 5 capitolele, precum urmează:

Capitolul 1 prezintă introducerea și conține motivarea care stă la baza realizării sale. Începe cu prezentarea tehnologiilor din domeniul vorbirii, importanța lor în diversitatea actuală a informațiilor audio și domeniile lor de aplicabilitate și continuă cu obiectivele lucrării.

Capitolul 2 dezvoltă aspectele teoretice ale sistemelor de recunoaștere automată a vorbirii, a detecției de gen și a detecției de termeni vorbiți. Sunt descrise, de asemenea, arhitecturile sistemelor, algoritmii de căutare, uneletele folosite și metodele de evaluare.

Capitolul 3 subliniază experimențele făcute cu scopul de găsi modelul acustic optim pentru recunoașterea de cifre și cele realizate în cadrul competiției MediaEval 2013. Astfel, se începe cu construcția unui sistem de recunoaștere a vorbirii continue dependent de vorbitor, se continuă cu un sistem independent de vorbitor, pentru ambele variindu-se parametrii ( numărul de senone și numărul de densitați gaussiene). Capitolul se concentrează apoi, pe algoritmii de căutare și metodele utilizate în sistemul de căutare a termenilor vorbiți, precum și pe rezultatele obținute prin varierea parametrilor α și β.

În capitolul 4 sunt descrise cele două aplicații demonstrative împreună cu principiile lor de funcționare. Aplicația de detecție de cifre leagă modelul acustic optim obținut în urma experimențelor cu modelul lingvistic și dictionarul. Acest penultim capitol este încheiat cu o scurtă descriere a dezvoltărilor ulterioare ce pot fi efectuate asupra aplicației de detecție a genului.

Capitolul 5 este dedicat concluziilor și contribuțiilor personale în realizarea lucrării.

CAPITOLUL 2

TEHNOLOGIA LIMBAJULUI VORBIT

2.1 Recunoașterea automată a vorbirii

Recunoașterea automată a vorbirii reprezintă procesul de transcriere a vorbirii în text, adică transformarea semnalului acustic într-o secvență de cuvinte. Până de curând limbajul vorbit era o modalitate de interacțiune între subiecții umani, însă, o dată cu dezvoltatea microelectronicii, comunicarea prin voce a trecut la stadiul de conectare subiect uman-mașină de calcul, având în momentul de față o gamӑ largă de aplicabilitate. Cel mai important domeniu ar fi cel al interfețelor hands-free și eyes-free. Este util de asemenea în aplicațiile de dictare automată, în sistemele de dialog pentru call centere, sistemele de traducere speech-to-speech, sau când dorim transcrierea unui monolog al unui vorbitor anume (cazul transcrierii discuțiilor din timpul proceselor de judecată, editarea unor documente de către jurnaliști sau scriitori). Arhitectura generală a unui sistem de recunoaștere automată a vorbirii este prezentată în figura 2.1.

Modelul unui asemenea sistem statistic poate fi simplicat astfel, figura 2.2 :

Având după prelucrarea și extragerea parametrilor semnalului vocal un set de vectori acustici A={a1,a2,…..an}, căutăm o secvență ce se potrivește cel mai bine W*={w1,w2,…..wm}:

W* =arg (2.1)

Și folosind regula lui Bayes, din relația 2.1. rezultă:

W* = arg = arg (2.2)

unde s-a ținut cont de faptul că probabilitatea mesajului vorbit p(A), este independentă de secvența de cuvinte W și poate fi ignorată, p(A|W) fiind probabilatea mesajului vorbit și P(W) probabilitatea de apariție a secvenței de cuvinte W. Problema găsirii unei secvențe de cuvinte pe baza mesajului vorbit a fost astfel împӑrțită în două sub-probleme mai simple:

-estimarea probabilității apriorice p(W), utilizând un model de limbă;

-estimarea probabilității p(A|W) cu ajutorul unui model acustic.

2.1.1. Resursele fonetice, acustice și lingvistice necesare

Precum se observă din schema arhitecturii sistemului de recunoaștere a vorbirii, pentru decodare avem nevoie de un model acustic, unul fonetic și unul de limbӑ, pe care trebuie sӑ le pregătim în prealabil.

Modelul acustic

Este construit pe baza setului de înregistrări audio și a transcrierilor textuale ale acestora.

Modelul fonetic

Conține un model de pronunție pentru fiecare cuvânt, chiar dacă există mai multe pronunții, acestea sunt comasate.

Modelul de limbă

Se bazează pe un corpus de text de dimensiuni mari.

1) Dicționarul fonetic conține transcrierea cuvintelor din forma lor literară în forma fonetică (precum se pronunțӑ o succesiune de foneme). Acesta face legătura între modelul acustic și cel de limbă și trebuie să conțină cuvintele ce sunt posibile într-o anumită sarcină de recunoaștere a vorbirii. Fiecare intrare în dicționar conține atât cuvȃntul cât și forma lui fonetică și se poate realiza manual, automat sau semi-automat. În limba română, de foarte multe ori unei litere îi corespunde același fonem, însă există și excepții, când o literă se pronunță diferit în funcție de contextul în care apare.

2) Baza de date de vorbire constituie într-o mulțime de înregistrări salvate în format wav și se folosește pentru antrenarea modelului acustic, cuprinzând 3 pӑrți:

-un set de clipuri audio;

-un set ce corespunde transcrierilor textelor rostite în clipuri audio, precum și delimitarea fonemelor;

-în formații suplimentare despre domeniul vorbirii, identitatea vorbitorului;

Ea este un element important de care depinde atât rata de eroare cât și viteza de recunoaștere. Pentru fiecare bază de date se pӑstrează informații legate de tipul de înregistrare, numӑrul de cuvinte, dimensiunea bazei de date, calitatea etc. Indiferent de algortimul de antrenare, cu cât baza de date este mai mare cu atât rezultatele obținute vor fi mai bune.

Înregistrarea acestor clipuri presupune parcurgerea unor pași precum: alegerea locului de înregistrare (laborator, studio), alegerea microfonului, stației de înregistrare, precum și alegerea textelor ce trebuiesc înregistrate. Acest ultim pas ține cont de mai multe criterii:

-frazele să fie corecte din punct de vedere lexical și gramatical;

-frazele să fie scurte (maxim 15-20 de cuvinte);

-frazele să fie conectate semantic pentru a-i fi mai ușor vorbitorului să înțeleagă sensul și să obțină o pronunție fluentă;

În cazul în care vorbitorul cunoaște aprioric textul ce va fi înregistrat, erorile de pronunție, bâlbele sau lipsa de fluență sunt mult mai rare.

3) Corpusul de text este folosit la antrenarea modelului lingvistic, iar achiziția sa este realizată în mod automat, prin folosirea unui sisteme de achiziție a textelor de pe Internet (pe principiul Web-as-Corpus).

Deoarece sistemele de recunoaștere a vorbirii transcriu vorbirea și scot la ieșire text simplu (fără simboluri speciale, litere mari etc.) textele trebuiesc normalizate și studio), alegerea microfonului, stației de înregistrare, precum și alegerea textelor ce trebuiesc înregistrate. Acest ultim pas ține cont de mai multe criterii:

-frazele să fie corecte din punct de vedere lexical și gramatical;

-frazele să fie scurte (maxim 15-20 de cuvinte);

-frazele să fie conectate semantic pentru a-i fi mai ușor vorbitorului să înțeleagă sensul și să obțină o pronunție fluentă;

În cazul în care vorbitorul cunoaște aprioric textul ce va fi înregistrat, erorile de pronunție, bâlbele sau lipsa de fluență sunt mult mai rare.

3) Corpusul de text este folosit la antrenarea modelului lingvistic, iar achiziția sa este realizată în mod automat, prin folosirea unui sisteme de achiziție a textelor de pe Internet (pe principiul Web-as-Corpus).

Deoarece sistemele de recunoaștere a vorbirii transcriu vorbirea și scot la ieșire text simplu (fără simboluri speciale, litere mari etc.) textele trebuiesc normalizate și restaurate astfel:

-transformarea literelor mari în litere mici;

-transcrierea numerelor formate din cifre în numere din litere;

-înlăturarea caracterelor speciale și a semnelor de punctuație;

-scoaterea etichetelor HTML în cazul în care textele sunt de pe internet;

Fonemul este unitatea acustică sub-lexicală, care ajută la diferențierea cuvintelor și morfemelor dintr-o anumită limbă.  Fonemele nu sunt sunetele ca atare, ci perceperea lor la nivel mental.

2.1.2 Principiile de bază ale modelării acustice

Sistemele de recunoaștere a vorbirii continue nu estimează probabilitatea mesajului, ci se bazează pe unități de vorbire mai mici (foneme) și calculează probabilitățile acestora. Astfel modelele pentru cuvinte stau la baza modelelor pentru secvențele de cuvinte și se bazează pe modelele pentru unitățile sub-lexicale.

2.1.2.1 Parametrii acustici

Cadrul statistic al ASR-ului descompun un recunoscător de vorbire în model acustic și componente ale limbii. Modelul acustic este bazat pe modelele Markov ascunse (HMM). Un astfel de HMM este un automat probabilistic cu stări finite, ce constă într-un set de stări conectate prin tranziții, dar înșiruirea stărilor este ascunsă. Aceste foneme legate formează modelele cuvintelor și apoi, secvențe de cuvinte ce sunt utilizate în estimarea lui p(A|W).

Definite HMM:

Un HMM este complet definit prin:

-spațiul de stări: Q = {1, 2, 3, … N};

-numӑrul de evenimente: E = {e1, e2, e3, …, eM};

-probabilitatea ca stare inițială să fie i: πj = P[q1 = j];

-A={ aij } matricea cu probabilitățile de tranziție, unde aij = P[qt = j | qt-1 = i] este probabilitatea de a trece din starea i în starea j;

-B={ bj(k)} matricea de ieșire, unde bj(k) este probabilitatea să se emită simbolul ok la starea i;

– O= {o1, o2, o3, …, oM}- mulțimea observațiilor de ieșire, în cazul în care această mulțime este discretă;

Un model întreg se poate nota cu : λ = (A,B, π);

Cum parametrii de voce iau valori într-un spațiu continuu trebuie ca și vectorul de ieșire al HMM-ului să aibă valori continue. Din acest motiv se folosesc mixturile gaussiene pentru modelarea ieșirii stărilor HMM-ului.

Sistemul de recunoaștere a vorbirii bazat pe HMM este format din HMM-urile unităților ‘subcuvintelor’ numite foneme. Numӑrul stărilor HMM distincte într-un sistem depinde de mărimea setului de unități ale subcuvintelor. În figura 2.3 este prezentata spectograma unei propoziții.

Deoarece semnalul de vorbire este unul nestaționar, analiza spectrală nu poate fi făcută pe întreg semnalul, ci pe cadre scurte (20-30ms), cvasi-staționare. Astfel semnalul în domeniul timp este împărțit în ferestre, iar pentru fiecare fereastră sunt extrași parametrii de tip spectral sau cesptral.

Cei mai folosiți coeficienți în recunoașterea vorbirii sunt cei MEL(Mel Frequency Cepstral Coefficients) cepstrali MFCC, deoarece sunt în număr mai mic față de cei spectrali (13 în loc de 64 sau 128 în celălalt caz), nu sunt corelați între ei.

Coeficienții MFCC sunt bazați pe anvelopa spectrală a logaritmului semnalului, ce folosește o scară neliniară de frecvență, deoarece simulează mai bine modul neliniar de percepție al omului. Semnalului x(n) i se aplică o transformată Fourier discrete (DFT) cu formula:

Xa[k]= ,0≤n<N

Se folosește apoi un banc de M filtre (m=1,2,…M) triunghiulare, ce sunt plasate pe axa frecvențelor astfel încât frecvența centrală a filtrelor să urmeze scara mel. Banda lor crește o dată cu indexul m, conform figurii 2.4 :

Dupӑ cum se poate observa din figurӑ, filtrarea cu scala Mel subliniază frecvențele joase. Relația între frecvențele MEL și cele liniare este, figura 2.5 :

Frecvența_mel= 2595 * log(1 + )

Apoi, se calculeazӑ energia logaritmicӑ la ieșirea fiecărui filtru:

S[m]=* Hm[k]) , 0≤m≤M

Aceastӑ reprezentare este nivelatӑ și ortogonalizatӑ prin aplicarea transformatei cosinus discrete (DCT – Discrete Cosinus Transform) cu ajutorul formulei :

c[n]= , 0≤n≤M

și astfel rezultӑ 7 coeficienți cepstrali pentru fiecare vector mel.M poate varia de la 24 la 40, dar pentru recunoașterea de vorbire se folosesc 13.Acești vectori, în mod normal, se calculeazӑ la fiecare 10ms cu ferestre Hamming de 25ms în interiorul semnalului. Coeficienții MFCC sunt creați dupӑ modelul din figura 2.6 :

2.1.2.2 Platforma HMM/GMM

Așa cum am vӑzut mai sus, un HMM este un automat cu un numӑr finit de stӑri, format dintr-un set de stӑri conectate prin arce, ce reprezintӑ tranzițiile. Prima și ultima stare a unui HMM este non-emisivӑ.

Probabilitӑțile observațiilor de ieșire a unei stӑri qi sunt modelate de o funcție densitate de probabilitate, sub forma unei sume de K funcții gaussiene.

Dacӑ X este o variabilӑ aleatoare continuӑ, atunci densitatea de probabilitate a lui X este o funcție f(x) pentru care:

P(a≤X≤b)=,

deci probabilitatea ca X sӑ aibӑ valori între a și b reprezintӑ aria densitӑții între a și b.Orice funcție arbitrarӑ a densitӑții de probabilitate poate fi construitӑ însumȃnd N Gaussiene ponderate (mixture de Gaussiene):

Astfel se formeazӑ un GMM (din engleză Gaussian Mixture Model).

În cazul în care ieșirea unei stӑri este o mixturӑ gaussianӑ (GMM), funcția densitate de probabilitate se calculeazӑ cu formula:

bi(x)=p(x|λj) = , Σi),

în care x este un vector D-dimensional de date, cu valori continue (vectorul trӑsӑturilor), wik sunt mixturile ponderate, iar 𝒩(xt;µik, Σi), i = 1, . . . , K, sunt componentele densitӑților Gaussiene, cu vectorul mediilor i și matricea de varianta Σi:

, Σi)=

Cȃnd realizӑm modelarea vorbirii cu ajutorul HMM-urilor putem face douӑ presupuneri [Renalds, 2010].

Independența observațiilor: probabilitatea ca o stare sӑ genereze un anumit vector acustic este independența de vectorii generați în stӑrile anterioare.

Proces Markov: tranziția între stӑrile HMM este un proces Markov de ordinul întȃi în care probabilitatea tranziției urmӑtoare depinde numai de starea actualӑ.

Cele trei probleme ale platformei HMM/GMM sunt: evaluarea, decodare și estimarea, pentru care existӑ 3 algoritmi:

Antrenarea (estimarea diverșilor parametrii ai unui sistem HMM/GMM) folosește unul din algoritmii Forward-Backword sau Baum-Welch (o particularizare a lui expectation-maximization-EM);

Decodarea (identificarea celei mai probabile secvențe de stӑri ce ar putea genera secvența de observații) se rezolvӑ cu algoritmul Viterbi;

Evaluarea (aflarea probabilitӑții ca o secvențӑ de observații sӑ fie emisӑ de un HMM) se realizeazӑ cu algortimul Forward.

Cheia algoritmului Forward se rezumӑ la calculul probabilitӑții care urmeazӑ αt(qj)=p(x1,…, xt,qt = qj|λ), adicӑ probabilitatea de observare a secvenței x1,…, xt, fiind în starea qj la momentul t. Cu ajutorul presupunerilor Markov putem folosi formula:

=)

Algoritmul Viterbi funcționeazӑ în maniera asemӑnӑtoare cu cel anterior, doar cӑ sumarea nu se mai realizeazӑ la fiecare pas, ci se calculeazӑ valoarea maximӑ.

2.1.3 Modelarea foneticӑ

O unitate de vorbire potrivitӑ trebuie sa aibӑ cel puțin trei caracteristici, potrivit autorilor [Huang, 2001] :

Unitatea sӑ fie precisӑ: sӑ aibӑ realizarea acusticӑ care apare în diferite contexte;

Unitatea sӑ fie antrenabilӑ: sӑ dispunem de suficiente date astfel încȃt sӑ estimӑm parametrii asociați ei;

Unitatea sӑ fie generalizabilӑ, astfel încȃt sӑ putem construi orice cuvȃnt dintr-un set de unitӑți de bazӑ.

Sistemele de recunoaștere a vorbirii nu folosesc cuvinte, deoarece acestea nu sunt nici antrenabile, nici generalizabile, ci se bazeazӑ pe foneme, ca unitӑți de vorbire de bazӑ, ce sunt independente de vocabularul cerinței de recunoaștere.Modelul fonetic nu este potrivit deoarece, se presupune, cӑ un fonem este pronunțat identic, indiferent de context, iar oamenii nu pot pronunța un cuvȃnt ca un set de foneme independente.

Dacӑ am utiliza foneme dependente de context și am avea la dispoziție suficiente informații pentru antrenare și implicit pentru estimarea corecta a parametrilor modelelor corespunzӑtoare, am avea o precizie de recunoaștere mult mai bunӑ.

Modelul de trifoneme este un model fonetic ce ține cont și de fonemele din dreapta și stȃnga sa. Dacӑ gӑsim douӑ foneme identice în contexte diferite, ele sunt considerate trifoneme diferite.Folosirea de trifoneme ar conduce la o precizie mai puternicӑ, deoarece conțin și efectele co-articulare, însӑ datoritӑ numӑrului mare de modele diferite, am avea un numӑr ridicat de parametrii estimați, ce trebuie de asemenea antrenați.

Scara mel pentru percepția auditivӑ bazatӑ pe HMM este formatӑ din HMM-urile unitӑților ‘subcuvintelor’ numite foneme.Numӑrul stӑrilor HMM distincte într-un sistem depinde de mӑrimea setului de unitӑți al subcuvintelor.

Modelul fonetic conține un dicționar de pronunții, mapȃnd toate cuvintele din vocabular cu o secvențӑ de foneme.Construcția acestuia se poate face manual sau automat, însӑ ultimul mod nu oferӑ o precizie la fel de bunӑ ca primul.

2.1.4. Principiile de bazӑ ale modelӑrii limbajului natural

2.1.4.1. Modele de limbӑ statistice

Cea mai mare diferențӑ între un sistem de recunoaștere a cuvintelor izolate și unul de vorbire continuӑ este modelul de limbӑ.Scopul sau în cadrul decodӑrii, așa cum este arӑtat în figura 2.1., este de a estima probabilitatea ca o secvențӑ de cuvinte W=w1,w2,…..wn sӑ fie o secvențӑ validӑ pentru o sarcinӑ de recunoaștere.Aceastӑ probabilitate este complementare cei de la modelul acustic.

Probabilitatea se poate calcula cu formula :

p(W)=p(w1,w2,…..wn)=p(w1)p(w2|w1)…..p(wn| w1,w2,…..wn-1)

și se poate observa cӑ depinde de istoria cuvȃntului, adicӑ de secvența de cuvinte anterioare lui, ce nu poate include un numӑr infinit de cuvinte, ci doar m cuvinte.Astfel s-a ajuns la modelul de limbӑ de tip n-gram [Renalds, 2010], ce este un model mult mai evoluat.Acesta prezice urmӑtorul cuvȃnt pe baza celor n-1 cuvinte anterioare.

Se folosesc modele de tip trigram (n=3), unde este nevoie de o istorie de douӑ cuvinte pentru a-l putea prezice pe al treilea sau bigram (n=2).

În recunoașterea de vorbire, sunetele de intrare se pot confunda foarte ușor, deoarece multe cuvinte sunӑ foarte asemӑnӑtor.

2.1.4.2. Construcția modelelor de tip n-gram

În cazul unui model de limbӑ bigram, probabilitӑțile p (wi|wj) pentru fiecare pereche de cuvinte (wi,wj) se calculeazӑ cu formula probabilitӑții maxime (Maximum Likelihood-ML) :

p(wi|wj)=

în care se numӑrӑ de cȃte ori cuvȃntul wi este urmat de wj fațӑ de alte cuvinte;

Pentru un trigram formula se modificӑ astfel:

p(wk|wi,wj)=

Avem nevoie de o cantitate mare de date de antrenare pentru a obține un model n-gram precis.Existӑ însӑ și probleme precum existența unor n-grame ce nu apar în textul de antrenare însӑ apar în textele de evaluare, indiferente de mӑrimea corpusului, sau existența unor n-grame ce apar de puține ori (mai puțin de zece ori).Probleme se rezolvӑ cu metodele de back-off, care folosesc multiple modele de limbӑ pentru a crea un model de limbӑ interpolat, care sӑ poatӑ utiliza toate pӑrțile ce îl compun.

2.1.5. Gramatici cu stӑri finite FSG (Finite State Grammar)

O gramatica cu stӑri finite FSG este un graf în care fiecare nod reprezintӑ un cuvȃnt al vocabularului sarcinii de recunoaștere, iar arcele dintre noduri sunt tranziții între cuvinte.Astfel sunt specificate toate secvențele de cuvinte permise de gramatica sarcinii respective.Dacӑ atribuim acele costuri, specificӑm și probabilitatea ca un cuvȃnt sӑ fie precedat de altul.În cazul sarcinilor de mici dimensiuni (recunoaștere de cifre, apelarea unui numӑr de telefon), acest model poate fi folosit cu succes.

2.1.6.Evaluarea sistemelor

Evaluarea unui sistem de recunoaștere a vorbirii necesitӑ existența unei baze de date de înregistrӑri, numitӑ baza de date de evaluare și se întemeiazӑ pe transcrierile clipurilor audio din bazӑ. Acestea descriu cȃt de bun este un sistem de recunoaștere a vorbirii pentru a transcrie vorbirea dintr-un alt domeniu. Criteriile de bazӑ pentru evaluarea unui model de limbӑ sunt rata de cuvinte în afara vocabularului(Out of vocabulary OOV) și perplexitatea(PPL), ce mӑsoarӑ capacitatea de predicție a unui model de limbӑ.Cu cȃt e mai micӑ perplexitatea, cu atȃt e mai bunӑ capacitatea de predicție a acelui model [H,01].

Perplexitatea unui cuvȃnt din afara vocabularului este infinitӑ sși acest lucru face evaluarea performanței unui model de limbӑ dificilӑ.În acest caz, procentul cuvintelor OOV trebuie specificatӑ cȃnd evaluӑm un model de limbӑ.

Evaluarea completӑ a sistemului de recunoaștere a vorbirii este realizatӑ prin compararea transcrierilor clipurilor audio de evaluare cu transcrierile generate în urma procesului de decodare,conform cu figura 2.9 :

Rata de eroare la nivel de propoziție (SER-Sentence Error Rate) este un criteriu de performanțӑ utilizat în evaluare și este raportul între numӑrul de propoziții eronate (ce conțin cel puțin o greșealӑ) și numӑrul total de propoziții din transcrierea de referințӑ:

SER[%]=100*

Aceasta ratӑ se folosește doar în situațiile în care orice propoziție ce conține o greșealӑ este inutilӑ (sistem de recunoaștere a unui IBAN, CNP).

Metrica standard de evaluare a sistemelor de recunoaștere a vorbirii este rata de eroare a cuvintelor (WER-Word Error Rate).Aceastӑ ratӑ se referӑ la cȃt de mult cuvȃntul returnat de recunoascӑtor (numit și sir ipotetic) diferӑ de transcrierea de referințӑ.Primul pas în aflarea ratei de eroare consta în determinarea distanței minine între cuvȃntul corect și cel recunoscut. Rezultatul acestui calcul va da numӑrul minim de cuvinte substituite, inserate sau șterse și astfel, formula ratei de eroare va fi:

WER[%]=100*

În cazul în care, procentul de caractere eronate din cuvȃntul ipotetic este redus, eroarea de substituție se poate redresa mult mai ușor prin utilizarea ratei de eroare la nivel de caracter ChER (Character Error Rate).Este foarte asemӑnӑtoare cu rata de eroare la nivel de cuvȃnt, diferența dintre ele limitȃndu-se la nivelul unitӑții folosite de baza folosite în comparație: caracterul și nu cuvȃntul:

ChER[%]=100*

2.1.7 Unelte folosite ȋn recunoașterea vorbirii

Pentru lucrarea de fațӑ am folosit setul de intrumente, pus la dispoziție în mod gratuit pentru recunoașterea vorbirii de CMU Sphinx.

Pe langă versiunile oferite de Sphinx, există numeroase sisteme utilizate în recunoașterea vorbirii precum : HTK[1] , ISIP[2], AVCSR[3]. Pentru a facilita toate inovațiile în domeniul recunoașterii vorbirii, a fost creat un Sphinx-4: o platformă la dispoziția utilizatorului ce încorporează metodologiile de ultimă generație și acoperă și ariile în curs de dezvoltare. Include componente separate pentru fiecare sarcină specifică, iar modulele sale pot fi înlocuite în timpul rulării.

Sphinx-4 este un system de recunoaștere a vorbii scris în limbajul de programare Java. A fost creat în urma unei colaborӑri dintre grupurile Sphinx de la Universitatea Carnegie Mellon, Laboratoarele Sun Microsystems, Laboratoarele Mitsubishi Electric Research Labs (MERL) și Hewlett Packard (HP), cu unele contribuții de la Universitatea din California la Santa Cruz (UCSC) și Institutul de Tehnologie Massachusetts (Massachusetts Institute of Technology (MIT)).

Principalele trei module din arhitectura Sphinx-4 sunt:

FrontEnd

Decodor

Linguist

Dispunând în momentul de față de cei mai mulți parametrii configurabili, de acest aspect ocupându-se ConfigurationManager. Sphinx-4 folosește pentru a putea oferi statistici în legatură cu procesul de decodare precum rata de eroare a cuvintelor, viteza de rulare, memoria utilizată diverse ustensile (din engleză Tools) și de asemenea Utilitati (din engleză Utilities) ce suportă procesarea la nivel de aplicație a rezultatelor decodării. Se pot obține grile de rezultate, scoruri de confidențialitate sau intelegerea limbajului natural.

Scopul modulului FrontEnd este acela de a transforma un semnal de intrare (audio) într-o secvență de ieșire de trasături. Conține mai multe lanțuri paralele de procesare astfel încat se pot calcula simultan tipuri diferite de parametrii, precum MFCC și PLP din același semnal de intrare sau din semnale diferite. Cu ajutorul arhitecturii FrontEnd ce conține blocuri de procesare de date (din engleză DataProcessor ) și de date (din engleza Data), Sphinx-4 oferă suport pentru urmatoarele tehnici: citirea de la diferite formate de intrare, citirea de la dispozitivele sistemului audio pentru funcționarea în mod live, pre-accentuare, folosirea de ferestre ( ex. ferestre Hamming și Hanning), transformata Fourier discretă (FFT), transformata cosinus discretă (DCT).

Modului Lingvist genereză la ieșire un grafic de căutare (din engleză SearchGraph) și poate fi configurat cu diverse implementări lingvistice și este caracterizat de trei componente:

Modelul de limbă format din gramatici bazate pe grafice sau modele stocastice N-gram. Suportă formate precum: gramatică JSGF, LMG, FST, model n-gram simplu, model trigram.

Dictionarul furnizează pronunțiile pentru cuvintele din modelul de limbă și împarte cuvintele în secvețe formate din unități găsite în modelul acustic.

Modelul acustic o mapare între unitățile de vorbire și un HMM, ce ia în calcul și poziția cuvântului și contextul. Acesta permite varierea mai multor parametrii ce caracterizează un HMM printre care: mixturile gaussiene, matricile de tranziții, înălțimea gaussienelor. Sphinx-4 este capabil să implementeze un singur model acustic ce încarcă și folosește modelele acustice generate de antrenorul Sphinx-3.

Cel de-al treilea modul, blocul de decodare folosește parametrii rezultați din primul modul împreună cu SearchGraph pentru a genera ipotezele rezultate. Cea mai importantă componentă a sa o reprezintă managerul de căutare (din engleză SearchManager) și poate folosi diverși algoritmi de decodare precum Viterbi, A*, Bushderby, decodare paralelă.[4]

2.2 Spoken Term Detection

2.2.1 Introducere

Procesarea de informații a devenit o activitate principală în lumea actuală, comunicațiile vorbite constituind sursa majora a acestor informații. Procesul este o inițiativă pentru a facilita dezvoltarea tehnologiilor de găsire a informațiilor în arhivele de înregistrări. STD în cazul limbilor bine documentate are la bază un sistem de recunoaștere automată a vorbirii dependent de o bază mare de date de antrenare, ce include atât înregistrări (pentru modelarea acustică), cât și text (pentru modelarea de limbă). Acuratețea sistemului ASR pentru aceste limbi, precum și tehnicile îmbunătățite de indexare și căutare asigură calitatea procesului STD.

2.2.2 Sarcina procesului și arhitectura sistemului

Procesul constă în căutarea unui cuvânt rostit în interiorul unei baze de înregistrări, de asemenea rostite. Am dispus de două seturi de înregistrări multilingve: unul cu exemplele de întrebări și celălalt set cu conținutul în care are loc căutarea. Scopul unei asemenea evaluări este de a detecta rapid un termen, adică o secvență de cuvinte rostite consecutiv, în cadrul unor înregistrări.

Vom folosi arhitectura STD propusă în Campania NIST 2006 descrisă în figura 2.10, ce separă partea de indexare de cea de căutare și nu efectuează sondarea direct pentru fiecare termen. Beneficiul acestei arhitecturi este acela de a permite măsurători uniforme asupra resurselor de operare: viteza de indexare, marimea indexului,viteza de căutare, precum și efectuarea unei cautări mai rapide, deoarece indexarea o simplifică.

Un aspect important îl constituie timpii de căutare pentru un anumit cuvânt, care trebuie să fie mici (câteva secunde). Pentru a dezvolta acest sistem, ne bazăm pe sistemul de recunoaștere automată a vorbirii pentru limba română, dezvoltat anterior, pe care îl folosim pentru indexare, astfel încât toate înregistrările să fie transformate în șiruri de foneme. În timpul căutării, cuvantul rostit țintă este transcris de sistemul ASR și astfel vom căuta un rând de foneme asemanător cu cel pe care îl avem și cu care depașește un prag de similitudine.

2.2.3. Termenii utilizați. Fișierele de intrare și ieșire ale sistemului

Un termen se referă la un cuvânt sau un grup de cuvinte care au un singur sens în orice context, astfel încât oriunde l-am găsi, semnificația este aceeași. Deși un termen, de obicei are o singură formă de pronunție, orice variație sau model de plural ar trebuie recunoscută în cazul căutării noastre. Termenii vor fi prezentați folosind ortografia limbii native: ASCII pentru engleză, UTF-8 pentru arabă și GBK pentru limba mandarin chineză.

Termenii sunt constituiți din unul sau mai multe cuvinte. Conceptul de cuvânt ia forme diferinte de la limbă la limbă.

Aparițiile de referință ale cuvintelor căutate pot fi găsite în fișierul RTTM furnizat, ce conține informații precum numele înregistrării ce conține termenul, canalul, timpul când începe exprimat în secunde, durata cuvântului.

Fișierul de ieșire va fi sub forma unui fișier text în format XML pentru fiecare combinație a categoriilor de limbi, ce va conține următoarele informații:

-limba

-tipul sursei;

-indexul timpului de generare și a măsurătorilor legate de dimensiuni;

-termenii căutați împreună cu următoarele informații pentru fiecare cuvânt: timpul de căutare și pentru fiecare presupusă găsire a cuvântului aflăm: locația (timpul unde începe și se termină în interiorul înregistrării), scorul de detecție și decizia binară luată.

Generarea la ieșire a deciziei luate împreună cu scorul de detecție pentru fiecare posibilă apariție are un beneficiu semnificativ asupra evaluării sistemului. Putem considera corectă ieșirea sistemului dacă termenii apar în transcriere ca o potrivire perfectă, corespunzând de asemenea și timpii.

2.2.4. Metodologia evaluării

Performanțele unui system STD sunt caracterizate de două tipuri de erori: alarme false și detecții ratate și pot fi evaluate, de asemenea prin două metode:

a)grafic folosind curba erorii de detectare a compromisului (DET) ce prezintă o vedere intuitivă a performanței;

b)pentru un anumit punct de operare de pe curbă, se folosește valoarea ponderată a termenului (TWV), folosită pentru optimizarea performanței sistemului.

2.2.4.1 Curba erorii de detectare a compromisului

Performanțele de bază ale detecției sunt caracterizate în principal de curbele standard ale erorilor de detecție a compromisurilor DET (Detection Error Tradeoff) dintre probabilitatea de ratare (PMiss), când un cuvânt nu este detectat deși el apare și probabilitatea de alarmă falsă (PFA), în cazul în care detecția sistemului nu corespunde cu existența cuvântului. Ambele probabilități sunt funcții ce depind de pragul de detecție Ө, după cum urmează:

PMiss(cuvant, Ө)=1-

PFA(cuvant, Ө)= , unde

Ncorect(cuvânt, Ө) reprezintă numărul de detecții corecte ale cuvântului cu un scor mai mare sau egal ca pragul Ө;

Nfals(cuvânt, Ө) este numărul detecțiilor incorecte ale cuvântului cu un scor mai mare sau egal decât pragul Ө;

Ntrue(cuvant) este numărul real al aparițiilor cuvântului căutat în context, iar NNT(cuvant), numărul oportunităților pentru detecțiile incorecte ale cuvântului (=”Non-target”); NNT(cuvânt) se alege în mod arbitrar, proporțional cu numarul de secunde ale vorbirii în setul folosit pentru testare:

NNT(cuvânt)= ntps*Tvorbire- Ntrue(cuvânt), unde ntps este numărul de încercări de vorbire pe secundă (setat arbitrat la 1).

Tvorbire reprezintă totalul discursului (exprimat în secunde).

Cele două probabilități vor fi calculate separat pentru fiecare termen și după se vor media peste toți termenii selectați cu aceeași pondere. Acest lucru este valabil doar pentru cuvintele cu un număr diferit de zero de apariții în setul de înregistrări, astfel încât PFA să poată fi definită. Curbele DET se evaluează ca o funcție de limbă și tipul sursei pentru diverse înregistrări și query-uri.

2.2.4.2 Performanțele de detectare ale sistemului

A masura “valoarea” unui sistem se referă la utilitatea acelui sistem pentru un utilizator, deoarece un sistem perfect va raspunde întotdeauna corect la o cerință, fiecare raspuns greșit sau deruntant reducând această valoare alocată sistemului.

Performanța de detectare a sistemului va fi masurată prin alocarea unui cost fiecarei recunoașteri corecte și un cost (o valoare negativă) fiecărei ieșiri incorecte. Se folosesc două definiții ale valorii totale a sistemului numite: valoarea ponderată a aparițiilor și valoarea ponderată a termenului (TWV).

Valoarea ponderată a aparițiilor se calculează prin acumularea valorilor pentru fiecare detecție corectă din care se substrage costul pentru fiecare detecție greșită, fiecare cuvânt contribuind în mod egal. Valorea ponderată a termenilor (Term Weighted Value(θ)) se evaluează inițial prin calculul probabilităților de ratare și alarma falsă, apoi cu ajutorul lor și a unei probabilități aprior alese, de calcul a valorilor specifice fiecărui cuvânt, se face o medie ce include toți termenii și se determină valoarea totală a sistemului, după formula:

TWV(θ)=1-medie{PMiss(cuvânt, θ)+β* PFA(cuvânt, θ)},unde β=(Prcuvânt -1 -1);

Folosim raportul cost/valoare, C/V egal cu 0.1 și probabilitatea anterioră a cuvântului Prcuvânt -1 este 10-4. Valoarea maximă posibilă va fi de 1.0 și corespunde unui sistem “perfect”: fără ratări și fără alarme false. Pot fi posibile și valorile nule (când sistemul nu obține la ieșire nimic) sau chiar valori negative.

Față de valoarea ponderată a aparițiilor, ce a termenilor prezintă un avantaj fiind mai puțin susceptibilă la frecvența de apariție a cuvintelor, excluzându-le pe cele care nu au nici o apariție. Ieșirea sistemul trebuie să includă de asemenea o indicație binară a detecției, aleasă astfel încât să maximizeze valoarea de ieșire a sistemului.

Întrucât curbele DET reprezintă performanța pentru toate valorile posibile ale pragului θ, doar două puncte prezintă interes deoarece arată dacă pragul de decizie actual al sistemului este optim. Primul este valoarea ponderată actuală a termenilor (ATWV), iar al doilea punct este reprezentat de valoarea ponderată maximă a termenilor (MTWV), ce corepunde cu locul de pe curbă unde pragul θ coincide cu valoarea TWV maximă.

Metrica principală folosită pentru comparație a fost Actual Term Weighted Value (ATWV) și reprezintă abilitatea sistemului de a preciza punctul optim de operare pe baza scorului. Diferența dintre ATWV și MTWV indică beneficiile pe care le vom avea dacă alegem un prag de decizie mai bun.

2.2.5 Procesul de căutare

În cazul în care am obține pentru sistemul de recunoaștere ASR o precizie de 100%, procesul de detectare a cuvântului rostit s-ar reduce la căutarea unui șir de caractere într-un conținut textural și ar constitui o problemă simplă. Deoarece nu suntem aproape de acest caz ideal, vom căuta în baza nostră de înregistrări un șir similar cuvântului căutat. Cautarea exactă a unui cuvânt are rezultate STD foarte slabe: o probabilitate de alarmă falsă (FAP) de 0.1% și o probabilitate de ratare (MP) de 99%. Cum am precizat anterior, erorile în recunoaștera limbajului vorbit la nivel de fonem pot fi substituții, inserții și ștergeri. Aceste erori sunt numărate automat prin aplicarea algoritmului DTW, unul din cei mai vechi și mai importanți algoritmi folosiți în recunoașterea vocală. Numărul mare de cuvinte ce nu fac parte din vocabularul (OOV) ce par a face parte din termenii de interogare va crește numărul de erori.

2.2.5.1 Etapele parcurse în sistemul de căutare

O metodă simplă de recunoaștere a unui cuvânt izolat este să fie comparat cu un număr predefinit de șabloane, dintre care se alege acela care se potrivește cel mai bine.

Apar însă, în această situație, două probleme:

-ce formă trebuie să ia șabloanele;

-cum vom compara noi cuvântul cu semnalul vocal.

a)Prima etapă în procesul de recunoaștere este analiza vorbirii, în timpul căreia semnalul este procesat, astfel încât să extragem cele mai importante caracteristici, numite trăsături sau parametri. Precum am detaliat în partea de recunoaștere automată a vorbirii, am folosit coeficienți cepstrali MFCC. Prin folosirea doar a celor mai importante caracteristici ale vorbirii, cantitatea de date utilizată pentru comparații este mult redusă și prin urmare vom avea mai puține comparații și nevoie de un timp mai scurt.

b)A doua etapă a constat în clusterizarea acestor coeficienți, adică procesul de grupare a unor obiecte în grupuri numite clusteri în așa fel încât acestea să fie similare, găsind practic reprezentanții unor grupuri omogene.

Aceast algoritm se realizează parcurgând următoarele etape:

Gruparea în K-means: partiționăm vectorul de intrare în k seturi prin selecție aleatoare sau pe baza distanței maxime), așa cum este arătat și ȋn figura 2.11 :

Căutarea: pentru fiecare vector de antrenare găsim cel mai apropiat cuvânt de cod și îi alocam grupului (clusterului) de care aparține acel cuvânt.

Updatarea centroidului: pentru fiecare grup, recalculăm centroidul, luând în calcul și noua observație adaugată;

Se repetă ultimii doi pași până când distanța medie scade sub un anumit prag sau nu se mai modifică, figura 2.12.

Algoritmul converge destul de repede în practică și returnează cele mai bune clustere găsite prin execuția a mai multor iterații. Soluția depinde de numărul setului inițial de clustere, ce trebuie definit înainte de a-l parcurge.

c)Împărțim fiecare înregistrare în ferestre proporționale cu lungimea termenului căutat, de 1.5 ori mai mari.

d)Am folosit algoritmul DTW pentru a găsi alinierea neliniară optimă în timp pentru secvența de simboluri obținute din procesarea textului și secvența de segmente de voce înregistrate. Principiul de funcționare este următorul: se creează o matrice având ca dimensiuni lungimile celor două secvențe care trebuiesc comparate. În fiecare celulă a matricii se pune o valoare numerică dată de costul dintre elementele corespunzătoare ale celor două secvențe, calculat cu ajutorul distanței euclidiane.

Diferențele dintre formele de undă a unor cuvinte diferite pot fi văzute în figura 2.13.

Daca A și B ar fi identice, drumul de cost minim ar fi o linie dreaptă ce trece prin 0 (diagonal principală). Deoarece cele două semnale nu sunt la fel, calea prin matrice arată cea mai bună potrivire între cadrele dintre A si B.

Vectorul de aliniere este reprezentat de această cale între fonemele de pe abscisă ce aparțin cuvântului original din înregistrare (cel de referință) și cele ale cuvântului căutat de pe orizontală. Costurile au fost alese astfel încât să se poată acoperi toate tipurile de erori (substituiri, ștergeri și inserții). Tranzițiile orizontale corespund ștergerilor. Cele vertical, care corespund inserțiilor, au un cost mai mic decât cele orizontale, adică două foneme au fost recunoscute în locul uneia. De multe ori, fonemul recunoscut este cel corect și încă unul, sau cel corect de două ori, figura 2.15.

2.3 Detecția Genului

2.3.1 Introducere

Tehnologiile de recunoaștere a vorbitorului pot fi folosite atȃt de persoane firme cȃt și juridice, astfel încȃt telefoanele bazate pe servicii integrate cu recunoaștere a vorbirii, a vorbitorului sau a limbii vor suplimenta sau chiar înlocui serviciile cu operatori umani.

Scopul acestei aplicații este acela de a identifica genul vorbitorului pe baza vocii sale. Diferentele de gen în vorbirea umană se datorează diversității fiziologice precum lungimea tractului vocal, grosimea vocii sau stiluri de vorbire diferite, aspect evidențiat în figura 2.16.

Principiile recunoașterii genului unui vorbitor sunt aceleași ca ale sistemului recunoașterii automate ASR, constituit din douӑ pӑrți: una de admitere în care este creat un model al vorbitorului cu ajutorul unui model de fundal și o parte de recunoaștere în cadrul cӑreia luӑm o decizie binarӑ.

Figura arată de ce simpla abordare de recunoaștere a semnalelor bazându-ne doar pe forma similară a sunetelor nu este de ajuns pentru sarcinile de recunoaștere a vorbirii. Jumatatea superioară a figurii arată forma de undă a semnalului brut, iar cea inferioară afișează versiunile prelucrate ale semnalelor evidențiind formatele specifice. Se poate observa ca vorbirea este dependentă de persoană, lucru ce nu mai reprezintă o surpriză, deoarece vocile diferite sună diferit.

Principala caracteristică ce deosebește cele două genuri o reprezintă frecvența fundamentală F0, ce are valoare tipică în cazul vorbirii masculine de 110Hz și 200Hz în cazul celei feminine. Înalțimea vocii în cazul copiilor este atât de variată, încât aceștia pot fi catalogați ca un al treilea gen. Valorile uzuale ale acestei frecvențe pentru persoanele cu vârsta cuprinsă între 20-70 ani sunt cuprinse între 80-170 Hz pentru barbați, 150-260 Hz pentru femei și 300-500 pentru copii[10].

Detectarea automată a genului unui vorbitor poate prezenta multiple avantaje:

Identificarea genului și eliminarea componentelor caracteristice ce va conduce la o rată de compresie mai mare a semnalului, o cantitate mai mare de informații ce pot fi transmise și o economie asupra benzii ;

Sortarea apelurilor telefonice după gen în cazul sondajelor;

Facilitarea sistemelor de recunoaștere a vorbitorului prin împărțirea vorbirii în jumătăți, ce va conduce la reducerea calculelor și îmbunătățirea vitezei sistemului.

2.3.2 Uneltele folosite

Laboratoarele de informatică ale Universității din Maine (din limba francezӑ The Laboratoire d'Informatique de l'Université du Maine (LIUM)) au dezvoltat diverse pachete software scrise în limbajul de programare Java ce pot fi folosite în mai multe domenii precum: detecția vorbirii/ liniștii, detecția vorbitorului, calcularea coeficienților MFCC, segmentarea și clusterizarea înregistrӑrilor.

LIUM oferă unelte atât pentru dezvoltatori ce îmbunătățesc performanțele WER, cât și pentru utilizatori ȋn cazul detecției spontane a vorbirii, cercetări ȋn domeniul recunoașterii, traducere automată.

LIUM_SpkDiarization conține un set de unelte ce pot fi folosite pentru procesul cunoscut sub numele din englezӑ diarization, în care se pleacӑ din semnalul audio al utilizatorului pe care îl clusterizӑm pe baza diverselor metrici. Setul a fost dezvoltat pentru campania de evaluare French ESTER2, cele mai bune rezultate obținȃndu-se pentru spectacolele de televiziune și radio.

Segmentarea se referӑ la împӑrțirea fișierelor audio în diverse pӑrți omogene și flexibile, iar procesul de diarization semnificӑ identificarea unicӑ a vorbitorilor într-un fișier. Procesul poate ȋmbunătăți transcrierea automata, prezentând interes și ȋn indexarea documentelor multimedia.

2.3.3 Descrierea sistemului

LIUM utilizeazӑ în aplicațiile asociate vorbitorilor metode de grupare a înregistrӑrilor (în engleza diarization), proces ce constӑ, în terminologia NIST, în asocierea unor regiuni temporale din înregistrӑrile audio cu etichetele corespunzӑtoare. Etichetele sunt formate din numele vorbitorilor, genul lor, tipul canalului utilizat (de banda largӑ sau banda îngustӑ), mediu din fundal ( liniște, muzicӑ, zgomot) sau orice altӑ caracteristicӑ a semnalului. Scopul este acela de a detecta segmentele audio omogene, fiecare conținȃnd vocea unui singur vorbitor.

Etapele care stau la baza sistemului sunt cele din figura 2.17:

1) Cadrele acustice sunt formate, în mod identic cu capitolul 2.1., și rezultӑ 13 coeficienți MFCC ce conțin și energia C0, dupӑ care îndepartӑm coeficientul C0 și calculӑm derivatele de ordin întȃi ale acestora.

2) Segmentarea este nucleu procesului de diarization și are ca obiectiv divizarea fișierului audio în segmente omogene pentru vorbitori. Are loc în doua faze: prima detecteazӑ automat punctele de schimbare ce corespund marginilor segmentelor pe baza unui raport de probabilitate generalizat GLR (din engleza Generalized likelihood ratio ), calculat cu ajutorul gaussianelor cu matrici de convergențӑ complete. Aceste gaussiene sunt estimate pentru ferestre glisante de cinci secunde de-a lungul întregului semnal. Se estimează curba distanței GLR pentru aceste ferestre, cele mai mari puncte corespunzând schimbării ȋntre vorbitori. Urmӑtoarea fazӑ folosește distanțe BIC cu scopul de a asocia segmentele consecutive gӑsite ca aparținȃnd aceluiași vorbitor. Se pot folosi și alte metode de mӑsurare precum KL2, divergența gausianӑ și ΔBIC. BIC a fost introdus pentru prima dată de Chen si Gopalakrishnan [11] și reprezintă un model de selecție, asimptotic, optimal, bazat pe criteriul Bayesian folosit pentru a decide care dintre cele Nc modele parametrice reprezintă cât mai bine M eșantioane ale datelor , i=1,2,……M . Eșantioanle reprezintă vectori, d-dimensionali ce conțin trasături extrase la punctul anterior 1). În cazul segmentării vorbitorului, algoritmul se reduce doar la două modele angajate (Nc =2), adică se analizează doar două ferestre vecine X și Y în jurul timpul , cu scopul de a decide dacă este sau nu, un punct de schimbare al vorbitorului.

3) Toate segmentele sunt grupate în mulțimi (din engleza cluster), ce le sorteazӑ inițial dupӑ nume și apoi dupӑ momentul de început al înregistrӑrii. Erori precum a avea douӑ mulțimi distincte ce corespund aceluiași vorbitor sau asocierea segmentelor a doi vorbitori într-o singurӑ mulțime au o penalitate destul de mare în metrica de evaluare NIST. Existӑ mai mulți algoritmi de grupare, secvențiali sau ierarhici, cei din urmӑ divizȃndu-se la rȃndul lor în douӑ categorii (aglomeratici sau divizivi).

Algoritmul de clusterizare diviziv aglomerativ pornește de la un numӑr N de clustere, fiecare cluster conținȃnd un singur segment, cu propriul lui model antrenat de o gaussianӑ cu matricea de covarianta completӑ. La fiecare pas sunt calculate distanțele dintre perechile de clustere, pe baza cӑrora clusterele care se asemӑnӑ cel mai mult sunt unite într-o mulțime nouӑ, cӑreia îi antrenӑm propriul model. Algortimul se încheie cȃnd întȃlnim un criteriu de stopare. Existӑ diverse metrici și criterii de stopare propuse în [Siu1991, Solomonoff1998, Chen1998a, Reynolds1998] . Unul dintre acestea este metrica Delta BIC (din engleza Bayesian Information Criterion) ce poate atȃt selecta clusterele în grupuri cȃt și închide procesul, atunci cȃnd ΔBICi,j >0, i și j reprezentȃnd douӑ clustere apropiate. Se pot folosi douӑ tipuri de metrici Delta BIC, ce diferӑ prin factorul de penalizare:

Factorul de penalizare local Pl ce depinde de ni si nj, lungimile clusterului i, respectiv al clusterului j prin formula:

Pl = (d+ )+

Factorul de penalizare global Pg ce folosește lungimea întregului semnal,n :

Pg = (d+ )+

Experimentele au dovedit în [Barras2004] și confirmat în [Tranter2004], cӑ factorul local dӑ rezultate mai bune.

4) Cea de-a patru etapӑ constӑ într-o decodare cu algoritmul Viterbi pentru a genera o segmentare nouӑ, ce va îndepărta porțiunile de muzică sau zgomot. Clusterele create sunt modelate de un model Markov ascuns HMM cu o singurӑ stare, reprezentate de un model de mixturi gaussiane cu opt componente. Segmentele de lungime mare sunt tӑiate în punctele cu cea mai micӑ energie pentru a obține doar segmente mai scurte de 20 secunde.

5) Ultimul pas constă în clusterizare folosind algoritmul CLR (Cross Likelihood ratio), cel de-al doilea algoritm ierarhic, aglomerativ. Trăsăturile folosite nu au fost normalizate cu scopul de a păstra informațiile mediului din fundal, ce ajută în diferențierea vorbitorilor. În momentul de față, fiecare cluster conție vocea unui singur utilizator, dar îi putem asocia acestuia mai multe. Pentru a putea efectua și ultima operație din proces, trebuie să eliminăm influența mediului din modelele clusterelor, prin normalizarea coeficienților. Astfel vom obține o relație de unu-la-unu între vorbitori și clustere.

La fiecare iterație, două clustere care maximizează rata scorului de încrucișare (CLR) sunt unite ȋntr-unul singur. Algoritmul se încheie când unitatea de măsură depășește un prag setat anterior.

2.3.4 Modelarea vorbitorului

Un sistem deterministic pas-cu-pas de diarization a fost dezvoltat de Meignier et al. și este folosit în detecția de gen și bandă. Aceasta estimează automat numărul de vorbitori și se realizează având la bază modelele gaussiene GMM ( cu 128 de componente diagonale) pentru fiecare din cele patru combinații de gen (feminin/masculin) și bandă îngustă/bandă largă. Fiecare cluster este etichetat în concordanță cu caracteristicele modelelor gaussiene care maximizează probabilitatea coeficienților conținuți. Fiecare model a fost extras dintr-o ora de înregistrare a fișierelor de antrenare date de ESTER. În urmă procesul de diarization au fost obținute segmente mai scurte de 20 de secunde, ce conțin vocea unui singur vorbitor, cu banda și genul cunoscut pentru fiecare segment în parte. Din fiecare înregistrare este eliminată liniștea și momentele de tacere.

Dupӑ ce extragem vectori cu coeficienți din înregistrӑrile vorbitorului putem antrena un model al acestuia și sӑ îl stocӑm în baza de date a sistemului. Întrucȃt folosim un model independent de vorbitor ce include o corespundențӑ foarte micӑ sau chiar deloc între cadrele înregistӑrilor de referințӑ și cele de testare, alinierea la nivel de cadru nu este posibilӑ. Prin urmare, este utilӑ partiționarea semnalului în foneme sau clase mari de foneme, adicӑ structurarea foneticӑ a modelului fiecӑrui vorbitor.

În aplicațiile de vorbire un rol important îl are adaptarea modelelor acustice la condițiile noi de operare, deoarece existӑ o varietate mare de vorbitori, de stiluri, medii de înregistrare.

Prin antrenarea unui GMM ne referim la estimarea parametrilor λ = }K k=1, pornind de la eșantionale de antrenare ={x1, x2,…, xT}, și folosind estimarea probabilitӑții maxime. Cu cȃt este mai mare valoarea acestei probabilitӑți, cu atȃt putem afirma mai corect cӑ vectorii necunoscuți provin din modelul λ. Unul din algoritmii de bazӑ este EM (din engleză Expectation-maximization), ce poate fi folosit pentru a maximiza aceastӑ probabilitate avȃnd anumite date inițiale. Acesta pornește inițial de la o gaussianӑ învӑțatӑ pentru toate datele de antrenare, dupӑ care, interativ, gaussienele sunt împӑrțite și antrenate pȃnӑ ajungem la numӑrul de componente dorit. În general, sunt suficiente cinci iterații pentru ca parametrii sӑ conveargӑ, dar ne oprim în momentul în care cȃștigul de probabilitatea dintre douӑ iterații este mai mic decȃt un anumit prag. În sistemele de recunoaștere independente de vorbitor, bazate pe GMM-uri, se folosește un model universal de fundal (universal background model-UBM) ce este antrenat pornind de la o bazӑ de înregistrîri de zeci sau sute de ore, aparținaȃnd mai multor persoane. Modelul UBM este reprezentat de distribuția vectorilor de coeficienți, independent de vorbitor, iar în momentul în care un membru nou este introdus în sistem, parametrii acestui model sunt adaptați la trӑsӑturile sale. Modelul adaptat rezultat va fi folosit ca model al vorbitorului. Avȃnd datele necesare pentru a antrena un model universal, existӑ mai multe abordӑri posibile:

Prima metoda constӑ în unirea tuturor înregistrӑrilor ți antrenarea lor cu un algoritm EM (Expectation-maximization), cu observația ca datele sӑ fie repartizare echilibrat între subgrupe. De exemplu, dacӑ vrem un model independent de date este necesar ca înregistrӑrile de voci feminine și masculine sӑ fie balansate, pentru a nu înclina spre direcția dominantӑ.

Cea de-a doua metodӑ se referӑ la antrenarea modelelor UBM pentru fiecare subgrupӑ în parte și unirea modelului final. În acest caz, putem folosi și înregistrӑri neechilibrate între grupuri.

Putem observa cele douӑ abordӑri în figura 2.18 :

Pentru aplicația noastrӑ, este utilӑ antrenarea a douӑ modele de fundal diferite: unul pentru vorbitorii feminini și altul pentru cei masculini, situație în care vom antrena modelul noului venit în funcție de genul sӑu.

Putem adapta toți parametrii sau doar o parte din ei pornind de la modelul de fundal.

Avȃnd eșantioanele ={x1, x2,…, xT} și parametrii UBM (din engleza universal background model) λ UBM = }K k=1, obținem vectorii mediilor adaptate () cu metoda MAP (din engleza maximum a posteriori) ca o sumӑ ponderatӑ a datelor de antrenare ale vorbitorilor și media UBM:

=+(1- ,unde (2.3.3)

(2.3.4)

(2.3.5)

= (2.3.6)

mixturӑ și fiecare parametru s-a folosit un coeficient de adaptare, dependent de înregistrӑri ,vectorul mediilor, r parametrul de legӑturӑ fxat si un numӑr probabilistic.

În procesul de recunoaștere, modelul adaptat cu ajutorul algoritmului maxim a posteriori (MAP), ce implicӑ derivarea unui model GMM specific vorbitorlui dintr-un model UBM, este asociat cu modelul UBM și denumit în mod obișnuit Gaussian mixture model-universal background model sau modelul GMM-UBM.

Scorul de potrivire depinde atȃt de modelul țintӑ (λ tinta ) cȃt și de modelul de fundal (λ UBM ) prin intermediul logaritmului probabilitӑții:

Cost(χ, λ tinta , λ UBM )= λ tinta )-| λ UBM)}

și masoarӑ diferența dintre cele douӑ modele privind generarea observațiilor ={x1, x2,…, xT};

Atunci cȃnd indentificarea vorbitorului se face într-un cadru strȃns, se poate folosi doar GMM-uri fӑrӑ a fi nevoie neapӑrat de modelul UBM, însӑ tehnica nu este la fel de precisӑ în modelarea trӑsӑturilor.

2.3.5 Decodarea

Problema decodării coincide cu problema recunoașterii. Deși la recunoaștere ne interesează doar modelul cel mai probabil, există situații (cum este cel al vorbirii continue) în care avem nevoie să cunoaștem întreaga secvența de stări. Prin vorbire continuă ne referim la cazul în care trebuie să găsim pentru o secvență de observații cea mai probabilă secvență de modele, necunoscând granițele între cuvinte. În acest scop, se utilizează algoritmul Viterbi, folosit de asemenea în capitolul 2.1.2.1 în sistemele de recunoaștere automată a vorbirii, unde înlocuim funcția de însumare cu una de maximizare. Acest algoritm a fost aplicat pentru prima oară în probleme de vorbire de Vintsyuk (1968). Fiecare stare a unui HMM reprezintă un cluster, iar funcțiile densității de probabilitate ale fiecarui astfel de cluster sunt modelate de GMM-uri. Procesul se rezumă la evaluarea modelelor HMM rezultate în urma transformării unui set de mixturi gaussiene, adică probabilitatea maximă de generare a secvenței de observații de la momentul 1 la momentul t:

= } (2.3.8), unde,

=1 (2.3.9)

= (2.3.10)

este probabilitatea de a trece din stare i ȋn stare j, iar reprezintă probabilitatea să se emită simbolul la starea j.

Relația care stă la baza algoritmului Viterbi este:

= } ) (2.3.11)

Acesta găsește drumul optim într-o rețea de noduri construită ȋntre ferestrele de timp și stările modelelor Markov, adică costul celei mai probabile căi (figura 2.19). Termenul ) din formula (2.3.11) reprezintă scorul nodului, iar termenul scorul tranziției.

Algoritmul este realizat astfel:

Pasul 1:Inițializarea

=

Bi(1) = 0 1 N

Pasul 2: Inducția

= ] 2 T ; 1 N

] 2 T; 1 N

Pasul 3: Încheierea

scorul cel mai bun = max()

Pasul 4: Backtraking

s*t = Bs*t+1(t+1) t=T-1,T-2,….,1

= (s*1,s*2,……s*T) este cea mai bună secvența de stări

Întrucât foarte multe probabilități au valori mici, se aplică un logaritm asupra acestora (, ceea ce conduce la adunarea costurilor și nu înmulțirea probabilităților. În final, drumul va consta în alegerea celui mai mare cost și nu a celei mai mari probabilități.

Algoritmul Viterbi realizează implicit alinierea semnalului vocal cu modelele recunoscute. Rezultatul decodării va consta în găsirea secvenței de stări HMM ce a generat semnalul de voce și returnarea granițelor care indică segmentele ocupate de fiecare din cele patru modele în semnal vocal. Complexitatea acestuia depinde de numărul de stări pe care le au HMM-urile, de aceea se preferă soluția cu numărul de stări cel mai mic. Calea cea mai bună de-a lungul stărilor poate fi definița și printr-un proces de diarization ce folosește numele GMM-urilor pentru a înlocui numele grupurilor, iar stările aliniate reprezintă segmentele din fiecare grup.

2.3.6 Evaluarea performanțelor

Performațele sistemului de detecție a genului sunt măsurate printr-o asociere de una-la-unu între ID-urile vorbitorilor de referință și cei ipotetici. Putem analiza și performanțele proceselor intermediare ce compun sistemul final. Astfel, metrica de bază în cazul acțiunii de diarization o reprezintă rata de eroare DER (din engleză diarization error rate), suma erorilor de ratare, alarma falsă sau eroare a vorbitorilor. Pentru performanțele metodelor de clusterizare se analizează puritatea grupului, adică raportul între numărul de cadre ale vorbitorului dominant și numărul total de cadre din cluster și acoperirea grupului care se ocupă de dispersia vocii unui anumit vorbitor de-a lungul clusterelor. R.J. Baken and R.F. Orlikoff, Clinical measurement of speech and voice, Singular Publishing.

CAPITOLUL 3

EXPERIMENTE

3.1. Recunoașterea secvențelor audio ce conțin cifre

3.1.1. Construcția unui sistem de recunoaștere a vorbirii continue

Sistemul de recunoaștere a clipurilor audio ce conțin cifre este un sistem de recunoaștere a vorbirii continue cu vocabular redus ce conține doar zece cifre. Din figura 2.1 a arhitecturii generale a unui sistem de recunoaștere automatӑ a vorbirii (RAV) reiese faptul cӑ avem nevoie de douӑ procese:

a) extragerea de parametrii vocali din semnalul vocal (folosind mesajul vorbit) utilizați apoi în procesul de recunoaștere;

b) utilizarea unor modele (acustic, fonetic și lingvistic) dezvoltate anterior.

Pentru cazul nostru, sistem de recunoaștere cu vocabular redus, se folosesc modelele de limbӑ de tip gramatical cu stӑri finite, deci nu avem nevoie de resurse textuale pentru a le forma.

La baza construcției unui asemenea sistem stau urmӑtorii pași:

Înregistrarea unei baze de date de clipuri audio

Pentru a forma modelul acustic avem nevoie de un set de clipuri audio înregistrate.Astfel am înregistrat pentru fiecare vorbitor diferit din cei 69 folositți, 100 de clipuri audio a cȃte 12 cifre fiecare.

Crearea dicționarului fonetic și a listei de foneme

Dicționarul fonetic specificӑ modul în care sunt pronunțate cuvintele unei limbi.El va conține, pentru sarcina noastrӑ, cele zece cifre ale sistemului zecimal: zero, unu, doi, trei, patru, cinci, șase, sapte, opt, nouӑ.Sistemul de recunoaștere CMU Sphinx folosește dicționarele fonetice în format text , cu cȃte un cuvȃnt pe fiecare linie, însӑ transcrierea foneticӑ a unui cuvȃnt apare pe aceeași linie. Fonemele le scriem separate prin spațiu.Lista de foneme se creazӑ prin scrierea tuturor fonemelor ce vor fi modelate de modelul acustic pe cȃte o linie, în ordine alfabeticӑ.

Antrenarea modelului acustic

Necesitӑ existența urmӑtoarelor resurse:

-baza de înregistrӑri audio ce conține vorbire;

-dicționarul fonetic cu toate cuvintele;

-un dicționar cu elemente ce nu sunt foneme (muzicӑ, tuse, rȃset etc).

Se creazӑ o listӑ cu clipurile audio ce vor fi folosite în procesul de antrenare și un fișier cu transcrierea textualӑ a acestor înregistrӑri.Vom folosi primele 50 și ultimele 30 din clipurile audio ale fiecӑrui vorbitor.Pentru orice proiect CMU Sphinx existӑ un fișier de configurare unde modificӑm parametrii modelului acustic și locația resurselor necesare.Avem nevoie apoi de coeficienții MFCC corespunzӑtori clipurilor de antrenare.Astfel creӑm 80 de fișiere cu coeficienți cepstrali pentru fiecare vorbitor și antrenӑm modelul.

Crearea modelul de limbӑ (gramaticii)

Vom construi pentru o sarcinӑ de transcriere a secvențelor audio ce conțin cifre o gramaticӑ cu stӑri finite.Presupunem cӑ vorbitorul poate rosti numai cuvintele zero, unu, doi, trei, patru, cinci, șase, șapte, opt, nouӑ.Definirea grafului va începe cu definirea nodurilor de intrare și ieșire din gramaticӑ, notate cu N (null), deoarece trecerea prin ele nu genereazӑ afișarea niciunui cuvȃnt.Creӑm apoi nodurile ce corespund cuvintelor și le legӑm de nodurile de intrare și ieșire cu arce direcționate.A fost creatӑ o gramaticӑ dacӑ se pronunțӑ o cifrӑ o singurӑ datӑ.Adaugӑm o tranziție de la nodul de ieșire la cel de intrare și încӑ douӑ stӑri de null, pentru ca celelalte douӑ acum au arce care intrӑ și ies din ele.

Figura 3.1 prezintӑ grafic gramatica cu stӑri finite pentru sarcina propusӑ. Modelul e format din 14 noduri, dintre care 10 reprezintӑ cuvintele (cifrele de la zero la nouӑ).Tranzițiile aratӑ modul în care se parcurge gramatica și ce este permis ca secvențe de cuvinte:

Cifrele și succesiunile de cifre din înregistrӑrile noastre apar cu probabilitӑți aproape egale și din aceastӑ cauzӑ se folosește gramatica cu stӑri finite (FSG-Finite State Grammar) ce se poate implementa cu ajutorul formatului Java Speech Grammar (JSGF).

#JSGF V1.0;

grammar rodigits;

public<numbers>=(zero|unu|doi|trei|patru|cinci|șase|șapte|opt|nouӑ)*;

Tranzițiile, nodurile și probabilitӑțile de tranziție ale gramaticii cu stӑri finite sunt specificateîn formatul intern folosit de CMU Sphinx, FSG astfel:

FSG_BEGIN <rodigits.numbers>

NUM_STATES 18

START_STATE 0

FINAL_STATE 1

TRANSITION 0 2 1.000000

TRANSITION 2 4 0.500041

TRANSITION 2 5 0.500041

TRANSITION 3 1 1.000000

TRANSITION 4 3 1.000000

TRANSITION 5 7 0.100000 nouă

TRANSITION 5 8 0.100000 opt

TRANSITION 5 9 0.100000 șapte

TRANSITION 5 10 0.100000 șase

TRANSITION 5 11 0.100000 cinci

TRANSITION 5 13 0.100000 patru

TRANSITION 5 14 0.100000 trei

TRANSITION 5 15 0.100000 doi

TRANSITION 5 16 0.100000 unu

TRANSITION 5 17 0.100000 zero

TRANSITION 6 2 1.000000

TRANSITION 6 3 1.000000

TRANSITION 7 6 1.000000

TRANSITION 8 6 1.000000

TRANSITION 9 6 1.000000

TRANSITION 10 6 1.000000

TRANSITION 11 12 1.000000

TRANSITION 12 6 1.000000

TRANSITION 13 6 1.000000

TRANSITION 14 6 1.000000

TRANSITION 15 6 1.000000

TRANSITION 16 6 1.000000

TRANSITION 17 6 1.000000

FSG_END

Evaluarea sistemului de recunoaștere și interpretarea rezultatelor

Avȃnd la dispoziție cele 3 componente fundamentale ale unui sistem de recunoaștere (modelul acustic, modelul de limbӑ și modelul fonetic) putem decoda clipurile audio de evaluare și comparare a transcrierii textuale rezultate cu transcrierea textuală de referință în vederea evaluării sistemului de recunoaștere de secvențe audio ce conțin cifre.

Dupӑ rularea procesului de decodare vom obține rezultatele pentru fiecare configurație în parte.Raportul de evaluare afișeazӑ pe fiecare linie rezumatul rezultatelor pentru diverși vorbitori din baza de date de evaluare, iar pe coloane avem informații precum: id-ul vorbitorului, numӑrul propozițiilor și a cuvintelor de evaluare, procentul de cuvinte substituite/ șterse/ inserate, procentul de cuvinte recunoscute corect, rata de eroare la nivel de propoziție, precum și la nivel de cuvȃnt.

La secțiunea Sentence Recognition Performance se oferă mai multe detalii cu privire la erorile la nivel de propoziție, iar la secțiunea Word Recognition Performance se oferă mai multe detalii cu privire la erorile la nivel de cuvânt.Urmӑtoarele cinci secțiuni prezintӑ statistici despre perechile de cuvinte confundate cel mai des (Confusion Pairs), cuvintele cele mai frecvent inserate (Insetions), șterse (Deletions), substituite (Substitutions) și cuvintele recunoscute fals cel mai des (Falsely Recognized).

În final, sunt prezentate în raport, frazele ipotetice aliniate de la frazele de referințӑ corespunzatoare, precizȃnd tipurile de erori pentru fiecare frazӑ.

Optimizarea modelului acustic

Modelul acustic creat de noi cu CMU Sphinx este construit cu trifoneme (fonem cӑruia i se precizeazӑ vecinii din stȃnga și dreapta), fiecare trifonem fiind implementat ca HMM cu trei stӑri emisive.Fiecare astfel de model-stare poartӑ denumirea de senone și poate fi comunӑ mai multor trifoneme în funcție de asemӑnarea dintre ele.Modelul în stare inițialӑ are numӑrul de senone egal cu 200, iar numӑrul de densitӑți de probabilitate pentru fiecare GMM egal cu 8.

Pentru a obține acest model acustic cu 200 de senone și 8 densitӑți Gaussiene per senone s-a trecut prin mai multe etape ce includ:

-modele fonetice independente de context;

-modele fonetice dependente de context cu o singurӑ densitate Gaussiana per senone, apoi cu 2 și respectiv 4 densitӑți;

Am configurat procesul de decodare pentru a folosi pe rȃnd fiecare din cele 4 modele și am centralizat rezultatele astfel încȃt sӑ avem o evaluare finalӑ și comparativӑ a diverselor configurații.

Pentru decodarea clipurilor audio de evaluare folosind metode fonetice independente de context, modificӑm fișierul de configurare al proiectului, specificȃnd alte modele acustice.Am folosit modelele cu 200 de senone și am variat numӑrul de densitӑți gaussiene per senone.

Pentru a verifica dacӑ numӑrul de 200 de senone este optim sau nu pentru sarcina noastrӑ de recunoaștere a secvențelor audio ce conțin cifre, vom antrena un model acustic cu un numӑr de 100 de senone folosite la modelarea fonemelor ce formeazӑ cuvintele.Variem și acum numӑrul de densitӑți Gaussiene și evaluӑm 4 modele acustice.

Rezultate privind evaluarea sistemului dependent de vorbitor

3.1.2 Construcția unui sistem de recunoaștere independent de vorbitor

Necesitatea unui astfel de sistem reiese din erorile foarte mari obținute în urma evaluӑrii sistemului creat anterior pe fișierele de evaluare ale altor colegi.Rezultatele sunt de înțeles, deoarece modelul acustic din proiect a fost antrenat doar cu vocea noastra și cea mai bunӑ recunoaștere o va face tot pentru noi.Am decis sӑ creӑm un alt proiect, independent de vorbitor în acest caz, folosind nu doar clipurile audio înregistrate de noi, ci toate clipurile din baza de date.

Pentru crearea acestuia ne-am folosit de :

a) pentru antrenare: 80 de fișiere audio de la 69 de vorbitori (5520 fișiere audio);

b) pentru testare: 20 de fișiere audio de la aceiași 69 de vorbitori (1380 fișiere audio);

Urmӑm aceiași pași parcurși în cazul anterior, dependent de vorbitor, cu un numӑr de 200 și respectiv 100 de senone.Pentru fiecare situație folosim metode fonetice independente de context și dependente cu 1/2/4/8 densitӑți Gaussiene per senone.

Rezultate privind evaluarea sistemului independent de vorbitor (vorbitori cunoscuți)

Comparȃnd rezultatele obținute, observӑm un trend de scӑdere al erorii pentru 100 de senone și decidem sӑ extindem numӑrul densitӑți Gaussiene, trecȃnd prin 16, 32, 64 și în final 128.

3.1.3 Concluzii

În urma evaluӑrilor, am selectat modelul optim ca fiind cel cu 128 densitӑți Gaussiene și 100 de senone. Numărul mare al densităților Gaussiene oferă o aproximare mai bună a modelului.

Pentru obținerea unui rezultat bun într-un sistem bazat pe modele Markov ascunse cu densități continue, este necesar să folosim îmbinarea dintre distribuțiile Gaussiene și modelele(fonetice) dependente de context. 

3.2 MediaEval 2013: Sarcina de căutare a cuvintelor vorbite (Spoken Web Search)

Atribuțiile pentru MediaEval 2013 au constat în căutarea unui cuvânt rostit în interiorul unei baze de înregistrări, de asemenea rostite.

Procesul s-a bazat pe două seturi ce conțineau înregistrări multilingve: un set cu exemple de termini căutați (unul sau mai multe exemple pentru un termen) și un set de documente audio unde vor avea loc căutarile și a implicat că fiecare apariție a unui cuvănt cerut să fie identificată. Întrucât atât termenii cât și înregistrările audio pot conține diferite limbi, sistemele de căutare trebuie să fie independente de limbă.

Fișierele audio din baza de date a proiectului au fost înregistrate în diverse limbi (engleză, română, albaneză, cehă, bască, precum și 4 limbi africane) cu accente și condiții acustice diferite (unele realizate în cameră cu ajutorul microfoanelor, în timp ce altele pe stradă cu telefonul mobil). Dimensiunea bazei de înregistrări este în jur de 20 ore, iar numărul de cuvinte căutate este de aproximativ 400, ele fiind proporționale cu numărul de limbi utilizate.

3.2.1 Abordarea sarcinii

Abordarea acestei sarcini are la bază sistemul de recunoaștere automată a vorbirii pentru limba română, dezvoltat anterior.

Conform arhitecturii sistemului propusă de NIST, avem două componente: o etapă de indexare, ce rulează transparent față de utilizator și una de căutare. În faza de indexare folosim sistemul ASR, ce preia o înregistrare și returnează un șir de foneme, reprezentând transcrierea fonetică a acesteia. Pasul următor, acela de a găsi termenii dați se realizează prin căutarea transcrierii acestora în transcrierea fonetică a bazei de înregistrări. Scopul este acela de a găsi locurile în care asemănarea dintre șirurile de foneme (ale cuvintelor și bazei avute) depășește un anumit prag.

3.2.2 Sistemul de recunoaștere automată a vorbirii (ASR) pentru limba română

Modelul acustic pentru acest sistem a fost creat având la bază 64 ore de înregistrări apartinând unor diversi vorbitori. Cea mai bună performanță a fost o rată de eroare a cuvintelor (WER) de 18% pentru un discurs clar și continuu, în cazul în care a fost folosit un model de limbă antrenat cu 170 milioane de cuvinte, bazat pe N-grame (rezultatul a fost preluat din experimențele anterioare realizate de echipa de cercetare).

Deoarece înregistrările sunt aleatorizate, nu a fost furnizată nici o informație privind limba vorbită în fisier. Pentru a reduce neconcordanța dintre aceasta bază de înregistrări și baza de antrenare a sistemului ASR, am filtrat înregistrările în limba română la 8kHz și am reantrenat modelul acustic.

Baza de înregistrări avută nu conține niciun tip de transcriere. Din acest motiv, este mai fezabil să folosim recunoașterea de cuvinte, însă folosim recunoașterea de foneme. Limba română are doar 26 foneme, deși numărul mare de limbi conținute în înregistrări triplează acest număr. Deoarece multe sisteme de recunoaștere automată a vorbirii folosesc clusterizarea fonemelor prin gruparea acestora în clase, în funcție de similitudinea acustică, putem avea mai puține clase decât foneme.

Pentru realizarea acestui lucru folosim modelele Markov ascunse (HMM) cu 3 stări per foneme, cu 4000 de senone, 8 densități Gaussiene, cu parametrii de voce MFCC. Modelele au fost antrenate să dividă spațiul trăsăturii vorbirii în clase de foneme, iar fonemele care nu aparțin limbii romane vor fi clasificate în una din aceste clase. Daca toate aceste instanțe, considerate ca neaparținând fonemelor din limba română ar fi recunoscute ca foneme romanești, atât baza de înregistrări cât și cuvântul căutat ar avea același simbol. Rezultatele experimentale arată însă contrariul, adică faptul că multe foneme ocupă o regiune a vorbirii ce se suprapune doar parțial cu subspațiile fonemelor limbii române. Pentru baza de date a sistemului ASR din limba română avem o rată de eroare a fonemelor (PhER) de 36.8% (testată pe date în limba română).

3.2.3 Metodologia căutării

Algoritmul DTWSS (DTW String Search) folosește DTW pentru a alinia cuvântul căutat în conținut. Deoarece lungimea înregistrării o depașește pe cea a query-ului, căutarea trebuie să se realizeze doar în partea proporțională cu lungimea query-ul căutat numită “fereastra glisantă”, în care noi am împărțit înregistrarea. Aceaste ferestre nu pot fi oricât de mari, deoarece fonemele unui termen căutat pot fi eventual găsite în interiorul ferestrei, deși este o potrivire falsă. Cuvântul este considerat găsit atunci când scorul algoritmului DTW depășește un anumit prag.

Pentru fiecare fereastră, alinierea la un scor s, complementar costului (egal cu valoarea PhER):

s= (1-PhER) (1)

unde s este scorul de similitudine, atunci când detecția se bazează pe un prag determinat empiric. Procesul de segmentare a înregistrărilor în ferestre glisante și marcajele de timp fac procesul de localizare a unui cuvânt posibile. Această metodă trebuie sa ia în calcul și query-urile foarte scurte și implicit raspândirea potrivirilor DTW în context. Formula poate îmbunătăți căutarea, dacă este folosită sub formă:

(2)

unde, LQ este lungimea cuvântului căutat, LQM=17 și LQm=4 sunt lungimile maximă respectiv minimă a unui query găsit în setul de date, LW este lungimea ferestrei glisante, α și β sunt parametrii configurabili, LS este lungimea termenului găsit în înregistrare.

Penalizările în formula (1) sunt date de presupunerea că două cuvinte de lungimi diferite se pot potrivi într-un anumit conținut prin aceeași valoare PhER, iar query-ul cu lungimea cea mai mare este mai probabil să fie cel corect. Ponderea de raspândire a potrivirilor în cazul algoritmului DTW se explică prin faptul că, cu cât sunt mai compact aliniate fonemele, cu atât este mai mare probabilitatea ca ele să aparțină aceluiași termen. Introducerea parametrilor ajustabili (α și β) reprezintă o abordare nouă, valoarea lor optimă fiind obținută empiric.

3.2.4.Rezultate experimentale

Rezultatele obținute cu metoda primară, algoritmul DTW, pe setul de înregistrări de evaluare sunt arătate în Tabelul 1. Evaluarea se bazează pe valuarea ATWV care ia în calcul și locația cuvântului căutat. Rezultatele au fost obținute pentru o lungime a ferestrei glisante mai mare de 1.5 ori decât cea a cuvântului căutat. Cu cât este mai scurt query-ul, cu atât cresc șansele ca, cuvinte diferite, dar similare să obțină scoruri mai mari.

Experimentele au fost făcute pentru a determina valoarea optimă a parametrilor α și β, pentru metoda de căutare DTWSS, pornind de la formula 1(α=0; β=0) am determinat baza. Se observă că este mai bine să îi dăm parametrului α o valoare mai mare. În mod similar, cu cât este mai mare raspândirea potrivirii dată de DTW, cu atât este mai mica probabilitatea ca acela să fie cuvântul căutat. Există totuși o valoare optimă pentru α și β, explicate pe baza că, crescând α peste o anumită valoare, cuvintelor scurte li se alocă scoruri mari doar pentru că sunt de lungime mică, deși ele ar putea avea o valoare PhER mare. Similar, o valoare mare a lui β înseamnă că potrivirile DTW vor primi un scor mai mare deși scorul lor real DTW (1-PhER) este mai mic.

Am ales următoarele combinații (α, β): (1; 0.8), (1, 1).

Figura 3.9 arată curbele erorii de detectare a compromisului (DET) folosind metoda DTWSS, obținută pentru baza de înregistrări de evaluare.

3.2.5 Concluzii:

Sistemul de recunoaștere a termenilor (STD) s-a conturat ca un process în doi pași. Am folosit un ASR în limba română pentru recunoașterea de foneme, în cazul indexării bazei de înregistrări, în timp ce algoritmul DTW se utilizează în căutarea unui cuvânt dat. Rezultatele se îmbunătațesc dacă scorul deciziei este reglat în concordanță cu lungimea cuvântului și raspândirea de potriviri. Metoda aleasă este scalabilă pentru baze mari de date, deoarece am redus căutarea la o comparație de siruri de foneme.

CAPITOLUL 4

APLICAȚII DEMONSTRATIVE

4.1 Recunoaștere de cifre

4.1.1 Descriere

Aplicația demo de recunoaștere de cifre în limba romȃnӑ este o aplicație în Java ce preia cifrele rostite de utilizator, cu ajutorul unui microfon și le afișeazӑ textual în interfața graficӑ, cum este prezentat în figura 4.1.

Modelul acustic și modelul lingvistic folosite pentru aceasta aplicație sunt cele create anterior, care au dat cele mai bune rezultate de recunoaștere, în urma testӑrii a diverse configurații.

4.1.2 Interfața utilizatorului

Aplicația are o interfațӑ graficӑ simplӑ construitӑ cu ajutorul cadrului de lucru swing javax. Prin apӑsarea butonului „Record speech” se începe înregistrarea utilizatorului, textul butonului se schimbӑ în „Stop recording”, iar în momentul în care apӑsӑm pe „Stop recording”, oprim înregistrarea și începe procesul de recunoaștere. Programul detecteazӑ automat sfȃrșitul mesajului rostit și face recunoașterea de cifre, dar este recomandatӑ apӑsarea butonului de stop pentru a diminua zgomotele din jur, ce pot influența negativ rezultatele recunoașterii. Dupӑ ce recunoașterea este terminatӑ, cȃmpul de text „Your Speech is:” va afișa șirul de cifre depistat. Se pot face mai multe recunoașteri consecutive prin reapӑsarea butonului de înregistrare (Record speech), moment în care caseta de afișare se golește și procesul se reia.

4.1.3 Implementare

Pentru dezvoltarea proiectului am folosit uneltele puse la dispoziție în mod gratuit de CMU Sphinx, ce oferӑ posibilitatea de a crea sisteme de recunoaștere a vorbirii continue, cu un vocabular larg, independente de vorbitor și mediul de dezvoltare Netbeans IDE. Sphinx-4 conține un set de clase ce folosesc Java Speech API (JSAPI) ca un motor în recunoașterea de vorbire. NetBeans reprezintă un suport integrat pentru dezvoltarea proiectelor ce includ o interfață grafică cu utilizatorul și oferă multe facilități.

Pentru ȋnceput, am setat calea spre atributele necesare sarcinii noastre, specificȃnd modelul acustic, dicționarul creat, fișierul cu gramatica și sursa de unde va proveni mesajul vorbit. Primele trei atribute au fost setate folosind obiectul de configurare, care a fost apoi pasat recunoscӑtorului de cifre. Recunoașterea s-a bazat pe înregistrarea live a vocii utilizatorului cu ajutorul unui microfon și pentru a realiza acest lucru am folosit o clasă a librariei Sphinx-4 numitӑ LiveSpeechRecognizer împreună cu metodele sale. Dupӑ ce microfonul este pornit, programul încearcӑ sӑ recunoascӑ ceea ce utilizatorul spune (cu metoda recognizer.startRecognition(true)). Cifrele recunoscute prin apelul metodei recognizer.getResult() sunt afișate în caseta de text corespunzӑtoare.

Pentru a putea realiza recunoașterea în mod transparent utilizatorului și a permite ca interfața sӑ rӑmȃnӑ activӑ, astfel încȃt sӑ putem realiza și alte acțiuni în acest timp, se folosesc mai multe fire de execuție. SwingWorker este o clasӑ abstractӑ, idealӑ pentru a detașa unele sarcini de aplicație și doar sӑ putem monitoriza statusul lor sau sӑ le putem închide cȃnd dorim. Fiecare sarcină a unui fir de execuție este reprezentată de o instanță a lui javax.swing.SwingWorker.

Se pot furniza trei tipuri diferite de fire de execuție:

Firul curent ȋn cadrul căruia este apelată metoda execute( ), ce programează un SwingWorker pentru a executa un fir și returnează răspunsul imediat;

Firul lucrător (din engleza Worker) ce apelează doInBackground ( ) și se ocupă de toate activitățile din fundal. Cu această metodă putem actualiza progresele aplicației.

Event Dispatch Thread (EDT): toate activitățile Swing legate au loc aici și se folosesc metodele process și done( ).

Am utilizat metoda doInBackground( ) , în interiorul cӑruia pornim procesul de recunoaștere a cifrelor și recepționӑm rezultatele. Pentru pornirea execuției codului apelăm metoda execute( ). În momentul în care utilizatorul apasӑ pe butonul de înregistrare, SwingWorker-ul începe recunoașterea în fundal, apoi elibereazӑ firul de execuție pentru a împiedica blocarea aplicației. Când este finalizată operația din fundal, automat este invocată metoda done( ) pentru a putem recupera rezultatul. Apelul metodei done() se poate face doar ȋn firul de fundal numit event dispatching thread, singurul fir valid ce poate modifica starea componentelor de pe interfața grafică.

Atunci cȃnd calculul este terminat și rezultatul este disponibil, îl preluӑm cu ajutorul metodei getResult() și astfel, putem să ȋl afișăm pe interfață.

4.1.4 Concluzii

Scopul principal al acestei aplicații demo a constat ȋn a vedea cum sunt recunoscute secvențele de cifre rostite, indiferent de utilizator sau de modul său de pronunție și beneficiile pe care o astfel de aplicație le poate aduce tehnologiei. Există, bineȋnțeles, numeroase dezvoltări ce pot mări gradul de utilizare și complexitate al acestui sistem.

4.2 Detecția de gen

4.2.1 Descriere

Aplicația demo de detectare de gen este un program scris în limbajul Java ce preia o înregistrare audio a utilizatorului și returneazӑ genul acestuia. O populație de indivizi poate fi partiționată ȋn diverse subcategorii pe baza mai multor criterii, lucru ce interesează din multiple motive. Detecția automată a genului prezintă mai multe aplicații: ȋn contextul detecției vorbitorului, genul îmbunătățește performanțele prin limitarea spațiului de căutare, reprezintă o unealtă utilă ȋn sistemele de analiză a semnalelor, ȋn sistemele de indexare, cunoașterea genului vorbitorului este o indicație folosită ȋn notare.

4.2.2 Interfața utilizatorului

Aplicația, în mod asemӑnӑtor cu cea anteriorӑ, are o interfațӑ graficӑ simplӑ construitӑ cu ajutorul cadrului de lucru swing javax, ce are la bazӑ o conexiune de tip client-server. Apӑsȃnd butonul „Start Recording”, începe înregistrarea vocii utilizatorului, eticheta se schimbӑ în „Stop Recording”, ce ne permite sӑ oprim înregistrarea în momentul în care ne dorim acest lucru și sӑ vedem rezultatul returnat de aplicație. Butonul revine în stare activӑ de „Start Recording”, astfel încȃt putem sӑ ne înregistrӑm de mai multe ori consecutiv, fӑrӑ a fi nevoie sӑ pornim întreg procesul. Fișierul audio rezultat este transmis serverului, care îl prelucreazӑ și returneazӑ rӑspunsul detectat, ce va fi afișat în caseta de text corespunzӑtoare, precedatӑ de eticheta „Your answer:”, figura 4.2.

4.2.3 Implementarea

Pentru dezvoltarea proiectului de recunoaștere a genului am utilizat o conexiune client-server, în cadrul cӑreia fiecare clasӑ are rolul sӑu. Figura 4.3 prezintă o diagramă de secvență simplificată a aplicatiei:

Principalele clase folosite pentru executarea sarcinii de recunoaștere a genului sunt prezentate ȋn figura 4.4 :

Figura descrie structura internă a sistemului prin identificarea claselor, a atributelor și a relațiilor dintre clase. Fiecare clasă este reprezentată sub forma unui dreptunghi cu trei compartimente pentru: numele clasei, compartimentul din mijloc afișează atributele clasei, iar cel inferior operațiile efectuate.

4.2.3.1 Clientul

Clientul se conecteazӑ la server, înregistreazӑ vocea sub forma unei înșiruiri de octeți, îi transmite serverului, recepționeazӑ și afișeazӑ rӑspunsul. Toate aceste acțiuni au loc ȋn mod transparent utilizatorului, prin intermediul librăriei SwingWorker, descrisă ȋn capitolul anterior 4.1.3, ce furnizează updatarea interfeței ȋn tip ce rulează, ȋn spate, diverse sarcini. În acest timp, serverul așteaptӑ conexiunile clienților, recepționeazӑ fișierele audio trimise de aceștia, ruleazӑ partea de detectare și transmite rӑspunsul înapoi la client.

Pentru a realiza o aplicație client se va folosi clasa Socket ce permite stabilirea unei conexiuni cu un server existent precum și folosirea conexiunii pentru schimb bidirecțional de date, de tip TCP. Porturile și soclurile reprezintă mecanismul prin care se realizează legătura cu un server. Porturile reprezintă o poarta la care sunt primiți clienții pentru un anumit serviciu. Clientul trebuie sӑ știe numele mașinii severului pe care ruleazӑ precum și numӑrul portului pe care serverul ascultӑ. La nivelul sӑu, socket-ul se realizeazӑ specificȃnd adresa IP și portul serverului.

De exemplu la aceeași adresa se pot oferi diferite servicii, acestea oferindu-se la porturi diferite. Același calculator (cu o singură adresa IP) poate să ne ofere oricâte servicii dorește. Clienții care apelează la serviciile acestui calculator vor utiliza aceeași adresă, indiferent la care serviciu apelează, și toți clienții care doresc utilizarea unui anumit serviciu vor utiliza același port. Un  soclu este de fapt un nod abstract de comunicație, reprezentând o interfață de nivel scăzut pentru comunicarea ȋn rețea. Ele permit comunicarea ȋntre procese aflate pe același calculator sau pe calculatoare diferite din rețea. Java suportă trei tipuri de socluri. Clasa Socket  utilizează un protocol orientat pe conexiune (TCP) și fluxuri de date (din engleză stream) pentru a trimite și a recepționa mesaje.

Un client ce dorește o comunicare cu serverul, trebuie sӑ cunoscӑ trei lucruri:

– adresa server

– portul server utilizat pentru comunicare

– protocolul de comunicatie utilizat de server

4.2.3.2 Serverul

În aplicația Server, pentru început, se creazӑ un obiect de tip ServerSocket care ascultӑ pe un anumit port. Constructorul pentru ServerSocket aruncӑ o excepție dacӑ nu poate asculta pe portul respectiv.

Dacӑ însӑ, se conecteazӑ pe portul sӑu, acceptӑ conexiunea de la client și creeazӑ un fir de execuție nou, cӑruia îi încredințeazӑ socketul de legӑturӑ. Este necesarӑ adӑugarea referinței cӑtre fiecare client în parte într-o listӑ, pentru a putea transmite rӑspunsul cӑtre adresa corespunzӑtoare. Serverul continuӑ sӑ asculte cererile celorlalți clienți care vor sӑ se conecteze și ȋi acceptă cu ajutorul metodei accept().

Pe fiecare fir de execuție (numit în aplicația curentӑ ClientPeer), în mod independent, este creat un flux de intrare pe care se primește șirul de octeți corespunzӑtori vocii clientului și un flux de ieșire pentru a returna răspunsul. Fluxul primit îl transformӑm într-un fișier audio și pe baza acestuia este format un fișier .seg ce conține informații precum: numele înregistrӑrii, canalul utilizat, începutul cadrului, durata în milisecunde, genul utilizatorului (în cazul în care deținem informații de referințӑ ce pot fi folosite la verificare), banda (8kHz sau 16kHz) și mediu în care a avut loc înregistrarea. Extragerea coeficienților cepstrali MFCC se poate realiza prin metodele puse la dispoziție de LIUM sau de Sphinx-4 (sphinx_fe), cȃnd se precizeazӑ și caracteristice pe care le dorim. Urmӑtorul pas îl reprezintӑ alegerea modelelor de gen folosite.

LIUM estimeazӑ modelele de gen prin una din metodele: EM sau MAP pornind de la un set de înregistrӑri și etichetele respective. În cazul modelӑrii folosind metoda MAP (din engleza maximum a posteriori), copiem modelul UBM-ul (din engleza universal background model) , pentru fiecare vorbitor, obținut din mixarea GMM-urilor dependente de gen și banda. Pentru fiecare cluster, doar mediile sunt adaptate, conform formulei (2.3.3).

Decodarea va genera la ieșire un fișier cu rezultate ce conține informații precum: numele înregistrării, detecția sistemului, scorurile obținute pentru cele patru modele de gen și banda și referința (ȋn cazul ȋn care dispunem de ea pentru o verificare a performanțelor ). După calcularea rezultatului, serverul este capabil să trimită răspunsul său clientului, iar acesta va fi afișat ȋn câmpul de text rezervat. Utilizatorul are acum permisiunea de a ȋși reȋnregistra vocea pentru o noua detecție.

4.2.4 Dezvoltări ulterioare

Există mai multe direcții ȋn care aplicația poate fi îmbunătățită. Acestea se pot reflecta fie ȋn interfață prin prezentarea mai multor informații sau prin permiterea unui control mai mare al utilizatorului, fie ȋn codul pe care se bazează.

Unul din pașii doriți constă ȋn modificarea și testarea caracteristicelor folosite ȋn antrenarea modelelor vorbitorilor și ȋn decodare, pentru a observa care combinație obține cele mai bune rezultate. Totodată, se pot investiga și cauzele erorilor de detecție obținute.

O alta îmbunătățire adusă aplicației ar fi detecția genului ȋn diverse condiții de fundal ale înregistrării precum: zgomot, reflexii ale vocii, ce pot îngreuna decizia sistemului.

4.2.5 Concluzii

Scopul principal al acestei aplicații a fost acela de a recunoaște genul vorbitorului și de a observa cum arată o astfel de aplicație, ce poate fi folosită ȋn diverse domenii reale. Un exemplu ar consta ȋn adaptarea muzicii de așteptare la telefon sau furnizarea unor informații statistice pe baza distribuțiilor de gen. Am folosit sistemul LIUM, care este de nouă generație ȋn domeniul vorbirii, bazat pe segmentare urmată de o clasificare. Scorurile obținute pentru cele patru categorii de combinații gen-bandă au prezentat diferențe foarte mici, lucru ce a condus la unele detecții de gen eronate.

CAPITOLUL 5

CONCLUZII

5.1 Concluzii generale

Scopul principal al acestei lucrări a fost acela de a prezenta diversele forme sub care sistemele de recunoaștere a vorbirii pot influența. Această sarcină a fost împărțită în trei sub-parți: un sistem de recunoaștere a cifrele în limba română, o căutare a termenilor rostiți într-un context și un sistem de detecție a genului vorbitorului, fiecare cu subdiviziunile specifice. Prima parte a fost îndeplinită cu succes, pentru cea de-a doua am obținut rezultate pe baza experimentelor, în timp ce ultima încă mai prezintă o rată de detecție greșită destul de semnificativă.

Lucrarea prezintă pașii urmați pentru îndeplinirea fiecărei atribuții. În capitolul 1 a fost descrisă motivația unor astfel de aplicații, în timp ce Capitolul 2 a prezentat detaliat cele trei parți componente ale lucrării.

Secțiunea 2.1 s-a axat pe prezentarea sistemele de recunoaștere automată a vorbirii, împreună cu uneltele puse la dispoziția utilizatorilor pentru prelucrarea datelor și obținerea rezultatelor. Subcapitolul 2.2 a detaliat sarcina Spoken Web Search, de găsire a unui termen, împreună cu planul de evaluare NIST.

Ultime secțiune 2.3 a dezvoltat problema recunoașterii genului, parcurgând pașii necesari pentru rezolvarea acesteia și modalități de evaluare a performanțelor.

Capitolul 3 s-a focusat pe rezultatele experimentale obținute în competiția de recunoaștere a termenilor rostiți MediaEval 2013 (Spoken Web Search) și în detecția de gen. Tot în cadrul acestui capitol, am prezentat metodologia algoritmului de căutare DTW pentru MediaEval și rezultatele optime obținute prin varierea parametrilor α și β în algoritmul DTWSS ( din engleză Dynamic Time Warping String Search). De asemenea, experimentele pentru recunoașterea de cifre rostite în limba română m-au ajutat în găsirea celor mai bune modele acustice și de limbă, ce au dat cele mai bune rate de eroare.

Capitolul 4 a prezentat două aplicații demonstrative cu interfața grafică pentru utilizatori. Prima a fost dezvoltată pentru îndeplinirea sarcinii de recunoaștere a cifrelor și a presupus folosirea setului de instrumente CMU Sphinx, în timp ce a doua prezintă recunoașterea genului și detaliază o arhitectură de timp client-server pe care s-a bazat.

Aceste două aplicații pot fi folosite pentru a demonstra performanțele unor sisteme de recunoaștere.

5.2 Contribuții personale

Atribuțiile personale ale autorului ce au dus la îndeplinirea obiectivelor acestei lucrari pot fi sumarizate astfel:

1)Proiectul recunoașterii de cifre

a) Crearea unui sistem de recunoaștere a cifrelor dependent de vorbitor.

b) Crearea unui sistem de recunoaștere a cifrelor independent de vorbitor.

c) Efectuarea experimentelor de optimizarea a configurației unui sistem de recunoaștere automată a cifrelor din limba română.

d) Realizarea unei aplicații cu interfața grafică pentru recunoașterea cifrelor captate într-o înregistrare cu ajutorul microfonului.

2) Proiectul de găsire a termenilor vorbiți (MediaEval 2013)

a)Crearea unor fișiere ce conțin numele înregistrărilor în care se efectuează căutările și respectiv a înregistrărilor cu termenii căutați;

b)Efectuarea experimentelor de optimizarea a configurației unui sistem de recunoaștere automată a vorbirii pentru limba română;

c) maparea fonemelor din limbile în care au fost realizate înregistrările cu foneme din limba română;

d) adaptarea modelului acustic în limba română la datele acustice furnizate;

e)crearea modelelor de limbă trigrame;

f)realizarea experimentelor pentru optimizarea parametrilor din cadrul algorimului DTWSS;

g)eliminarea termenilor formați din mai puțin de patru caractere, pentru a obține rezultate

h)Rularea scriptului de evaluare furnizat de NIST STD

i)Reprezentarea curbelor DET pentru toate combinațiile configurate ale parametrilor algoritmului de căutare DTWSS.

3)Proiect de recunoaștere a genului

a)Crearea unor fișiere folosite în procesul de antrenare și evaluare a metodelor de detectare a genului.

b)Antrenarea cu ajutorul unei baze de înregistrări a unor modele pentru genul masculin și feminin.

c)Realizarea unor experimente având ca scop comparația diverselor modele de gen și metode de decodare.

d)Crearea unei aplicații cu interfața grafică de tip client-server pentru detectarea genului utilizatorului. e)Dezvoltarea sistemului se bazează pe modelele de gen furnizate de LIUM.

Similar Posts