lucrarea de licental

Upload: vadima-muntean

Post on 19-Jul-2015

325 views

Category:

Documents


3 download

TRANSCRIPT

CUPRINSINTRODUCERE......................................................................................................10 1. STUDIUL ASUPRA REALIZRILOR N DOMENIUL PROCESRII VORBIRII..........10 1.1. Metode actuale de procesare si analiza a semnalului vocal............................12 1.2. Metode de prelucrare numerica a semnalului vocal.......................................12 1.3. Metode de codare a semnalului vocal..........................................................12 1.4. Metode i standarde de compresie a semnalului vocal .................................15 1.5. Metode de analiza a semnalului vocal...........................................................17 1.6. Analiza in domeniul de timp a semnalului vocal.............................................18 1.7. Analiza in domeniul de frecventa a semnalului vocal.....................................20 1.8. Analiza prin banc de filtre digitale..................................................................20 1.9. Analiza fourier............................................................................................21 1.10. Recunoaterea vorbirii..............................................................................22 1.11. Avantajele recunoaterii vorbirii.................................................................22 1.12. Dificulti ntmpinate n procesul recunoaterii vorbirii................................23 1.13. Clasificarea sistemelor de recunoatere a vorbirii........................................23 1.14. Recunoaterea continu a vorbirii..............................................................24 2. ELABORAREA DISPOZITIVULUI PENTRU DETECTAREA VOCII DIN SUNET.......27 2.1. Realizarea caselor inteligente.......................................................................27 2.2. Analiza vorbirii.............................................................................................27 2.3. Calcularea amprentei digitale.......................................................................28 2.4. LEGATURA HARDWARE/SOFTWARE.........................................................28

UTM 525.1 024 MEMod. Coala Nr. document Semnt. Sargu D. Mironov B. Covdii G. Melnic T. Sontea V. Data Litera Coala 8 Coli 66 Elaborat Conductor Consultant Contr. norm. Aprobat

Dispozitiv de detectare a vocii din sunet

UTM FCIM ME - 071

2.5. Modelul software/hardware...........................................................................29 2.6. Pragul initial de calcul..................................................................................30 2.7. GENERAREA AMPRENTEI DIGITALE.........................................................30 2.8. IMPLEMENTAREA FILTRELOR...................................................................31 2.9. Algoritmul de recunoastere a vocii................................................................32 2.10. Structurarea intrarii....................................................................................32 2.11. Metoda filtrului trece band........................................................................32 2.12. Compararea amprentelor...........................................................................34 2.13. Rezultatele proiectului................................................................................35 3. PRELUCRAREA SEMNALELOR CU AJUTORUL MICROCONTROLERULUI...........36 3.1. Atmega 32. arhitectura.................................................................................36 3.2. Descrierea pinilor.........................................................................................34 3.3. CONVERTORUL ANALOGIC-DIGITAL (ADC)...............................................47 4. ARGUMENTAREA ECONOMIC........................................................................50 4.1. Descrierea general a proiectului...............................................................50 4.2. Analiza raionalitii proiectului......................................................................51 4.3. Plan calendaristic.........................................................................................52 4.4. Argumentarea economic.............................................................................54 4.5. Managementul resurselor umane........................................................................59CONCLUZII.........................................................................................................63 BIBLIOGRAFIE.....................................................................................................64

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

9

INTRODUCERE Principala caracteristic a unei case inteligente este utilizarea noilor tehnologii. Una din tehnologiile care ar putea facilita traiul intr-o casa este tehnologia de detectare a vocii din sunet.Aceasta tehnologie ar permite controlul asupra tuturor dispozitivelor din cas.Controlul dat se va efectua prin comenzile vocale.In acest mod nu va mai fi nevoie de a apasa un buton care va aprinde,stinge sau conecta sau deconecta vreun dispozitiv. Idea data de a controla dispozitivele din jur doar cu ajutorul vocii este una universal,deoarece tehnologia data poate fi intrebuinata nu numai in case dar si in aproximativ toate locurile unde omul pentru a primi un rezultat se foloseste de dispozitive comandate prin butoane. Tehnologia de detectare a vocii este un pas spre dezvoltare.Sa luam spre exemplu utilizarea tehnologii date in controlul masinilor. Comenzile ca stinga,dreapta,inainte,inapoi,stop,porneste ar uura condusul autovehicolului si ar oferi un alt grad de confort pentru conducator. Insa revenind la ideea initiala de implementarea a tehnologii date in casele moderne trebuie de mentionat faptul ca dispozitivul dat va controla peste 90% de procente din toata tehnica din casa.Asa deci,tehnologia de detectare a vocii va functiona dupa un principiu foarte usor. Astfel, pentru controlul aparatelor sunt nevoie aproximativ comenzile: start, stop, aprinde, stinge, mai tare si mai incet.In acest fel pentru comenzile date care reprezint desigur niste cuvinte care vor fi rostite la timpul lor in dispozitivul dat de detectare a vocii vor fi create modele.Modelele date vor fi inregistrate in memoria programului cu care va functiona tehnologia data pentru a le putea compara programul cu cuvintele sau comenzile care vor fi rostite de diferite persoane. Odata identificate cuvintele, programul in dependent de comanda pronuntata va efectua sarcina propriu zis. In continuare se va analiza procesul de receptionare,identificare si indeplinire a comenzilor de dispozitivul de detectare a vocii. Principalele sale functii la care se va face referinta vor fi de comand si control.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

10

1. STUDIUL ASUPRA REALIZRILOR N DOMENIUL PROCESRII VORBIRIIProcesarea vorbirii este un domeniu care a evoluat mult in ultimii ani pe plan internaional. Dac in urm cu civa ani se fceau progrese n ceea ce privete gsirea unor noi metode i tehnici de prelucrare a semnalului vocal, acum accentul se pune pe integrarea acestor metode performante n sisteme dedicate unor categorii diverse de utilizatori. Odat cu creterea performanelor sistemelor de calcul, utilizatorii au acum la ndemn o gam larg de aplicaii pornind de la dictare automat i introducerea de date cu ajutorul vocii, pn la servicii interactive de tip cerere-rspuns care solicit un dialog vocal ntre calculator i operatorul uman, Procesarea vorbirii cuprinde dou domenii distincte de abordare : recunoaterea vocii, respectiv sinteza vocal. Recunoaterea vorbirii (speech-to-text) este procesul de identificare a cuvintelor i de inelegere a mesajului interlocutorului uman. Acest proces implic urmtoarele etape: captura i digitizarea semnalului vocal, scindarea acestuia in uniti sonore, apoi construirea cuvintelor din aceste uniti, i trimiterea spre aplicaie a textului recunoscut . Arhitectura software utilizat in aplicaiile de recunoastere a vorbirii cuprinde doua componente: componenta acustic i cea lingvistic. Modulul acustic analizeaza sunetele vocii, elimin zgomotul de fond, reduce datele la un spectru de frecvente si apoi convertete sunetele in foneme (elementele de baza ale vorbirii). Modulul lingvistic analizeaz coninutul vorbirii si compar combinaiile de foneme cu cuvintele dintr-un vocabular i decide apoi care a fost propozitia sau comanda rostita de vorbitor. Recunoaterea vorbirii este realizat de o component software numit motor de recunoatere a vorbirii (Speech Recognition Engine SRE). Motoarele de recunoastere a vorbirii suport dou moduri de lucru: dictarea, in care utilizatorul introduce date vorbind direct spre computer, i comanda sau controlul, in care utilizatorul transmite comenzi prin vorbire. Programele ce suport dictarea permit introducerea rapoartelor, referatelor si mesajelor email prin intermediul vocii . Posibilitatea de a recunoaste un anumit cuvant este limitata de dimensiunea dicionarului incorporat. Majoritatea motoarelor de recunoastere care supora dictarea sunt dependente de vorbitor, deoarece acuratetea variaza cu trsturile vocii, cum ar fi timbrul si accentul. Pentru a mari acurateea recunoaterii, sunt create baze de date numite profile de vorbitor, care stocheaz modelul de vorbire al fiecrui utilizator. In cazul programelor de comand i control, dictionarul este limitat la lista de comenzi disponibile, fapt care crete performana aplicaiilor i scade necesarul de putere de calcul din partea sistemului. In plus, aceste tipuri de programe sunt independente de vorbitor i nu necesit sesiuni de training.Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

11

Actualmente accentul se pune pe realizarea unor noi algoritmi care s permit recunoaterea continu a vocii, adica recunoasterea cuvintelor si frazelor rostite de catre interlocutorul uman in condiii naturale, nerestricionate de un anumit dictionar sau vocabular. Dintre metodele recent utilizate amintim : detecia rapid a momentelor de pauza sau rostire ; recunoaterea bazat pe dictionare de corespondenta intre unitatile fonematice i unitile acustice ; metode de predicie a cuvintelor rostite . Sinteza de voce este procesul invers recunoaterii vorbirii i const in recompunerea vocii de ctre sistemul de calcul. Sinteza de voce este strins legat de procesul conversiei unui text in limbaj vorbit, numit text-to-speech. In cadrul acestui proces, are loc o analiz lingvistic a textului pentru a-l separa in uniti lexicale (cuvinte, silabe i foneme), apoi unitile lexicale sunt convertite in semnale sonore care sunt combinate in final pentru a genera vorbirea continua Astzi se folosesc noi metode pentru sinteza de voce, care s asigure o calitate ct mai bun a sintezei, calitate apropiata de vorbirea naturala. Metodele cele mai utilizate se bazeaz pe principiul PSOLA (Pitch Synchronous Overlap and Add), in care procesarea vorbirii se realizeaz in domeniul timp sau metode bazate pe corpus, care folosesc cantiti mari de date achiziionate in urma rostirii naturale a unui text .

1.1.

Metode actuale de procesare i analiz a semnalului vocal

Analiza i prelucrarea semnalului vocal constituie etapele premergtoare n abordarea sintezei i recunoaterii de voce. Prelucrarea numeric a semnalului vocal cuprinde toate metodele de operare direct asupra semnalului, n special metode de filtrare, codificare i compresie. Analiza semnalului vocal presupune determinarea parametrilor semnalului pe baza eantioanelor de vorbire nregistrate de la vorbitor, parametrii care vor fi folosii n aplicaia specific de sintez sau recunoatere de voce.

1.2. Metode de prelucrare numeric a semnalului vocalPrelucrarea semnalului vocal ncepe cu achiziia semnalului de la surs: microfon, sau aparatur electronic de nregistrare. Achiziia presupune conversia digital a semnalului analogic i apoi filtrarea sa pentru eliminarea zgomotelor de achiziie. Conversia se face cu o frecven de eantionare de cel puin 8 kHz (uzual se folosesc frecvene standard de 11 kHz, 16 kHz sau 22 kHz). Conversia analog-digital a semnalului presupune un anumit mod de reprezentare a semnalului n format numeric. Stabilirea unui astfel de mod de reprezentare digital se numete codarea semnalului.

1.3. Metode de codare a semnalului vocalCoala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

12

Tehnica cea mai utilizat n codarea semnalului vocal este tehnica modulrii impulsurilor n cod (PCM Pulse Code Modulation ) . Folosind codarea PCM, fiecare eantion al semnalului este cuantizat (i se atribuie o valoare numeric) independent de celelalte eantioane. Astfel, un codor PCM determin nivelul de cuantizare al fiecrui eantion fr s in cont de nivelul eantioanelor precedente, iar apoi atribuie acestui nivel de cuantizare un cod binar (numit cuvnt de cod), ce reprezint forma codat a semnalului. n tehnica PCM exist diferite moduri de cuantizare a valorii fiecrui eantion i de asociere a cuvintelor de cod pentru un nivel de cuantizare. Cele mai uzuale tehnici folosite sunt codarea liniar i codarea logaritmic : Codarea liniar const n considerarea valorii scalate a eantionului ca i cuvnt de cod. Astfel, un semnal de intrare cu valori ntre 0 i 1000 mV va fi codat liniar cu valori ntre 0 i o valoare maxim VM (255 pentru valori reprezentate pe octet). Valoarea eantionului poate fi o mrime cu semn, innd cont c semnalul vocal variaz n jurul unei poziii de referin, de nivel 0. Astfel, cuvntul de cod poate fi la rndul lui un numr cu semn. Codarea logaritmic aplic o transformare logaritmic valorii scalate a eantionului, i apoi atribuie o reprezentare numeric rezultatului obinut. Astfel, cuvntul de cod va conine semnul i logaritmul valorii scalate a eantionului. Acest standard de codare este folosit n telefonia digital, datorit faptului c n telefonie valorile de amplitudine mare a eantioanelor sunt puin frecvente, i ca urmare pot fi reprezentate cu o acuratee mai mic dect valorile de amplitudine mic, aa cum este cazul n transformarea logaritmic. Exist dou standarde pentru codarea logaritmic : legea -law, folosit n America de Nord i Japonia, respectiv legea A-law, folosit n Europa. Aceste tehnici de codare standard sunt expuse n cadrul acestui referat, n capitolul III. Amplitudinea fiecrui eantion va fi reprezentat printr-un cuvnt de cod pe 8 bii (fa de 14 bii ct ar fi fost necesari n cazul metodei liniare pentru codarea unui semnal la o calitate perceput echivalent). Dac n cazul codrii PCM cuvntul de cod se reprezint printr-un numr fix de cifre binare, exist metode care genereaz coduri de lungime variabil. Codarea entropic este o astfel de metod, care urmrete codarea semnalului pe grupuri de eantioane care au valori apropiate, situate ntr-o subclas a valorilor totale posibile. Astfel, pentru fiecare grup de astfel de eantioane, cuvntul de cod se genereaz pe un numr de bii mai mic dect numrul de bii ce ar fi necesar pentru codarea plajei totale de valori pentru eantioane. Un exemplu de codare entropic de lungime variabil este codarea Huffman, care presupune o parcurgere a-priori a semnalului pentru gruparea eantioanelor i stabilirea claselor de valori. Codarea Huffman poate de exemplu folosi o grupare a valorilor eantioanelor pe segmente corespunztoare vocalelor i consoanelor, n cazul consoanelor (care au valori ale eantioanelor mult mai mici comparativ cu vocalele) putndu-se folosi o codificare mai condensat. Spre deosebire de codarea Huffman, codarea aritmetic nu codeaz eantioanele pe grupe sau blocuri, ci ea caut secvene de valoriCoala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

13

identice ale semnalului, crora le atribuie anumite simboluri dintr-un dicionar sau cuvinte de cod. O metod care se folosete pentru eliminarea redundanei semnalului este codarea predictiv . Metoda se utilizeaz pentru codarea vorbirii, dar i a imaginii i a surselor de date, n vederea transmiterii informaiei la distan. Metoda urmrete s elimine din semnal ceea ce poate fi prezis despre el la receptor. Predictorii de la receptor i de la transmitor trebuie s funcioneze sincron, pe baza aceluiai set de reguli. Tehnica cea mai uzual ce se bazeaz pe metoda prediciei se numete modulaia diferenial a impulsurilor de cod ( DPCM Differential Pulse Code Modulation ). Schema bloc a codorului DPCM este ilustrat n figura 1.1.

x(n)

e(n) Q - xp(n| n-1,n-2,...,np) Predictor

i(n)

xp(n)

ep(n)

Figura 1.1 Schema canonic a codorului DPCM (PCM diferenial)[4] n figura 1.1, e(n) este diferena dintre eantionul de intrare x(n) i o predicie a eantionului notat cu xp(n| n-1,n-2,...,n-p). Aceast predicie se calculeaz ca o combinaie liniar a unui numr de p eantioane care au fost transmise anterior:p

x p (n | n 1, n 2,..., n p) = a k x p (n k ) ,k =1

(1.1)

unde x p (n k ) reprezint eantionul reconstruit la momentul n-k: x p (n k ) = x p (n k | n k 1, n k 2,..., n k p ) + e p (n k ) (1.2)

La fiecare pas, eroarea de predicie e cuantizat ntr-o valoare ep(n) de ctre cuantizorul Q, care totodat genereaz i secven de indici i(n). Astfel, semnalul x(n) va putea fi reconstruit pe baza valorilor ep(n) recepionate de la transmitor. Utilizarea metodei DPCM e susinut de faptul c variaia semnalului diferen ep(n) e mai mic dect variaia eantionului x(n). Astfel, presupunnd acelai debit de codare i acelai cuantizor, tehnica DPCM aduce o mbuntire de aproximativ 6 dB a raportului semnal/zgomot fa de codarea PCM. Pentru tratarea nestaionaritii semnalului vocal se folosesc metode de codare adaptive. Principiul de baz al adaptrii este de a realiza n codor estimarea unor aspecte statistice ale semnalului vocal,

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

14

precum energia, frecvena sau valorile spectrale . Astfel, n codificarea adaptiv ADPCM se calculeaz o estimaie local a deviaiei semnalului de intrare, care va controla ctigul unui amplificator situat n faa unui cuantizor cu variaie unitar, aa cum se ilustreaz n figura 1.2 :

e(n) - x (n| n-1) p

Q

b(n) = 1G

Predictor

xp(n)

Informaia de adaptare

Figura 1.2 Schema bloc a codorului delta adaptiv[8] Cu un astfel de codor adaptiv se poate obine un ctig mai mare de 5 dB n raportul semnal/zgomot fa de sistemul DPCM. Exist dou tipuri de metode de adaptare n codarea semnalului vocal: adaptarea silabic i adaptarea instantanee. Adaptarea silabic estimeaz caracteristica semnalului vocal pe o durat de cteva milisecunde (4..25ms) pentru a se acomoda la modificrile din interiorul fonemelor i silabelor. Adaptarea instantanee folosete constante de timp mai mici (sub 4ms). Modulaia delta (DM Delta Modulation ) este un caz special de DPCM n care cuantizorul folosete doar dou valori posibile, ceea ce are ca rezultat aproximarea n trepte a formei de und. Modulaia delta are variante de implementare att cu cuantizor fix, caz n care necesit o rat de eantionare ridicat pentru a se putea acomoda variabilitii ridicate a semnalului vocal, ct i variante adaptive. Principiul modulaiei delta este descris de urmtoarele ecuaii : b( n) = sgn[ x(n) x p (n)] , (1.3) (1.4)

x p ( n) = x p (n 1) + Gn b(n) .

n modulaia delta apar dou tipuri de zgomote (erori) de cuantizare : zgomotul de suprapant, datorat variaiei mai rapide a semnalului dect posibilitatea de urmrire a codorului, i zgomotul de granularitate, care apare datorit variaiei de nivel sczut a semnalului. Aceste tipuri de zgomote de cuantizare sunt ilustrate n figura 1.3 :

Zgomot de suprapant

Zgomot granular

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

15

Figura 1.3 Tipuri de zgomot n modulaia delta[10] Tehnicile de modulaie delta adaptiv cel mai des folosite sunt modulaia delta cu pant variabil i modulaia delta cu adaptare instantanee. Modulaia delta cu pant variabil (CVSDM Continuously Variable Slope Delta Modulation ) are o schem de adaptare silabic n forma unui filtru digital de ordinul 1 cu o constant de timp mai mare de 4ms. Metoda CVSD are schema bloc din figura 1.2, n care ctigul amplificatorului are forma :

Gn = Gn 1 + f (bn 1 , bn 2 , bn 3 ) ,Modulaia delta cu adaptare instantanee are ctigul :

(1.5)

unde funcia f() ia valorile 1 sau 0 dup cum bn-1, bn-2 , bn-3 sunt sau nu toate de acelai semn.

G n = G n 1 M (bn 1 , bn 2 ) ,pentru predicia de suprapant, i subunitar pentru predicia de granularitate.

(1.6)

unde M ia una din dou valori dup cum bn-1, bn-2 sunt sau nu de acelai semn : M va fi supraunitar Deosebirea dintre cele dou metode este c adaptarea silabic este mai lent, avnd ca efect micorarea zgomotului de granularitate, dar i creterea zgomotului de suprapant. La adaptarea instantanee crete zgomotul de granularitate, dar algoritmul se adapteaz rapid la variaiile de suprapant.

1.4. Metode i standarde de compresie a semnalului vocalCodarea predictiv DPCM i cea adaptiv ADPCM descrise anterior, din cauza faptului c ele reduc debitul de date prin codare, se folosesc de asemeni i n procesul de compresie a semnalului vocal. Bazat pe tehnica ADPCM, mai exist o metod de compresie pe subbenzi numit SB-ADPCM. Lrgimea de band disponibil este mprit pe mai multe subbenzi separate, pe care apoi este aplicat algoritmul adaptiv de modulare diferenial a impulsurilor n cod, crescnd astfel acurateea codrii precum i lrgimea de band care poate fi transmis. Rata de date la aceste metode variaz ntre 64kbps i 48kbps. O alt metod de compresie este numit compresia prin transformri, n care se urmrete mprirea semnalului de la intrare n segmente sau blocuri i obinerea unei transformri digitale pentru fiecare segment sau bloc de date considerat. Pentru fiecare segment se calculeaz anumii coeficieni de transformare, care vor condensa energia semnalului i vor fi transmii pe canalul de comunicaie. Principiul compresiei prin transformri, ilustrat n figura 1.4, este urmtorul : Dac la intrare avem un vector N-dimensional U(1..N), cu valoare medie nul, printr-o transformare liniar A obinem un vector complex V(1..N) cu componente care sunt necorelate mutual.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

16

Componentele din vectorul V se cuantizeaz independent i se transmit pe canal. La receptor, vectorului Vc obinut din cuantizarea lui V i se aplic o transformare invers B pentru a recompune aproximarea vectorului iniial U, care este Ur.

U u(1) u(2) . . u(N)

V v(1) v(2) . . v(N)

Vc vc(1) vc(2) . . vc(N)

Ur ur(1) ur(2) . . ur(N)

Tr A

Q

Tr B

Figura 1.4 Algoritmul de compresie prin transformri[6] Problema care se pune n continuare este de a obine matricile A i B precum i a cuantizorului optimal Q, astfel nct valoarea medie ptratic a distorsiunii ntre vectorii U i Ur s fie minim. Algoritmul optimal a fost gsit de ctre Karhunen i Loeve, numindu-se transformarea KL. Algoritmul KL nefiind o transformare rapid, se nlocuiete n multe abordri prin alte transformri unitare, cum ar fi transformrile de tip sinus, cosinus, DFT, Hadamard sau Slant. O tehnic des folosit att ca metod de compresie, ct i ca metod de analiz i sintez a semnalului vocal este tehnica prediciei liniare LPC ( Linear Prediction Coding ). Tehnica se bazeaz pe separarea semnalului de excitaie de semnalul corespunztor tractului vocal, determinarea unor parametrii de aproximare numii coeficieni LPC i transmiterea acestora pe canalul de comunicaie. La receptor, decodorul va prelua aceti parametrii i i va reconverti n forma de und iniial. Calitatea obinut cu aceast metod nu este foarte ridicat, tehnica funcionnd cu aproximaii, dar rata de bit este mult mbuntit. Printre metodele care folosesc tehnica prediciei liniare amintim : Codorul de semnal vocal folosind predicia liniar cu cod excitat CELP ( Code Excited Linear Prediction ) este o tehnic reprezentativ de compresie a vorbirii ; este folosit n SUA (Standardul Federal 1016) i poate comprima vorbirea pn la 4,8 kbps. Standardul G.728 se bazeaz pe o schem de cuantizare vectorial numit predicie liniar cu cod excitat de ntrziere mic LD-CELP ( Low Delay Code Excited Linear Prediction ). Standardul opereaz la 16 kbps dar lrgimea de band este limitat la 3,4 kHz. Aceste metode bazate pe LPC folosesc cuantizarea vectorial cu dicionare de coduri ( code books ) att la transmitor, ct i la receptor. n standardul 1016, bazat pe metoda CELP, diferena dintre valoarea eantionului i cea gsit n dicionar e comprimat i transmis mpreun cu indexul valorii din dicionar. Calitatea standardului e comparabil cu cea dat de metoda ADPCM. Standardul Federal 1015 al SUA folosete versiunea simpl a codrii liniar predictive, care poateCoala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

17

opera la viteze de 2,4 kbps. Din cauza aproximaiilor n codare, calitatea este mai slab dect n cazul metodelor bazate pe CELP.

1.5. Metode de analiz a semnalului vocalinnd cont c semnalul vocal este cvasistaionar pe segmente scurte de timp, adic i pstreaz proprietile nealterate pe parcursul fiecrui interval, metodele actuale de prelucrare a semnalului vocal folosesc aa-numita analiz pe termen scurt. Pentru a aborda aceast modalitate de analiz, semnalul vocal este mprit n segmente cu lungimea de 10-30 ms, pe parcursul crora semnalul se consider staionar. Extragerea informaiei din cadrul segmentelor de timp se face folosind o funcie fereastr, care are rolul de ponderare a parametrilor semnalului cu accentuarea valorilor corespunztoare eantioanelor din centrului ferestrei (segmentului considerat) i diminuarea celor corespunztoare marginilor ferestrei. Aceasta se face n scopul obinerii unei estimri netezite a parametrilor, care s permit trecerea fin de la o secven de parametrii la urmtoarea, corespunztor segmentelor de semnal considerate. n acelai scop se folosete i intercalarea segmentelor pe axa timpului, n acest caz nceputul unui segment suprapunndu-se peste sfritul segmentului anterior. Acest tip de analiz se numete analiz cu fereastr glisant . Funciile fereastr cele mai uzuale sunt : fereastra Hamming, Hanning, fereastra cosinus. Aceste funcii au o form gaussian (prezentat n figura 1.6) pentru a asigura ponderarea valorilor centrat pe mijlocul ferestrei.

y

Figura 1.6 Funcie fereastr utilizat n ponderare[2] x Mai departe, analiza semnalului vocal poate fi fcut n dou moduri, innd cont de domeniul de analiz: n domeniul timp i n domeniul frecven. Analiza n domeniul timp presupune determinarea proprietilor semnalului vocal din studierea formei de und a semnalului, privit ca variaia valorilor eantioanelor vocale n funcie de timp. Analiza n domeniul frecven presupune determinarea spectrului de frecvene a semnalului i determinarea parametrilor dorii pe baza formei spectrale.

1.6. Analiza n domeniul timp a semnalului vocal

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

18

Prin analizarea direct a formei de und a semnalului se pot extrage urmtorii parametrii: amplitudinea maxim i medie, energia semnalului vocal, numrul trecerilor prin zero i frecvena fundamental. Amplitudinea semnalului ne d informaii despre prezena sau absena semnalului vocal, despre faptul c semnalul este sonor sau nesonor pe segmentul considerat. n cazul sonor (rostirea unor sunete vocalice) amplitudinea este mare, pe cnd n cazul sunetelor nesonore (zgomote, rostire de consoane) amplitudinea este redus. Amplitudinea medie pentru N eantioane se calculeaz astfel: M ( n) = unde: 1 N

m=

| x(m) | w(n m)

,

(1.7)

x(m) este eantionul curent al semnalului vocal, iar w(n-m) este fereastra utilizat n segmentul considerat.

Energia semnalului este util n determinarea caracteristicilor de putere transportat a semnalului vocal. Pentru un semnal cu valoare medie nul, energia pe termen scurt se definete astfel E ( n) = 1 N

m =

[ x(n) w(n m)]

2

.

(1.8)

Segmentele sonore (vocalele) au o energie medie ridicat, pe cnd consoanele au energie sczut. Pentru majoritatea fonemelor, energia se concentreaz n banda de frecvene ntre 300 i 3000 Hz. Numrul trecerilor prin zero este util pentru determinarea caracteristicilor de frecven n interiorul unui segment de timp. Numrul trecerilor prin zero se calculeaz astfel:N 1 n=0

NTZ =

[1 sgn( s(n + 1)T ) sgn( s(nT ))]2+ 1, n 0 sgn( n) = 1, n < 0

,

(1.9)

unde sgn(n) este funcia semn: . (1.10)

Numrul trecerilor prin zero este o caracteristic ce se folosete n recunoaterea vorbirii, precum i n determinarea caracterului sonor/nesonor. n interiorul segmentelor sonore numrul trecerilor prin zero este mai redus, n timp ce n segmentele nesonore acest parametru este mai ridicat. Frecvena fundamental este un parametru deosebit de important folosit att n sinteza ct i n recunoaterea vorbirii. Frecvena fundamental corespunde cu periodicitatea semnalului vocal. Determinarea acestui parametru nu se poate face ntotdeauna cu exactitate, din cauza variabiliti semnalului vocal chiar pe poriuni scurte de timp. Rostirea vocalelor prezint o frecven fundamental ce poate fi determinat, pe cnd consoanele, care sunt rostiri neperiodice, nu au frecven fundamental.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

19

Dintre metodele uzuale de determinare a frecvenei fundamentale a semnalului vocal amintim urmtoarele: A. Metoda autocorelaiei Metoda se bazeaz pe calculul funciei de autocorelaie a semnalului vocal, care ne d informaii despre interdependena temporal a eantioanelor. Funcia de autocorelaie se definete astfel: Rn ( k ) = undeN k 1 m=0

[ x(m + n)w(m)][ x(n + m + k )w(m + k )]

.

(1.11)

x(n) este valoarea eantionului de semnal, iar w(m) este funcia fereastr utilizat.

Funcia de autocorelaie prezint maxime la intervale de timp egale cu perioada semnalului. Determinarea acestor maxime i msurarea distanei dintre ele conduce la determinarea frecvenei fundamentale a semnalului. A. Metoda funciei diferen de amplitudine medie Metoda se bazeaz pe calculul funciei diferen de amplitudine medie, care are expresia: D (n) = 1 NN 1 k =0

| s

k

sk n |

, cu 0 n N 1

.

(1.12)

Funcia diferen de amplitudine medie D(n) prezint minime la distan egal cu perioada semnalului, i are avantajul c se poate calcula mai rapid dect funcia de autocorelaie. B. Metoda cu limitare central Metoda urmrete simplificarea calculelor prin reinerea n procesul de calcul doar a eantioanelor de semnal ce depesc n valoare absolut o anumit valoare de prag. Apoi semnalul se accentueaz n felul urmtor: valorile pozitive se adun cu valoarea de prag, iar din cele negative se scade valoarea de prag P: x ( n) + P, x ( n ) > 0 x ( n) = x ( n) P, x ( n ) < 0 cele negative cu o valoare minim. Dup faza de accentuare, se calculeaz funcia de autocorelaie definit anterior, ale crei maxime se vor putea determina mult mai uor. De asemeni, se poate utiliza cu bune rezultate o metod combinat n care dup limitarea central se aplic metoda funciei diferen de amplitudine medie. (1.13)

n varianta metodei cu limitare infinit, valorile pozitive se nlocuiesc cu o valoare maxim, iar

1.7. Analiza n domeniul de frecven a semnalului vocalCoala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

20

Analiza n domeniul frecven a semnalului presupune descompunerea semnalului n componente de frecven cunoscut, cum este cazul analizei Fourier, sau n componente a cror comportare n frecven este cunoscut, cum e cazul analizei bazate pe filtre digitale. Parametrii obinui n urma descompunerii semnalului n componente difer de cazul analizei n domeniul timp, cele dou abordri fiind complementare. Principalele metode folosite n cadrul analizei n domeniul frecven sunt: analiza prin banc de filtre, analiza Fourier, analiza LPC, analiza cepstral i analiza perceptual.

1.8.Analiza prin banc de filtre digitaleAnaliza prin banc de filtre digitale are ca scop descompunerea semnalului n benzi de frecven i determinarea ponderii componentelor din aceste benzi n semnalul iniial, de unde se va putea trage o concluzie asupra comportrii n frecven a semnalului vocal. Schema bloc a unui astfel de analizor este dat n figura 1.7:FTB 1 Transformare neliniar

x1(n)

FTB 2

Transformare neliniar

x2(n)

x(n) . . . . . .Transformare neliniar

xN(n)

FTB N

Figura1.7 Schema bloc a analizorului cu banc de filtre[1] Semnalul iniial x(n) este descompus n N benzi de frecven prin intermediul filtrelor treceband FTB1...FTBN. Fiecare band este supus apoi unei transformri neliniare pentru deplasarea spectrului ctre domeniul frecvenelor joase. Vectorii rezultai xk(n) pentru fiecare subband vor fi analizai separat, iar n vederea sintezei sau recunoaterii li se va aplica n continuare anumii operatori matematici (netezire, normalizare). Deseori se folosete calculul energiei vectorilor rezultai pentru a determina ponderea lor n alctuirea semnalului iniial.

1.9.Analiza FourierAnaliza Fourier este cea mai rspndit metod de analiz a semnalului vocal pentru c ea ofer imaginea complet a componentelor semnalului pe scara frecvenei, rezultnd astfel spectrul de frecveneCoala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

21

asociat. Analiza Fourier se bazeaz pe proprietatea unui semnal periodic de a putea fi descompus n componente sinusoidale, aa cum va fi expus n capitolul 2 al prezentului referat. Aceast metod de analiz se bazeaz pe calculul transformatei Fourier discrete, de forma [Mat01]:N 1 n =0

X (k ) = x(n)e j 2nk / Nunde:

, k = 1,2,...,N ,

(1.14)

x(n) reprezint eantioanele de semnal,

X(k) este valoarea componentei k din spectrul de frecvene, N este numrul de eantioane considerate, iar j este unitatea imaginar. Calculul se face n domeniul complex, rezultnd pentru fiecare component X(k) dou valori reale corespondente:

-

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

n practic se folosete mai mult spectrul amplitudinilor, sau spectrul de putere al semnalului. Aceasta deoarece urechea uman e mai puin sensibil la spectrul de faze al unui semnal vocal. Cum pentru fiecare k e necesar calculul sumei (2.11) cu N valori, rezult o complexitate a algoritmului de calcul de forma O(N2). Pentru rapidizare sunt disponibili diveri algoritmi, dintre care cei mai cunoscui sunt algoritmii FFT (Fast Fourier Transform- Transformata Fourier Rapid) cu decimare n frecven sau decimare n timp. Algoritmul FFT se bazeaz pe calculul recursiv al valorilor spectrale [Tod05] i reduce complexitatea algoritmului la O(Nlog2N). Pe baza aflrii spectrului de frecvene se pot determina o serie de parametrii specifici, cum ar fi anvelopa spectral sau forma i valoarea formanilor, ce ne dau informaii despre comportamentul n domeniul frecvenei a semnalului pe segmentul de timp considerat. Formanii maximele locale ale anvelopei spectrale- vor fi pe larg prezentai n capitolul dedicat procesrii semnalului vocal din cadrul acestui referat. nainte de calculul spectrului, semnalul poate fi prelucrat printr-un filtru trece-sus, realizndu-se aa-numita preaccentuare a semnalului. Aceast operaie este efectuat n scopul accenturii componentelor de frecven ridicat, care de regul sunt atenuate n procesul vorbirii de ctre sistemul fonator .

1.10. Recunoaterea vorbirii

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

22

Recunoaterea vorbirii este procesul de extragere automat a informaiei lingvistice coninut de o und vocal folosind calculatoare sau circuite electronice. Informaia lingvistic, cea mai important informaie din semnalul vocal, se mai numete i informaie fonetic. ntr-un sens mai larg, recunoaterea vorbirii include i recunoaterea vorbitorului, ceea ce implic extragerea informaiilor individuale caracteristice persoanei care vorbete. Metodele de recunoatere automat a vorbirii sunt studiate de mult vreme, cu scopul principal de a realiza sisteme de interaciune om-main. Prima lucrare tinific referitoare la recunoaterea vorbirii a fost publicat n 1952 i descria dispozitivul Audrey al firmei Bell Labs. Acesta realiza recunoaterea cifrelor. De atunci cercetrile legate de recunoaterea vorbirii s-au intensificat, aprnd ntre timp primele sisteme conversaionale om-main. Un astfel de sistem este compus dintr-un sintetizor i un dispozitiv care realizeaz recunoaterea vorbirii. Aceast configuraie d rezultate foarte bune datorit faptului c erorile pot fi detectate cu ajutorul auzului i corectate imediat.

1.11. Avantajele recunoaterii vorbiriiCa i sintetizoarele vocale, dispozitivele care realizeaz recunoaterea vorbirii au patru avantaje specifice: 1) Comanda vocal este uor de realizat deoarece nu implic eforturi deosebite, cum este cazul scrisului sau lucrului cu butoane. 2) Vocea introduce informaiile de trei pn la patru ori mai repede dect mainile de scris i de opt pn la zece ori mai repede dect scrisul de mn. 3) Informaia poate fi introdus chiar i cnd utilizatorul se mic sau face alte activiti care implic folosirea minilor, picioarelor, ochilor sau urechilor. 4) Costurile introducerii informaiei sunt mici, deoarece implic folosirea unui microfon sau telefon. Mai mult, pentru o comand de la distan se pot folosi reelele telefonice existente sau Internetul. n ciuda acestor avantaje, recunoaterea vorbirii are i unele puncte slabe. De exemplu, conversaia nu este tiprit i este necesar anularea zgomotului n condiiile unui mediu zgomotos.

1.12. Dificulti ntmpinate n procesul recunoaterii vorbiriiDificultile ntmpinate n procesul recunoaterii vorbirii sunt:

1)

Probleme legate de coarticulare. Spectrul unui fonem ntr-un cuvnt sau ntr-o propoziie este influenat de fonemele

vecine ca o consecin a coarticulrii. Un astfel de spectru este foarte diferit de acelea ale fonemelor izolate sau ale silabelor deoarece organele articulatorii nu se mic la fel n vorbirea continu ca i n cazul rostirilor izolate. Cu toate c aceast problem poate fi evitat n cazul recunoaterii de cuvinteCoala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

23

izolate folosind cuvinte ca i uniti lingvistice de baz, performanele recunoaterii continue depind de gradul de rezolvare al acestui obstacol. n acest din urm caz, dificultile sunt date de omisiunile din vorbire, cauzate de o rostire rapid, n care vorbitorul leag cuvintele mpreun nghiind unele silabe.

2)

Dificulti n segmentare. Spectrul se schimb continuu de la o fonem la alta datorit interaciunilor dintre ele.

Spectrul semnalului vocal poate fi comparat cu un ir de litere scris de mn. n ambele cazuri este dificil de determinat marginile fonemei. Cu toate c consoanele nesonore pot fi segmentate relativ uor pe baza variaiei spectrale, nu acelai lucru se poate spune i despre sunetele sonore. 3) Caracteristicile individuale i ali factori care cauzeaz variabilitatea semnalului vocal. Caracteristicile acustice variaz de la vorbitor la vorbitor chiar i n cazul aceluiai cuvnt rostit. Acest fapt se datoreaz diferenelor care apar ntre modalitile de rostire, ct i organelor articulatorii. Pentru ca lucrurile s fie mai complicate, foneme diferite rostite de vorbitori diferii pot avea acelai spectru. Sistemele de transmisiuni sau zgomotul afecteaz de asemenea caracteristicile fizice ale vocii. 4) Cunotine lingvistice insuficiente. Caracteristicile fizice ale semnalului vocal adesea nu conin suficient informaie fonetic n i despre ele. Vorbirea n propoziii se bazeaz pe anumite reguli sintactice pe baza crora asculttorul poate prezice urmtorul cuvnt. Ceea ce se cunoate n momentul actual legat de structura lingvistic a rostirilor nu ne permite s modelm mecanismul de folosire a constrngerilor lingvistice n perceperea vorbirii.

1.13. Clasificarea sistemelor de recunoatere a vorbiriiRecunoaterea vorbirii se poate clasifica n recunoatere de cuvinte izolate, caz n care sunt identificate cuvinte rostite individual, i recunoatere continu, n care sunt recunoscute secvene rostite n mod continuu. Recunoaterea vorbirii continue se mparte la rndul ei n dou pri: transcriere i nelegere. Recunoaterea de cuvinte izolate are drept scop final recunoaterea corect a fiecrui cuvnt rostit, n timp ce recunoaterea continu a vorbirii urmrete nelegerea sensului propoziiilor. Ca urmare, n acest din urm caz este nevoie de cunotine lingvistice puternice. Dintr-un alt punct de vedere recunoaterea vorbirii continue se poate clasifica n recunoatere independent de vorbitor i recunoatere dependent de vorbitor. Sistemele din prima categorie pot

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

24

recunoate rostiri ale oricrei persoane, n timp ce n cel de-al doilea caz, referinele (modelele) sunt altele pentru fiecare vorbitor. Ca i referine (modele) se poate utiliza o gam larg de uniti lingvistice, ncepnd cu fonemele i terminnd cu cuvintele. Cnd sunt folosite cuvintele, semnalul de intrare digitizat este comparat cu fiecare dintre referine, pn cnd este gsit una care se potrivete. Algoritmii bazai pe foneme n schimb, analizeaz intrarea ca pe un ir de sunete pe care l convertesc n cuvinte cu ajutorul unui dicionar bazat pe pronunie. Cnd sunt folosite cuvintele ca i uniti lingvistice de baz procentul de recunoatere este ridicat deoarece este evitat problema coarticulrii ntre cuvinte. Un vocabular mare necesit mai mult memorie i mai multe calcule, fcnd antrenarea destul de dificil. De asemenea, cuvintele ca i uniti lingvistice, nu pot rezolva problema coarticulrii n cazul vorbirii continue. Folosirea fonemelor ca i referine nu mrete cu mult necesitile de memorie i nici numrul de calcule, iar antrenarea poate fi fcut mai eficient. Mai mult dect att, poate fi luat n consideraie i coarticularea n interiorul cuvintelor i ntre cuvinte. Deoarece nu au fost stabilite nc reguli pentru coarticulare, sunt necesare mai multe foneme ca i uniti lingvistice n funcie de context. Alegerea celor mai potrivite uniti lingvistice pentru recunoaterea vorbirii depinde de tipul recunoaterii (dac e recunoatere de cuvinte izolate sau de vorbire continu) i de mrimea vocabularului.

1.14. Recunoaterea continu a vorbiriiCele mai complexe sisteme de recunoatere sunt cele care realizeaz recunoaterea continu a vorbirii. n acest caz utilizatorul rostete un mesaj, iar sistemul trebuie s fie capabil s-l neleag. Printre problemele dificile de rezolvat se numr: determinarea capetelor rostirii (vorbitorul vorbind ntro manier liber, fr constrngeri), efectele datorate coarticulrii sau funcionarea n condiii de zgomot. Procesul de recunoatere a vorbirii are la baz o cutare al crei scop este gsirea unei secvene de cuvinte care are probabilitatea cea mai mare de a fi generat semnalul vocal de la intrarea sistemului. Cutarea se face pe baza aa numitelor surse de cunotine. Acestea pot fi: un dicionar care conine cuvintele care pot fi recunoscute, fiecare cuvnt fiind reprezentat ca i o secven de foneme, un model lingvistic, care ataeaz o anumit probabilitate fiecrei secvene de cuvinte i un model acustic, care modeleaz relaia dintre vectorii de parametri i foneme.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

25

Figura 1.8 Structura unui sistem de recunoatere a vorbirii[4] Procesul de recunoatere poate fi modelat ca i un sistem de comunicaie mprit n patru etape (Figura 1.8): generare text, producere vorbire, procesare acustic i decodare lingvistic. Vorbitorul se presupune a fi un traductor care transform n vorbire textul gndurilor pe care intenioneaz s le comunice interlocutorilor. Din punctul de vedere al sistemului de comunicaie gndurile sunt sursa de informaie. Conform teoriei informaiei, secvena de date se transmite pe un canal, care acioneaz asupra structurii ei. n cazul sistemului de recunoatere canalul acustic este format din partea de producere a vorbirii i cea de procesare acustic. La intrarea canalului avem secvena de cuvinte W, care la ieire este convertit n secvena de observaii acustice Y, decodat mai apoi n secvena estimat de cuvinte W , cu ajutorul decodorului lingvistic. Se poate scrie c W = arg max P(W | Y ) .w

(1.14)

innd cont de regula lui Bayes, ecuaia de mai sus se transform n

P(Y | W ) P(W ) W = arg max . P(Y ) waposteriori este W = arg max P (Y | W ) P(W ) .w

(1.15)

Cum P(Y) este independent de W regula de decodare bazat pe o estimare de tip maximum

(1.16)

Primul termen din dreapta ecuaiei de mai sus corespunde modelului acustic i estimeaz probabilitatea unei secvene de observaii acustice pe baza unui ir de cuvinte. Cel de-al doilea termen corespunde modelului lingvistic i descrie probabilitatea unei secvene de cuvinte. Astfel de modele pot conine constrngeri sintactice i semantice n funcie de cerinele sistemului de recunoatere. Cnd sunt folosite numai constrngeri semantice modelul lingvistic se numete gramatic.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

26

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

27

2. METODOLOGIA I OBIECTIVELE CERCETRII 2.1. Realizarea caselor inteligentePrincipala caracteristica a unei case inteligente este utilizarea noilor tehnologii. Una din tehnologiile care ar putea facilita traiul intr-o casa este tehnologia de recunoaste a vocii din sunet.Aceasta tehnologie ar permite controlul asupra tuturor dispozitivelor din casa.Controlul dat se va efectua prin comenzile vocale.In acest mod nu va mai fi nevoie de a apasa un buton care va aprinde,stinge sau conecta sau deconecta vreun dispozitiv. Idea data de a controla dispozitivele din jur doar cu ajutorul vocii este una universala,deoarece tehnologia data poate fi intrebuinata nu numai in case dar si in aproximativ toate locurile unde omul pentru a primi un rezultat se foloseste de dispozitive comandate prin butoane. Tehnologia de recunoastere a vocii este un pas spre dezvoltare.Sa luam spre exemplu utilizarea tehnologii date in controlul masinilor.Comenzile ca stinga,dreapta,inainte,inapoi,stop,porneste ar usura condusul autovehicolului si ar oferi un alt grad de confort pentru conducator. Ins revenind la ideea initial de implementarea a tehnologii date in casele moderne trebuie de mentionat faptul c dispozitivul dat va controla peste 90% de procente din toata tehnica din casa.Aa deci,tehnologia de recunoastere a vocii va functiona dupa un principiu foarte uor.Astfel,pentru controlul aparatelor sunt nevoie aproximativ comenzile:start,stop,aprinde,stinge,mai tare si mai incet.In acest fel pentru comenzile date care reprezinta desigur niste cuvinte care vor fi rostite la timpul lor in dispozitivul dat de recunoastere a vocii vor fi create modele.Modelele date vor fi inregistrate in memoria programului cu care va functiona tehnologia dat pentru a le putea compara programul cu cuvintele sau comenzile care vor fi rostite de diferite persoane.Odata identificate cuvintele, programul in dependenta de comanda pronuntata va efectua sarcina propriu zis. In continuare se va analiza procesul de recepionare,identificare si indeplinire a comenzilor de dispozitivul de recunoastere a vocii. Principalele sale functii la care se va face referinta vor fi de comand si control.

2.2. Analiza vorbiriiPentru analiza vorbirii trebuie mai intii sa cunoastem continutul fregventei cuvintului.Astfel am folosit filtrul trece-band de ordinul 4 Chebyshev.Crearea unui filtru de ordinul 4 este posibil prin conectarea in cascad a doua filtre utilizind principiul 2 de transformare implementat in ecuatia diferential. y1(n)=b11x1+ b12x1(n-1)+ b13x1(n-2)- a11y1(n-1)- a12y1(n-2)

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

28

y2(n)=b21x2+ b22x2(n-1)+ b23x2(n-2)- a21y2(n-1)- a22y2(n-2) yout(n)=gy2(n) Unde coeficientii a si b au fost obinui in programului Matlab cu ajutorul comenzilor: [B,A] = cheby2(2,40,[Freq1, Freq2]); Cind 2 defineste filtrul de ordinul 4,40 defineste banda de taiere a decibelilor iar Fregv.1 si Fregv.2 reprezinta fregventele de normalizare a taierii. [sos2, g2] = tf2sos (B2, A2,'up','inf');

2.3. Calcularea amprentei digitaleDeoarece memoria la Mega32 este limitat, avem nevoie de o metoda eficien de codificare a informaiei relevante din cuvintul pronuntat.Informatia relevanta din fiecare cuvint a fost codificata intro amprent.Pentru a compara amprentele am utilizat formula distaei Euclidiane dintre amprenta cuvintului rostit si amprenta inregistrta in dictionar pentru a gasi cuvintul potrivit.

Formula distantei Euclidiene: P=(p1,p2...pn) Q=(q1,q2...qn)

(2.1)

Unde P este amprenta din dictionar si Q este o amprenta a unui cuvint simplu iar pi si qi sunt datele necesare creerii amprentelor mentionate anterior.Pentru a vedea daca doua cuvinte sunt asemanatoare utilizam distanta Euclidian pentru ambele cuvinte si dac ele au o distant minima intre ele atunci ele sunt identice.Formula dat cere ptratul diferenei dintre doua puncte dar deoarece utilizm puncte fixe aritmetice am observat ca ptratul distanei produce numere prea largi ceea ce duce la incarcarea variabilelor peste masura.Astfel am implementat un altfel de calcul al distanei Euclidiene ce const prin scoaterea sumei de sub radacina patrat astfel reducind formula de calcul la:

D=

(2.2)

2.4. Legatura Hardware/Software:Semnalul provenit de la microfon trebuie sa fie amplificat.Pentru aceasta sau utilizat amplificatoarele operationale LMC 711 si LMC 385.Amplficatorul LMC 711 are o viteza de crestere a tensiunii la iesire de 0,015V/s iar LMC 385 are o viteza de 0.3V/s.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

29

Fig.2.1 Schema electrica a microfonului[4] Amplificatorul LMC 385 are o vitez de crestere a tensiunii la iesire mai bun si ofera un raspuns mai bun la semnalul de intrare, astfel amplificatorul dat l-am folosit in circuitul dat. Procesarea semnalului de vorbire necesit o multime de calcule ceea ce inseamn ca este nevoie de un procesor rapid , ins este nevoie sa operm cu un processor de 16MHz. In scopul de a reduce la minim numarul de cicluri am folosit filtrarea semnalului audio ceea ce a dus la scrierea majoritar a codului in assembler.Toate cele 10 filtre digitale au fost scrise in codul assembler marind astfel eficacitatea si performanta in raport cu implementarea codului C.

2.5. Modelul Software/Hardware

Fig.2.2 Schema bloc a dispozitivului de recunoastere a vocii[5] Algoritmul de baz al codului este de a verifica intrarea ADC-ului la o rata de 4Khz. n cazul n care valoarea la ADC este mai mare dect valoarea de prag este interpretat de program ca nceputul unui cuvnt de o jumtate de secund. Cuvntul prob trece prin 8 filtre trece band i este transformat ntr-o amprent digital.Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

30

Cuvinte pentru a fi potrivite sunt stocate ca amprentele digitale ntr-un dicionar, astfel c amprentele digitale prelevate sa poata fi comparate mpotriva lor mai trziu. Odat ce o amprenta digitala este generata de un simplu cuvnt ,ea este comparat cu amprentele digitale din dictionar i folosind modificarea calculului distanei euclidiene se gsete amprenta n dicionar, care este cea mai apropiata. Bazat pe cuvntul care corespunde cel mai bine programul trimite un semnal PWM catre masina pentru a efectua operaiuni de baz ca stnga, dreapta, dute, opreste, sau invers.

2.6. Pragul initial de calculLa pornire, ca parte a initializarii programul citete intrare ADC folosind timercounter0 i acumuleaz de 256 de ori valoarea sa.Valoarea medie a ADC a fost calculat fr a face multiplicari sau impartiri.Trei valori medii sunt luate fiecare cu o ntrziere de 16.4msec ntre probe. Dup ce sau primit trei valori medii, valoarea de prag trebuie s fie de patru ori valoarea numrului median.Valoarea de prag este util pentru a detecta atunci cnd un cuvnt a fost spus sau nu.

2.7. Generarea amprentei digitaleProgramul consider c un cuvnt a nceput s fie identificat atunci cnd valoarea convertit din ADC depete valoarea de prag. Fiecare prob din ADC este transformata ntr-un integer i stocat n variabila Ain. Valoarea Ain este trecut prin opt filtre Chebyshev trece-band de ordinul 4 cu banda de oprire de 40dB pentru 2000 de probe(jumtate de secund) odat ce cuvntul a fost detectat. Cnd un filtru este folosit ieirea lui este ridicat la ptrat i aceast valoare este adunat cu ptratele precedentelor valori de la iesirea filtrului. Dup 125 de probe valoarea acumulat este stocat ca punct de date n amprenta acestui cuvnt. Dup asta acumulatorul este curat i procesul pornete din nou. Dup prelucrarea a 2000 de probe se obin 16 puncte pentru fiecare filtru, n aa fel fiecare cuvnt este divizat n 16 pri.Codul nostru este bazat pe folosirea a 10 filtre i deoarece fiecare returneaz 16 puncte de date, fiecare amprent va fi alctuit din 160 de puncte de date.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

31

2.8. Implementarea filtrelor

Fig.2.3 Schema bloc de utilizarea filtrelor[6] Am ales filtrul Chebyshev de ord.4 cu o banda de stop de 40 dB de cand am obtinut tranziii foarte rapide dupa frecvena de taiere. Am proiectat 10 filtre - unul trece-jos cu o frecvena de taiere 1,8KHz, unul trece-sus cu o frecvena de taiere 200Hz, si 8 filtre trece-band cu o band de trecere de 200Hz, si distribuite ficare de la 200Hz la 1,8Khz(200-400,400-600..1,6-1,8). Am proiectat filtrele in asa mod deoarece se tie ca cele mai importante frecvene in vorbire se afla in primii 2KHz, deoarece aici se gasesc primul si al doilea formatori ai vorbirii(frecvenele de rezonan). aceasta ne permite s prelucram(procesam) semnalul la o frecvena de 4KHz si ne da indeajuns timp sa implimentm 10 filtre. Pentru implimentarea filtrelor Chebyshev de ord.4, am legat in cascada doua filtre IIR de ord.2 pentru a obine un filtru de ord.4 am folosit un cod assembler pentru filtre IIR de ord.2. Am generat coeficienii filtrului IIR de ord.4 utilizand Matlab cum este descris in seciunea matematic de mai sus. Coeficienii sus numii sunt numere in virgul mobila i pentru ai transforma in virgula fixa inmultim aceste numere cu 256 si le rotungim la cel mai apropiat intreg folosind macro-ul float2fix. Virgula fixa a fost folosita in locul virgulei mobile deoarece calculele MEGA32 in virgula mobila sunt foarte lente iar noi avem nevoi de putere mare de procesare pentru fintrele IIR. MEGA32 are doar 2KB de memorie RAM si un cuvant prelucrat la frecventa de 4KHz va ocupa in memorie exact 2KB. In particular pentru a crea o amprenta a unui cuvant trebuie ca iesirea ADC-ului sa fie prelucrata cu toate filterle mai rapid ca pasul de discretizare a ADC-ului de 250us. De altfel, am modificat filtrele putin, prin alternarea coeficientului de amplificare, pentru a avea amplificarea filtrului de 20 in loc de 1. Sa facut asta pentru a proteja iesirea filtrului de la subnivel la cadera la zero cand este ridicat la patrat. Iesirea filtrului a fost ridicata la patrat in special pentru a stoca intensitatea sunetului nu doar a amplitudinii. Pentru a reduce timpul de ridicare la patrat a iesirii filtrului sa luat si sa combinat cu funcia filtrului si inca cu acumularea patratului filtrului precedent au fost la fel puse in assembler pentru a reduce ciclurile de procesare. Cu toate astea, reducerea ciclului de procesare nu a fost indeajuns pentru

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

32

a implimenta toate cele 10 filtre, asa ca am incetat sa mai chemam filtrul trece-sus. Mai tarziu filtrul trece jos a fost eliminat deoarece zgomotul de frecventa joasa parea sa interfereze cu iesirea filtrului.

2.9. Algoritmul de recunoastere a vociiAlgoritmul de baza: Sunt doua faze: de invatare si de recunoastere Pentru a recunoaste un cuvant, vorbesti in microfon si creezi o amprenta dupa acelasi proces care iti da unul din acei vectori. Luam acestest vector, sai spunem X, si il comparam cu cele salvate mai devreme in dictionarul tau. Prin comparare am in vedere urmatoarele: patratul distantei Euclidiene intre X si vectorul stacat in dictionar. Vectorul din dictionar care este cel mai apropiat de X, cu alte cuvinte, are patratul distantei Euclidiene minim, a fost cel mai asemanator. Pentru a gasi patratul distantei Euclidiene, de obicei se ia diferenta(scaderea) fiecarui element in parte a celor doi vectori, ridicand la patrat diferenta, si facand suma tuturor diferentelor la patrat.

2.10. Structurarea intrariiInainte de a ne ingrijora despre convertarea intrarii din domeniul de timp intr-o amprenta, trebuie sa rezolvam o problema practica: Structurarea. Prin structurare, am in vedere cautarea fluxului de intrare la inceputul cuvantului. Aceasta este destul de greu, in principal de cauza ca zgomotul de fon complicau lucrurile, chiar si cand intr-o odaie este liniste. Cel putin, ce trebuie sa faci e sa monitorizezi forma undei de intrare si sa cauti o crestere a amplitudinii peste un anumit nivel. Un nivel bun al (treshold) poate fi un factor de 2-4 ori mai mare ca nivelul amplitudinii zgomotului de fon. Asadar, cum poti obtine una din aceste amprentele? Sunt cateva alternative. Una este utilizarea Transformarea rapida Fourier pentru a gasi spectrul puterii in domeniul de frecventa. Avantajul acestei metode esteca poti utiliza codul FFT. Alta optiune este utilizarea filtrelor trece banda, folosind cod ca cel de mai jos. Avantajul ultimei este ca necesita mult mai putin loc de pastrare a informatiei(nu este nevoie de depozitat chiar fiecare tranformare de la intrare intr-un buffer sau ceva de genul asta).

2.11. Metoda filtrului trece bandaAvantajul acestei metode este ca chiar este foarte simpla, si nu e nevoie sa depozitezi intreaga forma de unda, asa ca poti optine timpi mai mici de recunoastere. Iata ce trebuie de facut: folosind Matlab-ul cream, sa spunem filtre de ordinul 4 si le convertim intro forma ce are bune proprietati numerice(foarte important mai alest dupa conversia in virgula fixa). De exemplu: matlab>> [B1,A1] = cheby2(4,40,0.2); % lowpass with cutoff above 500 Hz matlab>> [B2,A2] = cheby2(2,20,[0.1 0.25]); % bandpass from 500 to 1000 HzCoala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

33

matlab>> [B3,A3] = cheby2(2,20,[0.25 0.45]); % bandpass from 1kHz to 1.7kHz matlab>> [B4,A4] = cheby2(2,20,[0.45 0.65]); % bandpass from 1.7kHz to 2.5kHz matlab>> [B5,A5] = cheby2(4,20,0.47,'high'); % highpass with cutoff below 2.5kHz matlab>> [sos1,g1] = tf2sos(B1,A1,'up','inf'); % create second-order filter sections... matlab>> [sos2,g2] = tf2sos(B2,A2,'up','inf'); matlab>> [sos3,g3] = tf2sos(B3,A3,'up','inf'); matlab>> [sos4,g4] = tf2sos(B4,A4,'up','inf'); matlab>> [sos5,g5] = tf2sos(B5,A5,'up','inf'); Pentru a vedea functia de transfer a filtrului se poate utiliza: matlab>> freqz(B1,A1,1000,8000); Matricile "sosN" si valorile "gN" sunt ceea ce ne trebuie. Iata sintaxa: sosx =[ b01 b11 b21 1 a11 a21 b02 b12 b22 1 a12 a22 ] pentru fiecare din aceste perechi sosN/gN scrim codul ANSI C in felul urmator: float filterN( float x ) { static float d01 = 0.0; static float d11 = 0.0; static float d02 = 0.0; static float d12 = 0.0; float y1, y2, t0, t1; /* first 2nd-order filter stage */ t0 = x - a11*d01 - a21*d11; y1 = b01*t0 + b11*d01 + b21*d11; d11 = d01; d01 = t0; /* second 2nd-order filter stage */ t1 = y1 - a12*d02 - a22*d12; y2 = b02*t1 + b12*d02 + b22*d12; d12 = d02; d02 = t1; return g*y2; // g is "gN" from tf2sos }

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

34

Pentru fiacare mostra luata din codul C chemi filterN(), ridici la patrat rezultatul, apoi il adaugi intr-un acumulator: y1 = filter1(x); s1 += y1*y1; Trebuie sa faci asta pentru, undeva 500 de mostre, mai apoi unim sau mai bine spus concatenam valorile s1..s5 in vectorul amprentei, si resetam s1..s5 la zero.(De fapt, empiric, este mai bine sa aplicam logaritmul magnitudelor la s1..s5 inainte de a depozita in amprenta. Aceasta mica modificare ridica precizia recunoasterii de la 60% la 100%). Repetand aceasta de 16 ori obtinem o amprenta de 80 din elmente.

2.12. Compararea AmprentelorOdata ce amprentele sunt create si stocate in dictionar cand un cuvant a fost pronuntat, este comparat cu o amprenta din dictionar. Pentru a efectua compararea chemam functia lookup(). Functia lookup() face o formula a pseudo-distantei Euclideane, calculan suma volurilor absolute al diferentelor dintre fiecare: amprenta si amprenta din dictionar. Dictionar contine mai multe cuvinte si functia lookup() trece prin toate si alege pe acela cu cel mai mic numar calculat. Am utilizat patratul calcularii corecte a distantei Euclideane. Iata cuvintele utilizate in dictionar: start,stop,inainte,stinga,dreapta. La inceput am folosit cuvinte in romana: start, stop, stanga, dreapta si back, dar multe din aceste cuvinte par sa fie foarte asemanatoare in frecventa de aceea algoritmul nu facea fata. Dupa asta am incercat sa folosim vocalele si am obtinut rezultate mai bune, dar totusi vroiam sa folosim cuvinte pentru ca erau directii, si asta nea adus la Hindi. n Fig.2.4 este reprezent schema electrica a dispozitivului de detectarea a vocii din sunet.

Fig.2.4 Schema electrica a dispozitivului de detectarea a vocii din sunet[9]

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

35

2.13. Rezultatele proiectuluiDeoarece era nevoie ca sa trecem valoarea din ADC prin toate filtrele mai rapid decat rata de discretizare, timpul cheltuit pentru calculele filtrului este foarte important. Trebuia sa rulam (trecem) prin 9 filtre in mai putin de 4000 de cicluri, care este un numar de cicluri disponibile atunci cand cand rezolutia ADC este de 4KHz. Functia de comparare a amprentelor nu are cerinte de viteza, de aceea ciclul temporal pentru asta a fost neimportant. Programul este cpabil sa recunoasca 5 cuvinte, dar uneori devine confuz si match cuvantul incorect daca cuvantul vorbit a fost pronuntat prea diferit fata de cuvantul memorat in dictionar. Ca o vaga estimare, programul recunoaste corect cuvantul aproximativ 70% din cazurile in care cuvantul a fost pronuntat corect. Programul recunoaste cu greu acelasi cuvant pronuntat de diferite persoane, insa dupa o mica experientare o persoana poate pronunta cuvantul cu o mica variatie pentru ca programul sa il poata recunoaste de cele mai multe ori. Pentru o pesoana aleatoare programul va returna un procent mai mic de recunoasteri corecte. In plus cuvintele din dictionar sunt cuvinte pronuntate de o singura persoana. Daca altcineva va pronunta aceleasi cuvinte , este o foarte mica probabilitate ca acestea sa fie recunoscute corect, ba chiar deloc.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

36

3. PRELUCRAREA SEMNALELOR CU AJUTORUL MICROCONTROLERULUIMicrocontrolerele din familia AVR prezint o organizare de tipul RISC executnd o instuciune / ciclu maina. Prezena unor blocuri interne ca: oscilator intern , timere , unitate UART , SPI , rezistoare pull-up , PWM (pulse widith modulation) , ADC , comparatoare, determin utilizarea acestor microcontrolere ntr-o gam foarte larg de aplicaii. Instruciunile acestei familii de microcontrolere au fost proiectate pentru a reduce dimensiunea unui program scris n limbaj C sau n limbaj de asamblare. Posibilitatea programrii memoriei FLASH i a memoriei EEPROM, determin ca aceste microcontrolere s aib o larg utilizare datorat costului mic de dezvoltare a unei aplicaii (timpul de proiectare scurt). O alt calitate remarcabil a acestor microcontrolere este consumul foarte mic de energie. Domeniul tensiunilor de alimentare este cuprins ntre 1.8 si 5V. Prezint 6 moduri diferite de stand-by ceea ce ne asigur c aceste microcontrolere nu vor consuma energie dect atunci cnd este nevoie. Controlul software al frecvenei garanteaz o vitez maxim de execuie atunci cnd este nevoie , iar n restul timpului microcontrolerul poate trece n stand-by unde consumul de energie este minim. Utilizarea acestor microcontrollere poate reduce semnificativ timpul de dezvoltare a unei aplicaii datorit prezenei pe acestea a unui bloc de depanare n timp real , circuitul aflndu-se chiar pe placa ce reprezint aplicaia. Se pot face n timp real operaii de watch asupra unor regitri , operaii de rulare pas cu pas , operaii de oprire n breakpoint. Sunt produse microcontrolere de uz general precum i microcontrolere cu funcii specializate. Printre cele mai utilizate microcontrolere de uz general putem specifica : ATMEGA 8 , ATMEGA 16 , ATMEGA 128, ATMEGA 162. etc. Microcontrolerele cu funcii specializate se mpart n mai multe categorii : - Ligthing AVR: conin un procesor de semnal i este special conceput pentru controlul motoarelor de curent continuu. - LCD AVR: conin un controler pentru adresarea dispozitivelor LCD - CAN AVR: conin implementat hardware o interfata CAN.

3.1. Atmega 32. ArhitecturaATmega 32 este un microcontroler CMOS de 8 bii de mic putere bazat pe arhitectura RISC AVR mbuntit.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

37

Dispune de un set de 131 instruciuni i 32 de registre de uz general. Cele 32 de registre sunt direct adresabile de Unitatea Logic Aritmetic (ALU), permind accesarea a dou registre independente ntr-o singur instruciune. Se obine astfel o eficien sporit n execuie (de pan la zece ori mai rapide dect microcontrorelerele conveionale CISC). Atmega32 este un microcontroler RISC pe 8 bii realizat de firma Atmel. Caracteristicile principale ale acestuia sunt: - 16KB de memorie Flash reinscriptibil pentru stocarea programelor - 1KB de memorie RAM

- 1024B de memorie EEPROM- dou numrtoare/temporizatoare de 8 bii - un numrtor/temporizator de 16 bii - conine un convertor analog digital de 10 bii, cu intrri multiple - conine un comparator analogic - conine un modul USART pentru comunicaie serial (port serial) - dispune de un cronometru cu oscilator intern - ofer 32 de linii I/O organizate n patru porturi (PA, PB, PC, PD). Structura intern general a controlerului este prezentat n Fig.1. Se poate observ c exist o magistral general de date la care sunt conectate mai multe module: - unitatea aritmetic si logic (ALU) - registrele generale - memoria RAM si memoria EEPROM - liniile de intrare (porturile I/O Lines) si celelalte blocuri de intrare/iesire. Aceste ultime module sunt controlate de un set special de registre, fiecare modul avnd asociat un numr de registre specifice. Memoria Flash de program mpreun cu ntreg blocul de extragere a instruciunilor, decodare si execuie comunic printr-o magistral proprie, separat de magistrala de date menionat mai sus. Acest tip de organizare este conform principiilor unei arhitecturi Harvad i permite controlerului s execute instruciunile foarte rapid. Modul Power-down salveaz coninutul registrelor, dar blocheaz Oscilatorul, dezactivnd toate celelalte funcii al chip-ului pan la urmatoarea Intrerupere Extern sau Reset hardware. n modul Power-save, timer-ul asincron continu sa mearg, permiind userului s menin o baz de timp n timp ce restul dispozitivului este oprit. n modul Standby , Oscilatorul funcioneaz n timp ce restul despozitivului este oprit. Acest lucru permite un start foarte rapid combinat cu un consum redus de energie. n modul stanby extins(Extended Stanby Mode), att Oscilatorul principal ct i timer-ul asincron continu sa funcioneze.Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

38

Memoria flash (On-chip) permite s fie reprogramat printr-o interfa serial SPI, de ctre un programator de memorie nonvolatil convenional, sau de ctre un program de boot On-chip ce ruleaz pe baza AVR. Programul de boot poate folosi orice interfa s ncarce programul aplicaie n memoria Flash de aplicaie. Combinand un CPU RISC de 8 bii cu un Flash In-system auto programabil pe un chip monolitic, ATmega 32 este un microcontroler puternic ce ofer o soluie extrem de flexibil i cu un cost redus n comparaie cu multe altele de pe pia. ATmega 32 AVR este susinut de o serie complet de instrumente de program i de dezvoltare a sistemului, care include: compilatoare C, macroasambloare, programe debug/simulare etc.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

39

Fig.3.1 Diagrama bloc microcontrolerului Atmega 32[4]

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

40

Fig.3.2 Structura microcontrolerului[4] Atmega32 conine 32 de registre de uz general i 64 de registre speciale pentru modulele I/O. Aceste registre sunt mapate la adrese din memoria RAM cuprinse ntre 0000h si 005Fh.

3.2. Descrierea pinilor

Fig.3.3 Capsula PDIP[4]

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

41

Fig.3.4 Capsula de model SMD[4] VCC Sursa de curent GND Masa RESET: Un nivel sczut la acest pin mai mare ca durat dect o valoare prestabilit, va genera o iniializare. XTAL 1: Intrare pentru amplificatorul inversor al Oscilatorului; XTAL 2: Ieire pentru amplificatorul inversor al Oscilatorului. AVCC: este pinul de alimentare pentru Port-ul A si Convertorului A/D. Trebuie conectat extern la Vcc, chiar dac ADC nu este folosit. Dac ADC este folosit, ar trebui conectat la Vcc printr-un filtru trece -jos. AREF: este pinul de referin analogic pentru Convertorul A/D 3.1.1. Porturile I/O. Atmega32 dispune de 32 de linii de I/O grupate n patru porturi de 8 bii. Porturile sunt denumite cu literele A, B, C si D. Fiecare pin al oricrui port se poate seta individual ca intrare sau iesire fr s afecteze ceilali pini. In plus, anumii pini se pot utiliza pentru funcii speciale ale microcontrolerului. In figur este reprezentat structura general a unui pin. Toi cei 32 de pini au fiecare cte o rezisten pull-up care poate fi activat sau dezactivat.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

42

Fig.3.5 Structura general a unui pin[4] Operaiile cu porturile se fac prin intermediul unui set de 3 registre alocate fiecrui port: PORTx, PINx si DDRx; x poate fi A, B, C sau D. Acesti registri fac parte din categoria registri de intrare/iesire de aceea instruciunile care pot lucra direct cu ei sunt CBI, SBI, IN si OUT. Registrii DDRx stabilesc dac un pin este intrare sau iesire. Astfel, un bit cu valoarea 1 n registrul DDRx face ca pinul corespunztor s fie considerat iesire; altfel pinul va fi intrare. Toate porturile AVR au functia Citete Modific Scrie atunci cnd sunt folosite ca porturi I/O digitale generale. Asta nseamna ca directia unui pin port poate fi schimbata fara a schimba n mod intentionat directia oricarui alt pin cu comenzile SBI si CBI. Aceeasi regula se aplica cand se schimba valoarea drive-ului(daca este configurat ca output) sau a activarii/dezactivarii rezistorilor (dac sunt configurati ca input). Fiecare buffer de input are caracteristici similare de drive atat cu capacitatea sursei cat si cu sincronizarea. Driver-ul pinului este indeajuns de puternic ca sa activeze displayul LED direct. Toi pinii port au rezistori care pot fi selectai individual cu o surs suplimentar de tensiune cu rezisten invariabil. Toi regsitrii i referinele de bit din aceasta seciune sunt scrii n forma general. Un x mic reprezint litera care denumete portul i un nmic reprezint numrul bitului. Cand se utilizeaza registrul sau biii ntr-un program , trebuie sa fie folosita forma exacta. Adica, PORTB3 pentru bitul numarul 3 n Portul B, prezentat general ca PORTxn. Trei locatii de adrese de memorie I/O sunt alocate pentru fiecare port; - una pentru fiecare registru de date - PORTx, - Registrul directiei datelor DDRx, - port de intrare PINx. Locatia pinilor port intrare este read only, in timp ce Registru de Date si DDR sunt read si write. In plus, bitul PUD (dezactivare pull-up) din SFIOR dezactiveaza functia pull-up pentru toti pinii din toate porturile cand este setat. Majoritatea pinilor au functii alternative pentru caracteristicile periferice ale dispozitivului.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

43

Port A (PA7 .. PA0) Port-ul A servete drept port de intrri analogice pentru Convertorul A/D. Port-ul A servete de asemenea i ca un port bidirecional I/O de 8 bii, n cazul n care Convertorul A/D nu este folosit. Pinii de port pot fi conectai opional la VCC prin rezistori interni, (selecati pentru fiecare bit). Buffer-ele de ieire ale Portului A au caracteristici de amplificare . Port B (PB7.. PB0) Portul B este un port I/O de 8 bii bidirecional cu rezistori interni (opionali). Buffer-ele de ieire ale Port-ului B au caracteristici de amplificare. Port-ul B ndeplinete de asemenea funcii speciale ale microcontrolerului ATmega 16. Port C (PC7PC0) Portul C este un port I/O de 8 bii bidirecional cu rezistori interni (opionali). Buffer-ele de ieire ale Port-ului C au caracteristici de amplificare. Dac interfaa JTAG (de depanare) este activat , rezistorii pinilor PC5(TDI), PC3(TMS) i PC2(TCK) vor fi activai, chiar dac are loc o resetare. Port-ul C indeplinete de asemenea funcii ale interfeei JTAG i alte funcii speciale ale ATmega 16. Port D (PD7PD0) Portul D este un port I/O de 8 bii bidirecional cu rezistori interni conectai opional la VCC (selecati pentru fiecare bit). Buffer-ele de output ale Port-ului D au caracteristici de amplificare. Port-ul D indeplineste de asemenea funcii speciale ale ATmega 16. Pe lng funcia de intrare ieire portul PD poate avea funcii alternative. Pentru interfaa serie UART pinii PD.0 i PD.1 au funcia de recepie (RX) i respectiv de transmisie (TX). Dac aceste funcii sunt activate atunci setrile generate de ele sunt prioritare fa de setrile din regitrii PORTD i respectiv DDRD. Chiar daca pinul PD.1 este setat ca intrare el se va comporta ca ieire atunci cnd este setat bitul TXEN din registrul UCR. Pe pinii PD.2 i PD.3 se pot aplica semnalele de ntrerupere extern INT0 i INT1, iar semnalele aplicate pe pinii PD.4, PD.5 i PD.6 servesc ca semnale externe de intrare pentru numrtoarele T0, T1 i intrare pentru captura ICP. 3.1.2. Organizarea memoriei. ATmega 16 AVR are dou spaii de memorie principal, spaiul pentru Memoria de Date i pentru Memoria de Program. n plus, ATmega16 are i o memorie nevolatil EEPROM pentru memorarea datelor. Toate cele trei tipuri de memorie sunt cu adresare liniar. Memoria Flash suport cel puin 10000 de cicluri de scriere/ tergere. Counter-ul programului de la ATmega 16 (PC) are o lungime de 13 bii, ceea ce permite adresarea unei memorii de 8*1024 locai de 16 bii. Memoria de date SDRAMCoala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

44

Figura de mai jos arat cum este organizat memoria SDRAM ATmega 32. Primele 96 de locaii se refer la Fiierul de Registre, i urmtoarele 1024 de locaii sunt dedicate datelor interne SDRAM. Registrele generale 26, 27, 28, 29, 30, 31 pot fi utilizate cu denumiri specifice: R26: X octet inferior R28: Y octet inferior R30: Z octet inferior R27: X octet superior R29: Y octet superior R31: Z octet superior

Fig.3.6 Organizarea memoriei SDRAM[4] Memoria de date EEPROM ATmega 32 conine 512 octei de memorie de date EEPROM. Este organizat ca spaiu separat de date, n care pot fi citii i scrii bii individuali. EEPROM-ul are o durat de via de cel puin 10,000 de cicluri scriere/tergere. Accesul citire/scriere EEPROM Regitrii de acces EEPROM sunt n spatiul I/O. Cnd se citete EEPROM, CPU este oprit timp de patru perioade de ceas nainte ca urmatoarea comand s fie executat. Cnd se scrie EEPROM, CPU este oprit timp de dou perioade de ceas nainte ca urmatoarea comand s fie executat. Registrele de adresa EEPROM EEARH si EEARL

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

45

Biii 9 15 sunt bii rezervai n Atmega 16 i vor lua ntotdeauna valoarea 0. Biii 0 - 8 sunt bii de adres (total 9 bii, deci se adreseaz 0.5 KB) Regitrii de adres de mai sus, EEARH si EEARL specific adresa EEPROM pentru cele 512 locaii ale spaiului EEPROM. Locaiile de memorie se adreseaz liniar de la 0 la 511. Pentru operaia de scriere a EEPROM, registrul EEDR conine date care sa fie scrise n EEPROM la adresa dat de registrul EEAR. Pentru operatia de citire a EEPROM, EEDR conine date citite de pe EEPROM la adresa dat de EEAR. Registrul de date EEPROM EEDR

Registrul de control EEPROM EECR

Biti 7..4 - aceti bii sunt bii rezervai la ATmega 16 i au valoarea zero. Bit 3 - EERIE: Activarea EEPROM Ready Interrupt Scrierea n EERIE a unui 1 logic, activeaz funcia lui EEPROM Ready Interrupt (pregtit de ntrerupere). Scrierea n EERIE a unui 0 logic dezactiveaz intreruperea. Funcia EEPROM Ready Interrupt genereaz o ntrerupere constant cnd EEWE este ters. Bit 2 EEMWE: EEPROM Master Write Enable (activarea funciei principale de scriere EEPROM) Bitul EEMWE determin dac setarea lui EEWE la unu genereaz scrierea lui EEPROM. Cnd este setat EEMWE, setarea lui EEWE va produce scriere date n EEPROM la adresa selectat. Dac EEMWE este zero, atunci setarea lui EEWE nu va avea nici un efect. Bitul 1 EEWE: EEPROM Write Enable (activarea scrierii EEPROM)

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

46

Semnalul de activare a scrierii EEPROM EEWE este semnalul de scriere a EEPROM. Cnd adresa i datele sunt setate corect , bitul EEWE trebuie s fie scris la unu pentru ca valoarea s fie scris pe EEPROM. Bitul EEMWE trebuie s fie scris la unu nainte ca unu logic s fie scris pe EEWE , altfel nu va avea loc nici o scriere a EEPROM. Urmatoarea procedur trebuie urmat cnd se scrie EEPROM: 1) Ateptai pn cnd EEWE devine zero 2) Ateptai pn cnd SPMEN din SPMCR devine zero 3) Scriei noua adres EEPROM pe/la EEAR (opional) 4) Scriei noile date EEPROM pe/ la EEDR(opional) 5) Scriei unul logic pe/la bitul EEMWE n timp ce se scrie EEWE n EECR 6) n patru cicluri de ceas dupa ce s-a setat EEMWE , scriei unul logic pe /la EEWE. EEPROM nu poate fi programat n timp ce CPU scrie memoria flash. Software-ul trebuie sa verifice dac programarea memoriei flash este complet nainte de a iniia o nou scriere a EEPROM. Pasul doi este relevant doar n cazul n care programul software conine un Boot Loader (activator de boot) care permite CPU s programeze memoria flash. Dac memoria flash nu este niciodat updatat de catre CPU, atunci pasul doi poate fi omis. Atentie: o ntrerupere ntre paii 5 i 6 va anula ciclul de scriere, cci activarea Master a EEPROM va fi anulat. Dac o rutin de accesare a EEPROM ntrerupe o alt accesare EEPROM, atunci regitri EEAR si EEDR vor fi modificai, astfel cauznd anularea accesului ntrerupt al EEPROM. Bit 0 EERE: Activarea citirii EEPROM Cnd se seteaz adresa corect a registrului EEAR, bitul EERE trebuie s fie scris pe unu logic ca s declaneze citirea EEPROM. Accesul la citirea EEPROM se face cu o comand i datele cerute sunt disponibile imediat. Cnd EEPROM este citit, CPU este oprit timp de patru cicluri nainte ca urmatoarea comand s fie executat. 3.1.3. Numrtoarele. Microcontrolerul Atmega32 are implementat n structura interna dou numrtoare de 8 i unul 16 bii. Numrtorul 0 de 8 bii genereaz intrerupere la depire, iar numrtorul 1 de 16 bii genereaz intrerupere la depire, pentru comparare i captur. Ambele numrtoare au cite un circuit de prescalare (divizare i multiplexare) prin care se alege sursa semnalului de intrare in numrtor. Circuitul de prescalare realizeaz divizarea ceasului sistemului cu 8, 64, 256 i 1024. Pentru fiecare numrtor se pot alege urmtoarele surse ca semnal de intrare: intrarea conectata la zero, semnalul de ceas, cele patru ieiri ale blocului de prescalare sau un semnal extern (front cresctor sau descresctor).

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

47

Fig.3.7 Schema circuitului de prescalare a numrtoarelor 0 i 1[4]

3.3. Convertorul analogic-digital (ADC)Consideraii teoretice: Modulul ADC-ului de 10 bii cu aproximare n serie intr n componena modelelor ATmega 8x, ATmega 163x, ATmega 32x, ATmega 323x, ATmega 64x i ATmega128x. Parametrii de baz al acestui ADC sunt: toleran absolut: 2 LSB; nelinearitatea integral: 5 LSB; rapiditatea: pn la 15mii probe/s; Modulul Convertor Analog-Digital este utilizat pentru conversia tensiunii analogice ntr-o valoare digital (n AVR pe 10 bii). De exemplu, poate fi utilizat pentru perceptarea ieirii de la un senzor (de temperatur, presiune, etc.) n anumite intervale, sau pentru a executa anumite aciuni n dependen de valoarea primit. Exist mai multe tipuri de convertoare, dar cele utilizate n microcontrollerele AVR sunt convertoarele cu aproximare succesiv. Mai jos urmeaz o schem simplificat a convertorului analog-digital prezent pe AVR:

Fig. 2.4 Schem simplificat a convertorului analog-digital[4]

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

48

La intrare avem un multiplexor analog-digital, care este utilizat la selectarea ntre opt intrri analogice diferite. Aceasta nseamn c este posibil conversia a opt semnale (bineneles c nu n acelai timp). La ieire, valoarea convertit este nscris n regitrii ADCL i ADCH, deoarece regitrii AVR au lime de 8 bii este nevoie de o pereche p-u a stoca o valoare pe 10 bii. n modelele ATmega16x, ATmega32x, ATmega64x, ATmega128x pinii ADC-ului pot fi unii n perechi pentru a obine n total pn la 13 canale cu intrare diferenial. Dou canale n aa caz au posibiliatatea de amplificare preventiv de 20 i 200 ori a semnalului de intrare. n cazul coeficienilor de amplificare 1x i 20x rezoluia efectiv a conversiei este de 8 bii, pe cnd la coeficientul 200x 7 bii. n calitate de tensiune de referin pentru ADC poate fi utilizat att tensiunea microcontrollerului ct i sursa intern sau extern de tensiune de referin. ADC-ul poate funciona n dou regime: regimul conversiei unice, cnd startul fiecrei conversii este iniializat de utilizator. regimul conversiei continue, cnd startul conversiei are loc continuu dup anumite intervale de timp. Tensiunea analogic la intrare trebuie s fie mai mare dect 0V, i mai mic dect tensiunea de referin a convertorului AREF. Tensiunea de referin este o tensiune extern care trebuie aplicat la pinul Aref a microcontrollerului. Valoarea convertit poate fi calculat folosind urmtorea formul: ADCH:L= ((Vin/Vref)*1023) Deoarece convertorul are o rezoluie de 10 bii, avem 1024 valori posibile, adic dac tensiunea de intrare Vin este egal cu 0, atunci valoarea convertit v-a fi zero, dac Vin este egal cu Vref atunci valoarea convertit v-a fi 1023, iar dac Vin este din Vref atunci valoarea ADCH:L este 512. Acest proces de conversie se mai numete cuantificare, bineneles ce produce o eroare, numit eroare de cuantificare. 2.8.1.Regimurile de operare a convertorului analog-digital (CAD).Convertorul Analog-Digital are dou regimuri fundamentale de funcionare: Conversie Unar (singular) i Conversie Continu. n regim de conversie unar, este necesar de a iniializa fiecare conversie, cnd este gata rezultatul este plasat n perechea de regitri ADCH:L, i nu se pornete o alt conversie. n regim continuu, este necesar de a porni doar o dat conversia i CAD v-a porni automat urmtoarea conversie n dat ce este finisat cea actual. Conversia analog-digital nu este infptuit instantaneu, este necesar de un anumit interval de timp, care depinde de frecvena de clock folosit de CAD i este proporional cu frecvena de clock i poate fi ntre 50-200 kHz. Dac este de ajuns o rezoluie de conversie mai mic de 10 bii, frecvena CAD poate fi mrit prin ajustarea unui prescaler prezent n CAD, care divide frecvena de clock la un anumit coeficient, setat prin intermediul biilor ADPS2:0 descrii mai jos.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

49

Pentru a afla intervalul de timp necesar unei conversii se divide numrul de cicluri necesari unei conversii la frecvena DAC. Normal, o conversie este ndeplinit n 13 cicluri CAD, dar prima conversie (deodat dup pornirea CAD) se ndeplinete n 25 cicluri de clock, i mai este numit Conversie Extins. De exemplu dac folosim un CAD la frecvena de 200kHz, o conversie normal va fi ndeplinit n 65 s, iar una extins n 125 s.

4. ARGUMENTAREA ECONOMIC 4.1. Descrierea general a proiectului. Studii asupra realizrilor n domeniul procesrii vorbiriiProcesarea vorbirii este un domeniu care a evoluat mult in ultimii ani pe plan internaional. Dac in urm cu civa ani se fceau progrese n ceea ce privete gsirea unor noi metode i tehnici de prelucrareCoala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

50

a semnalului vocal, acum accentul se pune pe integrarea acestor metode performante n sisteme dedicate unor categorii diverse de utilizatori . Odat cu creterea performanelor sistemelor de calcul, utilizatorii au acum la ndemn o gam larg de aplicaii pornind de la dictare automat i introducerea de date cu ajutorul vocii, pn la servicii interactive de tip cerere-rspuns care solicit un dialog vocal ntre calculator i operatorul uman. Procesarea vorbirii cuprinde dou domenii distincte de abordare : recunoaterea vocii, respectiv sinteza vocal. Recunoaterea vorbirii (speech-to-text) este procesul de identificare a cuvintelor i de inelegere a mesajului interlocutorului uman. Acest proces implic urmtoarele etape: captura i digitizarea semnalului vocal, scindarea acestuia in uniti sonore, apoi construirea cuvintelor din aceste uniti, i trimiterea spre aplicaie a textului recunoscut . Arhitectura software utilizat in aplicaiile de recunoastere a vorbirii cuprinde doua componente: componenta acustic i cea lingvistic. Modulul acustic analizeaza sunetele vocii, elimin zgomotul de fond, reduce datele la un spectru de frecvente si apoi convertete sunetele in foneme (elementele de baza ale vorbirii). Modulul lingvistic analizeaz coninutul vorbirii si compar combinaiile de foneme cu cuvintele dintr-un vocabular i decide apoi care a fost propozitia sau comanda rostita de vorbitor. Recunoaterea vorbirii este realizat de o component software numit motor de recunoatere a vorbirii (Speech Recognition Engine SRE). Motoarele de recunoastere a vorbirii suport dou moduri de lucru: dictarea, in care utilizatorul introduce date vorbind direct spre computer, i comanda sau controlul, in care utilizatorul transmite comenzi prin vorbire. Pentru a mari acurateea recunoaterii, sunt create baze de date numite profile de vorbitor, care stocheaz modelul de vorbire al fiecrui utilizator.

4.2. Analiza raionalitii proiectuluiPentru identificarea raionalitii proiectului s-a efectuat analiza mediului intern i extern al acestuia analiza SWOT (Strengths Weaknesses Opportunities Threats). Analiza SWOT reprezint evaluarea punctelor forte i punctelor slabe ale proiectului realizat. De asemena cu ajutorul acestei analize se determin opurtunit ile ce pot beneficia promovarea i vinderea pe pia a dispozitivului i de asemenea riscurile ce pot interveni. Tabelul 4.1 Analiza SWOT

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

51

Puncte Forte 1) Crearea softului poate fi efectuata cu cheltuieli minime, am folosit un microcontroler si piese care pe piata sunt ieftine; 2) Softul poate fi folosit la infinit ; 3) Este un sistem nou n R.M., dat fiind faptul c asemenea lui nu exist n ar; 4) Acest sistem va ajuta la optimizarea concepiei produselor din punct de vedere funcional i al tehnologiei de fabricaie;

Puncte Slabe 1)Este un soft destinat doar pentru o familie de microcontrolere;

Oportuniti 1. Dispozitivul poate fi produs la comand, 1. 2. tiinei i nvmntului 3.

Riscuri Numrul potenialilor clieni poate fi Insolvabilitatea clientului din cauza crizei Fiabilitatea componentelor folosite.

ceea ce garanteaz cumprtorul i exclude formarea stocurilor. 2. 3. 4. Lips pe pia a dispozitivelor de acest gen. Dezvoltarea

foarte mare. financiare.

stimuleaz cererea pentru dispozitive de acest gen. Originalitatea ideii promovate.

n acest context, putem enuna msurile ce ar permite diminuarea i/sau lichidarea punctelor slabe prezentate anterior: 1) 2) Pentru reducerea influenei factorilor externi asupra exactitii recunoaterii vocii este Mrirea calitii i posibilitii de recunoatere a vocii ar putea fi fcut prin folosirea nevoie de asigurarea unor condiii mai optime, cum ar lipsa zgomotelor mari. componentelor mai avansate i mai performante, ceea ce ar duce la investiii suplimentare de unde ar rezulta i creterea costului de producie a dispozitivului.

4.3. Plan calendaristic1) Obiectivele.

Coala Mod Coala Nr. document Semnt . Data

UTM 525.1 024 ME

52

Obiectivul principal este elaborarea unui dispozitiv de recunoastere a vocii din sunet. Acest dispozitiv va fi n stare s identifice i s recunoasc cuvintele prin intermediul softului elaborat pentru calculator, i s indeplineasc funciile cuvenite. Proiectul va fi realizat n 3 etape, realizarea dispozitivului i unitilor aferente lui, elaborarea softului pentru calculator care este menit s uureze lucrul cu dispozitivul i s dea posibilitatea utilizatorului n timp real s monitorizeze i s gestioneze calculatorul i n sfrit elaborarea interfeei ctre calculator pentru a putea fi folosit de ctre utilizator. 2) Evaluarea volumului de lucru

Pentru elaborarea acestui proiect trebuie studiat documentaia din domeniu. n primul rnd trebuie cercetai parametrii utili pentru dispozitiv i de decis ce parametri trebuie calculai. Apoi urmeaz s se determine metoda optim pentru studierea caracteristicilor. La adoua etap se realizeaz schema principial, alegn