Comandarea vocală a computerului pent ru persoanele cu dizabilități, este realizată cu [623239]
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
1
CUPRINS
LISTE :
LISTA DE FIGURI …………………………………………………………………………………………… 3
LISTA DE TABELE …………………………………………………………………………………….. ….. 5
LISTA DE LISTĂRI …………………………………………………………………………………………. 6
CAPITOLUL I. INTRODUCERE ……………………………………………………………………. 7
CAPITOLUL II. RE CUNOAȘTEREA VOCALĂ …………………………………………….. 8
Subcapitol 2.1 . Istoria recunoașterii vocale ……………………………………………………….. 8
Secțiunea 2.1.1. Istoria recunoașterii vocale pe plan internaț ional ………… …………. 9
Secțiunea 2.1.2. Istoria recunoașterii vocale pe plan națion al ………… ………………… 10
Sectiunea 2.1.3. Situa ția actuala. Concluzii ………… …………………………………………… 11
CAPITOLUL III. ARHITECTURA RECUNOAȘTERII VOCALE ………… ……….. 13
Subcapitol 3.1. Procesarea vorbirii ………… …………………………………………………………. 13
Subcapitol 3.2. Prelucrarea și analiza semnalului vocal ……………………………………… 26
Secțiunea 3.2.1. Obiectivele prelucrării semnalului vocal ……………. …………………… 27
Secțiunea 3.2.2. Aplicații ulilizate în prelucrarea și analiza semnalului vocal ……. 28
Subca pitolul 3.3. Metode de prelucrare a semnalului vocal …….. ……………………… ….. 29
Secțiunea 3.3.1. Metode numerice ………… ……………………………………………………….. . 30
Secțiunea 3.3.2. Metode de codare …………. ……………………………………………………….. 31
Secțiunea 3.3.3. Metode de compresie …………. ………………………………………………….. 32
Secțiunea 3.3.4. Concluzii ………… ………….. …………………………………………………………. 33
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
2
CAPITOLUL IV. APARATUR Ă FOLOSITĂ ÎN ÎNTOCMIREA TEMEI DE LICENȚĂ .. 34
Subcapitol 4.1. EasyVR Shield 3.0 ………… ……………………………………………………….. ……………….. 34
Subcapitol 4.2. Arduino Uno R3 …………….. ……………………………………………………………………….. 42
Subcapitol 4.3. Realizare sistem hardware ………… …………………………………. ………………………… 45
CAPITOLUL V. PROGRAME …………………………………………………………. …………………………. .. 51
Subcapitolul 5.1. Programul ARDUINO ………………………………… ………. ……………………………… 51
Secțiunea 5.1.1. Testarea functionalității proiectului ……………………………………………………… 53
Subcapitolul 5.2. Programul EasyVR Commander 3.10.2. ………………. ……………… ………. ……… 57
Secțiunea 5.4. Sensory Quick Synthesis 5.2.8. ……………………………….. …….. ……………………….. 58
CAPITOLUL V I. CONCLUZII ………… ………………………………………………………… ………………. 62
Subcapitolul 6.1. Concluzii generale ………………………………………………………………………………. 62
Subcapitolul 6.2. Contribuția personală ………………………………………………… ………………………. 62
Subcapitolul 6.3 . Dezvoltare ulterioară ……………………………………………………………………….. …. 63
BIBLIOGRAFIE ………… ……………………………………………………….. ……………………………………….. 64
ANEXE :
Anexa 1 : DECLARAȚIA DE ORIGINALITATE
Anexa 2 : REZUMATUL LUCRĂRII DE LICENȚĂ ÎN LIMBA ROMÂNĂ
Anexa 3 : REZUMATUL LUCRĂRII DE LICENȚĂ ÎN LIMBA ENGLEZĂ
Anexa 4 : EasyVR SHIELD 3.0 Manualul de utiliza re
Anexa 5: Schema și design -ul ARDUINO UNO R3
Anexa 6: Maparea între pinii Arduino și porturile ATmega328P
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
3
LISTA DE FIGURI
Fig. 3.1.1 . Procesul de recunoaștere vocală ……………………………………………………….. …….. .. 14
Fig. 3.1.2. Etapele preprocesării …………………………………………………………. …………………….. 15
Fig. 3.1.3. Eșantionare …………………………………………………………. …………………………. ………. 16
Fig. 3.1.4. Combinarea diferitelor caracteristici cu rolul de a transmite un mesaj clar ………. 18
Fig. 3.1.5. Pasul IV din procesarea recunoașterii vocale ……………………………………………….. 18
Fig. 3.1.5. Modelare a succesivă a fonemelor, cuvintelor și propozițiilor ………………………… 24
Fig. 3.1.6 . Structura unui sistem de recunoaștere a cuvintelor bazat pe un HMM discret ….. 25
Fig. 3.3.1. Zgomotul de cuantizare sau eroarea de cuantizare ……………………………………… … 31
Fig. 4.1.1. EasyVR Shield 3.0 descompus ……………………….. ……………………… …………………. 35
Fig. 4.1.2. Schema specificațiilor tehnice a lui Easy VR Shield 3.0 ………………………………… 37
Fig. 4.1.3. Schema modulului EasyVR Shield 3.0 completat cu toate piesele puse ……………. 40
Fig. 4.2.1. Arduino Uno R3 față ……………………. …………………….. …………………………………….. 43
Fig. 4.2.2. Arduino UNO R3 spate ………………………………………………………………………………. 44
Fig. 4.3.1. EasyVR Shield 3.0. comp onente sudate …………. …………………. …………………………. 45
Fig. 4.3.2. Difuzor …………………………………………………………………………………………………….. . 46
Fig. 4.3.3. Placă de test cu 640 de puncte ………………………………………………………… …………… 46
Fig. 4.3.4 . Conectarea punctelor de pe placa de test ……………………………………………. …………. 46
Fig. 4 .3.5. LED 3 V …………………………………………………………………………………………… ………. 47
Fig. 4.3.6. Fire de conexiune multicolore ……………………………………………………………… ………. 47
Fig. 4.3.7. Rezistență de 220 Ω …………………………………………………………………………………… .. 48
Fig. 4.3.8. Pistol de lipit ………………………………………………………………………………………. ……… 48
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
4
Fig. 4.3.9. Fludor ………………………………………………………………………………………… ……………. 49
Fig. 4.3.10. Cele doua module EasyVR 3.0 și Arduino UNO R3 sudate ………………….. ………. 49
Fig. 4.3.11. Cele două module împreună cu microfonul si difuzorul ……………….. ………………. 50
Fig. 4.3.12. Placa de test pregăt ită de începerea părții software ……………………………………… .. 50
Fig. 5.1.1. Instalarea programului Arduino …………………………………………. ………….. ……………. 51
Fig. 5.2.1. Pagina principală a programului EasyVR Commaneder v3.10.2. ……………………. .. 57
Fig. 5.2.2 . Antrenarea. Inregistrarea comenzii dorite …………………….. ……………………………. … 58
Fig. 5.2.1.1. Sound Recorder ………………………………………………………. …………………………. ….. 59
Fig. 5.2.1.2. Audacity …………………………………………………………………………………… …….. ……. 59
Fig. 5.2.1.3. Sensory Quick Synthesis 5.2.8. ………………………………… ………………………. ……… 60
Fig. 5.2.1.4. SoundTable din EasyVR Commander ………………………………………………………… 61
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
5
LISTA DE TABELE
Tabel 3.1.1. Foneme engezești. Consoane ……………………………………. ………………… …………. …. 20
Tabel 3.1.2. Foneme englezești. Vocale ………………………………………………………. …………….. … 21
Tabel 3.1.3. Foneme englezești. Vocale controlate …………………………….. ………………………….. 22
Tabel 3.1.4. Foneme englezești. Diftong ………………………………………………… …………………….. 23
Tabel 4.2.1. Tabelul specificațiilor tehnice ale aparatului Arduino UNO R3 ……….. ……………. 42
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
6
TABEL LISTĂRI
Listarea 5.1.1. Test led -uri …………………………………………… …….. …………………….. …… 54
Listarea 5.1.2. Comandarea vocală a ledurilor ……………………… …………………….. …….. 54
Listarea 5.1.3. Recunoaștere parola și username …………….. …………………………………. . 55
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
7
Capitolul I
INTRODUCERE
Tema licenței aleasă de mine este Monitorizarea și comandare a vocala a calculatorului
destinată persoanelor cu dizabilitați .
Lucrarea aleasă a fost cu adevărat o provocare și prin intermediul ei mi -am propus să reușesc
să fac folosirea computerului accesibilă și pentru persoanele cu dizabilități. Pentru a evita izolarea
persoanelor cu dizabilități în centre speciale, pentru a evita de asemenea ca aceste persoane să se
simtă diferite de ceilalți din jurul lor și pentru a îi aduce și pe ei în pas cu tehnologia, am dezvoltat
acest proiect de diplomă.
O persoană cu dizabilități nu refuză să lucreze, ba chiar poate prezenta un interes și o dorință
de mii de ori mai puternică de muncă, decât o persoană perfect normală. Cu toate acestea, în prezent
acestor oameni le este subestimată contribuția și astfel firmele sau pat ronii refuză să -i angajeze pe
motiv că nu pot ține pasul cu ceilalți sau că tehnologia nu este îndeajuns de avansată astfel încat să -i
pună la punct. Cei care nu sunt apți pentru munci standardizate, sunt mult mai predispuși
activităților artistice, iar Lu dwing van Beethoven ar fi un convingător exemplu, alături de alte
persoane simple care trăiesc printre noi. Motivul pentru care persoanele cu dizabilități nu se bucură
de acces comun, cu celelalte persoane, la spațiul public este pentru că, spre deosebire de alte țări,
acestora nu le este oferită o distribuire uniformă în societate, ci sunt sprijinite doar de anumite
instituții. Astfel prin munca adusă și investită în această temă de licentă vreau să închid acel capitol
trist, în care persoanele speciale su nt marginalizate și să deschid acea poartă spre cunoaștere și
acestor persoane, spre o lume în care se muncește cot la cot alaturi de acesti oameni.
Recunoașterea vocală , pe care se bazează proiectul , respectiv comandarea vocală reprezintă
un proces de as cultare, interpretare și înțelegere a cuvintelor interlocutorului uman, dintr -o limbă.
Acest studiu a căutat de -a lungul anilor să ințeleagă ființa umană, cum aceasta reacționează,
recunoaște sunetele și le ințelege.
Conceptul de comandare vocală sau mai exact recunoaștere vocală a cunoscut o adevărată
dezvolat are în decursul a câtorva decenii schimbând în nenumărate moduri lumea, de la un sistem ce
recunoștea cifrele 0 – 9, până în prezent când poți purta o întreagă conversație cu un dispozitiv ce
admini strează un număr nelimitat de cuvinte.
Capacitatea unui calculator de a înțelege nu este perfectă din toate punctele de vedere, dar
într-o proporție destul de mare, acesta interpretează și execută corect comenzile date. Pentru ca acest
lucru să fie posib il și bine realizat, computerul trebuie să asculte și să traducă cuvintele într -un
limbaj de programare. Ideea de a controla aparatele din jurul tau, doar prin intermediul vocii este
una universală.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
8
Capitolul II
RECUNOAȘTEREA VOCAL Ă
Termenul de r ecunoaștere a vorbirii este un proces de convertire a cuvintelor vorbite, în
format digital, care poate însemna de asemenea si recunoașterea interlocutorului și întelegerea
mesajului transmis de acesta . Acest proces este realizat de către o mașina sau un p rogram, care
indentifica cuvintele și frazele rostite.
Recunoaștera vocală reprezinta în momentul de fața un domeniu de cercetare de un foarte
mare interes, av ând implicații într -o sumedenie de activitați precum medicina, armata , etc. .
Recunoașterea comp uterizată a vorbirii este acel proces continuu, ce de -a lungul anilor a cunoscut
progrese semnificante, dar progrese micuțe, care până în prezent încă mai lasă loc de îmbunatațiri,
prezentant rateuri.
Recunoașterea, înțelegerea, și producerea vocii artif iciale are logică numai pentru relațiile
om-mașina, om -program și astfel totul se realizează numai în raport cu vocea naturală umană.
Subc apitolul 2.1. ISTORIA RECUNOAȘTERII VOCALE
Vorbirea reprezintă una din cele mai importate căi de comunicare între oameni. Dorința de a
automatiza orice, nu este un fenomen modern, de actualitate, ci este un fenomen ce ne întoarce în
timp mai bine de o mie de ani, incă de la Alexander Graham Bell sau Thomas Edinson și lista poate
continua la nesfârșit. Recunoașterea vo cii este o abilitate a unei mașini sau program de a primi și
interpreta dictarea susținută de interlocutor sau de a ințelege și a efectua o serie de comenzi.
De la telefoanele mobile, la computerele personale, o mare parte a tehlogiei de azi utilizează
recunoașterea vocală. Recunoașterea vocală este un proces complicat și complex, care are ca scop
ajutorul omenirii și dezvoltarea acesteia pe toate planurile , iar istoria acestuia este una pe atât de
lungă și frumoasă, pe cât de indispensabilă este în prez ent și va continua să fie pe viitor.
Privind în trecutul nostru grandios, din punct de vedere al tehnologiei, este ca și cum am
asista la creșterea și formarea unui copil de la pașii de bebeluș la maturitate. De -a lungul anilor
recunoașterea vocală a fos t topicul multor dezbateri de interes general, luând aploare și fiind
mediatizat între anii 1960 și 1970. Acesta tehnologie avea să schimbe întreaga omenire, fiind
introdusă în atenția oamenilor prin intermediul firmelor. În filmul “2001: A Space Odyssey”, un
computer inteligent numit “Hal” reproducea în mod foarte natural o voce umana și era capabil să
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
9
recunoască, să înteleagă și să raspundă adecvat. Printre alte filme care introduc aceast ă noțiune se
numară și “Star Wars saga” cu faimoșii roboței R2D2 și C3PO.
Dar cum și când a început totul?
Secțiunea 2.1.1. ISTORIA RECUNOAȘTERII VOCALE PE PLAN INTERNAȚIONAL
Pe plan internațional, această tehnologie a vorbirii, recunoașterea vocală a avut avantajul
sponsorizării de către unele companii sau concerne internaționale. Acestea urmăreau dezvoltarea
unor categorii de produse, care aveau mai tarziu, să le asigure profituri substanțiale și poziții de
lideri pe piață
În 1952, în cadrul Laboratoarelor Bell, organizație de cercetare din localitatea Murray Hill,
New Jersey, Statele Unite ale Americii a fost dezvoltat primul sistem de recunoaștere a vocii
cunoscut sub numele de “Audrey ”. Inginerii K. H. Davis, R. Biddulph și S. Balashek au adus la
viața acest sistem după mult timp de muncă. “Audrey ” reprezent ă un proces ce recunoștea cifrele de
la 0 la 9. Dat fiind succesul pe care l -a cunoscut acest sistem, acesta nu a fost exploatat mai mult
decât zece ani mai târziu, deoarece “Audrey ” era de dimensiuni mari, foarte scump și costisitor
consumând foarte multa en ergie.1
În 1962, zece ani mai t ârziu de la succesul primului sistem de recunoaștere vocală, IBM a
prezentat la expozitia “ World's Fair ”, prototipul lor denumit “Shoebox”, mașina care putea înțelege
șaisprezece cuvinte în limba engleză. Exemplul celor de la IMB de a continua să dezvolte o așa
mașinărie, a inspirat și alte laboratoare din întreaga lume să realizeze și ele la r ândul lor , alte
aparaturi care să aibă la bază recunoașterea vocală. Cu toate că, acele mașini în prezent nu
reprezintă nimic, efort ul care a stat la baza realizării unor asemenea invenții este impresionant și ar
trebui lăudat, ținand cont și de faptul că pentru anii aceia, computerele erau într -adevăr primitive.
Începând cu anii 1970, acestă tehnologie ia cu adevărat amploare, mulțum ită interesului și
contribuției substanțiale realizat ă de Departamentul Resurselor de Apărare a Statelor Unite. În
perioada următoare, între anii 1971 și 1976, programul “DoD 's DARPA Speech Understanding
Research” a fost unul din cele mai recunoscute progr ame din istorie și printre multe altele a fost
responsabil de sistemul “Harpy”. Sistemul “Harpy” a devenit faimos datorită faptului că acesta
putea înțelege și interpreta 1011 cuvinte, echivalentul vocabularului unui copil de treisprezece ani.
1 ”They were not economically attractive. […] AUDREY occupied a six -foot high relay rack, was expensive, consumed
substantial power and exhibited the myriad maintenance problems associated with complex vacuum -tube circuitry.” –
Jim Flanagan et al., în “Trends in Speech Recognition”, Editura Wayne E. Lea, 1980.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
10
Anii '70 s -au mai făcut remarcați în cadrul istoriei prin prima reclama a unei companii de
recunoastere vocală, numită “Threshold Technology”, dar și prin realizarea unui prototip ce
interpreta voci diferite de catre Laboratoarele Bell.
În urmatorii zece ani, acest c oncept s -a dezvolvat remarcabil de la câteva sute de cuvinte, la
un număr nelimitat de cuvinte. O dată cu acest vocabular vast, a început și comercializarea de
aplicații în cadrul afacerilor și de asemenea aplicații folosite în scopuri medicale. Dar nu se oprește
aici, în 1987 acesta tehnologie pătrunde în casele oamenilor de rând, luând forma unei papuși.
Papușa “Jolie” devine visul tuturor copiilor de pretutindeni. Aceast mic roboțel, întruchipat într -o
jucărie a fost proiectat să raspundă, fiind descris ca papușa care te înțelege.
O dată cu intrarea in anii 1990, apar computerele cu procesoare mai rapide, iar recunoașterea
vocală devine disponibilă și pentru toți oamenii . La începutul anilor '90, iese pe piața “Dragon”,
aplicație care putea asculta, înțe lege și interpreta aproape o suta de cuvinte pe minut, vorbite normal,
natural, dar era deosebit de scump.
Intrarea într -un nou secol, aduce pe lânga o sumedenie de îmbunatațiri a vechilor aplicații și noi
funcții precum comandarea vocală, care a fost ine grata in Windows Vista, respectiv Mac OS X .
Aplicația Google are un impact semnificant asupra acestei tehnologii, dezvoltând în cadrul ei
sectiunea de căutare vocală.
Ajunși în prezent, ne putem mândri cu aplicații precum Siri și motorul de cautare v ocal Google,
recunoașterea vocală ajungând de la o necesitate, la o distracție , iar finalul pare să fie departe în
viitor. În momentul de fata accentul și întreaga atenție este canalizată pe realizarea unor noi
algoritmi care să permită recunoașterea conti nuă a vocii, adică recunoașterea cuvintelor și a frazelor
întregi spuse de către interlocutorul uman în condiții naturale. Astfel pot menționa : detecția rapidă a
momentelor de pauză din vorbire, recunoașterea bazată pe dic ționare de coresponden ța2.
Secți unea 2.1.2. ISTORIA RECUNOAȘTERII VOCALE PE PLAN NAȚIONAL
Pe plan național, î n România, interesul pentru prelucrarea automată a vocii , pentru realizarea
unor aplicații de recunoaștere vocală, s-a manifestat încă de acum trei decenii . Dupa 1980, studiile
acestei probleme, au devenit din ce în ce mai serioase, iar oamenii calificați în aceste domenii au
intensificat cercetările și au aprofundat, oferind recunoașterii vorbirii un interes mai deosebit . Au
fost organizate colective de cercetare in marile centre universitare, precum Bucuresti, Cluj, Iași,
2 G. Toderean, Al. Caruntu, Metode de recunoaștere a vorbi rii, Editura Risoprint, Cluj -Napoca, 2005.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
11
Timisoara. Ariile de interes ale specialistilor români cuprind domenii ca: recunoașterea automată a
vorbirii, recunoașterea și identificarea vorbitorului, sinteza de voce, codificarea vorbirii , procesarea
limbaj ului natural3.
În momentul de faț ă, unele universit ății din Romania, au îmbrati șat aceasta tehnologie și
astfel există cursuri de tehnologia vorbirii și procesarea semnalului vocal . Printre aceste universitați
care susțin aceste cursuri se numara prof. Cor neliu Burileanu la Facultatea de Electronică și
Telecomunicații din cadrul Politehnicii București, Marian Boldea – la Universitatea Politehnica
Timișoara, prof. Horia -Nicolai Teodorescu in cadrul Facultății de Electronică și Telecomunicatii a
Universitatii Tehnice Gh. Asachi din Iași, Mircea Giurgiu in cadrul Facultății de Electronică și
Telecomunicații a Universității Tehnice din Cluj.
Deși au fost depuse eforturi ani la rând de toate aceste centre spefializate pe această
tehnologie, pâna în prezent nu s -a remarcat pe piața românească niciun produs, aplicație care să se
ridice la standarde internaționale .Este de notat c ă în acest moment nu există niciun motor de
sinteză pentru limba română care să respecte standardul text -to-speech stipulat de Microsoft – SAPI
5.1.4 Astfel piața românească este incă în așteptarea unor aplicații de recunoaștere și sinteză de voce
specializate pentru limba română .
Secțiunea 2.1.3. SITUAȚIA ACTUALA. CONCLUZII
Cu toate că, în ultimele trei decenii, cercetările asupra acestei tehnologii spectaculose și -au adus
aportul într -o masură destul de mare, încă nu s -a ajuns la un final, existând totuși multe aspecte care
lasă loc îmbunătățirilor. Multe firme internaționale au pus o diversitatea de produse pe piața, dar
toate aceste a prezintă unele erori ce țin de performanțele aplicațiilor.
Aplicațiile destinate persoane lor cu dizabilit ăți, pun în prim planul lor, procesarea vorbirii
care ocupă un loc esențial în asistența acordată persoanelor nev ăzătoare și a celor cu deficiente de
vorbire. Multe state ale lumii au îmbrățișat această nouă tehnologie și au prezentat -o ca fiind de
asemenea dedicată și persoanelor defavorizate. Spre exemplu în Anglia există în momentul de față,
deja implementate sisteme complete de sintez ă de voce pe ntru nev ăzători. Aceste sisteme complete
de sinteză de voce pornesc de la achiziția de texte prin tr-o camer ă video, această cameră făcând
posibilă recunoașterea textului și rostirea acestuia prin voce sintetizată. De asemenea, mai există și
3 Burileanu C., Oancea E., Radu M., Text-to-Speech Synthesis for Romanian Language: Present and Future Trends ,
http://www.racai.ro/books/awde/ burileanu. Htm (2005 )
4 Elizabeth Montalbano, Microsoft Gets Exchange to Speak Up, PC World, August 02, 2005
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
12
sisteme care au ca scop reeducarea vocii, prin cadrul căruia persoanele cu deficien țe de vorbire pot
să-și urmărească interactiv vocea ca o undă sta ționară pe ecran.
În România nu există asemenea sisteme complete, adaptate pentru persoanele cu dizabilități,
persoane mai speciale , iar puținele aplicații ce se regăsesc în țara noastră sunt aplicații care sunt
implementate după programele străine, iar acestea suferă de faptul că nu este adaptate la limba
română.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
13
Capitolul III
ARHITECTURA RECUNOAȘT ERII VOCAL E
Recunoașterea vocală reprezintă un aspect important în sistemele inteligente ce tind să faciliteze
interacțiunea omului cu calculatorul. Pentru a fi eficiente, aceste sisteme trebuie să permită
procesări precise în timp real. În atingerea ace stui deziderat, arhitectura sistemu lui de recunoaștere a
vorbirii joacă un rol esențial.
Arhitectura software utilizată în aplicațiile de recunoa ștere a vorbirii cuprinde doua
componente: componenta acustică și cea lingvistică. Componenta acustică are ca s cop
analizarea sunetelor vocii, reducerea erorilor, înlaturarea zgomotul de fundal, îmbunatațirea
calității și claritații atunci c ând semnanul este degradat, reducerea datelor la un spectru de
frecven țe, extragerea caracteristicilor și după aceea convertir ea sunetele în foneme
(elementele de baza ale vorbirii). Principalele discipline care contribuie la tehnologiile de
analiză acustică sunt fonetica, fonologia si metodele generale de prelucarera semnalului. În
această componentă sunt folosiți codificatori, care reduc debitul semnalului vocal și
analizatori vocali, care transformă semnalul în caracteristici. Modulul lingvistic analizează
conținutul vorbirii si compară combinațiile de foneme cu cuvintele dintr -un vocabular și
decide apoi care a fost propozitia sau comanda rostita de vorbitor.
Tehnologia recunoașterii a vocii este realizată de o componentă software numită motor
de recunoaștere a vorbirii (S peech Recognition Engine SRE). Aceste m otoarele de
recunoastere vocală supo rtă două moduri de lucru. Primu l mod de lucru este dictarea, ce
permite utilizatorului sa introducă date vorbind direct spre computer . În cadrul programelor ce
suportă acest mod de lucru, denumit dictare, posibilitatea recunoșterii tuturor cuvintelor
rostite de interlocutor este limitat ă de dimensiunea docționarului incorporat . Aceste programe
se bazeaza pe acuratetea mesajului transmis, pe timbru si accent. Problema principală a
programelor cu funcție de dictare, este că devin dependente de vorbitor, deoarece claritatea
informației tran smise nu este bine percepută de prima oară. Cel de -al doilea mod de lucru este
comanda sau controlul, în cadrul căruia, utilizatorul transmite comenzi prin vorbire , iar
dicționarul este limitat de lista de comenzi disponibile . Limitarea listei de comenzi a re atât
avantaje precum creșterea performanțelor aplicațiilor, cât și dezavantaje, scaderea necesarului
de putere de calcul al sistemului. Faț ă de primul mod de lucru, dictarea, acesta este
independent de vorbitor.
Subc apitolul 3.1. PROCESAREA VORBIRII
Procesarea vorbirii este un domeniu ce cuprinde două mari direcții de dezvoltare , care a
cunoscut in ultimii ani, o evoluție de -a dreptul spectaculoasă. Procesul de recunoaștere a vorbirii
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
14
vizează transformarea unui semnal audio ce conține vorbire într -o succesiune de cuvinte. Unul
dintre cei mai importanți factori de care depinde dificultatea procesului de transcriere este sarcina de
recunoaștere. Sarcina de recunoaștere include specificitatea limbii, numărul de cuvinte ce pot fi
pronunțate și incertitudin ea lingvistică a sarcinii de recunoaștere. Dimensiunea vocabularului sau
dicționarului aplicației sau programului este de asemenea un factor important . Un alt factor esențial
îl reprezintă stilul vorbirii, care se referă la cât de fluentă și naturală este vorbirea.
Prima direcție de dezvoltare este recunoașterea vorbirii, Speech -to-text, ce înseamna
identificarea cuvintelor spuse de către interlocutor. Acest lucru este posibil cu ajutorul unei
componente software numite Speech Recognition Engine. Cel de -al doilea domeniu ce reprezint ă
procesarea vorbirii este sinteza vorbiri, ce înseamnă reconstituirea vocii. Sistemul de calcul care
realizeaza procesul de recompunere al vocii se nume ște Text -to-speech.
(Fig. 3.1.1 Procesul de recunoaștere vocală )
Prim ul pas al procesului de recunoaștere vocală este cea a vorbiri .
Vorbirea este mijlocul cel mai natural de comunicare între oameni și reprezint ă unul din cele
mai complexe operații efectuate de organism. Din punct de vedere fizic, vorbirea , acel proces
specific omului, pornește din plămâni sau diafragmă și începe prin producerea unui flux de aer, care
trece prin laringe unde este modulat de corzile vocale. Acest pas descris mai poartă numele de
fonație și determină înălțimea și tonul vocii. În cadrul stru cturii umane e xistă patru corzi vocale ,
două corzi vocale superioare și două corzi vocale inferioare , între care se află o deschizătură
denumită glota interligamentoasă. Aceastp deschizatură diferită ca dimensiuni la bărbați și la femei.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
15
Activitatea celor patru corzi vocale este stimulată și dirijată de către sistemul nervos central.
Faringele ajustează direcția fluxului de aerul spre cavitatea bucală, spre cavitatea nazală sau spre
amândouă simultan, aerul fiind astfel filtrat de gură, nas și gât – proces numit articulare.
În contextul comunicării, există o diferența clar ă între vorbire și limbaj, cu toate că acestea la
prima vedere par a fi sinonime. Vorbirea este procesul de transmitere a mesajelor sau a informațiilor
și se refera atât la totalitatea per soanelor ce asculta, cât și la mediul de transmiterea a acestora. Pe de
alta parte, limbajul reprezintă procesul psihic comunicațional și presupune o legatură stransă cu
funcțiile intelectuale și motorii. Vorbirea se afla la baza limbajului. Ca un plus de informație,
vorbirea conține cu mult mai multe informații decât mesajul clar pe care îl recepteaza aparatul sau
aplicația.
Preprocesarea reprezintă cel de -al doilea pas în realizarea procesului .
Preprocesarea este etapa recunoașterii vocale și este fol osită cu scopul de a crește eficacitatea
caracteristicilor de extragere și de a clasifica pe etape , iar de acolo să imbunatățească performanțele
recunoașterea vocii. Acest pas se împarte în eșantionare, realizarea cadrelor și înlaturarea
zgomotelor. Dupa toate acestea, cadrele filtrate și comprimate sunt predate urmatorului pas din
cadrul procesului de recunoaștere vocală.
(Fig. 3. 1.2. Etapele preprocesării)
Prima lucru în a realiza preprocesarii este de a digitaliza mesajul, iar mai apoi de a îl simpl ifica și
cuantiza. Cea de -a doua etapă subliniază faptul că vorbitul reprezintă un semnal nestaționar cu timp
variabil , conform teoriei lui Nyquist -Shannon, referitoare la eșantionare .
În procesarea semnalelor , eșantionarea reprezintă transformarea unui semnal
continuu (analog ic) într -un semnal discret . Un eșantion se referă la o valoare sau un set de valori, la
un punct în timp și/sau spațiu. Un eșantionator este un subsistem sau operație care prelevă
eșantioane dintr -un semnal continuu. Un eșanti onator ideal teoretic, produce eșantioane echivalente
valorii instantanee a semnalului continuu la punctele dorite. Pentru conveniență, se va discuta
despre semnalele care variază în timp. Totuși, aceleași rezultate pot fi aplicate semnalelor care
variază în spațiu sau în oricare altă dimensiune și rezultate similare sunt obținute în două sau mai
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
16
multe dimensiuni. Frecvența de eșantionare sau rata de eșantionare fe este definită ca numărul de
eșantioane obținute într -o secundă, sau fe = 1/T. Rata de eșantionare este măsurată în hertzi sau în
eșantioane pe secundă. Teorema eșantionării garantează că semnalele limitate în bandă (adică,
semnale ca re au o frecvență maximă) pot fi reconstruite perfect din versiunea lor eșantionată, dacă
rata de eșantionare este mai mare decât dublul frecvenței maxime .5
x(t) – din cadrul Fig.3.2. reprezintă banda limită a frecvenței maxime, care necesită a fi
eantion ată. Aceasta poate fi reconstruita sub forma de semnal în timp discret.
x[n] – caracteristica vector .
(Fig. 3.1.3. Eșantionare)
Cu scopul de a avea semnale cu valori discrete, acestea trebuie cuantificate. Cuantificarea este o
consecinta a precizie i finite a cuvintelor care reprezinta valori convertite. Acest lucru la duce la
reducerea destul de mare de date, informații transmise.
Realizarea cadrelor se efectuează puțin mai complicat. Vorbirea este un semnal nestaționar.Pe
scurt, semnalul staționar este acel semnal care de -a lungul timpului nu prezintă modificari de
frecvență. Presupunem ca sunetele emise de o ființa umană, vorbitul mai exact, este construit dintr –
un dicționar de foneme. Fonemele produc modificari de frecvența, dar în același timp r amân
nemodificate timp de ~5-100 milisecunde. Prin urmare, semnalul ramâne staționar pentru acele
5 Teorema eșantionării Nyquist -Shannon, Wikipedia, Matt Pharr și Greg Humphreys, Physically Based Rendering:
From Theory to Implementation (Redarea pe bază fizică: de la teorie la implementare), Morgan Kaufmann, iul.
2004. ISBN 0 -12-553180 -X.
Shannon, Claude E., Communications in the presence of noise (Comunicații în prezența zgomotului), Proc. IRE, vol. 37,
pp. 10–21, ian. 1949
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
17
fracțiuni de secunda. Pentru a obține cadre clare, înmulțim semnalul vorbit cu o funcție de ingustare.
Acestă funcție preia semnalul în timp și îl divide in s ecvențe de semnale parțiale.Există o diversitate
de funcții fiecare cu diferite caracteristici.
Etapa înlaturării zgomotului sau reducerea zgomotului ține de îmbunătățirea mesajului,
oferindu -i o claritate deosebită. Zgomotele eliminate de acestea sunt zg omotele facute de microfon
în sine, de electrocasnicele din jurul aparatului sau aplicației sau pur si simplu zgomotul din fundal.
Cel de -al treilea pas în realizarea procesului de recunoaștere vocală este extragerea
caracteristicilor.
Dupa pasul 2 numai preprocesare, extragerea caracteristicilor este cea de -a doua componentă a
sistemului de recunoaștere vocală. Extragerea caracteristicilor descrie metodele de extragere a
semnalelor de vorbire. Această componentă este necesară deoarece pe lângă semnalul b rut primit
ințial, mai conține și alte informații, iar dimensiunea este destul de mare. Algoritmul extragerii de
caracteristici, derivează caracteristica vector, caracteristică ce este de dimensiuni mici si este
folosită în deosebi pentru a clasifica sunet ele. Caracteristica vector subliniază și aduce în prim plan
informațiile importante (cuvintele cheie) care duc la îndeplinirea comenzii dorite și înlatura celelalte
informații. Acest rol de a evidenția informațiile cheie este unul foarte important. Celelal te informații
care sunt înlăturate din proces, sunt informații care aparțin mediului înconjurator, fundalului ,
imformații ce nu au legatură cu comanda dată. Scopul acestei etape este de a reduce dimensiunile
informațiilor primite într -un timpul scurt.
Algoritmii semnalului vocal cvasi -staționar utilizează secvențe de timp de 10 milisecunde până
la 30 de milisecunde6. Aceste semnale cvasi -staționare corespund unei configurații statice a
sistemului vocal. Configurațiile constante ale semnașului vocal conți n relativ câteva informații
lingvistice. În plus, este foarte greu să deosebești termenii stașionari mici sau scurți de vorbire ai
semnalului vocal, de termenii staționari lungi ai semnalului de zgomot. Stivuirea caracteristicilor are
un rol bine pus la pu nct, acela de a câștiga cât mai multe caracteristici speciale ale recunoașterii
vocale. În figura de mai jos, am prezentat cum sunt combinate diferite caracteristici, pentru a
tarnsmite un mesaj clar, cu erori inexistente. Din semnalul vocal încep sa se ex traga diferite
caracteristici , care la randul lor sunt comprimate pentru a decoda mesajul și a îl transmite clar, fără
prezenta erorilor.
6 L. Rabiner and B. -H. Juang, Fundamentals of speech recognition , Englewood Cliffs: Prentice -Hall International, 1993.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
18
(Fig. 3.1.4 . Combinarea diferitelor caracteristici cu
rolul de a transmite un mesaj clar )
Cel de -al patrulea pas se compune din limbaj și sunete receptate.
(Fig. 3.1.5. Pasul IV din procesarea recunoașterii vocale)
În fig. 3.1.5. (Pasul IV din procesarea recunoașterii vocale ) modelul matematic al unui
asemenea sistem stati este alcătuit astfel încât după extragere a caracteristicilor semnalului vocal,
apar un set de vectori acustici A= { a1, a2, a3, …, a n } și o secvența de cuvinte W*= { w1, w2, w3, …,
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
19
wn }. În cadrul figurii, P(A|W ) reprezint ă modelul acustic și P(W) reprezint ă modelul lingvistic al
unui sist em de recunoaș tere a vorbirii .
Siste mul recunoașterea vorbirii din zilele noastre utilizeaza atât modelul limbajului cât și modelul
acustic. Acestea două menționate, contribuie la transmiterea unui mesaj clar, lipsit de erori și
probleme, eliminând factori i perturbatori din proces.
Limbajul reprezintă funcția utilizată cel mai frecvent de către oameni în activitatea de
comunicare, activitate în cadrul careia, aceștia schimb ă în mod continuu informații de diferite tipuri.
Limbajul este un fenomen deosebit d e complex care cuprinde mai multe forme, spre exemplu verbal
(mesajul se transmite clar prin cuvinte, tonalitate – activitate realizată prin intermediul limbii) și
respectiv non -verbal (mesajul este transmis prin gesturi, mimică). Dar spre deosebire de
comu nicarea om -om, comunicarea om -mașina sau om -program este mult mai dificilă.
Mesajul în cadrul comunicării om -mașina, om -progrm , poate fi interpretat greșit deoarece,
limbajul oferă oamenilor un cîmp larg de cuvin te, cuvinte care la rândul lor aduc probl eme sau erori
asupra programului. Paronimele sunt cuvintele cu sens diferit, dar care au formă asemanătoare.
Aceste cuvinte difera printr -un sunet sau doua (exemplu în limba romana : eminent / iminent).
Omonimele sunt cuvintele cu forma identica, dar cu s ens total diferit (exemplu : lac, broască, etc.).
Astfel aceste tipuri de cuvinte implică multe probleme și erori în înțelegerea și interpretarea
mesajului transmis de către om, spre mașina sau program.
Limbajul model ajuta recunoșterea vocală, să în țeleaga independent mesajul de acustică.
Acest lucru permite recunoașterii vorbirii să aleaga și să ghicească corect forma adevărată,
transmisă de individ, din cele două posibilități, daca două propoziții sau cuvinte seamănă foarte mult
între ele.În general, cu cât limbajul model este mai bun, cu atât rata erorilor de recunoaștere a
vorbirii este mai mică. Până în prezent nu există niciun program, nicio aplicație care să fie 100%
perfect din punct de vedere al limbajului model. Performanțele programelor au aj uns în prezent la
45%, ce înseamnă că rata erorilot a scăzut cu 10% fată de acum zece ani.
Acustica este folosită în deosebi în recunoașterea vocală, pentru a trasa o legatur ă clară între
semnalele audio și fenomenele sau unitați le lingvistice ce realizea ză vorbirea. Acest model acustic
este preluat dintr -un set de înregistrări audio și din corespondențele lor în scris, create de programe.
Acustica sau mai bine spus modelul acustic este un fișier ce conție reprezentații statitice ale
fiecăror sunete dist incte ce compun un cuvânt. Fiecarei reprezentări statistice în parte îi este
atribuită o etichetă de foneme. Limba engleză are în jur de patruzeci și patru de sunete distincte ce
sunt folosite pentru recunașterea vocală, și prin urmare rezultă patruzeci și patru de foneme diferite.
Am ales limba engleză deoarece întreaga structură a codului și a aparutelor, utilizate de mine, ăn
realizarea acestei teme de licență este în această limbă.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
20
Nr.
Crt. Sunet Litera/Grupul de litere Exemple
1 /b/ b, bb bug, bubble
2 /d/ d, dd, ed dad, add, milled
3 /f/ f, ff, ph, gh, lf, ft fat, cliff, phone, enough, half, often
4 /g/ g, gg, gh,gu,gue gun, egg, ghost, guest, prologue
5 /h/ h, wh hop, who
6 /j/ j, ge, g, dge, di, gg jam, wage, giraffe, edge, soldier, exaggerate
7 /k/ k, c, ch, cc, lk, qu ,q(u), ck,
x kit, cat, chris, accent, folk, bouquet, queen, rack,
box
8 /l/ l, ll live, well
9 /m/ m, mm, mb, mn, lm man, summer, comb, column, palm
10 /n/ n, nn,kn, gn, pn net, funny, know, gnat, pneumonic
11 /p/ p, pp pin, dippy
12 /r/ r, rr, wr, rh run, carrot, wrench, rhyme
13 /s/ s, ss, c, sc, ps, st, ce, se sit, less, circle, scene, psycho, listen, pace, course
14 /t/ t, tt, th, ed tip, matter, thomas, ripped
15 /v/ v, f, ph, ve vine, of, stephen, five
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
21
16 /w/ w, w h, u, o wit, why, quick, choir
17 /y/ y, i, j yes, onion, hallelujah
18 /z/ z, zz, s, ss, x, ze, se zed, buzz, his, scissors, xylophone, craze
(Tabel 3.1. 1. Foneme engezești. Consoane )
Nr.
Crt. Sunet Litera/Grupul de litere Exemple
19 /a/ a, ai, au cat, plaid, laugh
20 /ā/ a, ai, eigh, aigh, ay, er, et, ei,
au, a_e, ea, ey bay, maid, weigh, straight, pay, foyer, filet,
eight, gauge, mate, break, they
21 /e/ e, ea, u, ie, ai, a, eo, ei, ae, ay end, bread, bury, friend, said, many, leopard,
heifer, aesthetic, say
22 /ē/ e, ee, ea, y, ey, oe, ie, i, ei,
eo, ay be, bee, meat, lady, key, phoenix, grief, ski,
deceive, people, quay
23 /i/ i, e, o, u, ui, y, ie it, england, women, busy, guild, gym, sieve
24 /ī/ i, y, igh, ie, uy, ye, ai, is,
eigh, i_e spider, sky, night, pie, guy, stye, aisle, island,
height, kite
25 /o/ o, a, ho, au, aw, ough octopus, swan, honest, maul, slaw, fought
26 /ō/ o, oa, o_e, oe, ow, ough, eau,
oo, ew open, moat, bone, toe, sow, dough, beau,
brooch, sew
27 /oo/ o, oo, u,ou wolf, look, bush, would
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
22
28 /u/ u, o, oo, ou lug, monkey, blood, double
29 /ū/ o, oo, ew, ue, u_e, oe, ough,
ui, oew, ou who, loon, dew, blue, flute, shoe, throug h,
fruit, manoeuvre, group
30 /y//ü/ u, you, ew, iew, yu, ul, eue,
eau, ieu, eu unit, you, knew, view, yule, mule, queue,
beauty, adieu, feud
31 /oi/ oi, oy, uoy join, boy, buoy
32 /ow/ ow, ou, ough now, shout, bough
33 /ə/
(schwa) a, er, i, ar, our, o r, e, ur, re,
eur about, ladder, pencil, dollar, honour, doctor,
ticket, augur, centre, chauffeur
(Tabel 3.1.2. Foneme englezești. Vocale)
Nr.
Crt. Sunet Litera/Grupul de litere Exemple
34 /ã/ air, are, ear, ere, eir, ayer chair, dare, pear, where, thei r, prayer
35 /ä/ a, ar, au, er, ear math, jar, laugh, sergeant, heart
36 /û/ ir, er, ur, ear, or, our, yr bird, term, burn, pearl, word, journey, myrtle
37 /ô/ aw, a, or, oor, ore, oar, our, augh,
ar, ough, au paw, ball, fork, poor, fore, board, four, t aught,
war, bought, sauce
38 /ēə/ ear, eer, ere, ier ear, steer, here, tier
39 /üə/ ure, our cure, tourist
(Tabel 3.1.3 . Foneme englezești. Vocale controlate )
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
23
Nr.
Crt. Sunet Litera/Grupul de litere Exemple
40 /zh/ s, si, z treasure, division, azure
41 /ch/ ch, tch, tu, ti, te chip, watch, future, action, righteous
42 /sh/ sh, ce, s, ci, si, ch, sci,
ti sham, ocean, sure, special, pension, machine, conscience,
station
43 /th/ th(voiced),
th(unvoiced) thongs, leather
44 /ng/ ng, n, ngue ring, pink, tongue
(Tabel 3.1.4 . Foneme en glezești. Diftong )
Acustica este creată printr -o structură de date largă, ce utilizează algoritmi speciali pentru
trasarea reprezentărilor statistice a fiecărui fonem din cadrul limbii. Aceste reprezentări statistice
sunt numit Modelele Markov Ascunse (Hidden Markov Models – H.M.M.). Fiecare fonem are
propriul lui HMM. De asemenea Modelul Markov Ascuns (M.M.A.) este cea mai bună alegere in
modelarea temporală în vorbire.7
Pentru implementarea recunoașterii vorbirii este nevoie de un model cu ajutorul căru ia să
putem descrie condițiile în care se produce vorbirea. Modelul Markov Ascuns M.M.A. este util atât
pentru procesarea semnalelor (de exemplu eliminarea zgomotului) cât și pentru identificarea sursei
care le -a generat, fără a dispune de informații despr e ea. Mai mult decât atât, modelele pot rezolva
probleme complexe de predicție, recunoaștere sau identificare.
Modelul Markov ascuns (MMA , Hidden Markov Models – H.M.M. ) este un model
probabilistic foarte des utilizat și care duce la rezultate încurajatoar e în domeniul recunoa șterii
vocale . Între anii 1960 și 1970, Baum împreună cu Eagon, Petrie, Souls și Weiss au dezvoltat și pus
7 S. Young, "HMMs and Related Speech Recognition Technologies", în Springer Handbook of Speech Processing , J
Benesty, MM Sondhi și Y Huang (eds), c apitolul 27, 539 -557, 2008 Young (2008)
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
24
bazele teoretice ale modelului Markov. Baum a fost primul care a realizeazat o descriere teoretică a
acestui model. Baum și Petr ie au început în 1966 să pună la punct un nou sistem , iar în 1967
cercetările au continuat cu Baum și Eagon. Cu toate acestea, adevăratele aplicații în domeniul
recunoașterii vocale au aparut d -abia ăn anul 1975 sunt sunt strâns legate de numele de Baker ș i
Jelinek. 8
Un Model Markov ascuns M.M.A. poate reprezenta o unitate lingvistic: un fonem, un cuvânt
sau o propoziți e, uneori chiar o întreag ă frază. Această unitate lingvistic ă folosită în domeniul
recunoa șterii vocale continue este de fapt fonemul , care stă la baza vorbirii . Orice cuvânt poate fi
format prin concatenarea fonemelor și orice propozi ție sau fraz ă poate fi construit ă prin înș iruirea
cuvintelor. Formarea cuvintelor din foneme este constrâns ă de lexic (lexicon), iar formarea
propozi țiilor din cuvinte este supravegheată de reguli le gramaticale (grammar).
(Fig. 3.1.5. Modelarea succesivă a fonemelor, cuvintelor și propozițiilor)
Decodificatorul ascultă cuv ântul sau cuvintele spuse de vorbitor și încearcă să dist ingă
sunetele. După aceea, c aută pentru un HMM care s ă se potrivească în modelul acustic. Atunci când
a identificat HMM -ul potrivit, decodificatotul începe să extragă fonemele . Acesta urmarește cu
atenție, păstrează un istoric al fonemelor până întâlnește pauză în vorbirea utilizator ului. Pauzele
joacă un rol important în transmiterea corectă a conținutului unui mesaj. În general, cuvintele se
pronunță legat unul de altul, ele fiind separate de pauze numai dacă cerințele lega te de limbaj impun
acest lucru. Când este descoperit ă pauza, decodificatorul unește fonemele ce se potrivesc în
cuvantul vorbit și caută în dicționarul său propriu cuvântul pentru a îl verifica. Decodificatorul își
continuă cautările în fișierul de gramatică pentru încă o verificare de final. Atunci cand totul se
potrivește acesta returnează cuvântul, propoziția sau fraza vorbită.
8 Istoria Modelul ui Markov Ascuns M.M.A., Martin Sewell, 2008
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
25
(Fig 3.1.5 . Structur a unui sistem de recunoaștere
a cuvintelor bazat pe un HMM discret .)
Cel de -al cincilea pas îl reprezintă aplicațiile.
În prezent au fost lansate o sumedenie de aplicații care au la baza recunoașterea vocală. Modelul
Apple cu sistemul de operare iOS, denumit Siri, este cel mai cunoscut. Numele de Siri este
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
26
scandinavian și este forma scurtă a numelui Sigrid, ce înseamnă “femeie frumoasă ce te conduce
spre victor ie”9. De-a lungul timpului numele de Siri a primit si un acronim de specialitate Speech
Interpretation and Recognition Interference (Interpretarea vorbirii și recunoașterea interferențelor) și
a fost incorporat în iOS 5 al iPhone -ului 4S pe data de 4 octom brie 2011. Sistemul de operare iOS,
denumit Siri a fost realizat de inginerii inteprinderii Nunance Communications.
Un alt produs ce a atras atenția tuturor a fot Google Now. Această aplicație a fost creata de
inginerii Google și este integrată în modulel e de cautare Google pentru aplicațiile de tipul Android ,
dar mai poate fi gasită și in browser -ele de cautare Chrome pentru computerele personale . Prima
oară a aparut pe 9 iulie 2012 și a fost inclusa in Androidul 4.1 (Jelly Bean), iar în cadrul Chrome –
ului pe 24 martie 2014.
Microsoft Cartana este o alt ă aplicație de recunoaștere vocală , realizată de Microsoft. Numele își
are rădăcinile în jocul video “Halo ”, după caracterul cu inteligență artificială din acesta, realizat de
aceeași firmă . Cartana s -a lansat la începutul anului 2015, ca fiind ingredientul cheie în viitorul
sistemelor de operare Windows pentru telefoane.
La rândul lor, compania Samsung a realizat Samsung S Voice, aplicație care merge pe toate
modelele noi de la Samsung Galaxy S III.
Subcapitolul 3.2. PRELUCRAREA ȘI ANALIZA SEMNALULUI VOCAL
În ultimii ani, comunicațiile personale au cunoscut o adevărată ascensiune explozivă aș
putea spune. Acestea având rolul de a asigura transmiterea semnalelor vocale, între terminale
diferite. Ascen siunea este relevată de multitudinea de aplicații ce au apărut și au acaparat atenția si
interesul tuturor, indiferent de generație. Aplicațiile au devenit de la un simplu moft, la o necesitate,
acestea fiind practice, importante, de foarte multe ori spect aculoase și mediatizate prin orice mijloc.
Prelucrarea vorbirii este o disciplină ce este determinat ă de doi factori : reactualizarea unor
algoritmi și dinamismul cercetărilor teoretice. Furnizarea serviciilor precum : creșterea vitezei de
transmitere, tra nsmiterea digitală a semnalului vocal în cadrul sistemelor telefonice, presupune
realizarea unor anumite procese de prelucrare a semnalului vocal. Procese ce au ca rol transmiterea
clară, corectă, eficientă a mesajului prin compresie în timp sau frecvența.
Prelucrarea semnalului vocal este impusă nu numai din necesitatea de a transmite un volum
mare de informații, ci si de necesitatea recunoașterii sintezei vorbirii. Echipamentele de sinteza
vocală reprezintă o preocupare de interes major pentru comunitaț iile științifice din întreaga lume. În
prezent, o data cu evoluția în timp a tehnologiei în lumea fantastică și fascinantă a computerelor,
9 http://theweek.com/articles/476851/apples -siri-got-name
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
27
aceste echipamente au început să fie comercializate la preturi rezonabile. Astfel, marile firme
producatoare de softw are au realizat pachete de programe și aplicații ce permit sinteza vocală în
timp real.
Secțiunea 3.2.1. O BIECTIVELE PRELUCRĂRII SEMNALULUI
Principalele obiective ale prelucrării semnalului vocal sunt
Reprezentarea numerică a semnalului vocal ;
Analiza semnalului vocal ;
Sinteza semnalului vocal ;
Recunoașterea vorbirii ;
Recunoașterea vorbitorului ;
Aplicații speciale.
Primul obiectiv, reprezentarea numerică a semnalului vocal cuprinde moduri de
reprezentare, proprietăți statistice ale semnalului vocal ș i codarea eficientă. Codarea este un
domeniu foarte vast, ce este esențial pentru transmiterea mesajului. Aceasta urmărește reducerea
debitului de informații pentru realizarea criptării, dar și pentru a realiza o protectue a semnalului util
fața de zgomot.
Cel de -al doilea obiectiv urmarește punerea în evidența a proprietăților spectrale ale
semnalului vocal. Analiza semnalului vocal mai încearca să puna în valoare analiza spectrală a
determinarii unor parametrii utili în urmatoarele doua obictive, mai exa ct sintezei și recunoașterii
vocale.
Sinteza constă în producerea semnalului vocal. Ea pornește de la un dicționar de elemente
fonetice și de reguli. Sinteza poate fi : sinteza unor mesaje vocale cu conținut predeterminat, mesaje
înregistrate după o prelu crare mai vastă sau mai putin vastă și sinteza vorbirii de la un text oarecare
scris, care conține o problema complexă .
Ce-l de-al patrule obiectiv, recunoașterea vocală împreuna cu obiectivul anterior, sinteza
vorbirii, reprezintă baza indispensabilă pen tru dezvoltarea unui sistem de comunicare om -program,
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
28
om-mașina. Aceasta are ca rol să facă programul sau mașina capabilă să intrepreteze cuvintele sau
frazele pronunțate de un vorbitor.
Recunoașterea vorbitorului înseamna identificarea persoanei dupa vo ce, pe baza unor vocale
specifice individului in sine.
Ultimul obiectiv se refera la domeniile de aplicatie ale prelucrarii semnalului vocal.
Secțiunea 3.2. 2. APLICAȚII UTILIZATE ÎN PRELUCRAR EA ȘI ANALIZA SEMNALULUI
VOCAL
Cele mai cunoscute și utilizate programe în prelucrarea semnalului vocal în momentul
prezent sunt: Matlab și LabView.
Matlab
Matlab este un mediu performant utilizat în domeniul calculului matematic și aplicativ,
inclusiv în cel al prelucrării automate de semnal. Matlab este acronimul pentru „Matrix Laboratory” .
Matlab dispune de numeroase instrumente software specializate pentru anumite aplicații particulare,
cum ar fi prelucrare de imagini, prelucrare de semnal, analiza cir cuitelor electrice, aplicații de
inteligență artificială, unelte de vizualizare a datelor, etc. Aceste instrumente (Simulink, Fuzzy) sunt
organizate în așa -numitele „toolbox” -uri accesibile utilizatorului prin interfețe grafice specializate,
manipularea ac estora făcându -se de asemenea prin interacțiune grafică.
Un exemplu de astfel de instrument software pus la dispoziți a utilizatorului este Simulink.
Instrumentul Simulink este de fapt un pachet de programe ce pot fi folosite pentru modelarea,
simularea și analiza sistemelor dinamice liniare sau neliniare. Modelarea se poate face în timp
continuu sau discret. Caracteristicile sistemului de studiat sunt precizate prin obiecte grafice
speciale, care sunt interconectate cu ajutorul mouse -ului de către utilizat or (așa -numitul limbaj G –
limbajul grafic). Astfel se pot introduce în sistem generatoare de semnal, instrumente de vizualizare,
blocuri de funcții matematice, componente liniare și neliniare.
Alte instrumente avansate de lucru sunt: SpTool, folosit pent ru proiectarea de filtre digitale,
Dsp Tool, utilizat pentru prelucrarea digitală de semnal, inclusiv semnal audio, Neural Network
Tool – pentru proiectarea și testarea sistemelor bazate pe rețele neuronale, Statistic Tool – pentru
calcule statistice, etc.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
29
Aplicația dispune de un limbaj de nivel foarte înalt ce respectă principiile programării
structurate, cu o sintaxă asemănătoare limbajului C. Operațiile de bază ale limbajului sunt operații
cu matrici, specificate prin variabile de tip vector ce dispun de redimensionare automată. Operațiile
asupra vectorilor se realizează folosind funcțiile ce sunt puse la dispoziția utilizatorului prin
intermediul unei biblioteci matematice extinse.
LabView
LabView este un mediu de dezvoltare grafică ce permite construire a de aplicații destinate
instrumentăției virtuale: măsurări și teste de laborator, monitorizarea aparatelor industriale, studiul
comportamentului sistemelor. LabView permite proiectare aplicațiilor SCADA (Supervisory
Control and Data Acquisition of Industr ial Processes) și MMI (Man -Machine Interface).
Caracteristic interfeței grafice LabView este tabloul de comandă („control panel”) în care
utilizatorul poate adăuga controale (comutatoare, indicatoare, reglaje) și afișaje de date (afișaje
numerice, oscilos coape, multimetre, LED -uri indicatoare, grafice, histograme, etc.).
Tabloul de comandă se pune în legătură cu un flux de achiziție de semnal (ce provine de la o
placă de achiziție de semnal, placă audio sau video). Utilizatorul va putea apoi analiza și te sta
comportamenul sistemului în mod virtual folosind facilitățile programului și apoi să -și construiască
propriile aplicații.
LabView dispune și de un limbaj de programare numit LabWindows/CVI (CVI este un
acronim pentru „C for Virtual Instrumentation”). Acesta este un mediu de programare destinat
proiectării aplicațiilor folosind limbajul C. LabWindows/CVI pune la dispoziția utilizatorilor fișiere
de instrumentație virtuală sub forma unor biblioteci dinamice, permițându -se astfel inserarea in
codul sursă utilizator a aplicațiilor predefinite.
Astfel, prin intermediul fișierelor de intrare / ieșire integrate, a rutinelor de analiză și a
instrumentel or de creare a interfeței utilizator, programul furnizează elementele esențiale în vederea
realizării unor aplicații profesionale de prelucrare de semnal, instrumentație vi rtuală și control de
proces.
Subcapitolul 3.3. METODE DE PRELUCRARE A SEMNALULUI VOCAL
Recunoașterea vo cală este acel proces de extragere aut omată a informației lingvistice.
Informație care este conținută de o undă vocală, care la randul ei se folosește de computere sau
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
30
circuite electronice. Informația lingvisti că reprezin tă și este cea mai importantă informație din
semnalul vocal. Aceasta se mai numește și informație fonetică. Într -un sens mai larg, recunoașterea
vorbirii include și recunoașterea vorbitorului, ceea ce implică extragerea informațiilor individuale
caracteris tice persoanei care vorbește. Metodele de recunoaștere automată a vorbirii sunt studiate de
o indelungata perioada care se intinde pe cateva decenii bune , cu scopul principal de a realiza
sisteme de interacțiune om -mașină sau om -program .
Analiza și prelucrarea semnalului vocal reprezintă două etape premergătoare importate în
abordarea sintezei și recunoașterii a vorbirii . Recunoașterea vocală este acel proces de identificare a
cuvintelor rostite de individ și ințelegerea mesa jului transmis de acesta. Recunoașterea vorbirii mai
poartă acronimul de speech -to-text (exact procesul de a transforma cuvintele vorbite în text).
Sinteza de voce reprezintă de data aceasta, procesul exact invers al recunoașterii vocale.
Acest proces i nvers presupune recompunerea vocii de către sistemul de calcul. Sinteza de voce este
strâns legată de procesul transformării unui text în limbaj vorbit. Acest proces mai poartă numele de
text-to-speech. În cadrul arhitecturii text -to-speech, percepția sune telor din punct de vedere fizic este
influențată de trei factori importanți: volumul care este o măsură a intensității sunetului, frecvenței
componentei fundamentale a sunetului cunoscută sub numele de înălțime a vocii și timbrul care
reprezintă conținutul armonic al semnalului.
Prelucrarea numerică a semnalului vocal cuprinde toate metodele de operare directă asupra
semnalului, în special , spre exemplu metode de filtrare, codificare și compresie. Analiza semnalului
vocal constituie determinarea parametril or care vor fi utilizați în aplicații.
Secțiunea 3.3.1. METODE NUMERICE
Prelucarea semnalui vocal începe de la achizitia semnalului vocal de la sursa. Sursa este
reprezentată de microfon sau aparatura în sine de înregistrare. Metoda presupune transfor marea
semnalului analogic în semnal digital, urmată de filtrarea zgomotelor de achiziție.
Aceasta conversie menționată se realizează cu o frecvență de eșantionare de cel puțin 8 kHz
și presupune de asemenea un anumit mod de reprezentare a semnalului în f ormat numeric. Modul de
reprezentare digitală mai poartă numele și de codarea semnalului.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
31
Secțiunea 3.3.2. METODE DE CODARE
Eșantionarea constă în preluarea valorilor instantanee ale semnalului analogic cu o perioadă
de repetiție depinzând de spectrul aceluiași semnal. Din teorema eșantionării , prezentată în
Subcapitolul 3. 1. este cunoscut că un semnal analogic s(t) poate fi convertit într -un set de impulsuri,
luând valori instantanee de tensiune la intervale regulate de valoare T=1/(2f M), cu f M frecven ța
maximă a semnalului s(t). Acesta este semnalul PAM , reprezentat în Fig. 3.1.3..
Tehnica cea m ai utilizată în codarea semnalului vocal este tehnica modularii impulsurilor în
cod, P.C.M. (Pulse Code Modulation). Prin codarea modularii impulsurilor P.C.M. , fiecare eșantion
al semnalului vocal este cuantizat independent de celelelate , amplitudinea informației conținută în
fiecare eșantion PAM este convertită într -o valoare binară cu lungime fixă . Cuantizarea semnalelor
reprezintă dicretizarea în amplitudine a valorilor eșantioanelor , mai exact i se atribuie o valoare
numerică . După cuantizare semnalul original nu mai poate fi refăcut, cuantizarea introducând un
anumit zgomot intrinsec, numit zgomot de cuantizare. Acest zgomot de cuantizare sau eroare de
cuant izare reprezintă eroarea dintre semnalul cuantizat si cel original.10
(Fig. 3.3.1. Zgomotul de cuantizare sau eroarea de cuantizare )
În cadrul tehnicii modulării impulsurilor în cod, există diferite moduri de cuantizare a
valorii fiecărui eșantion în parte. Două dintre cele mai utilizate moduri sunt codarea liniară și
10 Procesarea digitală a semnalelor, Îndrumar de laborator, Kertész Csaba -Zoltan și Laurențiu –Mihail Ivanivici, Editura
Universitatea Transilvania Brașov, Brașov, 2009
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
32
codarea logaritmică11. Codarea liniară se referă la considerearea valorii scalare a eșantionului ca și
cuvânt de cod. Cuvântul cod poate deveni un număr cu semn sau o mărime cu semn, adic ă se ține
oarecum cont că, semnalul vocal variaza în jurul unei poziții de referința de nivel zero. Codarea
logaritmică presupune o transformare logaritmică a valorii scalare a eșantionului, atribuindu -i după
aceea o reprezentare numerică a rezultatului ob ținut în urma operațiilor efectuate. În cazul tehnicii
modulării impulsurilor în cod, cuvântul de cod din cadrul codării liniare se reprezintă printr -un
număr fix de cifre binare, însă mai există și alte metode , care generează coduri de lungime variabilă.
Una din aceste metode care generează coduri de lungime variabilă, se numește c odarea entropică .
Această codare este o metodă, care are ca rol codarea semnalului pe grupuri de eșantioane . Aceste
grupuri de eșantioane au valori apropiate saua asemănătoare , situate într -o subclasă a valorilor totale
posibile. Pentru fiecare grup de astfel de eșantioane, cuvântul de cod se generează pe un număr de
biți mai mic decât numărul de biți ce ar fi necesar pentru codarea plajei totale de valori pentru
eșantioane. Alte metode ce merg a fi menționate sunt codarea Huffman, care foloseste grupari de
valori ale eșantioanelor pe segmente, codarea arimetica, care caută secvențe asemanatoare sau de
valori identice ale semnalului, codarea predictivă, folosită în deosebi pentru eliminarea redundanței
semnalului
Pentru tratarea nesta ționarității semnalului vocal se folose ște metoda de codare adaptivă.
Tehnica ADPCM (Adaptive Delta Pulse Code Modulation) presupune ca algoritmul să profit e de
faptul că între două eșantioane audio succesive nu e xistă o diferență prea mare. În loc de a codifica
fiecare eșantion în parte, ADPCM calculează diferența dintre fiecare eșantion audio și valoarea sa
preconizată. Diferența rezultată, delta în cazul de față este mai apoi codificată logaritmic.
Secțiunea 3.3.3. METODE DE COMPRESIE
Acest domeniu de compresie a semnalului vocal se bazează pe o succesiune de metode de
prelucrare a semnalelor cum ar fi: eșantionarea, cuantizarea sau codarea. Pentru a fi eficientă această
metodă, metoda de compre sie, trebuie să exploateze specificul datelor ce urmează a fi comprimate.
Compresia semnalelor vocale realizează rapoarte de până la 10 ori, fără pierderea calității
subiective a semnalului, astfel încât timpul transmiterii se poate reduce la , lucru care devine ideal.
Metodele de compresie sunt multe la număr precum codarea predictivă si codarea adaptivă, care
dezvoltă metode de compresie pe subbenzi. Altă metoda de compresie este compresia prin
11 Vlaicu A., Dobrotă V., Tehnologii Multimedia – Sisteme, rețele și aplicații , Editura UTCN, Cluj -Napoca, 1997
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
33
transformări, metodă care are rolul de a împărții semnalul de la intrare în segmente sau blocuri
pentru a se obține transformări digitale pentru fiecare în parte.
Secțiu nea 3.3 .4. CONCLUZII
Sistemele moderne de recunoaștere vocală u tilizează modele statistice pentru a modela
probabilitățile de apariție ale cuvinte lor și succesiunilor de cuvinte dintr -o limbă și pronunția
fonemelor.
Ca o incununare a capitolului 3, situația actuala la nivelul aplicațiilor este una nu foarte
buna. Aplicațiile pentru prelucrarea semnalelor nu sunt numeroase, cu toate ca de -a lungul a nilor au
cunoscut o dezvoltare impresionantă. Acestea, în prezent, constituie doar un punct de plecare pentru
algoritmii proprii. Metodele de analiză a semnelelor vocale sunt într -un număr mare, fiind utile atât
în recunoașterea vocală (pe plan general sau recunoașterea vorbitorului ), cât și în sinteza vorbirii.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
34
Capitolul IV
APARATURĂ FOLOSITĂ ÎN ÎNTOCMIREA TEMEI DE LICENȚĂ
Tema de licență aleasă de mine poartă numele de Comandarea vocală a computerului pentru
persoanele cu dizabilități . Tema aleasă a fost cu adevărat o provocare și prin intermediul ei mi -am
propus să reușesc să fac folosirea computerului accesibilă și pentru persoanele cu dizabilități.
Persoanele speciale, cu mici probleme reprezintă 2,96% din populația României, un num ăr pe cât de
mic, pe atât de marcant. Pentru a evita izolarea persoanelor cu dizabilități în centre speciale, pentru
a evita de asemenea ca aceste persoane să se simta diferite de celelalte persoane din jurul lor și
pentru a îi aduce și pe ei în pas cu teh nologia, am dezvoltat acest proiect de diplomă. O persoană cu
dizabilități nu refuză să lucreze, ba chiar poate prezenta un interes și o dorință de mii de ori mai
puternică de muncă, decât o persoană perfect normală. Cu toate acestea, în prezent acestor oa meni le
este subestimată contribuția și astfel firmele sau patronii refuză să -i angajeze pe motiv că nu pot ține
pasul cu ceilalți sau că tehnologia nu este îndeajuns de avansată astfel încat să -i pună la punct . Cei
care nu sunt apți pentru munci standardi zate, sunt mult mai predispuși activităților artistice, iar
Ludwing van Beethoven ar fi un convingător exemplu, alături de alte persoane simple care trăiesc
printre noi. Motivul pentru care persoanele cu dizabilități nu se bucură de acces comun, cu celelal te
persoane, la spațiul public este pentru că, spre deosebire de alte țări, acestora nu le este oferită o
distribuire uniformă în societate, ci sunt sprijinite doar de anumite instituții. Astfel prin munca adusă
și investită în această temă de licentă vrea u să închid acel capitol trist, în care persoanele speciale
sunt marginalizate și să deschid acea poartă spre cunoaștere și acestor persoane, spre o lume în care
se muncește cot la cot alaturi de acesti oameni.
Tema : Comandarea vocală a computerului pent ru persoanele cu dizabilități, este realizată cu
ajutorul aparatelor EasyVR Shield 3.0 și Arduino Uno R3.
Subcapitolul 4.1. 1. EasyVR SHIELD 3.0
EasyVR Shield 3.0 este un aparat sau modul de recunoaștere a comenzilor vocale pentru plăcile
Arduino , ce i ntegrează modulul EasyVR. Această aparatură include toate caracteristicile unui modul
EasyVR, într -un shield (scut), care simplifică conexiunea dintre placa Arduino și computer. Acest
modul, ce deși nu este foarte cunoascut, a reușit să producă vâlvă mare și să atragă atenția multor
persoane din întreaga lume. EasyVR Shield 3.0 este proiectat astfel încât să adauge eleganță
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
35
produsului și să înteleagă, interpreteze și să recunoască vocea utilizatorului. Cu toate că acest modul
este la a treia generație de ve rsiune a modulului VRbot, EasyVR 3.0 cunoaște un succes mult mai
mare decât celelalte generații. Spre deosebire de variantele precedente, EasyVR Shield 1.0 și
EasyVR Shield 2.0, EasyVR 3.0 prezintă caracteristici precum: 28 trigger -uri Speaker Dependent
(SD) user -defined, 28 comenzi custom speaker independent (SI), conectori suplimentari pentru
intrarea microfon, o ie șire difuzor de 8 ohm, ie șire audio / headphone jack si acces la pinii I / O ai
modulului Eas yVR. Un LED programabil este de asemenea inclus p entru a da feedback în timpul
sarcinilor de recunoa ștere. 12
(Fig. 4.1.1. EasyVR Shield 3.0 descompus )
Caracteristici generale :
28 trigger -uri Speaker Dependent (SD) user -defined disponibil în engleză US, engleză
britanică, italiană, japoneză, germană, spaniolă, franceză, coreană și nu numai ;
Suportă până la 32 trigger -uri sau comenzi definite de utilizator, precum și parole de voce ;
SonicNet pentru a controla unul sau mai multe module EasyVR 3.0 prin wireless cu token –
uri de sunet generate de modul sa u altă sursa de sunet ;
Generație ton DTMF ;
Ușor de utilizat și interfată grafică simplă pentru a programa comenzile vocale ;
Compatibil cu placi Arduino care au interfață Shield 1.0 (R3), inclusiv:
o Arduino Duemilanove ;
12 EasyVR Shield 3.0 User Manual 1.0.13, Veear, 2015
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
36
o Arduino Uno ;
o Mega Arduino ;
o Ardui no Leonardo ;
o Arduino Due .
Modulul poate fi folosit cu orice gazdă, cu o interfață UART (alimentat la 3.3V – 5V) ;
Suporta conexiune directa la PC ;
Până la 22 de minute de înregistrări ;
Protocol serial simplu și robust pentru a accesa și programa modulu l prin placa gazdă ;
Utilizați QuickSynthesis5 pentru a crea propriile tabele de sunet ;
Suportă remapping ai pinilor seriali utilizați de Shield (in modul SW) ;
EasyVR GUI include o comandă pentru a procesa și de a descărca tabele personalizate de
sunet ( overwriting existing sound table) ;
Jack audio de 3.5 mm ;
Ieșire difuzor de 8 ohm ;
Acces la pinii I / O pini ai modulului EasyVR ;
LED programabil pentru a da feedback în timpul sarcinilor de recunoaștere ;
Biblioteci Arduino.
În fig. 4.1.2. (Schema spe cificațiilor tehnice) putem observa că h eaderele J1 si J2 sunt
interfețele conectorilor mikroBUSTM și au intrările de 3.3V / 5V. Acestea primesc și trimit linii de
control pinilor. Headerul J3 asigură configurarea I / O a liniilor extinse. Headerul J4 conț ine
principalele semnale analogice, precum semnalele microfonului, etc., care sunt disponibile si in
colțul drept ai conectorilor J5 și J6. Prin utilizarea unui QuickUSB adaptor sau cablu, se poate face
programarea aparatului si numai prin headerul J7.
Microfonul asigură modulului EasyVR 3.0 o interpretare și o înțelegere corectă a mesajului
transmis de utilizator. Acesta poate recepta undele acustice de la o distanță de maxim 60 de
centimetri.
Shield -ul aparatului EasyVR este compatibil cu orice placă A rduino care folosește header –
uri UNO R3 , de 3.3V / 5V nivele, exact ca modului EasyVR. Aparatul vine cu componentele
separate, lasând la alegerea cumpăratorului construcția acestuia , fig. 3.1.3. (Schema completpă cu
toate piesele puse) .
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
37
(Fig. 4.1.2. Sc hema specificațiilor tehnice)
Mai jos am enumerat lista pinilor și descrierea funcționalității fiecaruia.
Grup Nume Număr Pin Tip Descri ere
● Grupul : MIKROBUS
Nume : J1
Număr : 1 | Pin : – | Tip : – | Descriere : (Nu este conectat )
Număr : 2 | Pin : RST | Tip : I | Descriere : Activare joasă asincronă ( pull-up intern )
Număr : 3-6 | Pin : – | Tip : – | Descriere : (Nu e conectat )
Număr : 7 | Pin : 3V3 | Tip : I | Descriere : 3.3V DC intrare
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
38
Număr : 8 | Pin : GND | Tip : – | Descriere : Ground / Împământare
Nume : J2
Număr : 1 | Pin : XM | Tip : I | Descriere : Selectare Boot (pull -down intern )
Număr : 2 | Pin : DE | Tip : O | Descriere : (Rezervat )
Număr : 3 | Pin : TX | Tip : O | Descriere : Transmiterea datelor seriale
Număr : 4 | Pin : RX | Tip : I | Descriere : Primirea datelor seriale
Număr : 5-6 | Pin : – | Tip : – | Descriere : (Nu este conectat )
Număr : 7 | Pin : 5V | Tip : I | Descriere : 5.0V DC intrare
Număr : 8 | Pin : GND | Tip : – | Descriere : Ground / Împământare
● Grupul : GPIO
Nume : J3
Număr : 1 | Pin : IO1 | Tip : I/O | Descriere : Scop general I/O (VDD nivele logice )
Număr : 2 | Pin : IO2 | Tip : I/O | Descriere : Scop general I/O (VDD nivele logice )
Număr : 3 | Pin : IO3 | Tip : I/O | Descriere : Scop general I/O (VDD nivele logice )
Număr : 4 | Pin : IO4 | Tip : I/O | Descriere : Scop general I/O (VDD nivele logice)
Număr : 5 | Pin : IO5 | Tip : I/O | Descriere : Scop general I/O (VDD nivele logice)
Număr : 6 | Pin : IO6 | Tip : I/O | Descriere : Scop general I/O (VDD nivele logice )
● Grupul : AUDIO
Nume : J4
Număr : 1 | Pin : SP+ | Tip : O | Descriere : Ieșire diferențială audio (până la 8Ω suportă
speaker -ul)
Număr : 2 | Pin : SP- | Tip : O | Descriere : Ieșire diferențială audio (până la 8Ω suportă
speaker -ul)
Număr : 3 | Pin : VM | Tip : O | Descriere : Microfon
Număr : 4 | Pin : MIC | Tip : I | Descriere : Intrarea audio a microfonului
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
39
Număr : 5 | Pin : RET | Tip : – | Descriere : Return area semnalului audio a microfonului
(împământare anlogică )
Număr : 6 | Pin : VDD | Tip : O | Descriere : Tensiune logică internă
● Grupul : CABLES
Nume : J5
Număr : 1 | Pin : SP- | Tip : O | Descriere : Ieșiri audio diferențiale (până la 8Ω suportă
speaker -ul)
Număr : 3 | Pin : SP+ | Tip : O | Descriere : Ieșiri audio diferențiale (până la 8Ω suportă
speaker -ul)
Număr : 2 | Pin : – | Tip : – | Descriere : (Nu este conectat )
Nume : J6
Număr : 1 | Pin : MIC | Tip : I | Descriere : Intrarea audio a microfonului
Număr : 2 | Pin : RET | Tip : – | Descriere : Returnarea semnalului audio a microfonului
(împământare anlogică )
● Grupul : ADAPTER
Nume : J7
Număr : 1 | Pin : RX_P | Tip : O | Descriere : Prgramarea firelor care primesc date seriale
Număr : 2 | Pin : RTS_P | Tip : I | Descriere : Programarea firelor care acceptă sa trimită
informații (reset/boot control)
Număr : 3 | Pin : GND | Tip : – | Descriere : Prgramarea împământării
Număr : 4 | Pin : 5V_P | Tip : I | Descriere : Programarea firului/ cablului de 5V DC ieșire
Număr : 5 | Pin : TX_P | Tip : I | Descriere : Programarea firelor care trimit date seriale
Număr : 6 | Pin : CTS_P | Tip : O | Descriere : Progra marea firelor car e trimit (strân s legat de
împământare )
● Grupul : MISC
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
40
Nume : PWR SEL | Tip : 3-Way Jumper (SMD 0603) | Descriere : Selectează puterea de intrare
si tensiunea undeva între 3.3 și 5V cu rezistența de 0 Ω și sudură.
Nume : D1 | Tip : LED | Descriere : Luminița roși e a ledului indicator este ON, adică aprinsă
atunci când placa este conectată și blink -uiește atunci când placa primește date seriale.
Nume : D2 | Tip : LED | Descriere : Luminița verde a ledului indicator este ON, adică aprinsă
atunci când modulul asc ultă comenzile vocale.
Nume : R4 | Tip : Rezistența (SMD 0603) | Descriere : Microfonul are rezistența de 1.2kΩ
(Fig. 4.1.3. Schema modulului EasyVR Shield 3.0 completat cu toate piesele puse)
În fig. 4.1.3. cadranele cu verde din lateralele modulu lui easyvR 3.0 reprezintă headerele
Arduino, interfața care este impânzită de conectori : pinii 0 -1, sunt folosiți cand J12 este setat pe
Mode Jumper -ele UP, PC, HW sau LEO, iar pinii 12 -13, 8 -9 sunt folosiți daca J12 se află pe mode
jumper -ul SW.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
41
Mode Jum per-ele atunci cand sunt selectate, stabilesc modul de operare a EasyVR Shield -ului
3.0. Acestea se găsesc pe figura de mai sus (fig. 4.1.3.) în dreptul cadranului albastru : SW, HW, PC,
UP, LEO.
SW- Software Serial Mode, se folosește aceast jumper atunc i când e dorește a controla
modului EasyVR din sketch -ul Arduino printr -un port serial software, utilizând pinii 12 -13.
Prin acest jumper se poate conecta si EasyVR Commander -ul , dar acest lucru implică
apariția unei probleme denumite “bridge mode ”, care poate fi rezolvată prin implementarea
librăriei specifice în cadrul Arduino -ului.
HW- Hardware Serial Mode, se folosește pentru a controla modului EasyVR din sketch -ul
Arduino printr -un port serial hardware, utilizând pinii 0 -1.
PC- PC Connection mode.Cone cxiunea cu PC -ul. Acest mode jumper se selectează când se
dorește conectarea directă cu EasyVR Commander. În acest mode jumper, controlerul
Arduino se află pe reset si conectarea se face numai prin adaptorul serial sau USB . Jumperul
PC se află pe modulul de comandă.
UP- Flash Update mode . Acest jumper se selectează pentru a se încărca sau descărca pe sau
de pe placa de sunet “SoundTable ” sau pentru a se face aceleași operații pe memoria
gramaticii din EasyVR Commander . Ca și în cazul jumperulu PC, controle rul Arduino se
află pe reset si conectarea se face numai prin adaptorul serial sau USB . Acest jumper se află
pe modulul de bootare.
LEO – Leonardo Update mode. Jumperul LEO este asemanător jumperului UP, prezentat mai
sus, însă spre deosebire de UP, aces ta este folosit pe placile Arduino care nu au adaptor
serial sau USB separat. Acest jumper se află pe modul de bootare, dar controlerul Arduino
nu este pe reset și trebuie apelat sketch -ul “bridge ”.
Atunci când sunt selectate ultimele doua mode jumpere prezentate mai sus UP și LEO, un
micuț led roșu blikuiește încontinuu pentru a arata ca EasyVR a răspuns la schimbarea de moduri și
ca se urmează a se face o încărcare sau descărcare in funcție de ce dorește utilizatorul. Acest led se
află exact langă mod e jumpere, sub cadranul roșu din fig.4.1.3..
Pentru mai multe informații legate de funcționalitatea EasyvR Shieldului 3.0 să se verifice anexele
speciale atașate la finalul proiectului (anexa 4) .
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
42
Subcapitolul 4.2. ARDUINO UNO R3
ARDUINO UNO R3 este o placă de dezvoltare bazat ă pe microcontrolerul ATmega328.
ARDUINO UNO are 14 de intrari digitale / pini de ie șire (din tre care 6 pot fi utilizate ca ie șiri
PWM), 6 intrari analogice, un oscilator cu quart de 16 MHz, o conexiune USB, o mufa de
alimentare, o mufa ICSP și un buton de resetare. ARDUINO UNO con ține tot ceea ce este necesar
pentru a sprijini microcontrolerul pentru ca acesta s ă funcționez e. Pentru a îl conecta, pur și simplu
se face printr -un cablu USB conectat la un computer, alimentator AC -la-DC sau baterie pentru a
începe.
Arduino UNO este diferit fa ță de pl ăcile precedente acestuia , deoarece nu folose ște un chip
driver FTDI USB -la-serial. În schimb, acesta are incorporat microcontrolerul Atmega8U2
programat ca un convertor USB -la-serial.
Numele de “UNO” inseamna “unu” in limba italiana și este numit astfel pentru a marca
viitoarea lansare Arduino 1.0 IDE. Uno și versiunea 1.0 vor fi versiunile standard pentru marca
Arduino.13
Microcontroler ATmega328
Voltajul de operare 5V
Voltajul de iesire (recomandat) 7-12V
Voltajul de intrare (limitare) 6-20V
Pini digitali I/O 14 (din care 6 pot fi folositi ca PWM)
Pini analogi de intrare 6
13 Arduino UNO R3 https://www.arduino.cc/en/Main/ArduinoBoardUno
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
43
DC Curent pentru pinii de I/O 40 mA
DC Curent pentru pinul de 3.3V 50 mA
Memoria 32 KB din care 0.5 KB util izați de bootloader
SRAM 2 KB
EEPROM 1 KB
Clock Speed 16 MHz
(Tabel 4.2.1. Tabelul specificațiilor tehnice ale aparatului Arduino UNO R3 )
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
44
(Fig. 4.2.1. Arduino Uno R3 față)
(Fig. 4.2.2. Arduino UNO R3 spate)
Schema și Design -ul o găsiți atașate la anexele de la finalul proiectului (anexa 5 ).
Alimentare :
ARDUINO UNO poate fi alimentat prin intermediul conexiunii USB sau cu o surs ă de
alimentare extern ă. Sursa de alimentare este selectata automat. Alimentarea extern ă (non-USB)
poate veni fie de la un adaptor AC -la-DC sau baterie. Adaptorul poate fi conectat printr -un conector
de 2.1mm cu centru -pozitiv. Conectare de la o baterie poate fi realizat ă legând la GND și V’ in
capetele de la conectorii de alimentare.
Placa de dezvoltare poate opera pe o s ursa extern ă de 6-20 volti. Dac ă este alimentat ă la mai
puțin de 7V, exist ă posibilitatea, ca pinul de 5V s ă furnizeze mai pu țin de cinci vol ți și placa s ă
devin ă instabil ă. Dacă se ali menteaz ă cu mai mult de 12V, regulatorul de tensiune se poate supra –
încălzi, acest lucru duc ând la deteriorarea placii. Intervalul de tensiune recomandat de c ătre
producator este de 7 -12 vol ți.
Pinii de tensiune si alimentarea sunt catalogați astfel :
V’in – tensiune de intrare pe placa de dezvoltare atunci c ând este utilizat ă o surs ă de
alimentare extern ă (spre deosebire de 5 vol ți de la conexiunea USB sau alte surse de energie
stabilizat ă). Se poa te introduce tensiuni de alimentare prin intermediul acestui pin, sau, în
cazul în care tensiunea de alimentare se face prin inter mediul conectorului de alimentare
extern ă, se poate accesa prin acest pin.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
45
5V – regulator de tensiune utilizat pentru alimentarea microcontrolerului și a altor
componente de pe placa de dezvoltare. Aceasta poate fi aliment ă fie de la VIN printr -un
regulat or de pe placa de dezvoltare, fie furnizat de c ătre USB sau de o alt ă sursă de tensiune
de 5V.
3V3 – o alimentare de 3.3 vol ți generat ă de către regulatorul de tensiune de pe plac ă.
Curentul maxim pe care îl furnizeaz ă este de 50 mA.
GND. Pini de împământare.
Memoria :
ATmega328 are 32 KB (cu 0,5 KB utili zate pentru bootloader). Ea are de asemenea, 2 KB
SRAM și 1 KB de EEPROM.
Intrările și ieșirile . Detaliile acestei secțiuni poate fi găsită atașată la anexele finale (anexa 6).
Comunicarea :
Arduino Uno are un număr destul de mare de facilități de comunicare cu un computer, față
de alte placi asemănătoare sau alte micocont rolere . ATmega328 asigură comunicarea serială, care
este disponibilă prin pinii digitali 0 (RX) și 1 (TX). Software -ul Arduino IDE include un monitor
serial, care permite datelor textuale simple să fie trimise pe placă. RX și TX aprind ledul. Acet led
v-a blik -ui dacă datele sunt trimise prin USB, computerului. Librăria software -ului serial permite
comunicației să fie facută prin orice pin d igital.
Subcapitolul 4.3. Realizarea sistemului
În realizarea sistemului de comandare vocală am folosit mai multe componente, componente
care la rândul lor a u avut un rol substanțial în realizarea sistemului. Componentele care alcătuiesc
sistemul sunt urmatoarele :
o Un modul de recunoaștere vocală denumit EasyVR Shield 3.0 ;
(Fig. 4.3.1. EasyVR Shield 3.0. compnente sudate)
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
46
o O placă de dezvoltare Arduino UNO R3, bazată pe microcontrolerul ATmega328 (fig. 4.2.1.
și fig. 4.2.2.) ;
o Un difuzor ;
Difuzoru l are rolul de a emite sunetele înregistrate ca răspuns la comenzile date.
(Fig. 4.3.2. Difuzor)
o O placă de test de 640 de puncte ;
(Fig. 4.3.3. Placă de test cu 640 de puncte )
(Fig. 4.3.4. Conectarea punctelor de pe placa de test)
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
47
o 3 LED -uri de culor i diferite 3 V ;
(Fig. 4.3. 5. Led 3V )
o Fire de conexiune multicolore (jumper wires) ;
Firele de conexiune mulicolore sunt esențiale în realizarea proiectului, deoarece pentru a
putea respecta o anumită ordine în legarea componentelor, diversitatea de cu lori ajută foarte mult .
Astfel evităm încurcarea ac estora și este un mod de a lucra mult mai elegant și curat.
(Fig. 4.3. 6. Fire de conexiune multicolore )
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
48
o Rezistențe de 220 Ω .
Cu toate ca este recomandat să folosesc rezistență de 120 Ω, am ales acest ti p de rezistență
pentru a asigura că scade îndeajuns de mult potențialul, pentru a nu îmi arde ledurile.
(Fig. 4.3. 7. Rezistența de 220 Ω)
Primul pas în realizarea părții hardware este acela de a lipii sau suda componentele celor
doua module între ele . Lipirea modulelor se face cu ajutorul unui pistol de lipit (f ig 4.3.8. ), care se
folosește îm preună cu fludor (fig 4.3.9. ).
Pistolul de lipit reprezintă un ciocan de lipit, având o alimentare de la rețea cuprinsă între 200 -240
de Volți și cu dimensiuni cuprin se între 230×26 mm .
(Fig. 4.3.8. Pistol de lipit)
Fludor -ul reprezintă un aliaj folosit pentru lipire, și are diamentrul de 1 mm.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
49
(Fig. 4.3.9. Fludor )
După ce modulele EasyVR Shield 3.0. și Arduino UNO R3 au fost sudate între ele, ar trebui
să se prezinte ca in fig. 4.3.10.
(Fig. 4.3.10. Cele doua module EasyVR 3.0 și Arduino UNO R3 sudate)
Următorul pas a fost să adaug microfonul celor două module și tot prin sudură/lipire
difuzorul.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
50
(Fig. 4.3.11. Cele două module împreună cu microfonu l si difuzorul)
Pasul final al realizării părții hardware îl reprezintă completarea placii de test cu
componentele menționate mai sus. După ce am analizat ledul, am stabilit care este anodul (+) și care
este catodul ( -). Am poziționat ledurile pe pl ăcuța de test. La anod am legat firele de conexiune și le –
am pinuit în pinii 12, 11 și 8 ai modulului EasyVR 3.0. (fig 4.1.3.). La catod am pus un picior al
rezistențelor de 220 Ω , iar la capătul celălalt al rezistențelor am legat fir e de conexiune pe care l e-
am pus la – , iar de la – la GND pe modul.
(Fig. 4.3.12. Placa de test pregătită de începerea părții software)
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
51
Capitolul V :
PROGRAME
Pentru a testa funcționalitatea proiectului și a realiza partea software a sistemului de
comandare vocală am am apelat la programele Arduino , EasyVR Commander 3.10.2.,
QuickSynthesis 5.2.8., Sound Recorder și Audacity.
Subcapitolul 5.1. Programul ARDUINO
Instalarea programului Arduino se face prin descarcărea celei mai recente versiuni.
La descărcare avem o aleg ere liberă între a descărca fișierul cu extensia .exe si totodata ca și
pachet zip. După ce se finalizează descarcarea programului, se continuă procesul de instalare
urmărind fiecare pas în mod corespunzator:
(Fig. 5.1.1. Instalarea programului Arduino)
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
52
Meniul de programare ARDUINO este unul foarte complex, fiind foarte asemanător
limbajului de programare C++ . Acesta ne oferă o variatate mare de funcții c are ne ajută la
configurarea pinilor, senzorilor și a oricărei componente pe care o utilizăm în implementare. E ste un
limbaj de programare extrem de flexibil deoarece permite scrierea aceluiași program în mai multe
feluri, iar programul respectiv să exectu te aceeași funcție. Acesta permite o scriere compactă,
instrucțiunile putând fi scrise pe același rând, programul poate fi într -un mod apropiat de pseudocod
deoarece conceperea algoritmilor este mult mai simplă si eficientă. Acest limbaj în programarea de
microcontrolere. 14
Structura unui program Arduino un este alcătuit ă din una sau mai multe funcții , iar
programarea este divizată pe trei parți esențiale structurarea, valorile reprezentate de variabile si
constante i funcții. În primă fază a vem o funcție principală main() în care se introduc mai multe
funcții mici. Funcția de configurare: setup(), este apela tă în momentul în care se dă st artul unei
scheme. Se utilizează pentru a inițializa variabile, pini, începerea utilizării unei librării. Aceasta
funcție de configurare funcționează o singură dată după fiecare pornire sau resetare a platformei
Arduino. Funcția de buclă : loop(), este apelată după crearea unei funcției de configurare, care
inițializează ș i stabilește valorile inițiale. F uncția de buclă are rolul de a face programul să schimbe
și să raspundă. Este util pentru a menține activ ă platforma Arduino.
Pentru control ul programarii în Arduino se utilizează urmatoarele funcții: if(), if() /
else(),for(), switch(), while(), do..while, break , contin ue, return .
Funcția de condiționare: if(), este o funcție care se utilizează pentru a compara prin
intermediul unor anumiți operatori, testează dacă s -au respectat anumite condiții. După ce se face o
astfel de verificare întotdeauna are loc o acțiune.
Funcția de condiționare : if() / else() este o funcție de control care se apelează în cazul în
care se face o verificare prin condiția if(). Daca verificarea nu se respectă atunci se va intra pe
condiția else() și va avea loc o altă acțiune.
Funcția: for(), este utilizată pentru a repeta un bloc de declarații închise între acolade. Un
contor de creștere este de obicei folosit pentru a incrementa și termina bucla . Această funcție este
utilă pentru orice operațiune repetitivă , și este adesea folosită în co mbinație cu o matrice pentru a
opera pe colecții de date / pini.
Funcția: switch() , această funcție permite programatorilor să specifice alt cod , care trebuie
să fie executat în diferite condiții . În special, o declarație de comutare compară valoarea u nei
14 Programul ARDUINO https://www.arduino.cc/en/Guide/Introduction
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
53
variabile la valorile specificate în declarațiile de caz . Atunci când se constată o declarație de caz a
cărei valoare se potrivește cu cea a variabilei , codul în acest caz declarația este rulat . Cuvântul
cheie de pauză (break;) iese din declarația d e comutare , și este utilizat în mod tipic la sfârșitul
fiecărui caz în parte.
Funcția: while(), va creea o buclă până când expresia din pa ranteze nu va mai fi adevarată.
Funcția: do..while, este o funcție care lucrează în aceeași manieră cu funcția wh ile(), cu
excepția că și condiția să fie verificată la sfarșitul buclei pentru ca astfel să se ruleze cel puțin o dată .
Funcția: break, este utilizată pentru a ieși dintr -o situație precum do, for, while. Funcția:
continue, este utilizată pentru a verific a expresia condiționată a buclei și pentru a contin ua cu orice
iterații ulterioare . Funcția: return, este utilizată pentru a returna o valoare .15
Funcțiile digitale de intrare/ieșire:
pinMode(): configurează pinul specific pentru a se comporta atât pe int rare cât și pe ieșire,
digitalMode(): scrie o valoare crescută sau redusă pentru un pin digital,
digitalRead(): citește o valoare de pe un pin digital indiferent dacă are valoare crescută sau
scazută.
Funcțiile analogice de intrare/ieșire:
analogReference ():configurează tensiunea de referință utilizată pentru intrarea analogică (
adică valoarea utilizată ca partea superioară a intervalului de intrare ) ,
analogRead(): citește valoarea de pe un pin analogic,
analogWrite(): scrie o valoare analogică pe un pi n. Poate fi folosită pentru a lumina un
LED, prin verificarea luminozității, sau pentru diferite viteze ale unui motor.
delay() stabilește o pauză între două instrucțiuni. În cadrul parantezelor se trec
milisecundele, ce reprezintă timpul cât durează pauza .
Secțiunea 5.1.1. Testarea funcționalității
Testarea ledurilor prin Arduino .
Prin programul de mai jos am urmărit ca ledurile să se aprindă simultan, pentru a verifica
funcționalitatea proiectului.
15 Funcții Arduino / C++ – https://mchelariu.wordpress.com/category/c2 -programare/c2_2 -limbajul -cc/
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
54
void setup() {
// pinul 13 este ieșire.
pinMode (12, OUTPUT); //initializam pinul 12 digital ca si pin de ieșire.
pinMode(11, OUTPUT); //initializam pinul 11 digital ca si pin de ieșire.
}
void loop() {
digitalWrite(12, HIGH); // această intrucțiune setează la pinul 12 nivelul logic pe HIGH, mai
//exact pe acest pin vom avea o tensiune de +5V.
digitalWrite(11, HIGH); //identic ca instrucțiunea de mai sus doar că se setează același nivel
//pentru pinul 11
delay(500); // cu aceasta instructiune spune procesorului sa astepte 500 de milisecunde sau o
//jumatate de secunda mai pe intelesul tuturor
digitalWrite(12, LOW ); // această instrucțiune setează la pinul 12 nivelul log ic pe LOW, mai exact
//acest pin va fi conectat la masa , deci, nu vom mai avea tensiune și ledul
//se va stinge
digitalWrite(11, LOW ); //identic ca instruc țiunea de mai sus doar c ă se seteaz ă acela și nivel
//pentru pinul 11
delay(500); //întârziere sau pauză
}
(Listarea 5.1.1. Test led -uri)
Următorul pas a fost acela de a comanda aprinderea și s tingerea ledurilor.
// Grupurile și comenzile
enum Groups // urmează a se enumera grupurile
{
GROUP_0 = 0;
GROUP_1 = 1;
};
enum Group0 // grupul 0 este grupul de Trigger din care face parte în cazul de față comanda
//ARDUINO adresa tă modulelor
{
GO_ARDUINO = 0; // modulul învată comanda arsă de mine pe EasyVR Commander
}
enum Group1 // grupul 1este însuși un grup din cadrul programului EasyVR Commander, în cadrul
//căruia am ars eu comanda de LED_ON, respectiv LED_OFF.
{
G1_LED_ON = 0;
G1_LED_OFF = 1;
}
(……)
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
55
void loop()
{
easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED -ul ascultă comanda dată de mine
Serial.print("Say a command in Group "); // comanda spusa de mine trebuie să fie LED_OFF
Serial.println(group );
easyvr.recognizeCommand(group); // prin această linie de cod se verifică comanda spusă de mine
//cu cea arsă tot de mine ulterior
do
{
// poate dura putin p ână primește comanda
}
while (!easyvr .hasFinished());
easyvr.serPinOutput (EasyVR::I01, LOW); // LED –ul se stinge
(Listarea 5.1.2. Comandarea vocală a ledurilor )
Pentru a mă putea conecta la module le EasyVR Shield 3.0 și Arduino și pentru a putea
începe prezentarea, am realizat un fel de recunoaștere printr -un username și password. Dacă acestea
sunt spuse corect, un led de culoare albă se va aprinde pe placa de test și voi primi un mesaj de
întâmpinare, în caz contrar un led se va colora roșu și voi fi atenționată de greșeala produsă. As tfel
logată în cadrul sistemului, voi începe comandarea vocală a computerului.
void loop()
{
int idx_cmd;
int idx_pwd;
easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED este pornit și ascultă
Serial.println("Say a name in Group 1"); // se așteaptă comanda
easyvr.recognizeCommand(1); // se caută comanda in grupul 1, se verifică și se recunoaște
while (!easyvr.hasFinished()); // se așteaptă spunerea username -ului
easyvr.setPinOutput(EasyVR::IO1, LOW); // LED se stinge
idx_cmd = easyvr.getCommand(); // se recunoaște username -ul spus
if (idx_cmd >= 0)
{
Serial.print("Name: ");
if (easyvr.dumpCommand(1, idx_cmd, name, train))
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
56
Serial.println(name);
else
Serial .println();
easyvr.playSound(SND_Yess_boss , EasyVR::VOL_FULL); // se cere parola
easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED asculta și este pornit
Serial.println("Say the password");
easyvr.re cognizeCommand(EasyVR::PASSWORD); // se caută în grupul 16
while (!easyvr.hasFinished()); // se așteaptă pronunțarea parolei
easyvr.setPinOutput(EasyVR::IO1, LOW); // LED se stinge
idx_pwd = easyvr.getCommand(); // parol a este recunoscută
if (idx_pwd >= 0)
{
Serial.print("Password: ");
if (easyvr.dumpCommand(EasyVR::PASSWORD, idx_pwd, name, train))
{
Serial.print(" = ");
Serial. println(name);
}
else
Serial.println();
if ( idx_pwd == idx_cmd ) //username -ul și parola coincid cu cele arse de mine și se acceptă
//accesul
{
Serial.println("Access granted");
easyvr.playSound(SND_Access_granted , EasyVR::VOL_FULL);
pinMode(relayPin, OUTPUT);
digitalWrite(ledPin, HIGH); // se setează pinul LED pe HIGH
digitalW rite(relayPin, LOW); // se seteaza relay -ul pe LOW
}
else // username -ul si parola nu coincid, iar accesul este interzis
{
Serial.println("Access denied");
easyvr.playSound(SND_Access_denied , EasyVR::VOL_FULL );
}
(Listarea 5.1.3. Recunoaștere parola și username)
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
57
Subcapitolul 5.2. EasyVR Commander V.3.10.2.
EasyVR Commander v3.10.2. este un program ce este folosit în deosebi pentru a configura
conectarea modulului EasyVR 3.0 cu computerul. Conexiunea d intre modul și computer se face
printr -un cablu USB, un adaptor sau utilizând microcontrolerul gazdă. În cadrul acestui program se
pot defini grupuri de comenzi sau de parole și se pot genera coduri simple.
Înainte de a putea realiza conexiunea dintre mo dul și calculator, mode jumperul trebuie
poziționat pe PC , (fig. 4.1.3.) . Acest mode jumper se selectează când se dorește conectarea directă
cu EasyVR Commander. În acest mode jumper, controlerul Arduino se află pe reset și conectarea se
face numai prin ad aptorul serial sau USB . Jumperul PC se află pe modulul de comandă.
(Fig. 5.2.1. Pagina principală a programului EasyVR Commaneder v3.10.2.)
În cadrul acestul program sunt cinci tipuri de comenzi
Trigger – este un grup special, în care se construieșt e cuvântul ROBOT sau ARDUINO sau
orice alt cuvânt dorit. Cuvintele Trigger sunt folosite pentru a se începe procesul de
recunoaștere
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
58
Group – este grupul în cadrul căruia se poate adăuga nenumărate comenzi
Password – este un grup special pentru înregistrar ea parolelor, utilizând tehnologia de
Speaker Verification SV.
Wordset – este un set de comenzi
Grammar – este un set de comenzi custom .
Funcțiile de recunoaștere a programului EasyVR Commander merg doar pe câte un singur
grup, pe rând. De fiecare da tă când programul intră în contact cu calculatorul, toate înregistrările
stocate sunt citite și afișate, lucru datorat memoriei nevolatile a modulului EasyVR. Pentru a adăuga
comenzi în cadrul programului trebuie selectat grupul dorit și apasată iconița Ed it – Add Command .
După ce comanda și -a primit numele, aceasta va fi inregistrată de doua ori cu vocea utilizatorului .
(Fig. 5.2.2. Antrenarea. Inregistrarea comenzii dorite)
Secțiunea 5.2.1. Sensory Quick Synthesis 5.2.8.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
59
Pentru a inregistra cuvinte care să le returneze modulul EasyVR 3.0 ca răspuns la comenzile
date de utilizator, am folosit Sound Recorder -ul din cadrul Windows -ului. Inregistrările cuprind
mesaje de întâmpinare, atenționări de eroare, mesaj feedback la comandă și multe altele.
(Fig. 5.2.1.1. Sound Recorder)
Înainte de a introduce aceste inregistrări in EasyVR Commander , inregistrările trebuie
convertite cu extensia .wav și trebuie s ă întrunească o serie de condiții, precum să nu aibă mai mult
de 8000 la rata, să aibă 16 biți și să fie mono. Pentru a asigura aceste condiții am folosit programul
Audacity, în cadrul căruia am îndeplinit condițiile și am transformat fisierul audio exact cum îl
dorea programul Sensory Quick Synthesis 5.2.8..
(Fig. 5.2.1.2. Audacity)
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
60
De îndată ce fișierele audio au fost pregătite, acestea au fost adăugate în programul
Q.S. Sensory Quick Synthesis 5.2.8., unde au fost comprimate și contruite pentru a fi încărcate pe
EasyVR Commander.
(Fig. 5.2.1.3. Sensory Quick Synthesis 5.2.8.)
Ultimul pas este de a încărca fisierul realizat de programul Q.S. în cadrul EasyVR
Commander -ului. Întâi se selecteaza mode jumperul pe UP, se deschide programul și se selectează
din bara meniului, File – Update Custom Data. Prin apasarea butonului Download din caseta Upd ate
data, se ard inregistrările pe modulul EasyVR.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
61
(Fig. 5.2.1.4. SoundTable din EasyVR Commander)
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
62
Capitolul VI
CONCLUZII
Acest capitol este format din trei sub -capitole, și anume: un sub -capitol în care se descriu
concluziile generale, un sub -capitol referitor la contribuțiile personale și cel de al treilea sub -capitol
în care se prezintă posibilitățile de dezvoltare ulterioară.
Subcapitolul 6.1. CONCLUZII GENERALE
Tema aleasă a fost avizată persoanelor cu dizabilități. Pentru a se evita izolarea persoanelor
cu dizabilități în centre speciale, pentru a se evita de asemenea ca aceste persoane să se simtă
diferite de ceilalți din jurul lor și pentru a îi aduce și pe ei în pas cu tehnologia, am dezvoltat acest
proiect de diplomă.
Conce ptul de comandare vocală sau mai exact recunoaștere vocală a cunoscut o adevărată
dezvolat are în decursul a câtorva decenii schimbând în nenumărate moduri lumea, de la un sistem ce
recunoștea cifrele 0 – 9, până în prezent când poți purta o întreagă conver sație cu un dispozitiv ce
administrează un număr nelimitat de cuvinte.
Capacitatea unui calculator de a înțelege nu este perfectă din toate punctele de vedere, dar
într-o proporție destul de mare, acesta interpretează și execută corect comenzile date. Pe ntru ca acest
lucru să fie posibil și bine realizat, computerul trebuie să asculte și să traducă cuvintele într -un
limbaj de programare. Ideea de a controla aparatele din jurul tau, doar prin intermediul vocii este
una universală.
Aparatura folosită în re alizarea acestei lucrări sunt de ultimă generație, recent apărute și încă
aflate pe piața de testare, ele fiind sau devenind cunoscute datorită versiunilor anterioare. EasyVR
Shield 3.0 este un aparat sau modul de recunoaștere a comenzilor vocale pentru pl ăcile Arduino , ce
integrează modulul EasyVR. ARDUINO UNO R3 este o placă de dezvoltare bazată pe
microcontrolerul ATmega328. Pentru a realiza comandare vocală și interacționarea cu aparatura, am
folosit și un d ifuzorul , care are rolul de a emite sunetele î nregistrate ca răspuns la comenzile date .
Subcapitolul 6.2. CONTRIBUȚII PERSONALE
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
63
Contibuția personală în dezvotarea acestui siste m a avut loc at ât pe partea de h ardw are cât și
pe parte de software . Totul a început de la întocmit un plan de realizare a sistemului, s -a stabilit
modul de funcționare dorit și componentele necesare în realizarea acestuia. Acest lucru a continuat
cu achiziționarea componentelor sistemului și anume: modulul EasyVR Shield 3.0, placa de
dezvoltare ARDUINO UNO R3, bazat ă pe micro controlerul ATmega328, o placa de test de 640 de
puncte, leduri, rezistente de 220 ohm, fire de conexiune multicolore.
Partea de Hardware, a continuat contribuția personală prin asamblarea acestor piese,
stabilirea legăturilor dintre acestea, a pinilor, a tensiunilor de alimentare, a ieșirilor, a
împământărilor. Pe partea de Software, contribuția personală a acestui sistem a constat în faptul că
pentru funcționarea sistemului a fost necesară programarea acestora. Acest lucru s -a facut în
limbajul de progra mare Arduino .Fiecare operație a fost comentată pentru citire ușoră de către
oricine.
O altă contribuție personală ține de testarea funcționalitatii sistemului . Testarea sistemul a
fost făcută pentru a obține de fiecare data rezultatul dorit. Acest lucru s -a făcut inițial individual pe
fiecare componentă a sistemului. După ce s -a confirmat funcționarea corectă a componentelor s -a
continuat cu asamblarea acestora (lipire, legare prin fire , mai apoi cu programarea sistemului ).
Odată asamblate și programate co mponentele, s -a continuat cu testarea acestora.
Subcapitolul 6.3. DEZVOLTARE ULTERIOARĂ
Pe viitor, doresc personal să ridic ștafeta și să continui să dezvolt acest proiect și mai exact
pentru tema de dizertație. Deși pe piață, în prezent există dezvolta te sisteme asemănătoare, nu este
un dezavantaj, ci un avantaj. Sistemului i se poate implementa senzori de mișcare, lucru care poate
ajuta la complexitatea temei.
Un alt lucru destul de important de dezvoltat pe viitor poate fi reducerea costului aparatel or,
prin realizarea manuală a lor.
Universitatea “TRANSILVANIA” din Brașov
Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
64
Bibliografie :
[1] ”They were not economically attractive. […] AUDREY occupied a six -foot high relay rack, was
expensive, consumed substantial power and exhibited the myriad maintenance problems associated
with complex vacuum -tube circuitry.” – Jim Flanagan et al., în “Trends in Speech Recognition”,
Editura Wayne E. Lea, 1980.
[2] G. Toderean, Al. Caruntu, Metode de recunoaștere a vorbirii , Editura Risoprint, Cluj -Napoca,
2005.
[3] Burileanu C., Oancea E., Radu M., Text-to-Speech Synthesis f or Romanian Language: Present
and Future Trends , http://www.racai.ro/books/awde/ burileanu. htm ( 2005)
[4] Elizabeth Montalbano, Microsoft Gets Exchange to Speak Up, PC World, August 02, 2005
[5] Teorema eșantionării Nyquist -Shannon, Wikipedia, Matt Pharr și Greg Humphreys, Physically
Based Rendering: From Theory to Implementation (Redarea pe bază fizică: de la teorie la
implementare), Morgan Kaufmann, iul. 2004. ISBN 0 -12-553180 -X.
[5] Shannon, Claude E., Communications in the presence of noise (Comunicații în prezența
zgomotului), Proc. IRE, vol. 37, pp. 10–21, ian. 1949
[6] L. Rabiner and B. -H. Juang, Fundamentals of speech recognition , Englewood Clif fs: Prentice –
Hall International, 1993.
[7] S. Young, "HMMs and Related Speech Recognition Technologies", în Springer Handbook of
Speech Processing , J Benesty, MM Sondhi și Y Huang (eds), capitolul 27, 539 -557, 2008 Young
(2008)
[8] Istoria Modelului Markov Ascuns M.M.A., Martin Sewell, 2008
[9] SIRI – http://theweek.com/articles/476851/apples -siri-got-name
[10] Procesarea digitală a semnalelor, Îndrumar de laborator, Kertész Csaba -Zoltan și Laurențiu –
Mihail Ivanivici, Editura Universitatea Transilvania Brașov, Brașov, 2009
[11] Vlaicu A., Dobrotă V., Tehnologii Multimedia – Sisteme, rețele și aplicații , Editura UTCN,
Cluj-Napoca, 1997
[12] EasyVR Shield 3.0 User Manual 1.0.13, Veear , 2015
[13] Arduino UNO R3 – https://www.arduino.cc/en/Main/ArduinoBoardUno
[14] Programul ARDUINO – https: //www.arduino.cc/en/Guide/Introduction
[15] Funcții Arduino / C++ https://mchelariu.wordpress.com/category/c2 -programare/c2_2 –
limbajul -cc/
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Comandarea vocală a computerului pent ru persoanele cu dizabilități, este realizată cu [623239] (ID: 623239)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
