Cuprins:
- Pasul 1: Cum să configurați mediul?
- Pasul 2: De ce crește cererea pentru Arduino?
- Pasul 3: Să începem !!!!
- Pasul 4: Componente necesare
- Pasul 5: Cum funcționează de fapt?
- Pasul 6: Cablarea componentelor
- Pasul 7: Furnizarea de cod către placa Arduino
- Pasul 8: Program / Schiță
- Pasul 9: Ce zici de codurile scrise?
- Pasul 10: Funcția Loop
- Pasul 11: Cum să importați obiecte de soluție pentru server BitVoicer?
- Pasul 12: Concluzie
Video: Recunoaștere vorbire: 12 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
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?
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
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
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
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:
Mănușă de conversie gest la vorbire / text: 5 pași
Mănușă de conversie a gestului către vorbire / text: Ideea / împingerea din spatele implementării acestui proiect a fost de a ajuta persoanele care au dificultăți de comunicare folosind vorbirea și de a comunica folosind gesturile mâinilor sau mai cunoscute sub numele de limba semnată americană (ASL). Acest proiect poate fi un pas către furnizarea
Faceți clic pe text pe vorbire pe o UChip alimentată ARMbasic și pe alte SBC-uri alimentate ARMbasic: 3 pași
Text către vorbire Faceți clic pe o UChip ARMbasic Powered și pe alte SBC-uri Powered ARMbasic: Introducere: Bună ziua. Numele meu este Tod. Sunt un profesionist în domeniul aerospațial și al apărării, care este, de asemenea, un pic cam ciudat
Realizați sistemul de avertizare pentru vorbire / notificare vocală: 4 pași
Realizați sistemul de avertizare pentru notificări vocale / vocale: în acest proiect am creat un sistem de avertizare și notificări vocale / vocale. În acest proiect pot fi utilizați cel puțin doi senzori
Mișcare și vorbire gigant Lego Hulk MiniFig (scară 10: 1): 14 pași (cu imagini)
Mișcarea și vorbirea gigantului Lego Hulk MiniFig (scara 10: 1): M-am jucat întotdeauna cu legosuri în copilărie, dar nu aveam niciunul dintre legosurile „fanteziste”, ci doar cărămizi clasice de lego. Sunt, de asemenea, un mare fan al Universului Cinematic Marvel (MCU) și personajul meu preferat este Hulk. Deci, de ce să nu combinați cele două și să faceți un gigant
Convertor Arduino Text în vorbire folosind LM386 - Talking Arduino Project - Biblioteca Talkie Arduino: 5 pași
Convertor Arduino Text în vorbire folosind LM386 | Talking Arduino Project | Biblioteca Talkie Arduino: Bună băieți, în multe dintre proiecte avem nevoie de arduino să vorbească ceva cum ar fi vorbind ceas sau spunând niște date, astfel încât în acest instructables vom converti textul în vorbire folosind Arduino