Sadržaj:
- Korak 1: Kako postaviti okruženje?
- Korak 2: Zašto se povećava potražnja za Arduinom?
- Korak 3: Počnimo !!!!
- Korak 4: Potrebne komponente
- Korak 5: Kako to zapravo funkcionira?
- Korak 6: Ožičenje komponenti
- Korak 7: Dostavljanje koda Arduino ploči
- Korak 8: Program/Skica
- Korak 9: Šta je sa napisanim kodovima?
- Korak 10: Funkcija petlje
- Korak 11: Kako uvesti objekte rješenja BitVoicer poslužitelja?
- Korak 12: Zaključak
Video: Prepoznavač govora: 12 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Zdravo svima………
Ovo je moje drugo uputstvo koje objavljujem
Pa dobrodošli svima …
U ovom Instructableu naučit ću vas o tome kako izgraditi prepoznavač glasa pomoću arduino ploče.
Tako da mislim da ste već imali iskustva s arduino pločama. Ako nije, to uopće nije veliki problem. Ali preporučujem vam da se naviknete na to jer je vrlo zanimljivo igrati se s njim i stvarati neke cool projekte izvan toga prema vašoj kreativnosti i znanju o njoj.
Dakle, za ljude koji nemaju prethodno iskustvo korištenja arduina:
Arduino je računarski hardver otvorenog koda koji proizvodi kompanija koja ima veliku zajednicu dizajnera i proizvođača.može se smatrati kao mali računar koji se može koristiti za kontrolu drugih elektroničkih kola
Arduino je programiran u okruženju koje su sami razvili i koje se može lako preuzeti s njihove web stranice
Korak 1: Kako postaviti okruženje?
Samo potražite na googlu "preuzmi arduino"
Kliknite na "Arduino - softver"
Moći ćete vidjeti "Preuzmite Arduino IDE"
Odaberite u zavisnosti od operativnog sistema
Preuzmite i instalirajte
Dakle, uspješno ste instalirali softver i možete napisati svoj kod za arduino, a pomoću kabela možete povezati arduino ploču s računalom i umetnuti kôd.
Korak 2: Zašto se povećava potražnja za Arduinom?
Jeftino
Arduino ploče su jeftine u usporedbi s drugim platformama za mikrokontrolere. Koštat će samo oko 50 dolara.
Cross-platform
Softver za Arduino radi na Windows, Macintosh OS i Linux operativnim sistemima. Ako pomislimo na druge sisteme mikrokontrolera, on će raditi samo u sustavu Windows ili drugim riječima ograničen samo na prozore.
Otvoreni izvorni i proširivi softver
Softver je otvorenog koda, pa su ljudi počeli o njemu duboko proučavati i uključivati biblioteke (koje uključuju skup funkcija za njegovo funkcioniranje) drugih programskih jezika.
Jednostavno i lako programsko okruženje
Lako je koristiti Arduino IDE (softver o kojem smo već govorili …) za ljude, uključujući početnike, jer veliku količinu resursa pruža sam Arduino, a koji je dostupan na internetu besplatno. Zato slobodno saznajte više o tome.
Otvoreni izvorni i proširivi hardver
Planovi Arduino ploča objavljeni su pod licencom Creative Commons, tako da ljudi koji imaju iskustva u projektiranju kola mogu napraviti vlastitu verziju modula, također imaju pravo proširiti tehnologiju i mogu je poboljšati dodavanjem značajki.
Korak 3: Počnimo !!!!
Pa sam već rekao da je ovaj projekt uglavnom fokusiran na prepoznavanje glasa pomoću Arduina i da mu omogući izvršavanje nekih zadataka.
Jasnije govorim ……
On prihvaća zvučne signale koje daje korisnik, a koji se mogu otkriti treptanjem LED diode nakon što se pretvori u sintetizirani govor.
Korak 4: Potrebne komponente
Glavne komponente potrebne za ovaj projekat su:
Arduino Due x 1
Spark Fun Electret mikrofon prekidač x 1
Spark Fun Mono Audio Amp Breakout x 1
Zvučnik: 0,25 W, 8 ohma x 1
Oglasna ploča x 1
5 mm LED: crvena x 3
Otpornik 330 ohma x 3
Kratkospojne žice x 1
Lemilica x 1
BitVoicer Server
To je poslužitelj za prepoznavanje i sintezu govora za automatizaciju govora.
Korak 5: Kako to zapravo funkcionira?
1. Audio talasi se otkrivaju, zatim hvata te valove i pojačava ih Sparkfun Electret Breakout ploča.
2. Pojačani signal postignut iz gore navedenog procesa bit će digitaliziran i baferiran/pohranjen na Arduino ploči pomoću njegovog analogno-digitalnog pretvarača (ADC) koji je u njemu prisutan.
3. Zvučni uzorci bit će dostavljeni BitVoicer poslužitelju pomoću prisutnog Arduino serijskog porta.
4. BitVoicer Server će obraditi audio tok i tada će prepoznati govor koji sadrži.
5. Prepoznati govor bit će preslikan u naredbe koje je već sam definirao, a zatim će se poslati natrag u Arduino. Ako se jedna od naredbi sastoji od sintetiziranja govora, BitVoicer Server će pripremiti audio stream i poslati ga na Arduino.
6. Arduino će identificirati ponuđene naredbe i izvršiti određene odgovarajuće radnje. Ako se primi audio stream, bit će stavljen u red BVS Speaker klase i reproduciran pomoću DUE DAC i DMA.
7. SparkFun Mono audio pojačalo pojačava DAC signal tako da može pokretati zvučnik od 8 ohma i kroz njega se može čuti.
Korak 6: Ožičenje komponenti
Prvi korak je ožičenje različitih komponenti u matičnoj ploči, a također i s arduino pločom kao što je prikazano na slici
Zapamtite da je arduino ploča koja se ovdje koristi DUE, postoje različiti drugi modeli koje je proizveo Arduino, a svaki radi na različitim razinama napona
Većina Arduino ploča radi na 5 V, ali DUE radi na 3,3 V
DUE već koristi analognu referencu od 3,3 V pa vam ne treba kratkospojnik na AREF pin
Žao mi je, zaboravio sam reći da je AREF pin "ANALOG REFERENCE PIN" koji je prisutan na arduino ploči kao što je prikazano na sljedećoj slici (To je arduino UNO, ali je slično na sličnom mjestu u slučaju DUE)
AREF pin na DUE je povezan sa mikrokontrolerom preko otporničkog mosta
Za upotrebu AREF pina, otpornik R1 mora biti odlemljen sa PCB-a [štampana ploča]
Korak 7: Dostavljanje koda Arduino ploči
Zato moramo učitati kôd na Arduino ploču, tako da može raditi ovisno o uputama datim u kodu.
To je vrlo lako učiniti. Objasniću svakom od njih detaljno, šta rade i kako rade.
Kako instalirati biblioteku?
Stoga prije toga moramo znati kako instalirati biblioteke BitVoicer servera u Arduino IDE,.to na arduino softver.
Pa za to otvorite Arduino IDE
Na gornjoj ploči kliknite na "Skica"
Zatim kliknite na "Uključi biblioteku"
Kliknite na "Upravljanje bibliotekom"
Tada će se otvoriti upravitelj biblioteka i moći ćemo vidjeti popis biblioteka koje su spremne za instalaciju ili onih koje su već instalirane
Potražite biblioteku za instaliranje, a zatim odaberite broj verzije
Ovdje instaliramo biblioteke BitVoicer servera, koje su neophodne za ovaj projekt
Kako uvesti.zip biblioteku?
Biblioteke se mogu distribuirati i kao ZIP datoteka ili fascikla
Ime fascikle je naziv biblioteke
Unutar fascikle će se nalaziti.cpp datoteka,.h datoteka i često datoteka keywords.txt, fascikla sa primjerima i druge datoteke koje biblioteka zahtijeva
Od verzije 1.0.5 Arduino IDE -a, unutar njega možete instalirati biblioteke drugih proizvođača
Ne raspakirajte preuzetu biblioteku, ostavite je takvu kakva je
Za to idite na skicu> Uključi biblioteku> Dodaj.zip biblioteku
Odaberite lokaciju.zip datoteke i otvorite je.
Vratite se na meni Sketch> Import Library.
Ako je pravilno uvezena, ta biblioteka će se vidjeti pri dnu padajućeg izbornika prilikom navigacije.
Korak 8: Program/Skica
Ovo je program koji se mora učitati u Arduino.
To se može učiniti jednostavno povezivanjem Arduino ploče s računarom i postavljanjem na ploču.
Korak 9: Šta je sa napisanim kodovima?
Pogledajmo sada šta zapravo radi svaka od funkcija zapisanih u kodu ………..
Reference biblioteke i deklaracija varijable
Prije nego govorimo o ovome, moramo znati i razumjeti neke osnovne terminologije. To uključuje:
-
BVSP
To je biblioteka koja nam daje gotovo sve resurse potrebne za razmjenu informacija s BitVoicer serverom
Postoji protokol poznat kao BitVoicer Server Protocol koji se implementira kroz klasu BVSP -a. Ovo je potrebno za interakciju sa serverom
-
BVSMic
To je biblioteka koja implementira sve što je potrebno za snimanje zvuka pomoću analogno-digitalnog pretvarača (ADC) Arduina
Ovaj zvuk je pohranjen u internom međuspremniku klase i može se dohvatiti, a zatim poslati na mehanizam za prepoznavanje govora koji je dostupan na BitVoicer serveru
-
BVSSpeaker
To je biblioteka koja sadrži sve bitne resurse potrebne za reprodukciju audio tokova poslanih s BitVoicer servera
Za to Arduino ploča mora imati ugrađen digitalno-analogni pretvarač (DAC)
Arduino DUE je jedina Arduino ploča koja ima integrirani DAC
BVSP, BVSMic, BVSSpeaker i DAC biblioteke, pozivanje na njih je napisano u prve četiri linije što čini početak programa
Kada instalirate BitVoicer Server, možete pronaći BitSophia koja pruža sve ove četiri biblioteke
Kada korisnik doda referencu na biblioteku BVSSpeaker, automatski će se pozvati DAC knjižnica koja je ranije spomenuta
BVSP klasa se koristi za komunikaciju sa BitVoicer serverom
Klasa BVSMic se koristi za snimanje i pohranu zvuka
BVSSpeaker klasa se koristi za reprodukciju zvuka pomoću Arduino DUE DAC -a
2. funkcija podešavanja
Funkcija postavljanja koristi se za izvođenje određenih radnji poput:
Za postavljanje pin načina i njihovih početnih stanja
Za pokretanje serijske komunikacije
Za inicijalizaciju BVSP klase
Za inicijalizaciju klase BVSMic
Za inicijalizaciju klase BVSSpeaker
Također postavlja „rukovatelje događajima“(pokazivače funkcija) za frameReceived, modeChanged i streamReceived događaje klase BVSP
Korak 10: Funkcija petlje
Izvodi pet velikih operacija:
1. funkcija keepAlive ()
Ova funkcija traži od servera informacije o statusu.
2. primiti () funkciju
Ova funkcija provjerava je li poslužitelj poslao neke podatke ili ne. Ako je poslužitelj poslao bilo koje podatke, on će ih obraditi.
3. isSREAvailable (), startRecording (), stopRecording () i sendStream () funkcije
Ove se funkcije koriste za kontrolu različitih postavki pri snimanju zvuka, a nakon što stigne zvuk, poslat će ga na BitVoicer poslužitelj.
4. funkcija play ()
Ova funkcija se koristi za reprodukciju zvuka koji je stavljen u red na klasi BVSSpeaker.
5. playNextLEDNote ()
Ova funkcija se koristi za kontrolu načina na koji LED dioda treba da treperi.
6. BVSP_frameReceived funkcija
Ova funkcija se poziva svaki put kada funkcija receive () počne identificirati da je primljen jedan kompletan okvir. Ovdje pokrećemo naredbe postignute sa BitVoicer servera. Naredbe koje kontroliraju treptanje LED dioda su od 2 bajta. U tom prvom bajtu se označava pin, a drugi bajt označava vrijednost pina. Ovdje koristimo funkciju analogWrite () za postavljanje odgovarajuće vrijednosti pina. U to vrijeme moramo provjeriti i da li je primljena naredba playLEDNotes, tipa Byte. Ako je primljen, postavio sam playLEDNotes na true i on će pratiti i označavati trenutno vrijeme. Ovo vrijeme funkcija playNextLEDNote iskoristit će za sinkronizaciju LED dioda s pjesmom.
7. BVSP_modeChanged funkcija
Ova funkcija se poziva svaki put kada funkcija receive () identificira promjenu načina u izlaznom smjeru (Server Arduino). BitVoicer Server može slati uokvirene podatke ili zvuk na Arduino. Prije nego komunikacija pređe iz jednog načina u drugi, BitVoicer Server šalje signal. Klasa BVSP identificira ovaj signal i podiže ili označava događaj modeChanged. U funkciji BVSP_modeChanged, ako korisnik otkrije da komunikacija prelazi iz načina prijenosa u način rada u kadru, znat će da je zvuk završio tako da korisnik može reći klasi BVSSpeaker da prestane reproducirati zvuk.
8. BVSP_streamReceived funkcija
Ova funkcija se poziva svaki put kada funkcija receive () identificira da su primljeni audio uzorci. Jednostavno preuzima audio i stavlja ih u red u klasu BVSSpeaker tako da ih funkcija play () može reproducirati.
9. playNextLEDNote funkcija
Ova funkcija radi samo ako funkcija BVSP_frameReceived identificira naredbu playLEDNotes. On kontrolira i sinkronizira LED diode sa zvukom poslanim s BitVoicer servera. Za sinkronizaciju LED dioda sa zvukom i poznavanje ispravnog vremena može se koristiti besplatni softver Sonic Visualizer. Omogućuje nam gledanje zvučnih valova tako da osoba može znati kada je pritisnuta klavirska tipka.
Korak 11: Kako uvesti objekte rješenja BitVoicer poslužitelja?
Sada smo postavili BitVoicer poslužitelj za rad s Arduinom.
Postoje četiri glavna objekta rješenja za BitVoicer poslužitelj: Lokacije, Uređaji, BinaryData i Glasovne sheme.
Pogledajmo ovo detaljno:
Lokacije
Predstavlja fizičku lokaciju na kojoj se uređaj instalira.
Možemo stvoriti lokaciju koja se zove Dom.
Uređaji
Smatra se da su oni klijenti BitVoicer servera.
Poput stvaranja lokacije, možemo stvoriti i mješoviti uređaj, radi lakšeg naziva dajmo mu ime ArduinoDUE.
Ponekad se može dogoditi neko prelijevanje bafera pa sam za njegovo uklanjanje morao ograničiti brzinu prijenosa podataka u komunikacijskim postavkama na 8000 uzoraka u sekundi.
BinaryData je vrsta naredbe koju BitVoicer Server može poslati klijentskim uređajima. Oni su zapravo nizovi bajtova koje možete povezati s naredbama.
Kada BitVoicer Server prepozna govor povezan s tom naredbom, šalje niz bajtova ciljnom uređaju.
Zato sam iz tog razloga stvorio jedan objekt BinaryData za svaku vrijednost pin -a i nazvao ih ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff i tako dalje.
Morao sam stvoriti 18 BinaryData objekata, pa vam predlažem da preuzmete i uvezete objekte iz datoteke VoiceSchema.sof koja se nalazi ispod.
Dakle, šta je to glasovna shema?
Glasovne sheme su mjesto gdje se sve slaže. njihova glavna uloga je definirati kako bi rečenice trebale biti prepoznate i koje sve naredbe treba izvesti.
Za svaku rečenicu možete definirati onoliko naredbi koliko vam je potrebno i redoslijed njihovog izvršavanja.
Također možete definirati kašnjenja između svake od ponuđenih naredbi.
BitVoicer Server podržava samo 8-bitni mono PCM audio (8000 uzoraka u sekundi) pa će biti potrebno pretvoriti audio datoteku u ovaj format, danas je prisutno toliko mrežnih naknada za pretvaranje i preporučujem https://audio.online -convert.com/convert-to-wav.
Možete uvesti (Uvoz objekata rješenja) sve objekte rješenja koje sam koristio u ovom projektu iz datoteka u nastavku.
Jedan od njih sadrži DUE uređaj, a drugi sadrži glasovnu shemu i njene naredbe.
Korak 12: Zaključak
Eto ti !!!
Napravili ste sjajan projekat i možete razgovarati s njim
Pa počni pričati ………………
Možete zatreperiti LED diode i istovremeno to možete reći da pjeva pjesmu ako je potrebno, njen kod je već dostavljen
Tako sam završio svoj Drugi instruktivni !!!!!!!!
Da ……
Mislim da su to svi razumeli …
Ako neko ima bilo kakvih pitanja, slobodno me pitajte
Sljedeći put ću smisliti odličnu Instructable …
Ćao…
Vidimo se uskoro……………
Preporučuje se:
Prepoznavanje govora s Arduinom (Bluetooth + LCD + Android): 6 koraka
Prepoznavanje govora s Arduinom (Bluetooth + LCD + Android): U ovom projektu ćemo raditi prepoznavanje govora s Arduinom, Bluetooth modulom (HC-05) i LCD-om. napravimo svoj vlastiti uređaj za prepoznavanje govora
Prepoznavač pokreta rukama: 5 koraka
Prepoznavač pokreta ruke: Pregled U ovom projektu napravit ćemo rukavicu koja može prepoznati neke osnovne pokrete ruke, koristeći MicroBit i nekoliko senzora. Koristit ćemo Bluetooth mogućnosti na MicroBitu, zajedno s Android aplikacijom i web serverom za obuku
MQ7-MONITORING ZAGAĐENJA KORIŠTENJEM GOVORA I NODEMCU: 4 koraka
MQ7 MONITORING ZAGAĐENJA ZAŠTITA KORIŠĆENJEM GOVORA I NODEMCU-a: Zagađenje je glavni problem današnjeg svijeta. Ali kako možemo pratiti naše zagađenje u blizini, sada je vrlo jednostavno. POČINIMO:
Prepoznavač znamenki s Pythonom: 3 koraka
Digit Recognizer with Python: Ova tema je vrlo popularna u stvarnom nazivu „Computer Vision“jer se sastoji od najnovijih softvera za stvaranje softverskih pokrovitelja za upravljanje imigracijama. Moguće je zamisliti que esta habilidad es muy útil para una computadora y permite extensionir
Prepoznavač na više jezika sa AIY: 4 koraka
Prepoznavač na više jezika sa AIY: Na svemirskim stanicama. Tamo ima mnogo astronauta. Astronauti dolaze sa mnogih planeta (zemalja). pa bi zato AI trebao raditi na mnogim jezicima