Cuprins:

Recunoaștere vorbire: 12 pași
Recunoaștere vorbire: 12 pași

Video: Recunoaștere vorbire: 12 pași

Video: Recunoaștere vorbire: 12 pași
Video: Părțile de vorbire VS Părțile de propoziție (Evaluarea Națională) 2024, Noiembrie
Anonim
Recunoaștere vorbire
Recunoaștere vorbire

Buna tuturor………

Acesta este al doilea instructabil pe care îl postez

Deci, bine ai venit pe toți …

În acest Instructable vă voi învăța despre cum să construiți un recunoscător vocal folosind o placă arduino.

Deci, cred că aveți o experiență cu plăcile arduino înainte. Dacă nu, nu este deloc o mare problemă mare aici. Dar vă recomand să vă obișnuiți cu el, deoarece este foarte interesant să vă jucați cu el și să creați câteva proiecte interesante din ea în funcție de creativitatea și cunoștințele pe care le aveți.

Deci, pentru persoanele care nu au o experiență anterioară folosind arduino:

Arduino este un hardware de computer open source care este fabricat de o companie care are o comunitate mare de designeri și producători. Poate fi considerat ca un computer mic care poate fi utilizat pentru a controla alte circuite electronice

Arduino este programat într-un mediu dezvoltat de ei înșiși, care poate fi descărcat cu ușurință de pe site-ul lor web

Pasul 1: Cum să configurați mediul?

Cum să configurați mediul?
Cum să configurați mediul?
Cum să configurați mediul?
Cum să configurați mediul?
Cum să configurați mediul?
Cum să configurați mediul?
Cum să configurați mediul?
Cum să configurați mediul?

Doar căutați în google „download arduino”

Faceți clic pe „Arduino - Software”

Veți putea vedea „Descărcați IDE-ul Arduino”

Alegeți în funcție de sistemul dvs. de operare

Descărcați-l și instalați-l

Deci, ați instalat cu succes software-ul și vă puteți scrie codul pentru arduino și cu ajutorul unui cablu puteți conecta placa arduino la computer și puteți introduce codul.

Pasul 2: De ce crește cererea pentru Arduino?

Ieftin

Plăcile Arduino sunt ieftine în comparație cu alte platforme de microcontrolere. Acesta va costa doar aproximativ 50 USD.

Cross-platform

Software-ul pentru Arduino funcționează pe sistemele de operare Windows, Macintosh OS și Linux. Dacă ne gândim la alte sisteme de microcontrolere, acesta va funcționa numai în Windows sau, cu alte cuvinte, se limitează doar la Windows.

Software open source și extensibil

Software-ul este open source, astfel încât oamenii au început să studieze profund acest lucru și să includă biblioteci (care includ un set de funcții pentru funcționarea sa) ale altor limbaje de programare.

Mediu de programare simplu și ușor

Este ușor să folosiți Arduino IDE (software despre care am discutat deja …) pentru persoane, inclusiv pentru începători, deoarece o mare cantitate de resurse sunt furnizate chiar de Arduino, care este disponibilă gratuit pe internet. Deci, nu ezitați să aflați mai multe despre.

Hardware open source și extensibil

Planurile plăcilor Arduino sunt publicate sub o licență Creative Commons, astfel încât persoanele care au o experiență în proiectarea circuitelor își pot face propria versiune a modulului, au, de asemenea, dreptul de a extinde tehnologia și se pot îmbunătăți prin adăugarea de caracteristici la acesta.

Pasul 3: Să începem !!!!

Așa că am spus deja că acest proiect se concentrează în principal pe recunoașterea vocii folosind Arduino și să îi permită să îndeplinească unele sarcini.

Vorbind mai clar …

Acesta preia semnalele sonore furnizate de utilizator, care pot fi detectate prin clipirea LED-ului după ce acesta este convertit în vorbire sintetizată.

Pasul 4: Componente necesare

Componente necesare
Componente necesare
Componente necesare
Componente necesare
Componente necesare
Componente necesare

Principalele componente necesare pentru acest proiect sunt:

Arduino Due x 1

Spark Fun Breaket Microfon Electret x 1

Spark Fun Mono Audio Amp Breakout x 1

Difuzor: 0,25 W, 8 ohmi x 1

Placă de pâine x 1

LED de 5 mm: roșu x 3

Rezistor 330 ohm x 3

Sârmă jumper x 1

Fier de lipit x 1

Server BitVoicer

Este un server de recunoaștere și sinteză a vorbirii pentru automatizarea vorbirii.

Pasul 5: Cum funcționează de fapt?

1. Undele audio sunt descoperite, apoi captează aceste unde și sunt amplificate de placa Sparkfun Electret Breakout.

2. Semnalul amplificat obținut din procesul de mai sus va fi digitalizat și stocat în tampon / stocat pe placa Arduino folosind convertorul său analog-digital (ADC) prezent în acesta.

3. Probele audio vor fi furnizate serverului BitVoicer folosind portul serial Arduino prezent.

4. BitVoicer Server va procesa fluxul audio și apoi va recunoaște vorbirea pe care o conține.

5. Vorbirea recunoscută va fi mapată la comenzile deja definite de ea însăși, apoi va fi trimisă înapoi la Arduino. Dacă una dintre comenzi constă în sintetizarea vorbirii, BitVoicer Server va pregăti fluxul audio și îl va trimite la Arduino.

6. Arduino va identifica comenzile furnizate și va efectua anumite acțiuni adecvate. Dacă este primit un flux audio, acesta va fi pus în coadă în clasa BVS Speaker și redat folosind DUE DAC și DMA.

7. Amplificatorul audio SparkFun Mono va amplifica semnalul DAC, astfel încât să poată conduce un difuzor de 8 Ohm și să poată fi auzit prin intermediul acestuia.

Pasul 6: Cablarea componentelor

Cablarea componentelor
Cablarea componentelor
Cablarea componentelor
Cablarea componentelor

Primul pas este să conectați diferite componente în panou și, de asemenea, cu placa arduino așa cum se arată în imagine

Amintiți-vă că placa arduino utilizată aici este DUE, există diferite alte modele care au fost fabricate de Arduino și fiecare funcționează la niveluri de tensiune diferite

Majoritatea plăcilor Arduino funcționează la 5 V, dar DUE rulează la 3,3 V

DUE utilizează deja o referință analogică de 3,3 V, deci nu aveți nevoie de un jumper la pinul AREF

Îmi pare rău, am uitat să spun că un pin AREF este un „PIN DE REFERINȚĂ ANALOGICĂ” care este prezent pe o placă arduino așa cum se arată în figura următoare (Este un arduino UNO, dar este similar în site-ul similar în cazul DUE)

Pinul AREF de pe DUE este conectat la microcontroler printr-o punte de rezistență

Pentru a utiliza pinul AREF, rezistorul R1 trebuie dezlipit de pe PCB [Placă de circuit imprimat]

Pasul 7: Furnizarea de cod către placa Arduino

Furnizarea codului către placa Arduino
Furnizarea codului către placa Arduino

Deci, trebuie să încărcăm codul pe placa Arduino, astfel încât să poată funcționa în funcție de instrucțiunile furnizate în cod.

Este foarte ușor să faceți acest lucru. Voi explica fiecare dintre ele în detaliu, despre ceea ce fac și cum funcționează.

Cum se instalează o bibliotecă?

Deci, înainte de asta, trebuie să știm cum să instalăm bibliotecile BitVoicer Server în Arduino IDE,.that pe software-ul arduino.

Deci, pentru asta, deschideți ID-ul Arduino

În panoul superior faceți clic pe „Schiță”

Apoi faceți clic pe „Includeți biblioteca”

Faceți clic pe „Gestionați biblioteca”

Apoi, managerul de bibliotecă se va deschide și putem vedea o listă de biblioteci care este gata pentru instalare sau a celor care au fost deja instalate

Căutați biblioteca de instalat și apoi selectați numărul versiunii

Aici instalăm bibliotecile BitVoicer Server, necesare pentru acest proiect

Cum să importați o bibliotecă.zip?

Bibliotecile pot fi distribuite și ca fișier sau folder ZIP

Numele folderului este numele bibliotecii

În interiorul folderului va fi un fișier.cpp, un fișier.h și adesea un fișier keywords.txt, exemple de folder și alte fișiere solicitate de bibliotecă

Din versiunea 1.0.5 a Arduino IDE, puteți instala biblioteci terțe în interiorul acesteia

Nu dezarhivați biblioteca descărcată, lăsați-o așa cum este

Pentru aceasta, accesați schița> Includeți biblioteca> Adăugați o bibliotecă.zip

Selectați locația fișierului.zip și deschideți-l.

Reveniți la meniul Sketch> Import Library.

Dacă este importată corespunzător, atunci acea bibliotecă trebuie să fie văzută în partea de jos a meniului derulant atunci când navigați.

Pasul 8: Program / Schiță

Acesta este programul care trebuie încărcat în Arduino.

Se poate face pur și simplu conectând placa Arduino la computer și încărcând-o pe placa.

Pasul 9: Ce zici de codurile scrise?

Acum să ne uităm la ceea ce fac de fapt fiecare dintre funcțiile scrise în cod ………..

Referințe bibliotecă și declarație variabilă

Înainte de a vorbi despre acest lucru, trebuie să cunoaștem și să înțelegem câteva terminologii de bază, printre care:

  • BVSP

    Este o bibliotecă care ne oferă aproape toate resursele necesare pentru schimbul de informații cu serverul BitVoicer

    Există un protocol cunoscut ca BitVoicer Server Protocol, care este implementat prin clasa BVSP. Acest lucru este necesar pentru a interacționa cu serverul

  • BVSMic

    Este o bibliotecă care implementează toate lucrurile necesare pentru a înregistra audio utilizând convertorul analog-digital (ADC) al Arduino

    Acest sunet este stocat în memoria tampon internă a clasei și poate fi recuperat și apoi poate fi trimis la motoarele de recunoaștere a vorbirii care sunt disponibile pe BitVoicer Server

  • Vorbitor BVS

    Este o bibliotecă care conține toate resursele esențiale necesare reproducerii fluxurilor audio trimise de pe serverul BitVoicer

    Pentru aceasta, placa Arduino trebuie să aibă un convertor Digital-Analog (DAC) încorporat

    Arduino DUE este singura placă Arduino care are un DAC integrat

Bibliotecile BVSP, BVSMic, BVSSpeaker și DAC, referința la acestea sunt scrise pe primele patru rânduri care alcătuiesc privirea programului

Când instalați BitVoicer Server, puteți găsi BitSophia care oferă toate aceste patru biblioteci

Când utilizatorul adaugă o referință la biblioteca BVSSpeaker, biblioteca DAC care a fost menționată anterior va fi invocată automat

Clasa BVSP este utilizată pentru a comunica cu BitVoicer Server

Clasa BVSMic este utilizată pentru captarea și stocarea audio

Clasa BVSSpeaker este utilizată pentru a reproduce sunetul utilizând Arduino DUE DAC

2. funcția de configurare

Funcția de configurare este utilizată pentru a efectua anumite acțiuni precum:

Pentru a seta modurile pin și stările lor inițiale

Pentru a inițializa comunicarea în serie

Pentru a inițializa clasa BVSP

Pentru a inițializa clasa BVSMic

Pentru a inițializa clasa BVSSpeaker

De asemenea, setează „gestionare de evenimente” (indicatori de funcție) pentru evenimentele frameReceived, modeChanged și streamReceived din clasa BVSP

Pasul 10: Funcția Loop

Realizează cinci operațiuni majore:

1. funcția keepAlive ()

Această funcție este de a solicita serverului informații despre stare.

2. funcția de a primi ()

Această funcție este de a verifica dacă serverul a trimis sau nu date. Dacă serverul a trimis date, acesta le va procesa.

3. funcțiile isSREAvailable (), startRecording (), stopRecording () și sendStream ()

Aceste funcții sunt utilizate pentru a controla diferitele setări de înregistrare a sunetului și după ce va atinge sunetul, acesta va trimite acest sunet către serverul BitVoicer.

4. funcția play ()

Această funcție este utilizată pentru a reda sunetul care a fost pus în coadă la clasa BVSSpeaker.

5. playNextLEDNote ()

Această funcție este utilizată pentru a controla modul în care Ledul ar trebui să clipească.

6. Funcția BVSP_frameReceived

Această funcție este apelată de fiecare dată când funcția de recepție () începe să identifice că a fost primit un cadru complet. Aici rulăm comenzile obținute de la BitVoicer Server. Comenzile care controlează clipirea LED-urilor sunt de 2 octeți. În acel prim octet indicați pinul și al doilea octet indică valoarea pinului. Aici folosim funcția analogWrite () pentru a seta valoarea corespunzătoare pinului. În acel moment, trebuie să verificăm și dacă a fost recepționată comanda playLEDNotes, care este de tip Byte. Dacă a fost primit, am setat playLEDNotes la adevărat și va monitoriza și marca ora curentă. Acest timp va fi folosit de funcția playNextLEDNote pentru a sincroniza LED-urile cu melodia.

7. Funcția BVSP_modeChanged

Această funcție este apelată de fiecare dată când funcția de recepție () identifică o schimbare de mod în direcția de ieșire (Server Arduino). BitVoicer Server poate trimite date încadrate sau audio către Arduino. Înainte ca comunicarea să treacă de la un mod la altul, BitVoicer Server trimite un semnal. Clasa BVSP identifică acest semnal și ridică sau semnalizează evenimentul modeChanged. În funcția BVSP_modeChanged, dacă utilizatorul detectează că comunicarea trece de la modul flux la modul încadrat, el / ea va ști că sunetul s-a încheiat, astfel încât utilizatorul să poată spune clasei BVSSpeaker să înceteze redarea audio.

8. Funcția BVSP_streamReceived

Această funcție este apelată de fiecare dată când funcția de recepție () identifică faptul că au fost primite probe audio. Pur și simplu recuperează sunetul și le pune în coadă în clasa BVSSpeaker, astfel încât funcția play () să le poată reproduce.

9. funcția playNextLEDNote

Această funcție rulează numai dacă funcția BVSP_frameReceived identifică comanda playLEDNotes. Controlează și sincronizează LED-urile cu sunetul trimis de pe BitVoicer Server. Pentru a sincroniza LED-urile cu sunetul și pentru a cunoaște momentul corect, se poate utiliza un software gratuit Sonic Visualizer. Ne permite să urmărim undele audio, astfel încât persoana să poată spune când a fost apăsată o tastă de pian.

Pasul 11: Cum să importați obiecte de soluție pentru server BitVoicer?

Acum am configurat BitVoicer Server pentru a lucra cu Arduino.

Există patru obiecte principale de soluție pentru un server BitVoicer: Locații, Dispozitive, BinaryData și Scheme vocale.

Să ne uităm la acestea în detaliu:

Locații

Reprezintă locația fizică în care este instalat dispozitivul.

Putem crea o locație numită Acasă.

Dispozitive

Acestea sunt considerate a fi clienții BitVoicer Server.

La fel ca crearea unei locații, putem crea un dispozitiv mixt, pentru ușurință, permiteți-ne să-l numim ArduinoDUE.

Uneori se pot întâmpla unele depășiri de tampon, așa că, pentru a-l elimina, a trebuit să limitez rata de date din setările de comunicare la 8000 de eșantioane pe secundă.

BinaryData este un tip de comandă pe care BitVoicer Server o poate trimite către dispozitivele client. Sunt de fapt matrice de octeți pe care le puteți lega la comenzi.

Când BitVoicer Server recunoaște vorbirea legată de acea comandă, acesta trimite matricea de octeți la dispozitivul țintă.

Deci, din acest motiv, am creat un obiect BinaryData pentru fiecare valoare PIN și le-am numit ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff și așa mai departe.

Așa că a trebuit să creez 18 obiecte BinaryData, așa că vă sugerez să descărcați și să importați obiectele din fișierul VoiceSchema.sof care este furnizat mai jos.

Deci, ce este o schemă vocală?

Schemele vocale sunt locul în care totul vine împreună. rolul principal al acestora este de a defini modul în care propozițiile ar trebui să fie recunoscute și ce comenzi trebuie executate.

Pentru fiecare propoziție, puteți defini câte comenzi aveți nevoie și ordinea în care vor fi executate.

De asemenea, puteți defini întârzieri între fiecare dintre comenzile furnizate.

BitVoicer Server acceptă numai audio PCM mono pe 8 biți (8000 de eșantioane pe secundă), deci va fi nevoie să convertiți fișierul audio în acest format, există atât de multe taxe de conversie online prezente astăzi și vă recomand https://audio.online -convert.com/convert-to-wav.

Puteți importa (Importarea obiectelor soluției) toate obiectele soluției pe care le-am folosit în acest proiect din fișierele de mai jos.

Una dintre ele conține dispozitivul DUE și cealaltă conține schema vocală și comenzile sale.

Pasul 12: Concluzie

Uite-te !!!

Ați făcut un proiect minunat și puteți vorbi cu el

Deci, începeți să vorbiți ………………

Puteți clipi LED-urile și, în același timp, puteți spune că cântă o melodie dacă este nevoie, codul său a fost deja furnizat

Așa că am finalizat al doilea instructabil !!!!!!!!

Da …

Cred că toată lumea a înțeles-o …

Dacă cineva are întrebări, vă rugăm să nu ezitați să mă întrebați

Voi veni cu un instructabil excelent data viitoare …

Pa…

Ne vedem în curând……………

Recomandat: