Sunteți pe pagina 1din 48

Universitatea Politehnica din Bucureti

Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Recunoatere vocal minimal pe sisteme embedded folosind


inteligena artificial

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

Conductor tiinific Absolvent


S.L. Dr. Ing. Horia CUCU Valentin PORUMBEL

2016
Cuprins
i. Lista figurilor
ii. Lista tabelelor
iii. Lista acronimelor
iv. Introducere

Capitolul 1, Noiuni matematice utilizare n recunoaterea vocal


1.1.Modelul Markov
1.1.1. Procese Markov
1.1.2. Lanuri Markov
1.2.Modelul Markov cu stri ascunse(HMM)
1.2.1. Algoritmul Forward
1.2.2. Decodarea Viterbi
1.2.3. Algoritmul Backward-Forward
Capitolul 2, Algoritmi utilizai n recunoaterea vocal de ctre un sistem electronic
2.1. Filtrarea Zgomotului
2.1.1. Substracia spectral
2.2. Tehnici de extragere a parametrilor
2.2.1. MFCC
2.2.2. RASTA-PLP
Capitolul 3, Arhitectura unui sistem de recunoatere vocal
3.1. Front-endul acustic
3.2. Modelul acustic
3.2.1. Fonologia limbii romne
3.3. Modelul de limb
3.4. Decodorul
3.5. Abordri ale recunoaterii vocale n contextul unui sistem electronic
3.6. Caracteristici ale sistemelor de recunoatere vocal
3.7. Evaluarea performanei sistemelor de recunoatere vocala
Capitolul 4, Implementare practic
4.1 Resurse hardware
4.1.1. Placa Raspberry Pi
4.2 Resurse software
4.2.1. Toolkit-ul CMU Sphinx
4.2.2. Construcia dicionarului fonetic
4.2.3. Creearea gramaticii cu stri finite
4.3. Aplicaia de detecie
Lista figurilor
1.1. Reprezentarea valorilor unei variabile aleatoare modelat de un lan Markov n Matlab

2.1. Semnal cu zgomot vs Semnal fr zgomot

2.1. Schema bloc a implementrii algoritmului de substracie spectral

2.2. Relaia ntre scara Hz i scara Mel

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

4.1. Placa Raspberry Pi

4.2 Dispozitive Intrare/Iesire conectate la placa Raspberry PI 3

4.3. Continutul fisierului ~/.asoundrc

4.4. Fisier de log pentru pocketsphinx_continuous

4.5. Comanda pocketsphinx_continuous pentru detectie de cifre in limba romana


Lista tabelelor
Tabelul 3.1 vocalele limbii romane
Tabelul 3.2 consoanele limbii romane
Tabelul 4.1. Specificatiile tehnice ale plcii Raspberry Pi 3
Lista acronimelor
HMM - Hidden Markov Model modelul Markov cu stri ascunse

EM - Expectation - Maximizationalgorithm

SS - Substracie Spectral

PMC - parallel model combination


SS - spectral substraction
FFT - fast Fourier Transform
MFCC - mel frequency cepstral coefficients
DCT - discrete cosine transformation
RASTA - RelAtive Spectral
PLP - perceptual
IIR - infinite impulse response
GMM - Gaussian Mixture Model
DTW - dynamic time warping
WER - word error rate
SWER - single word error rate
CSR - command success rat
Introducere

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

1.1 Modele Markov


Modelul Markov caracterizeaz un sistem probabilistic prin intermediul a dou variabile
aleatoare: starea sistemului i timpul de observare. Dac se ia n considerare faptul c fiecare dintre
aceste variabile aleatoare poate fi continu sau discret rezult o mulime de patru modele care se
pot obine din combinaiile posibile ale celor dou variabile aleatoare. Modelul Markov cu stri
discrete i timp de observare discret se mai numete si Markov, analog, n cazul n care sistemul
are starea discret i timpul de observare continuu, se obine un proces Markov.
Orice model Markov este caracterizat de faptul c, dac sistemul se afl ntr-o anumit
stare la momentul t0, atunci probabilitatea ca acesta s se afle ntr-o anumit stare la momentul t >
t0, depinde numai de starea curent(la momentul t0), i nu depinde de modul n care sistemul a
ajuns la starea cu pricina.

1.1.1 Procese Markov


Caracteristica principal a unui proces Markov este c apariia unei anumite stri este
condiionat de un numr determinat de stri anterioare. Dac numrul acestor stri este n atunci
spunem c avem de a face cu un proces Markov de ordinul n.
De exemplu, fie un sistem probabilistic cu stri discrete i timp de observare continuu.
Dac presupunem c sistemul se afl la momentele de timp t0, t1, ..., tk n strile N(t0), N(t1), N(t2),
..., N(tk) i dac el se comport ca un sistem Markov de ordinul 1, atunci probabilitatea ca la
momentul urmtor, tj+1 starea lui s fie N(tj+1) este determinat doar de tarea lui din momentul
anterior, i anume:

P{N(tj+1) = k | N(t0) = n0, N(t1) = n1, , N(tj) = n} = P{N(tj+1) = k | N(tj) = n} = pk(t)


Astfel, putem spune c starea viitoare k depinde doar de starea prezent n sau starea
prezent nglobeaz toat informaia pe care o avem despre sistem la un anumit moment de timp.
Se poate spune c procesele Markov sunt procese fr memorie, sau c viitorul este independent
de trecut, dat fiind prezentul.
Putem nelege intuitiv aceast proprietate a sistemelor Markov gndindu-ne la micarea
Brownian, agitaia termic a particulelor constituente ale sistemului genereaz o micare
aleatoare a particulelor de polen(sau cenu), traiectoria acestora fiind generat exclusiv de
coliziunile care au loc la un anumit moment de timp.

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.

1.2. Modelul Markov cu stri ascunse


De interes pentru sistemele de recunoatere vocal este Modelul Markov Ascuns(HMM).
n cadrul modelelor Markov mai simple din punct de vedere matematic, se presupune c starea
sistemului este direct vizibil observatorului(acesta deine informaia complet asupra sistemului
i astfel, probabilitile de tranziie ntre stri reprezint singurii parametrii ai modelului. Cnd
vorbim despre HMM, nu avem informaii despre stare, dar rezultatul proceselor(dependent de
stare), este cunoscut.

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

Q = q1q2q3,..,qn , mulimea strilor


A = a11a12...an1...ann, matricea de probabilistic de tranziie, unde aij reprezint
probabilitatea de tranziie din starea i n starea j
O = o1o2...oT, un ir de observaii, fiecare provenit dintr-un vocabular V = v1, v2, ..., vV
B = bi(o), un ir de estimare de observaii, denumit i probabilitate de emisie, fiecare
element reprezentnd probabilitatea ca o observaie ot s fie generat pornind de la o stare
i
q0, qF, strile de nceput i de final care nu sunt associate observaiilor

Analog unui lan Markov de ordinul I, probabilitatea unei stri anume depinde numai de
starea anterioar, numit i presupunerea Markov:

P(qi | q1qi-1) = P(qi | qi-1)

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:

P(oi | q1qi, qT, o1, , oi, , oT) = P(oi|qi)

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:

Problema 1, sau probabilitatea: Dat fiind un HMM = (A, B) i un ir de observaii O,


s se determine probabilitatea lui P(O | ).

Problema 2, sau decodarea strilor: Dat fiind un ir de observaii O, i un HMM = (A,


B), s se obin mulimea optim de stri ascunse, Q.

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.

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

construiete matricea de probabilitate forward[N + 2, T]


pentru fiecare stare q de la 1 la N
forward[s,1] = a0,s * bs(o1)
pentru fiecare pas de timp t de la 2 la T
pentru fiecare stare s de la 1 la N
forward[s,t] = de la s = 1 la N
forward[s, t 1]* as, s * bs(ot)
forward[qF, T] = de la s = 1 la N forward[s, T]as, qF

Prin urmare, algoritmul Forward face uz de avantajele programrii dinamice bazndu-se


pe una dintre proprietile de baz ale HMM, i anume independena observaiilor pentru a realiza
calculul n mod recursiv.
Astfel, fie:

t(xt) = p(xt, y1:t) = p(xt, xt-1, y1:t)

Dezvoltnd ecuaia, se poate scrie:

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:

t(xt) = p(yt |xt) p(xt | xt-1) t-1(xt-1)

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.

1.2.2. Decodarea Viterbi

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:

Pentru irul de observaii generat de x1, ..., xn, s se gseasc

arg max p(x1 xn, y1, , yn),

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:

creeaz matricea de probabilitate a cii viterbi[N + 2, T]


pentru fiecare stare de la 1 la N
viterbi[s, 1] = a0, s * bs(o1)
backpointer[s, 1] = 0
pentru fiecare pas de timp t de la 2 la T
pentru fiecare stare s de la 1 la N
viterbi[s, t] = max (s = 1 la N) din
viterbi[s, t 1] * as, s * bs(ot)
backpointer[s, t] = arg max(s = 1 la N) din
viterbi[s, t - 1] * as, s
viterbi[qF, T] = max viterbi[s, T] * as, qF
backpinter[qF, T] = arg max Viterbi[s, T] * as, qF
returneaz backtrace-ul prin urmrirea backpointer-ului ctre
strile anterioare, ncepnd cu backpointer[qF, T]

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:

vt(j) = max vt-1(i) aij bj(ot)

Cei trei factori prin intermediul crora se calculeaz probabilitatea Viterbi la un moment t, sunt:

vt-1(i), - probabilitatea Viterbi de la momentul anterior


aij, - probabilitatea de tranziie din starea qi n starea qj
bj(ot) - probabilitatea de observare a strii dat de simbolul ot, dat fiind starea curent j

1.2.3. Algoritmul Forward-Backward(Algoritmul Baum Welch)


Algoritmul Baum-Welch se consider a fi o aplicaie a algoritmului EM care se preteaz
modelului Markov cu stri ascunse, devenind astfel i algoritmul standard pentru antrenarea
HMM(Baum, 1972), acesta permind n acelai timp antrenarea probabilitilor de tranziie i de
emisie ale modelului.
Modelul Markov cu stri ascunse descrie probabilitatea de conjuncie a coleciei de
variabile aleatoare discrete ascunse i observate. Acesta, dup cum s-a enunat anterior, se
bazeaz pe prezumia c.a n-a variabil ascuns, dat fiind cea de a n-1 -a variabil ascuns,
este independent de variabilele anterioare, i c variabilele care descriu observaia curent
depinde numai i numai de starea ascuns curent.
Algoritmul Baum-Welch se folosete de principiul algoritmului EM pentru a estima
verosimilitatea maxim a parametrilor pentru un HMM, dat fiind un set de parametrii observai.
Pentru a nelege intuitiv aceast problem, putem aborda cazul unui lan Markov, care poate fi
vzut ca un HMM degenerat pentru care parametrul b este 1 pentru toate simbolurile observate i
0 pentru toate celelalte. Astfel, trebuie antrenat numai matricea probabilitilor de tranzitie, A.
Astfel, se poate estima verosimilitatea maxim a probabilitii aij pentru o tranziie anume
ntre strile i i j prin numrarea cazurilor n care aceasta s-a desfurat, apoi mprirea acestui
numr la numrul total de tranziii din i:

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

De asemenea, acest algoritm definete i o probabilitate Backward(de unde vine i numele


algoritmului, Forward-Backward). Probabilitatea Backward () este probabilitatea de a face
observaii de la momentul t + 1, presupunnd c sistemul se afl n starea i la momentul t.

t(i) = P(ot+1, ot+2, ..., oT | qt = i, )

Calculul acestei probabiliti se face asemntor cu cel al probabilitii Forward. Paii pe


care i urmeaz algoritmul Backward sunt urmtorii:

1. Iniializarea

T(i) = aiF, 1 i N

2. Recursivitatea

T(i) = aij bj (ot+1) t+1(j), 1 i N, 1 t < T

3. Finalizarea

P(O| ) = T(qF) = 1(q0) = a0j bj(o1) 1(j)

n continuare, trebuie estimat probabilitatea de tranziie, de forma


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) = ( )

De asemenea, este nevoie de o formul de calcul pentru probabilitatea de observare, aceast


probabilitate fiind, de fapt, probabilitatea unui anume simbol vk din vocabularul V, dat fiind o
stare j:


( ) =

n acest scop, se definete probabilitatea de a ne afla n starea j la momentul t, pe care o


vom numi t(j):
9
t(j) = P(qt = j |O, )
ntr-un final, se poate calcula b:

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

iniializeaz A i B (aproximarea niial)


itereaz pn la convergen
expectation
() ()
t(j) = ( )

() (+1 )+1 ()
t(i, j) = ( )
maximization
1
=1 (, )
= 1
=1 =1 (, )
1
=1.. = ()
( ) =
1
=1 ()
returneaz A, B

Dei principiul acestui algoritm este de a antrena parametrii A i B fr supraveghere, n


practic trebuie acordat o importan deosebit condiiilor iniiale.

10
Capitolul 2
Algoritmi utilizai n recunoaterea vocal de ctre un sistem
electronic

2.1 Filtrare de zgomot


2.1.1 Substracia Spectral (SS)
Recunoaterea vocal de ctre un sistem electronic presupune, printre altele, achiziia unui
semnal acustic, n care este codat informaia referitoare la cuvintele care se doresc a fi transmise.
Extragerea parametrilor semnalului sonor presupune de asemenea algoritmi de antrenare al cror
rezultat poate fi puternic afectat de distorsiuni aprute n proba analizat de sistem. Prin urmare se
impune ca aceste eantioane de vorbire s fie colectate ntr-un mediu lipsit de zgomot sau de ali
factori perturbatori care eventual ar putea declana o eroare n ceea ce privete prelucrarea datelor.
Din pcate, situaiile reale n care un astfel de sistem de recunoatere vocal ar putea funciona nu
se preteaz ipotezei enunate anterior, ceea ce ne conduce la ideea c trebuie aplicat o metod de
atenuare sau chiar eliminare complet a prii din semnal care ne incomodeaz.
Una dintre metodele propuse n literatur este PMC(parallel model combination), aceasta
folosete o aproximare log normal, pentru a transforma statisticile cepstrale n statistici liniar
specrale astfel nct parametrii acustici s poat fi extrai cu uurin din semnalul curat[4],
adaptnd astfel semnalul la orice fel de zgomot. Cu toate acestea, PMC impune ca zgomotul de
fundal s fie antrenat dac acesta s-a schimbat(nu corespunde cu ceea ce sistemul cunoate).
Concluzia fiind c ar fi de preferat o metod care s reduc componenta zgomotoas a semnalului
acustic.
Substracia Spectral (SS) este una dintre metodele propuse n mod convenional pentru a
contrabalansa dezavantajele PMC[5]. Desigur, i aceast metod prezint un dezavantaj, i anume
faptul c reduce performanele de recunoatere ale sistemului din cauza distorsionrii spectrului
din cauza calibrrii necorespunztoare necesitii semnalului.
Substracia Spectral se bazeaz pe eliminarea unui spectru mediat din semnalul analizat,
i anume partea care se consider a fi cea zgomotoas[6]. Spectrul zgomotului este de obicei
preluat n momentele n care semnalul este absent, presupunndu-se n acelai timp c zgomotul
reprezint un proces cvasistaionar, astfel nct spectrul acestuia s nu se schimbe semnificativ
ntre timpii de eantionare. Datorit estimrilor care se fac asupra spectrului instantaneu de putere,
metoda introduce probleme n ceea ce privete distorsionarea semnalului reconstruit, fapt care
devine o liabilitate o dat cu scderea raportului semnal-zgomot. SS ns se dovedete a fi atractiv
n ceea ce privete complexitatea de calcul.

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

Figura 2.1:Sus, semnal achiziionat de microfon, jos, semnalul filtrat


Semnalul zgomotos poate fi exprimat n domeniul timp n urmtorul mod:

y(m) = x(m) + n(m), sau


Y(f) = X(f) + N(f)
Prin SS, semnalul este descompus segmente de N eantioane ferestruite(de obicei cu o
fereastr Hann sau Hamming) iar apoi transformate prin intermediul unei transformri Fourier
discrete n benzi spectrale(fereistruirea se impune pentru meninerea fidelitii semnalului la
transformarea n domeniul frecven, i.e. se evit perioade incomplete ale semnalului care ar
distorsiona spectrul prin introducerea unor componente de frecvene mult mai mari dect frecvena
Nyquist).
Astfel, semnalul asupra cruia se aplic fereastra are forma:

yw(m) = w(m)y(m) = w(m)[x(m) + n(m)] = xw(m) + nw(m)

sau n domeniul frecven

Yw(f) = W(f) * Y(f) = Xw(f) + Nw(f)

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

Figura 2.2: Schema bloc a algoritmului

Pentru a putea implementa funcionalitatea acestui algoritm n sistemul nostru, avem nevoie de
urmtoarele elemente

(a) Un detector de linite pentru perioadele de inactivitate ale semnalului(eantionul pentru


care se face medierea spectrala a zgomotului este actualizat n aceast perioad
(b) Transformare Fourier Discret pentru transformarea n domeniul frecven, i scalare
(c) Un FTJ pentru reducerea variaiei zgomotului, scopul su fiind reducere distorsiunilor
aprute n procesarea semnalului datorit variaiilor n semna
(d) Un bloc de post procesare care implementeaz funcia T[] definit anterior
(e) Transformarea Fourier Invers pentru ntoarcerea n domeniul timp
(f) Un atenuator pentru atenuarea zgomotului n momentele de linite

Semnalul achiziionat de microfon este trecut printr-un buffer i mprit n mulimi de N


eantioane pentru a fi procesat prin DFT, fiecare bloc fiind ferestruit printr-o fereastr Hanning.
Dup aplicarea SS, spectrul de amplitudini este combinat cu faza semnalului de zgomot i
transformat napoi n domeniul timp.
Alegerea duratei de timp pe care se face analiza spectrala devine un compromis ntre
rezoluia n timp a semnalului i rezoluia spectral. n acest scop, se obinuiete folosirea unui bloc
de lungime 5-50 de milisecunde, iar dat fiind o frecven de eantionare de 20 kHz, acest lucru
se traduce ntr-o valoare a lui N ntre 100 i 1000 de eantioane. Dat fiind c rezoluia spectrului
dat de DFT este direct proporional cu N, o valoare mai mare a acestuia rezult ntr-o estimare mai
bun. Enunul anterior este valabil pentru componente ale semnalului care variaz lent n timp, dar

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.

2.2. Tehnici de extragere a parametrilor


O parte crucial a procesului de recunoatere vocal este reprezentat de extragerea
parametrilor, mai ales cnd aplicaia este proiectat s funcioneze n medii zgomotoase. Procesul
vorbirii poate fi parametrizat prin codare liniar predictiv(LPC), predicie perceptual liniar(PLP),
coeficieni mel cepstrali in frecven(MFCC), PLP-RASTA etc.O parte dintre acetia iau n
considerare natura vorbirii n timp ce extrag parametrii(MFCC i PLP) n timp ce LPC face o
estimare a parametrilor viitori bazndu-se pe parametrii anteriori[8]
Extragerea parametrilor n sistemele de recunoatere vocal reprezint calculul unui vector
de parametri care genereaz o reprezentare compact a unui semnal dat. Acest proces impic de
obicei un numr de trei pai: analiza spectral-temporal a semnalului vorbit, care genereaz
parametri iniial care descriu anvelopa spectrului de puteri pentru intervale scurte de vorbire. Al
doilea pas face compilarea unui vector extins de parametri care conine parametrii statici i
dinamici. ntr-un final, ultima etap transform aceti vectori de parametri ntr-o reprezentare mai
compact, care va fi furnizat sistemului de recunoatere.

2.2.1. MFCC(Mel-Frequency Cepstral Coefficients)

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

Cepstrul real al unui semnal poate fi definit dup urmtoarea relaie:



1
[] = log |( )|
2

Iar cepstrul complex este dat de:



1
[] = [log |( )| + (( ))]
2

16
Figura 2.4[11] Diagram n care se face reprezentarea unui semnal vocal generic n frecven i
n quefrecven

De notat faptul c, contribuiile datorate excitaiilor periodice apar la multpli ntregi de


perioada fundamental, ceea ce ar putea cauza probleme n sistemul de recunoatere pentru copii
i femei cu voci nalte, n timp ce contribuiile parametrilor care trebuiesc modelai se vor
concentra n zona de cerfvren joas.

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.

Coeficienii w(n) ai ferestrei Hamming de lungime n calculndu-se dup formula:

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

DCT / IFFT Coeficieni mel-cepstrali

Figura 2.5. Schema bloc de obinere a parametrilor MFCC


Ultimul pas presupune calcularea Discrete Cosine Transformation(DCT) din rezultatele
filtrului mel. Pentru fiecare cadru de vorbire, se calculeaz un set de coeficieni MFCC. Mulimea
de coeficieni se mai numete vector acustic deoarece reprezint caracteristicile importante din
punct de vedere fonetic ale vorbirii i este util pentru analiza i procesarea ulterioar.

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 )

Figura 2.6. Procesul RASTA reprezentat graphic, [13]

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

Figura 3.1. Arhitectura unui system de recunoatere vocal


Sarcina unui sistem de recunoatere vocal este de a transforma vorbirea ntr-un ir de cuvinte prin
intermediul unui program. Aplicaiile care folosesc recunoaterea vocal dau posibilitatea
utilizatorilor de a interaciona cu programul ntr-un mod accesibil.
Principalul scop al unui sistem de recunoatere automat a vorbirii este de a intuit cel mai probabil
ir de simboluri discrete din toate irurile posibile n limba L, dat fiind un semnal acustic O.
Considernd intrarea un ir de evenimente discrete (O) i secvena de simboluri care trebuiesc
recunoscute (W), putem defini urmtoarele simboluri
O = o1, o2, o3,
W = w1, w2, w3,
Scopul fundamental al sistemului de recunoatere automat a vorbirii poate fi exprimat n
mod formal n urmtorul fel:

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.

3.1 Front-endul acustic


Front end-ul acustic presupune procesare de semnal i extragere de parametri. Principalul
scop al extragerii de parametri acustici fiind reprezentarea informaiei utile din semnalul sonor

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:

Figura 3.2: schema bloc a procesului de extragere a parametrilor


23
Frecvenele nalte ale spectrului sunt amplificare pentru a permite recunoaterea
mai uoar a acestora de ctre procesul de antrenare i recunoatere(din cauza
neliniaritii n scara mel);
Ferestruirea, process foarte important pentru procesarea ulterioar a semnalului.
Aceast etap mparte semnalul n segmente de cte N milisecunde, se adopt de
obicei o fereastr Hamming(sau Hann) pentru acest tip de aplicaii astfel nct s
nu se piard informaie datorit discontinuitilor la limitele domeniului de
eantionare
Transformarea Fourier Discret este aplicat semnalului trecut prin fereastra
Hamming, rezultnd astfel o reprezentare n amplitudine i faz pentru semnalul cu
pricina. De obicei la acest pas se prefer implementarea unui algoritm de FFT din
considerente legate de complexitatea de calcul al acestei transformri, lucru care
poate impune probleme majore platformelor hardware care dispun de resurse
limitate;
Bancul de filter mel, are rolul de a trece reprezentarea spectrului din frecvena n
Hz, ntr-o scar mai potrivit caracteristicilor de sensibilitate la ton a urechii
umane(se cunoate faptul c urechea uman este mai puin sensibil la frecvene de
peste 1000 Hz. Astfel se prefer utilizarea scrii mel, prin introducerea unui banc
de filtre triunghiulare distribuite la intervale egale sub frecvena de 1000 Hz i
spaiate logaritmic la frecvene mai mari de 1000 Hz), obinndu-se astfel aa-zisul
spectru mel, care apoi se logaritmeaz;
Ultimul pas al obinerii parametrilor MFCC este aplicarea transformrii
cosinusoidale discret asupra coeficienilor spectului mel;
Nu n ultimul rnd, este de interes pentru sistemul de recunoatere vocal i
perioada n care segmentele n care a fost mprit semnalul se suprapun, astfel, ca
ultim pas al tehnicii MFCC este specificat calcularea derivatei de ordinul I i II ai
coeficienilor mel-cepstrali;
Un aspect negative al tehnicii MFCC este faptul c valorile coeficienilor nu sunt deosebit de
robuste pentru semnale care prezint zgomot, astfel(n cazul n care nu s-au efectuat filtrri asupra
semnalului cu scopul de a reduce efectul zgomotului) se obinuiete normalizarea valorii acestora,

3.2. Modelul acustic


Modelul acustic este poate cea mai important surs de informaie de care dispune sistemul,
deoarece acesta conine reprezentrile specifice fiecrei uniti acustice din vocabularul sistemului,
mpreun cu parametrii care le caracterieaz. n construirea modelului acustic, cel mai important
aspect care trebuie luat n considerare este alegerea unitilor fundamentale pe care acesta se
bazeaz.
n general, modelarea acustic se refer la stabilirea unei reprezentri statistice a irului de
vectori de parametri calculai din semnalul vorbit. n acest scop se folosesc modele Marov cu stri

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

Tabelul 3.1: Vocalele limbii romne

De asemenea, distingem i un numr de patru semivocale: /e/ (n deal),/i / (n fier),/o/ (n


coas), /u/ (n ziua). Semivocalele /e/ i /o/ pot aprea doar nainte de o vocal, n timp ce restul
de dou pot aprea att nainte ct i dup. [16]

Consoanele care apar n limba romn sunt urmtoarele:

Tabelul 3.2: Consoanele limbii romne

Sunet Exemplu Notaie fonetic


[p] pace p
[b] bun b
[t] tare t
[d] dor k
[k] cal k
[c] chel k'
[g] gol g
[] ghid g'
[] ap
[] cer
[] ger
[f] afar f
[v] var v
[s] sare s
[z] vaz z
[] arpe
[] ajutor j
[h] ham h
[] mohican
[x] hrib x
[m] amic m
[]} conversa
[n] nor n
[] prunc

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.3. Modelul de limb


Modelul de limb ofer sistemului o serie de constrngeri aplicabile secvenei de cuvinte
care pot fi recunoscute, n sensul c exclude combinaiile de foneme care nu se regsesc n limb.
Aceste constrngeri sunt reprezentate fie de regulile gramaticale ale limbii, fie de statistici estimate
din corpusul de antrenare(aplicaiile de control prin recunoatere vocal sufer n acest caz din
pricina incertitudinii extinse asociate limbii. Prin analogie, dei exist cuvinte care conin foneme
asemntoare, unui utilator uman nu i este dificil s disting aceste diferene, n principal datorit
faptului c are capacitatea de a nelege contextul, i de asemenea, este obinuit s aud fraze
comune, ateptndu-se astfel s apar anumite cuvinte ntr-un context anume.
Acest context este dat de modelul de limb n cadrul unui sistem de recunoatere, modelul
preciznd cuvintele care pot exista i modul n care acestea pot aprea. Modelul acustic este
antrenat prin modele probabilistice de tip N-gram prin verificarea unor corpusuri extinse de text i
de asemenea, prin reducerea perplexitii datelor de antrenare. Prin urmare, algoritmiii care
mbuntesc modelul de limb bazndu-se pe efectul pe care cuvintele le au asupra recunoaterii
vocale prefer un model de limb bazat pe distribuia de probabilitate a cuvintelor pe care
vorbitorul le poate exprima n continuare, dat un istoric al cuvintelor pe care le-a vorbit. Modelele
comune folosite sunt de tip bigram sau trigram. Aceste modele conin probabiliti calculate ale
unor grupuri de dou sau trei cuvinte dintr-o secven dat.

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.

Abordarea acustic-fonetic[14]: Se bazeaz pe presupunerea c n limb exist o mulime


finit i discret de uniti fonetice. Aceste uniti fonetice fiind caracterizate de proprieti
acustice manifestate n vorbire sau n spectru. Primul pas n abordarea acustic-fonetic este
aplicarea unei analize spectrale a vorbirii combinate cu o metod de extragerii parametrilor
care transform caracteristicile spectrale ntr-o mulime de parametrii care descriu
proprietile acustice ale diferitor uniti fonetice. Urmtorul pas este reprezentat de etapa
de ferestruire n care semnalul acustic este segmentat n pri staionare din punct de vedere
acustic, urmat de ataarea unei etichete fonetice pentru fiecare regiune, rezultnd astfel o
latice de foneme. Urmtorul par ar fi determinarea cuvntului posibil din irul de etichete
fonetice produse de pasul anterior
Recunoaterea de caracteristici: Este compus din doi pai eseniali, i anume,
antrenarea caracteristicilor i compararea lor. n etapa de comparare a caracteristicilor, se
face o difereniere direct ntre vorbirea necunoscut i fiecare caracteristic nvat n
etapa de antrenare astfel nct s se determine natura necunoscutei n funcie de ct de bine
se pliaz pe ceea ce sistemul cunoate. Caracteristica principal a acestei abordri este
reprezentat de modelul matematic riguros care st n spatele ei, aceasta construind o
reprezentare consistent a caracteristicilor pentru comparare antrennd eantioane prin
intermediul unui algoritm specific de antrenare(Backward-Forward). Caracteristica prin
care este identificat vorbirea se bazeaz pe un model statistic(model Markov ascuns de
exemplu) i poate fi aplicat unei uniti care compune un cuvnt, unui cuvnt n sine sau
unei fraze. Datorit acestor aspecte, aceas abordare a devenit metoda predominant n
domeniul recunoaterii vocale.
Inteligena artificial: Inteligena artificial este un hibrid ntre cele dou aborri enunate
anterior. Acest lucru se datoreaz faptului c preia concepte i din abordarea acustic-
fonetic i din recunoaterea de caracteristici. Principalele abordri utilizate recunoaterea
vocal din domeniul recunoaterii de caracteristici sunt recunoaterea determinit bazat
pe procedeul numit dynamic time warping(DTW) i recunoaterea prin procese stohastice
care fac uz de HMM-uri. n contextul DTW-ului, fiecare clas care trebuie recunoscut este
reprezentat de unul sau mai multe abloane, dat fiind c folosirea mai multor abloane de
referin este preferat pentru creterea variabilitii vorbitorului. n timpul recunoaterii,
se calculeaz o distaniere ntre vorbirea observat de system i caracteristica data de clas.
Cuvntul recunoscut corespunde cii prin model care minimizeaz distana acumulat. n
sistemele comerciale, se prefer recunoaterea caracteristicilor prin intermediul HMM-

28
urilor n schimb datorit proprietile de generalizare specific modelelor probabilistice i
de asemenea, din considerente de ocupare a resurselor de calcul.

De asemenea, acestor abordri li se adaug o serie de extensii cu menirea de a optimiza procesul


de recunoaterea, problem care devinde dificil pentru abordrile clasice n cazul n care avem de
a face cu un vocabular extins.

nvarea generativ de tip HMM-GMM: n cazul sistemelor de recunoatere vocal,


abordarea de tip generativ folosete de obicei modele Markov bazate pe mixturi Gaussiene.
Sistemele de recunoatere vocal convenionale folosesc modelul cu mixturi Gaussiene
bazate pe modele Markov ascunse pentru a reprezenta structura secvenial a semnalului
vorbit. Modelele Markov sunt folosite n sistemele de recunoatere vocal deoarece
semnalul sonor vorbit poate fi vzut ca unul staionar pe perioade scurte de timp. Vorbirea
fiind vzut ca un model Markov din considerente stohastice. n mod timipc strile HMM-
ului folosesc o mixtur de Gaussiene pentru a modela reprezentarea spectral a undei audio.
Un sistem de tip GMM-HMM este parametrizat de = (A; B; ). vector care conine
probabilitile a priori de stare; A = (aij) fiind matricea de tranziie a strii, iar B =
{(b1,,bn)} o mulime unde bj reprezint modelul mixturii Gaussiene pentru starea j. Starea
fiind asociat unui subsegment al fonemei n vorbire(senone).

3.6. Caracteristici ale sistemelor de recunoatere vocal[17]

Sistemele de recunoatere automat a vorbirii sunt de obicei proiectate pentru a face fa


unei anumite sarcini specifice, robusteea fiind una dintre marile probleme cu care aceste sisteme
se confrunt. Exist un numr de probleme care trebuiesc adresate pentru a defini clasa de
funcionare a unui astfel de sistem. Printre acestea se numr modelarea unitilor (cuvintele,
silabele i fonemele) utilizate pentru recunoatere, dimensiunea vocabularului(mic, mediu, extins),
complexitatea sintaxei, care poate varia de la simpl la complex(pentru care se impune folosirea
modelelor de limb de tip N-gram, perplexitatea sarcinii, modul n care se recunoaterea
vorbirii(izolat, continu, spontan), raportarea la vorbitor(sistem antrenat pe un anume vorbitor,
adaptiv, independent de vorbitor, dependent), mediul vorbirii(linite, mediu zgomotos) i felul n
care se face achiziia semnalului sonor(dependent de calitatea microfonului, telefon, matrice de
microfoane, sau canalul de transmisie).
Calitatea unui sistem de recunoatere a vorbirii este direct proporional cu robusteea sa,
aceasta fiind neleas drept calitatea sistemului de a conduce la rezultate satisfctoare n dat
fiind variabilitatea semnalului sonor. Exist un numr de factori care determin acurateea unui
astfel de sistem. Acetia din urm fiind variabilitatea vorbitorului, variabilitatea pronuniei,
variabilitatea regional(diferite accente care pot aprea), variabilitatea ratei vorbirii(viteza de
pronunie), variabilitatea contextului, variabilitatea canalului i variabilitatea mediullui n care se
face vorbirea. n proiectarea sistemelor de recunoatere vocal, trebuie luai n considerare aceti
factori astfel nct s fie posibil construirea unui model care s duc la o bun rat a recunoaterii,

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.

3.7. Evaluarea performanei sistemelor de recunoatere vocal

Performana sistemelor de recunoatere automat a vorbirii este de obicei specificat n


strns legtur cu acurateea i viteza cu care se realizeaz sarcina. Acurateea unui astfel de
sistem, poate, prin urmare s fie msurat n termeni de erori raportate la cuvnt(WER), pe cnd
viteza se msoar folosind timpul real.
Alte uniti de msur pentru acuratee includ:

rata de eroare raportat la un singur cuvnt(SWER);


rata de success a comenzii(CSR)

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:

inserie: cuvnt adugat de sistem astfel nct ipoteza s se regseasc n referina


sistemului(baza de date)
tergere: cuvnt eliminat de sistem i perceput ca zgomot, astfel nct ipoteza generat
de sistem s se plieze pe modelul de limb
substituie: cuvnt ambiguu, nlocuit de sistem cu cea mai bun coresponden pe care
o poate gsi.

ntr-un final, WER-ul i WRR-ul pot fi exprimate n felul urmtor:

+ +
(%) = 100


() = 1 =

30
3.7. Criterii de performan pentru sisteme de recunoatere automat a
vorbirii

n construcia unui astfel de sistem, avnd predeterminat o serie de standarde de


performan, astfel nct s fie posibil evaluare obiectiv a produsului rezultat i, de asemenea,
ierarhizarea acestor sisteme n funcie de calitatea lor. Inspectnd structura sistemului, putem
defini cteva aspecte care s ne ajute n acest demers:

resursele necesare construirii sistemului:


o hardware(sistemul de calcul necesar rulrii aplicaiei de recunoatere,
microfonul prin care se face achiziia, interfaa cu un alt sistem pentru care
sistemul de recunoatere furnizeaz date)
o software(complexitatea de calcul pe care o presupune metoda aleas de
recunoatere, dificultatea implementrii ei, expertiza proiectantului)
o resurse monetare(necesare finanrii proiectului, de la cercetare la echipa
care trebuie s l pun n funciune
popularitatea pe pia(oportunitile de monetizare)
uurina implementrii(de exemplu extragerea parametrilor prin MFCC necesit
mai puine resurse de calcul i manoper dect folositea tehnicii RASTA-PLP
sistemul n care aplicaia se poate folosi, acesta fiind dependent de urmtoarele
caracteristici:
o numrul de vorbitori care pot fi identificai de sistem
o numrul de limbi recunoscute
o dimensiunea vocabularului

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

Partea practic a proiectului const n implementarea unui sistem de recunoatere vocal


pe platforma Raspberry Pi 3 cu ajutorul toolkitului de recunoatere vocal CMUSphinx.

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

4.1 Resurse hardware


4.1.1 Placa Raspberry Pi

Figura 4.1: Placa Raspberry Pi 3 Model B

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

Tabelul 4.1 Specificaiile tehnice ale plcii

Raspberry Pi este o serie de plci de dezvoltare de dimensiuni reduse, proiectate n Regatul


Unit de ctre Raspberry Pi Foundation pentru a promova predarea conceptelor de tiina
calculatoarelor n coli i n rile n curs de dezvoltare, fiind oferit la un pre accesibil.

4.2. Resurse software


4.2.1. Toolkit-ul CMU Sphinx
CMU Sphinx reprezint un toolkit intens utilizat n aplicaiile de recunoatere automat a
vorbirii i include o serie de unelte care pot fi utilizate pentru a construi aplicaii care au legtur
cu procesarea semnalului vorbit.
Toolkit-ul include patru utilitare care se ocup de diferite aspecte ale procesului de
construire a unei aplicaii de recunoatere de vorbire, aceste fiind:

- Pocketsphinx bibliotec scris n C prin intermediul creia se face


decodarea semnalului vobit;
- Sphinxbase bibliotec support care este necesar pentru Pocketsphinx;
- Sphinx4 decodor de voce adjustabil, scris n Java;
- Sphinxtrain utilitare pentru antrenarea modelului acustic;
n cadrul proiectului, am portat utilitarul Pocketsphinx pe sistemul Raspberry Pi i am
folosit un model acustic preantrenat pentru a face recunoaterea.

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

- s-a folosit o baz de date de vorbire de 100 de vorbitori diferii pentru


antrenare, de la fiecare vorbitor fiind preluat un numr de 80 de fiiere;

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.

4.2.2 Construcia dicionarului fonetic


Modelul fonetic al limbii este foarte important pentru dezvoltarea proiectului deoarece
acesta execut transcrierea fonetic a transcrierilor valabile pentru baza de date de antrenare.
Acesta are rol i la decodare, fiind utilizat de algoritmul Viterbi pentru a traduce strile HMM-ului
n cuvinte. Prin urmare, dicionarul fonetic nclude toate cuvintele posibile pentru o anumit
sarcin de recunoatere a vorbirii alturi de transcrieriler fonetice
Pentru limba curent dat fiind c este posibil s avem numai succesiuni de cifre, dicionarul
trebuie s conin numai fonemele care apar n cuvintele:

- 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

Se observ c dicionarul fonetic transcrie cuvintele sub forma [fonem]_[cuvnt], acest


lucru este propus de ctre toolkitul CMUSphinx pentru a reduce perplexitatea limbii.
Dicionarul fonetic este un instrument lingvistic prin care este specificat modul n care se
pronun cuvintele limbii. Prin urmare, dicionarul fonetic face corespondena ntre forma scris i
cea fonetic a componentelor limbii[18]. Forma fonetic a unui cuvnt este o succesiune de
foneme.
Astfel, n sistemul nostru, dicionarul fonetic va face legtura ntre modelul acustic(care
modeleaz modul de producere a sunetelor limbii) i modelul de limb(care modeleaz felul n
care o poate aprea un sir de cuvinte).

4.2.3. Creearea gramaticii cu stri finite


Dei sistemele de recunoatere a vorbirii de ultim generaie utilizeaz modele de limb
statistice de tip n-gram(modele care se construiesc pe baza unei baze de date de text foarte mare,
adaptat sarcinii de recunoatere, care face estimarea a priorii a probabilitii de apariie ale
cuvintelor i secvenelor de cuvinte, aceste date fiind mai apoi utilizate pentru a calcula
probabilitatea apariiei unui cuvnt, dat fiind cuvntul anterior), sarcina noastr, din pricina
faptului c deine un vocabular foarte redus, nu se preteaz modelelor de limb statistice, una dintre
marile probleme care se ivesc n acest caz fiind chiar ambiguitatea probabilitii de estimare a
urmtoarei cifre, dat fiind c aceasta din urm este egal pentru toi membrii limbii.

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

Fig. 4.2. Dispozitive Intrare/Iesire conectate la placa Raspberry PI 3

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.

Fig. 4.3. Continutul fisierului ~/.asoundrc


Dupa ce ne-am asigurat ca lucrurile sunt in ordine, trebuie sa trecem la pasul final si anume
instalarea pocketsphinx-ului. Inainte de a instala pocketsphinx-ul propriu-zis, trebuie sa ne
asiguram ca dependintele acestuia sunt satisfacute. Acestea le vom realiza cu urmatoarele comenzi:
Sudo apt-get install bison
Sudo apt-get install libasound2-dev
Din dependintele necesare mai face parte si
sphinxbase(http://sourceforge.net/projects/cmusphinx/files/sphinxbase/5prealpha) pe care il vom
instala si configura cu urmatoarele comenzi:

./configure --enable-fixed

make

sudo make install

Asadar, in ultimul subpunct de la ultimul pas, va trebui sa descarcam, sa instalam si sa


configuram pocketsphinx-
ul(http://sourceforge.net/projects/cmusphinx/files/pocketsphinx/5prealpha). Dupa descarcare,
vom executa urmatoarele comenzi necesare:

./configure

38
make

sudo make install

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

Fig. 4.4. Fisier de log pentru pocketsphinx_continuous


In imaginea de mai sus vedem ultimele doua linii din log-ul pocketsphinx-ului instalat corect.
Pentru a creste acuratetea programului, va trebui sa-i adaugam ca parametri un model de limba,
model acustic si model fonetic pentru detectia de cifre din limba romana. Astfel, comanda finala
va arata asa:

Fig. 4.5. Comanda pocketsphinx_continuous pentru detectie de cifre in limba romana

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.

4.3 Aplicaia de detecie


Scopul aplicaiei este de a recepiona un semnal vorbit, verific dac acesta reprezint un
numr de telefon i n acest caz, s l afieze pe un ecran LCD de tip 16x2. n timpul rulrii acestui
program, utilitarul pocketsphinx va rula n background, scriind ntr-un fiier cuvintele detectate.
Aplicaia parcurge acel fiier i la fiecare modificarea a sa, preia informaia i verific
veridicitatea sa. Conexiunea low-level cu perifericele este asigurat de biblioteca Rpi.GPIO, astfel

39
nct s putem folosi displayul LCD cu placa Raspberry Pi. Acest lucru se realizeaz prin comanda
Python:
import RPi.GPIO

Interfaarea cu informaia extras de pocketsphinx se face prin intermediul unui dicionar


python care realizeaz corespondena dintra cifrele reprezentate sub form fonetic i cifrele
reprezentate ca simboluri.
Fiierul n care scrie utilitarul pocketsphinx i din care citete aplicaia curent este
specificat sub forma unui command line argument. Acesta este n mod constant parcurs de parser.

Pentru formatarea informaiei achiziionate de la pocketsphinx, se nltur newline-ul i se


face desprirea liniilor de cod dup whitespace.

line=f.readline()
line=line.rstrip('\n')
split_line=line.split(' ')

Validitatea intrrii este verificat prin compararea dimensiunii vectorului split_line cu


valoarea 10 (dimensiunea unui numr de telefon). De asemenea trebuie verificat condiia ca
primul numr s fie 0 iar cel de-al doilea s fie 7, iar dac aceast condiie este satisfcut, se
realizeaz un lookup n dicionarul dict{} pentru a se realiza transcrierea n simboluri a cifrei cu
pricina.
if length == 10:
if (split_line[0] == 'zero' and
split_line[1]=='\xc5\x9fapte'):
nr_tel = ''
for i in range(0,10):
nr_tel += str(dict[split_line[i]])
lcd_string(nr_tel,LCD_LINE_1,2)

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

[15]M.Forsberg, Why Is Speech Recognition Difficult?, Chalmers University of Technology,


Citeseer,(2003)

[16]Andrei Avram, Cercetri asupra sonoritii n limba romn, 1961, p. 25


A Review on Automatic Speech Recognition Architecture and Approaches Karpagavalli

[17]M.A.Anusuya And S.K.Katti, Speech Recognition by Machine:A Review, International


Journal of Computer Science and Information Security, vol. 6, no. 3,(2009),pp. 181 -205.

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

S-ar putea să vă placă și