Documente Academic
Documente Profesional
Documente Cultură
Proiect de diplom
prezentat ca cerin parial pentru obinerea titlului de
Inginer n domeniul Electronic i Telecomunicaii i Tehnologia
Informaiei
programul de studii de licen Electronic Aplicat
2016
Cuprins
i. Lista figurilor
ii. Lista tabelelor
iii. Lista acronimelor
iv. Introducere
2.3. Diagram n care se face reprezentarea unui semnal vocal n frecven i n quefrecven
2.4. Schema bloc de obinere a parametrilor MFCC
3.1. Arhitectura unui sistem de recunoatere vocal
EM - Expectation - Maximizationalgorithm
SS - Substracie Spectral
Recunoaterea vocal de ctre un sistem electronic aduce n prim plan o veche problem
n domeniul tehnic, i anume limita autonomiei sistemelor pe care omul le poate construi.
Interaciunea dintre un om i un astfel de sistem este inevitabil, pornind de la exemplul unui banal
robinet prin care un operator, prin interaciune fizic poate controla debitul unei pompe, soluiile
de recunoatere vocal extind aceast funcionalitate. Astfel, sistemul descris anterior poate fi
extins prin adugarea unui controller care, bazndu-se pe comenzile vocale primite de la un
operator uman s realizeze funcia necesar, nlturnd astfel necesitatea unei interaciuni fizice,
aceasta lsnd loc unei interaciuni acustice, realizabil de la distan.
Funcionalitatea sistemelor de recunoatere vocal nu se oprete la trasmiterea de comenzi
ctre un sistem, aceasta i dovedete utilitatea ntr-o gam larg de aplicaii, cum ar fi convertirea
semnalului acustic n text sau sisteme de securitate bazate pe amprenta vocal a unui utilizator.
Algoritmii de inteligen artificial fac posibil implementarea unor astfel de soluii, iar
dezvoltarea sistemelor embedded extinde portabilitatea aplicaiilor care fac uz de recunoaterea
vocal, oferind o soluie n acelai timp ieftin i fiabil pentru acest gen de aplicaii. Cu toate
acestea, sistemele de tip embedded introduce o constrngere legat de capabilitatea acestora de a
rula astfel de algoritmi, ceea ce impune elaborarea unor optimizri care s fac posibil
funcionarea satisfctoare.
Dificultatea care apare n recunoaterea vocal de ctre main este reprezentat de natura
interdisciplinar a acestui domeniu. n continuare, vor fi enunate pe scurt o parte dintre
disciplinele pe care recunoaterea vocal le nglobeaz[1]:
- teoria semnalelor, furnizeaz modelul de analiz spectral a semnalului vorbit,
achiziionat de sistem i din care va trebui mai apoi extas o serie de parametrii necesari
algoritmului de recunoatere a vorbirii;
- acustica, tiina care expliciteaz relaia dintre semnalul fizic i mecanismele
fiziologice(tractul vocal al omului) care a produs vorbirea i de asemenea aparatul cu
care acesta este perceput de om(mecanismul auditiv al omului);
- recunoaterea de caracteristici(pattern recognition/machine learning), algoritmii care
fac posibil ncadrarea unor date achiziionate n modele ale cror parametrii sunt
recunoscui de main
- teoria informaiei, caracterizeaz procedurile de estimare a parametrilor modelelor
statistice, i de cutare a unui anume cod ntr-un set finit de date, care corespunde ct
mai bine informaiei recunoscute de sistem;
1
- lingvistica, relaionarea ntre sunete, cuvintele unei limbi(sintaxa), nelesul cuvintelor
(semantica), i sensul care deriv din neles.
- fiziologia, nelegerea mecanismelor complexe facnd parte din sistemul nervos central
al omului, mecanisme care au rol n producerea vorbirii de ctre om i de asemenea n
perceperea acesteia. Sistemele avansate de recunoatere automat a vorbirii folosesc
tehnici inspirate din aceast tiin prin integrarea n sistemul de recunoatere a unor
reele neuronale.
- informatica, n spatele logicii care controleaz recunoaterea vorbirii st cercetarea n
domeniul algoritmicii i, de asemenea, avansul tehnologiilor hardware
- psihologia, se impune nelegerea factorilor care ar permite utilizatorilor s integreze
un sistem de acest tip n domeniul lor de activitate.
Lucrarea de fa se adreseaz realizrii unui sistem de recunoatere vocal de dimensiuni
reduse(vocabular limitat, sub 100 de cuvinte), care poate recunoate comenzi ale utilizatorului, n
urma crora s execute o rutin specificat. Se va folosi o platform embedded care limiteaz
optiunile de implementare a sistemului prin constrngeri de tip hardware(putere de calcul).
Se va structura lucrarea n dou pri, baza teoretic a modulului n care se vor prezenta
blocurile care alctuiesc un sistem de recunoatere vocal, cu o scurt descriere a modelelor pe
baza crora acestea funcioneaz i o parte n care se va detalia procesul de implementare a
modelului adecvat aplicaiei curente.
Capitolul 1, Noiuni matematice legate de sistemele de recunoatere vocal va prezenta
pe scurt aspectele matematice ale acestor sisteme, se va prezenta HMM, i algoritmii specifici de
modelare ai acestuia
Capitolul 3 se adreseaz arhitecturii unui sistem de recunoatere vocal, acompaniat de o
scurt descriere a blocurilor componente care vor fi tratate n detaliu n capitolele ulterioare
Capitolul 2 va face o scurt trecere n revist a algoritmilor tipici utilizai n recunoaterea
vorbirii de ctre main, filtrare de zgomot(inverseaza cu arhitectura), extragerea parametrilor
Capitolul 4 va prezent resursele hardware i software utilizate n sistemul de recunoatere
vocal
2
Capitolul 1
Noiuni matematice legate de sistemele de recunoatere vocal
3
1.1.2. Lanuri Markov
Pe de alt parte, dac pornim de la presupunerea existenei unui timp discret caracterizat
de stri discrete ale sistemului(stri caracterizate de variabile aleatoare), avem un lan Markov.
Exemplul cel mai simplu care expliciteaz proprietile unui lan Markov este cel al unei variabile
care poate la fiecare moment de timp o valoarea {-1} cu probabilitatea p, sau valoarea {1} cu
probabilitatea 1 p. Reprezentnd grafic evoluia acestei variabile n timp, se obine figura 1.1.
Figura 1.1. Reprezentarea valorilor unei variabile aleatoare modelat de un lan Markov n
Matlab
Pentru lanurile Markov, procesul stochastic caracteristic sistemului poate fi descries prin secvena
de stri pe care o parcurge sistemul. Pentru lanurile Markov sunt caracterizate probabilitile de
tranziie dintr-o stare n alta, unde pij sunt probabilitile ca sistemul s treac din starea i n starea
j. Dac aceste probabiliti nu depind de numrul de pai efectuai anterior i depind numai de
starea iniial i starea final, atunci lanul se numete omogen.
4
Un lan Markov este util n eventualitate n care se cere calculul probabilitii asociat unui
ir de evenimente care poate fi observat. n cazul recunoaterii vocale avem de a face cu
evenimente acustice, acestea implic o prezen a unor cuvinte transparente fenomenului fizic, al
cror sens reprezint partea ascuns ce st la baza fenomenului acustic. Modelul Markov cu stri
ascunse ne permite s vorbim n acelai timp despre fenomene observate(cum ar datele
achiziionate de microfon) i evenimente ascunse(prile de vorbire) pe care le considerm ca fiind
pri cauzale ale modelului probabilistic.
Pentru a da o definiie formal modelului Markov cu stri ascunse, trebuie s lum n
considerare urmtorii parametri[2]:
Analog unui lan Markov de ordinul I, probabilitatea unei stri anume depinde numai de
starea anterioar, numit i presupunerea Markov:
Pe de alt parte, probabilitatea unei observaii oi depinde doare de starea care a produs observaia
qi i nu de oricare alt stare sau de oricare alt observaie, proprietate numit i independena
rezultatului:
Se pune problema aplicaiilor care folosesc modele Markov cu stri ascunse i cum
acesteea pot utiliza modelul matematic bazat pe acestea. Rabiner(1989)[3] propune analiza
modelelor Markov din trei puncte de vedere, numite de acesta i trei probleme fundamentale,
acestea fiind:
5
Problema 3, sau antrenarea: Fie un ir de observaii, O, i o mulime de stri posibile din
HMM, s se deduc parametrii A i B.
Fiecare dintre aceste 3 abordri ale HMM sunt descrise de cte un algoritm specific, i
anume, n ordine: algoritmul Forward, decodarea Viterbi, i algoritmul Backward-Forward.
Scopul algoritmului Forward este de a calcula probabilitatea p(xt, y1:t), unde x(t) a fost notat
xt, iar mulimea (y(1), y(2), ..., y(t)) s-a notat ca y1:t. Calcularea p(xt, y1:t) n mod direct ar presupune
marginalizarea asupra tuturor mulimilor de stri {x1:t-1}, numrul crora crete exponenial cu
evoluia lui t. Pentru un HMM cu N stri ascunse, i un ir de T observaii, exist NT iruri posibile
de stri ascunse. Dar fiind c pentru sisteme reale, ambii parametrii sunt reprezentai de o valoare
considerabil, probabilitatea p(xt, y1:t) presupune calcularea probabilitii fiecrei stri ascunse a
irului i apoi sumarea acestora. n locul acestui tip de algoritm cu o complexitate puternic
exponenial se alege folosirea algoritmului Forward, a crui complexitate este de ordinul O(N2T).
n pseudocod, algoritmul poate fi reprezentat n felul urmtor:
t(xt) = p(yt |xt, xt-1, y1:t) p(xt | xt-1, y1:t-1) p(xt-1, y1:t)
Dat fiind c yt este independent de orice alt variabil nafar de xt, i xt este independent
de orice alt parametru nafar de xt-1, ecuaia devine:
6
Prin urmare, dat fiind c p(yt | xt) i p(xt | xt-1) sunt cunoscute prin parametrii specifici
modelului, i anume probabilitatea de emisie i de probabilitile de emisie, t(xt) se poate calcula
cu uurin, evitndu-se astfel dificultile aprute din cauza complexitii exponeniale de calcul.
Pentru orice model care conine variabile ascunse, cum ar fi HMM, sarcina deteminrii
irului care st la baza irului de variabile observabile se numete decodare. Algoritmul Viterbi
reprezint un exemplu de programare dinamic, al crei scop este gsirea irului optim de stri
ascunse, numit i calea Viterbi, care rezult din secvena unor evenimente observate, n mod
special n contextul HMM. Reprezentnd problema n mod formal, se obine urmtorul enun:
unde arg max se consider pe tot irul y1, , yn+1 astfel nct yn+1 = STOP, reprezentnd
momentul final de timp. Pentru rezolvarea acestei probleme, abordarea de tipul brute force se
dovedete ineficient.
Astfel, se impune utilizarea algoritmului Viterbi. Acest algoritm seamn foarte mult cu
algoritmul Forward, n schimb folosete maximul cilor descoperite n timp ce algoritmul Forward
utilizeaz suma acestora pentru a-i calcula rezultatul. n schimb se folosesc backpointers
deoarece, n timp ce Forward trebuie s gasesc o probabilitate, Viterbi calculeaz o probabilitate
i o cale probabil. irul optim de stri se calculeaz innd cont de calea strilor ascunse care au
condus ctre fiecare stare n parte. n cele din urm, se obine calea dorit prin procedeul de
backtracing.
Algoritmul poate fi exprimat sub urmtoarea form, n pseudocod:
7
Prin urmare, la un moment de timp t, dar fiind c s-a calculat probabilitatea de a fi n fiecare
stare la momentul t-1, probabilitatea Viterbi se calculeaz lund cea mai probabila extensie a
strilor care conduc ctre celula curent. Pentru o stare dat, qj la momentul t, valoarea lui vt(j)
se calculeaz ca fiind:
Cei trei factori prin intermediul crora se calculeaz probabilitatea Viterbi la un moment t, sunt:
(,)
aij = (,)
Acest calcul este posibil pentru un lan Markov deoarece deinem informaii complete
asupra tuturor parametrilor sistemului. n cazul HMM, informaia pe care o cunoatem nu mai este
complet, prin urmare nu putem ti calea pe care a sistemul a urmat-o ca urmare a datelor de
intrare. Algoritmul Baum-Welch abordeaz aceast problem folosindu-se de dou euristici. n
primul rnd, numrul de tranziii este estimat n mod iterativ, se va porni de la o estimare iniial
a probabilitilor de tranziie i de emisie. In al doilea rnd, estimarea probabilitilor se obine
8
prin calcularea probabilitii Forward(procedeu descris anterior) pentru o anumit observaie iar
apoi prin medierea acestei probabiliti pe toate cile care au contribuit calculului probabilitii
Forward cu pricina.
1. Iniializarea
T(i) = aiF, 1 i N
2. Recursivitatea
3. Finalizarea
aij =
Pentru a calcula aceast termen, trebuie definit o probabilitate ca sistemul s se afle n starea i la
momentul de timp t i n starea j la momentul de timp t+1, dat fiind secvena de observaii, i
evident, modelul.
() (+1 )+1 ()
t(i, j) = ( )
( ) =
=1..= ()
bj ( ) =
=1 ()
Unde notaia =1..= reprezint sum dup toate momentele de timp t pentru care
simbolul observat a fost vk.
Dai fiind aceti termeni, se pot reestima probabilitile de tranziie A i probabilitile de
emisie B dintr-un ir de observaii O, dat fiind o aproximare anterioar a lui A i B. Aceste
reestimri stau la baza algoritmului Forward-Backward.
Amintit fiind mai devreme algoritmul EM, algoritmul Baum-Welch pornete de la o
aproximare iniial a parametrilor HMM = (A, B), iar folosind paii de tip expectation(E-step) i
maximization(M-step) se calculeaz i , respectiv n pasul M se folosesc cei doi parametrii
calculai anterior pentru a recalcula probabilitile A i B. Desigur, algoritmul poate fi reprezentat
n pseudocod astfel:
() (+1 )+1 ()
t(i, j) = ( )
maximization
1
=1 (, )
= 1
=1 =1 (, )
1
=1.. = ()
( ) =
1
=1 ()
returneaz A, B
10
Capitolul 2
Algoritmi utilizai n recunoaterea vocal de ctre un sistem
electronic
11
In aplicaiile precum recunoterea vocal, singurul semnal disponibil este cel
zgomotos(spre deosebire de aplicaii unde pe lng semnalul care trebuie prelucrat mai este
disponibil i un canal pe care se recepioneaz exclusiv zgomotul ambiental, caz n care se
simplific mult sarcina de filtrare, fiind posibil compararea direct a semnalelor).
n cele din urm, ecuaia care caracterizeaz SS se poate exprima n felul urmtor:
12
|()| = |()| |()|
unde |()| reprezint estimarea care se face asupra semnalului initial, iar |()| se refer la
media spectral a zgomotului.
Ultimul termen al ecuaiei se obine din eantioanele n care semnalul sonor este absent i numai
semnalul zgomotos este preluat de sistem.
1
1
|()| = | ()|
=0
unde |Ni(f)| reprezint spectrul cadrului i, presupunnd c exist un numr de N cadre ntr-un
interval de timp dup care se face eantionarea zgomotului. Iar pentru reconstruirea semnalului n
domeniul timp, se aplic o transformat Fourier discret semnalului |()| innd cont de faza
semnalului zgomotos [Y(k)]. Acceptnd prezumia c zgomotul perceput de ureche se datoreaz
n principal distorsiunilor aprute n spectrul de amplitudini, i c efectele distorsiunii spectrului
de faze nu influeneaz radical procesul de percepie, se poate scrie ecuaie semnalului rezultat n
domeniul timp:
1
2
= |()| ()
=0
Datorit variaiilor n spectrul zgomotului, SS poate da rezultate negative pentru spectrul
de puteri sau cel de amplitudini, probabilitatea acestui eveniment este cu att mai mare cu ct
raportul semnal-zgomot scade. Astfel, se impune o post-procesare asupra rezultatelor folosind o
funcie de tipul(unde fn[Y(f)] este o funcie care n cea mai simpl form a sa, poate reprezenta
chiar pragul de zgomot)
|()|, |()| > |()|
[|()|] = {
[|()|],
13
2.1.2 Implementarea Substraciei spectrale
Pentru a putea implementa funcionalitatea acestui algoritm n sistemul nostru, avem nevoie de
urmtoarele elemente
14
dat fiind carecteristica nestaionar a semnalelor audio, lungimea ferestrei nu trebuie s fie pre
mare, astfel nct informaia despre evenimentele de scurt durat s nu fie pierdut n proces.
Scopul principal al unei ferestre, este acela de a minimiza discontinuitile aprute la finalul
fiecrui set de date(n contextul acestei metode, soluia uzual este fereastra Hanning). Acest
rezultat se obine prin suprapunerea ferestrelor. Algoritmul de post-procesare se folosete de
aceast informaie pentru a reduce distorsiunile introduse de SS.
Fiind una dintre cele mai populare metode de extragere a parametrilor, MFCC-ul se
bazeaz pe analiza n domeniul frecven folosind scara Mel, bazat pe scara de sensibilitate a
urechii umane. MFCC-ul denumete reprezentarea cepstrului semnalului ferestruit i extras
folosind Transformarea Fourier Discret. Diferena fa de cepstrul real fiind folosirea unei scri
neliniare n frecven pentru aproximarea comportamentului receptorilor acustici umani.
Scara mel reprezint o scar care mparte tonurile dup modul n care un asculttor poate
distinge distana ntre ele, considernd pai egali ntre cele dou tonuri, pornind de la presupunerea
c n intervalul 0 1000 Hz, scara mel corespunde reprezentrii n Hz.[8]
15
Figura 2.3 : relatia intre scara Hz si scara mel
Relaia care leag cele dou scri poate fi aproximat prin urmtoarea ecuaie:
1000
= [1+ ]
log(2) 1000
Cepstrul(nume provenit din inversarea primei silabe a cuvntului spectru) unui semnal este
definit ca fiind spectrul de puteri al logaritmului spectrului de puteri[9], printre aplicaiile sale
originale numarndu-se i detecia ecoului n semnalele seismice, unde s-a dovedit i superioritatea
acestuia fa de funcia de autocorelaie[10].
16
Figura 2.4[11] Diagram n care se face reprezentarea unui semnal vocal generic n frecven i
n quefrecven
Tehnica MFCC se folosete de aceste dou concepte pentru a extrage parametrii din vorbire
ntr-un mod similar cu cel folosit de corpul uman pentru a auzi vorbirea. n primul rnd, semnalul
vorbit trebuie mprit n cadre avnd un numr suficient de eantioane. Cele mai multe sisteme
folosesc cadre suprapuse pentru a atenua tranziia de la un cadru la altul, apoi acestor cadre li se
aplic o fereastr Hamming pentru a elimina discontinuitile care exist la marginile cadrelor.
2
() = 0.54 0.46 cos ( ),0 1
1
N fiind numrul de eantioane i n eantionul curent. Dup ce se aplic ferestruirea, se poate calcula
transformata Fourier discret a semnalului(se prefer FFT-ul din considerente de complexitate de
calcul), dup care se aplic un filtru care trece spectrul in scar mel.
17
Preluare cadre i Transformare in scar mel
Semnal audio FFT
ferestruire
2.2.2. RASTA-PLP
Modelul PLP dezvoltat de Hynek Hermansky abordeaz conceptul de psichofizic(relaia
dintre stimulii fizici i senzaiile/percepiile pe care acetia le induc) n auz, acesta avnd
performane mai bune fiindc exclude informaia irelevant din vorbire[12]. Spectrul pe termen
scurt al vorbirii analizat prin prisma criteriilor psichofizice este cu toate acestea vulnerabil la
rspunsul n frecven al canalului de comunicaie[13]. Prn urmare a fost dezvoltat metodologia
RelAtive SpecTrAl (RASTA) care transform sistemul PLP n unul mai robust n ceea ce privete
distorsiunile liniare n spectru.
Metodologia RASTA nlocuiete spectrul absolut cu o estimare spectral n care fiecare
band de frecven este trecut printr-un filtru trece band. Dat fiind c orice component static
sau lent variabil n timp este suprimat de aceast operaiune, noua estimare asupra spectrului
este mai puin susceptibil la variaii lente ale spectrului pe termen scurt. n momentul in care
mediul n care se lucreaz cu spectrul logaritmat, componentele spectrale suprimate reflec efectul
factorilor convolutivi n semnalul de intrare, acetia fiind introdui de rspusul n frecven al
mediului de comunicaie.
Paii prin care trece RASTA-PLP sunt urmtorii:
1) Calculeaz spectrul de band critic i preia logaritmul acestuia
2) Estimeaz derivata temporal a spectrului de band critic folosind regresia
liniar prin 5 valori consecutive
3) Prelucrarea neliniar poate fi executat n acest domeniu
4) Reintegreaz derivata log band-critic folosind un system IIR de ordinal 1.
Poziia polului acestui system poate fi ajustat astfel nct s genereze
dimensiunea efectiv a ferestrei.
5) Conform metodei PLP convenionale, adaug procedura equal loudness
curve i nmulete cu 0.33 pentru a simula legea auzului
18
6) Aplic funcia exponenial log spectrului, obinnd un prim spectru auditiv
7) Calculeaz modelul acestui spectru folosind tehnica convenional a PLP
n cazul prezentat, procesul de integrare-derivare este echivalent unei filtrri trece band pentru
fiecare canal de frecven printr-un filtru IIR cu funcia de transfer
2 + 1 3 + 2 4
() = 0.1
4 (1 0.98 1 )
Distorsiunile liniare ca cele induse de folosirea unui alt microfon apar ca o constant n log spectru.
Partea trece sus a filtrului trece band are ca scop atenuarea efectului zgomotului de convoluie
introdus de canal. n timp ce partea trece jos are scopul de a atenua schimbrile rapide n spectru
datorate artefactelor de analiz.
19
Capitolul 3.
Arhitectura unui sistem de recunoatere vocal
20
= (|)
Ecuaia anterioar determin faptul c, dat fiind o secven W i un set de intrri O, trebuie
determinat probabilitatea de apariie a evenimentului W condiionat de O. Se poate aplica prin
urmare teorema lui Bayes pentru a ne conduce la urmtoarea relaie:
(|)()
(|) =
()
Ceea ce se regsete n membrul stng este mai la ndemn dect calculul lui P(W|O), n
timp ce P(W) este definit ca probabilitatea a priori a secvenei. Aceasta este calculat folosindu-ne
de informaiile anterioare pe care le avem despre apariia lui W. Dat fiind c P(O) este acelai
pentru fiecare W, ecuaia se poate rescrie sub forma:
= (|)()
Probabilitatea P(O|W), care nseamn probabilitatea evenimentului acustic O, condiionat
de secvena W, este de obicei determinat folosind un model Markov cu stri ascunse.
n mod tipic, sistemul de recunoatere vocal este dezvoltat din componente majore cum ar fi front
end-ul acustic, lexicon, model de limb i decodor.[Chandra]
Astfel, n mod curent, structura vorbirii este neleas n felul urmtor: vorbirea reprezint
un flux audio continuu n care se suprapun stri staionare i dinamice. n aceast succesiune de
stri, se pot defini structuri de baz ale vorbirii denumite i foneme. Cuvintele limbii sunt
construite pe baza acestor foneme, dei n acest caz trebuie luat n considerare un aspect ulterior,
contextul apariiei acestor uniti fonetice n vorbire.[cmu-sphinx wiki]
Proprietile formei de und care corespunde fiecrei foneme n parte sunt puternic
dependente i pot varia n sens foarte larg n funcie de un numr de factori, printre care amintim:
contextul apariiei fonemei, aceasta poate fi pronunat diferit n funcie de fonemele care
o preced sau succed;
vorbitor, originea geografic sau nativitatea vorbitorului afecteaz felul n care aceste
foneme sunt generate de vorbitor;
stilul vorbirii, de asemenea, o discuie n context colocvial difer n multe aspecte de o
exprimare oficial sau academic, putnd chiar s se distaneze puternic de limba literar
att n ceea ce privete normele impuse n limbaj ct i viteza i introducerea unor structuri
lexicale destinate comunicrii ntr-un grup restrns de vorbitori;
Aceste deplasri de la forma canonic a limbii fac modelarea unui sistem acustic
considernd ca unitate fundament fonema o sarcin dificil, astfel apare conceptul de difone, pri
ale fonemei care se afl ntre dou foneme consecutive, de asemenea se poate discuta de alte uniti
subfonetice substri ale fonemei.
O variant intuitiv a acestei abordri este mprirea fonemei n trei pri. O parte care
depinde de fonema anterioar a cuvntului, o parte mijlocie, stabile care se apropie cel mai mult
21
de caracteristica fonemei n sine, i o parte final care depinde de fonema viitoare. Din acest motiv,
se prefer folosirea acestui model n recunoaterea automat a vorbirii.
De asemenea, sunt cazuri n care fonemele sunt tratate n contextul cuvntului din care fac
parte, aprnd astfel noiunea de trifonem. Spre deosebire de difone, aceste uniti sublexicale
sunt tratate ca i cum ar fi foneme, diferena n nume este dat de faptul c cele dou denot sunete
oarecum diferite.
Fonemele construiesc unitile care compun cuvntul, i anume silabele. Aceste forme sunt
de interes pentru sistemele de recunoatere automat a vorbirii deoarece silabele sunt mai de grab
dependente de intonaie, astfel, n diferite maniere de vorbire, structura fonemelor poate varia, dar
pronunia silabelor rmne adesea constant. Silabele formeaz n cele din urm cuvinte care sunt
de asemenea de interes pentru sistemele de recunoatere deoarece reduc combinaiile posibile de
foneme care se regsesc n limb(aspect care conteaz semnificativ pentru sistemele de
recunoatere a vorbirii continue, dat fiind multitudinea de forme pe care un cuvnt le poate lua n
funcie de conjugate, acord i context).
Desigur, pe lng formele intenionate ale cuvintelor care pot fi rostite, n semnalul acustic pot
aprea uteraii cum ar fi linite, tuse, respiraie, aceastea neavnd un sens semantic, dar trebuiesc
tratate n acelai mod n care sunt tratate cuvintele limbii.
Front-endul acustic se ocup cu achiziia semnalului i extragerea vectorilor de parametri
prin care este surprins informaia util asupra semnalului sonor. Extragerea parametrilor
nsemnnd procesul prin care informaia n format audio este transformat prin metode
specifice(MFCC; RASTA-PLP) n vectori acustici de dimensiune fix. Parametrii unui
cuvnt/fonem sunt estimai din vectorii acustici ai datelor provenite de la antrenare.
Algoritmul de cutare sau decodorul verific toate irurile de cuvinte admise pentru a
0descoperi secvena de cuvinte pe care observaiile provenite de la semnalul audio le poate
genera. Probabilitatea P(O|W) este determinat de modelul acustic, pe cnd P(W) este generat de
modelul de limb.
Funcionalitatea unui sistem de recunoatere vocal poate fi descris prin extragerea unui
set de parametrii din semnalul vorbit pentru fiecare cuvnt sau subunitate lexical. Aceti
parametri descriu aceast unitate lexical prin variaia lor n timp i mpreun construiesc un
ablon care o caracterizeaz. Dup generarea acestor vectori de parametri, intervine etapa de
antrenare n care un operator va citi toate cuvintele din vocabularul aplicaiei. Nu n ultimul rnd,
modelele de cuvinte sunt stocate i n etapa de evaluare i utilizare, modelul cuvntului de
verificat este comparat cu modelul antrenat iar cea mai apropiat pereche este cea pe care
sistemul o va considera valid.
22
ntr-un mod compact, acest proces se desfoar de obicei n 3 etape. Prima etap se numete
analiza vorbirii i prin intermediul unei analize cepstrale a semnalului genereaz parametrii
primitivi coninnd anvelopa spectrului de puteri a unor intervale scurte de vorbire(de perioade
ntre 5-50 ms). A doua etap calculeaz un vector extins de parametri care conine informaia
necesar referitoare la semnalul acustic. n cele din urm, ultima etap prelucreaz vectorul
provenit din etapa a doua astfel nct s fie ct mai compact i uor interpretat de ctre sistemul
de recunoatere.
Este de dorit obinerea unei mulimi de parametri care s conin maximul informaiei utile
care se poate extrage din caracteristicile msurabile ale semnalului. Dei n literatur nu se
definete un standard care s se potriveasc oricrei aplicaii, alegerea parametrilor trebuie s
in cont de un set de criterii:
Sistemul trebuie s fie capabil de a face diferena ntre sunetele asemntoare din vorbire,
astfel nct acestea s nu se confunde;
Este de droit ca modelul acustic s poat fi creat pe baza acestor sunete fr a fi nevoie de
o baz de date de antrenare excesiv de mare;
Statisticile pe care ei le genereaz trebuie s fie ct mai invariante posibil n ceea ce
privete natura vorbitorului i mediul n care se desfoar vorbirea;
Desigur, fiind vorba de un eveniment probabilistic cu ar fi vorbirea(sistemul poate avea cel
mult o capacitate de a intui ceea ce vorbitorul va spune n continuare dat modelul de limb),
sistemele de recunoatere automat a vorbirii trebuie s dein mecanisme de reducere a
informaiei aflat n fiecare segment al nregistrrii audio ntr-un numr relativ sczut de
parametric. Aceti parametrii ar trebui s descrie fiecare segment n aa fel nct, fr a-i pierde
caracterul distinctiv, segmental cu pricina s poat fi grupat cu altele asemntoare(diferenierea
n funcie de context).
Dei exist o multitudine de metode posibile de extragere a parametrilor din semnalul acustic,
una dintre cele mai folosite este cea care se bazeaz pe coeficienii mel cepstrali(MFCC). Dup
cum a fost prezentat i ntr-un capitol anterior, tehnica MFCC const ntr-un numr de etape prin
care semnalul este prelucrat i transformat n informaie util pentru sistemul de recunoatere. O
scurt descriere a acestor pai este dup cum urmeaz:
24
ascunse pentru a construi modelul acustic(de asemenea se pot folosi i reele neurale). n modelul
acustic se regsesc reprezentrile statistice pentru fiecare dintre sunetele care compun limba.
Fiecrei reprezentri de tipul acesta i este asociat un model acustic al unei foneme prin preluarea
unei baze de date de vorbire numit i corpus de text care este antrenat prin algoritmi speciali.
Dac vorbim de modele independente de context, fiecare fonem are asociat un HMM. n schimb
modelele dependente de context sunt formate din HMM-uri cu 3 stri. Decodorul ascult semnalul
acustic achiziionat i caut HMM-ul corespunztor n modelul acustic.
n concluzie, fiecare cuvnt din nregistrarea audio este descompus ntr-o secven de
sunete care reprezint uniti fonetice fundamentale. Modelul acustic descrie probabilitatea unei
observaii a sistemului.
3.2.1. Fonologia limbii romne
Pentru a putea realiza un model acustic eficient, trebuie s avem n vedere aspectele
fonetice specifice limbii romne. Scopul fiind acela de a extrage parametrii specifici vorbirii,
caracteristicile limbii sunt un pas important n nelegerea acestui demers.
3.2.1.1. Fonemele limbii romne
Analiznd valoarea funcional a diferitor aspecte fonetice, se ajunge la concluzia c limba
romn standard folosete urmtoarele uniti segmentale:
apte vocale;
patru semivocale, care n unele analize sunt echivalate cu vocalele
corespunztoare;
o vocal asilabic i devocalizat o vocal asilabic i devocalizat //, care
uneori este echivalat cu vocala /i/;
douzeci de consoane;
i dou uniti suprasegmentale:
accent;
intonaie;
n limba romn, distincia ntre consoane i vocale, este c cele din urm sunt sunete care
pot alctui singure o silab i pot purta accentul, pe cnd consoanele nu au aceast calitate.
Putem distinge prin urmare urmtoarele tipuri de vocale:
Vocale propriu-zise:
Sunet Exemplu Notaie fonetic
[a] amar a
[e] elev e
[i] iris i
25
[o] ocol o
[u] uluc u
[] fr
[] vr
[] bleu
[y] Bruxelles
26
[l] lung L
[r] arid R
n ceea ce privete accentul de intensitate, acesta este considerat n limba romn ca fiind
fonemic, adic poate determina diferene de sens. Se poate observa acest efect n cuvinte precum:
mbil - mobl - mobil,. acle cele, vsel vesl, copi cpii, umbl - mbl, desfc sta
- ds fac asta. Foneticizarea accentului de intensitate este o characteristic rspndit n limbile
lumii. n limba romn, doar o singur silab poate fi accentuat, celelalte silabe putnd primmi
unul sau mai multe accente mai slabe, mai ales n cuvintele cu mai multe silabe.[
3.4. Decodorul
Scopul decodorului este de a descoperi cel mai probabil ir de cuvinte W dat de irul de
observaii O, i de modelele fonetice i acustice. Problema decodrii se rezolv prin utilizarea
algoritmilor de programare dinamic, de exemplu algoritmul Viterbi. Acesta din urm nu
evalueaz probabilitatea fiecrei posibiliti oferie de model, fiind mai de grab atent la gsirea
cii optime care ofer cea mai bun aproximare a lui O. Pe scurt, algoritmul Viterbi presupune
ccea mai bun cale la momentul t este dat de cea mai bun cale identificat la momentul t-1.
Lucru care nu este neaprat valabil n toate cazurile, dat fiind c o cale care pare nu foarte probabil
la nceput poate deveni mult mai probabil n cazul n care lum n considerare contextul, caz tratat
de o extensie a algoritmului Viterbi i de algoritmul Forward-Backward.
27
3.5. Abordri ale recunoaterii vocale n contextul unui sistem electronic
Dei recunoaterea vocal reprezint un cmp vast de cercetare, se pot distinge trei abordri
principale ale subiectului, fiecare cu particularitile lui i cu compromisuri specifice. Acestea trei
sunt abordarea acustic-fonetic, abordarea prin recunoatere de caracteristici i abordarea prin
inteligen artificial.
28
urilor n schimb datorit proprietile de generalizare specific modelelor probabilistice i
de asemenea, din considerente de ocupare a resurselor de calcul.
29
fiind n acelai timp independent de aceti factori[15]. n ceea ce privete sistemele avansate,
trebuie luat n considerare aspectul automatizrii generrii lexiconului i construirea unor algoritmi
avansai se segmentarea a vorbirii i algoritmi de rejecie a uteraiilor, astfel nct aceste sisteme
s poat atinge sau chiar surclasa performanele umane n sarcini de recunoatere vocal.
Performana unui sistem de recunoatere este prin urmare msurat folosindu-ne de termeni
precum Word Error Rate i Word Recognition Rate(WRR). Erorile de cuvnt sunt categorizate
dup numrul de inserii, substituii i tergeri pe care sistemul le efectueaz n timpul decodrii.
Cele din urm pot fi definite n urmtorul mod:
+ +
(%) = 100
() = 1 =
30
3.7. Criterii de performan pentru sisteme de recunoatere automat a
vorbirii
Acestea fiind spuse, putem afirma c n construirea unui sistem de recunoatere vocal trebuie s
lum n considerare nu numai aspectele tehnice ale implementrii, dar i caracteristica funcional
a acestuia.
31
Capitolul 4
Implementare practic
Astfel, sistemul construit este capabil de a recunoate o secven oarecare de cifre legate.
Necesitatea unui astfel de sistem este dat de utilitatea pe care o pot avea interfeele wireless n
ajutorarea persoanelor bolnave de afeciuni ale vederii sau care au probleme locomotorii. De
asemenea, sistemul poate fi folosit pentru recunoaterea CNP-ului unei anumite persoane sau, prin
intermediul unor codri de tip Huffman, se poate construi un sistem de recunoatere a
comenzilor(care necesit n aceast implementare nu necesit un model complex de limb sau
acustic).
32
Specificaii tehnice Raspberry Pi 3
Procesor Broadcom BCM2837 64bit Quad Core
Processor 1.2GHz
Memorie RAM 1 GB
Conectivitate wifi BCM43438 WiFi
Conectivitate bluetooth Bluetooth Low Energy (BLE)
Conectivitate USB 4 porturi USB 2
Audio iesire Iesire Stereo
Conectivitate cu camera Port HDMI pentru camera
Conectivitate ecran tactil DSI display port
MicroSD Port pentru conectare MicroSD cu sistem de
operare
Sursa de alimentare MicroUSB cu suport de pana la 2.4 A
Procesul prin care a fost construit sistemul de recunoatere a vorbirii urmeaz procesul
tipic utilizat n realizarea oricrui sistem de recunoatere a vorbirii automate. Astfel
33
- din aceste fiiere de antrenare s-au extras parametrii MFCC(39, 13
parametrii diferii i derivatele de ordinul I i II);
- pe baza acestor parametrii, s-a antrenat modelul de acustic pentru
sistemul de recunoatere;
Toolkitul, avnd la ndemn parametrii MFCC, dup antrenare va crea un numr de fiiere
care conin definiiile modelului acustic, acestea se numesc:
mdef corespondeneler
means mediile gaussiene
mixture_weights mixturile de gausiene
noiseedict dicionarul care conine filler-ele
transition_matrices matricile de tranziie ale HMM-ului
variances variaiile gaussienelor
feat.params parametrii extrai
Dintre toate acestea, mdef i feat.params reprezint fiiere de tip plain text, celelalte fiind
n format binar. Acestea conin un header care expliciteaz numrul de fluxuri i dimensiunea
datelor, fiind urmate de datele n format raw.
Pe de alt parte, fiierul mdf conine corespondenele dintre trifonemele dependente de
context i id-urile senonelor de stare.
- zero
- unu
- doi
- trei
- patru
- cinci
- ase
34
- apte
- opt
- nou
Prin urmare, dicionarul fonetic are urmtoarea form:
zero z_zero e_zero r_zero o_zero
unu u_unu1 n_unu u_unu2
doi d_doi o_doi i3_doi
trei t_trei r_trei e_trei i3_trei
patru p_patru a_patru t_patru r_patru u_patru
cinci k1_cinci1 i_cinci n_cinci k1_cinci2 i1_cinci
ase s1_ase a_ase s_ase e_ase
apte s1_apte a_apte p_apte t_apte e_apte
opt o_opt p_opt t_opt
nou n_nou o1_nou w_nou a1_nou
35
Astfel, pentru construirea modelului de limb, s-a ales folosirea unei gramatici cu stri
finite cu ajutorul formatului Java Speech Grammar(JSGF).
FSG_BEGIN <rodigits.numbers>
NUM_STATES 17
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 12 0.100000 patru
TRANSITION 5 13 0.100000 trei
TRANSITION 5 14 0.100000 doi
TRANSITION 5 15 0.100000 unu
TRANSITION 5 16 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 6 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
FSG_END
n cazul de fa, gramatica cu stri finite este mult mai potrivit pentru sarcina curent,
descrierea expus mai sus genereaz un graf orientat, iar fiecare coard reprezint costul
probabilistic al posibilitii de a fi precedat de un altul. Dei n urma procesului automat de
generare a gramaticii, au aprut un numr de 16 noduri de tranziie, exist efectiv n limb doar 10
care pot reprezint cuvinte, excluznd de asemenea nodurile care reprezint starea niial i final
a automatului.
36
4.2.4 Portarea CMU Sphinx pe Raspberry Pi3
Portarea suitei CMU Sphinx pe Raspberry PI 3 a fost facut sub denumirea de pocketsphinx,
numele pocket buzunar sugerand transformarea suitei intr-una de buzunar compatibilitate pe
sisteme integrate. Instalarea completa pe Raspberry Pi 3 contine 3 etape si anume: instalarea
sistemului de operare, configurarea Arhitecturii Avansate de Sunet de Linux (Advanced Linux
Sound Architecture) si instalarea pocketsphinx.
Sistemul de operare ce ruleaza pe Raspberry Pi 3 se numeste Raspbian fiind o distributie
de Linux Debian portata special pentru Raspberry Pi. Aceasta poate fi descarcata de pe site-ul
oficial (https://www.raspberrypi.org/) si instalata cu ajutorul programului NOOBS. NOOBS este
un utilitar ce boot-eaza la deschiderea sistemului integrat si pune la dispozitie mai multe sisteme
de operare special concepute pentru Raspberry Pi. Instalarea se face cu doar cateva click-uri
necesare pentru a selecta distributia de sistem de operare dorita a se instala. Intreg procesul dureaza
in jur de 30 de minute, dupa care sistemului integrat este utilizabil.
Pasul 2 presupune instalarea si configurarea arhitecturii de sunet pentru a putea capta
informatia de la microfonul atasat de noi. In primul rand, trebuie sa ne asiguram ca sistemul nostru
este actualizat la ultima versiune si de asemenea toate programele instalate sunt updatate. Acest
lucru il realizam cu urmatoarele comenzi:
sudo apt-get update
sudo apt-get upgrade
Intregul proces poate dura pana la aproximativ 20 de minute. Dupa ce ne-am asigurat ca
suntem la zi cu software-ul instalat pe Raspberry PI va trebui sa vedem daca microfonul nostru
este detectate de sistem si sa aflam cateva informatii despre el. Acest lucru il vom face cu
urmatoarea comanda:
cat /proc/asound/cards
37
In figura de mai sus observam cum microfonul nostru este detectat si ii este atribuit id-ul 1, dupa
modului ALSA integrat. Acest ID il vom folosi mai tarziu cand vom apela pocketsphinx-ul. Mai
mult, trebuie sa cream un fisier cu calea ~/.asoundrc si vom adauga urmatoarele linii pentru a seta
in mod implicit detectia microfonului.
./configure --enable-fixed
make
./configure
38
make
export LD_LIBRARY_PATH=/usr/local/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
In acest moment, avem instalate toate resursele necesare pentru a rula pocketsphinx-ul.
Vom verifica functionalitatea acestuia cu urmatoarea comanda:
Pocketsphinx_continuous inmic yes adcdev plughw:1
In plus fata de ceea ce am amintit mai sus, am adaugat si parametrul logfn /dev/null care
va exclude din log-ul afisat orice altceva in afara de cifrele detectate. De asemenea, log-ul de iesire
va fi redirectat catre fisierul file.txt, fisier ce va fi folosit ca intrare pentru programul principal
realizat in python de detectie si afisare a unui numar de telefon mobil din Romnia.
39
nct s putem folosi displayul LCD cu placa Raspberry Pi. Acest lucru se realizeaz prin comanda
Python:
import RPi.GPIO
line=f.readline()
line=line.rstrip('\n')
split_line=line.split(' ')
De asemenea, trebuie tratat cazul n care numrul de telefon nu corespunde specificaiilor, i anume
atunci cnd dimensiunea acestuia este diferit de 10. n acest caz, pe display-ul LCD-ului va fi
afiat textul Numr de telefon // Invalid
40
Bibliografie
[1] Rabiner, L., Juang B., Fundamentals of speech recognition, Prentice-Hall International, 1993
[2] https://web.stanford.edu/~jurafsky/slp3/8.pdf
[3] Rabiner, L, A tutorial on hidden Markov models and selected applications in speech
recognition
(1989)
[4] Khe Chai SIM, APPROXIMATED PARALLEL MODEL COMBINATION FOR
EFFICIENT NOISE-ROBUST, SPEECH RECOGNITION
[5] NOISY SPEECH RECOGNITION USING NOISE REDUCTION METHOD BASED ON
KALMAN FILTER M. Fujimoto and Y. Ariki
[6] Advanced Digital Signal Processing and Noise Reduction, Second Edition.Saeed V. Vasegh
Copyright 2000 John Wiley & Sons Ltd, capitolul XI
[7]http://kom.aau.dk/group/04gr742/pdf/MFCC_worksheet.pdf
[8]https://surveillance7.sciencesconf.org/conference/surveillance7/01_a_history_of_cepstrum_an
alysis_and_its_application_to_mechanical_problems.pdf
[9] Feature Extraction Methods LPC, PLP and MFCC In Speech Recognition Namrata Dave1
[10]B.P. Bogert, M.J.R. Healy, and J.W. Tukey, The Quefrency Alanysis ofTime series for
Echoes: Cepstrum, Pseudo-Autocovariance, Cross-Cepstrum, and Saphe Cracking,in Proc.of the
Symp. on Time Series Analysis, by M. Rosenblatt (Ed.),. Wiley, NY, (1963),pp. 209-243
[11] http://www.xavieranguera.com/tdp_2011/8-Cepstral-Analysis.pdf
[12] Rasta-PLP speech analysis, Hynek Hermansky, Nelson Morgan, Aruna Bayya, Phil Kohn,
Decembrie 1991
[13] H. Hermansky, Perceptual linear predictive (PLP) analysis of speech, Acoustical Society
of America Journal, vol. 87, pp.17381752, Apr. 1990.
[14]http://www.fceia.unr.edu.ar/prodivoz/Oppenheim_Schafer_2004.pdf
41
[18] S.L. Dr. Ing. H. Cucu http://speed.pub.ro/speed3/wp-content/uploads/2014/02/Indrumar-de-
proiect-PCDTV-v11.pdf
42