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 radi?
- Korak 6: Ožičenje komponenti
- Korak 7: Dostavljanje koda Arduino ploči
- Korak 8: Program/Skica
- Korak 9: Što je s napisanim kodovima?
- Korak 10: Funkcija petlje
- Korak 11: Kako uvesti objekte rješenja rješenja poslužitelja BitVoicer?
- Korak 12: Zaključak
Video: Prepoznavač govora: 12 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Pozdrav 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 nema, ovdje 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čunalni hardver otvorenog koda koji proizvodi tvrtka koja ima veliku zajednicu dizajnera i proizvođača.može se smatrati kao malo računalo koje se može koristiti za upravljanje drugim elektroničkim sklopovima
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 ovisno o operativnom sustavu
Preuzmite ga i instalirajte
Dakle, uspješno ste instalirali softver i možete napisati svoj kod za arduino, a pomoću kabela možete spojiti arduino ploču na računalo i umetnuti kôd.
Korak 2: Zašto se povećava potražnja za Arduinom?
Jeftin
Arduino ploče su jeftine u usporedbi s drugim platformama za mikrokontrolere. Koštat će samo oko 50 dolara.
Cross-platforma
Softver za Arduino radi na Windows, Macintosh OS i Linux operativnim sustavima. Ako pomislimo na druge sustave 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 knjižnice (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, budući da veliku količinu resursa osigurava sam Arduino 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 sklopova 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 projekt 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 poslužitelj
To je poslužitelj za prepoznavanje i sintezu govora za automatizaciju govora.
Korak 5: Kako to zapravo radi?
1. Audio valovi se otkrivaju, zatim hvata te valove i pojačava ih Sparkfun Electret Breakout ploča.
2. Pojačani signal postignut gore navedenim postupkom bit će digitaliziran i međuspremnik/pohranjen na Arduino ploči pomoću njegovog analogno-digitalnog pretvarača (ADC) koji se u njemu nalazi.
3. Audio uzorci bit će dostavljeni BitVoicer poslužitelju pomoću prisutnog serijskog porta Arduino.
4. BitVoicer poslužitelj ć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 poslužitelj će pripremiti audio tok i poslati ga na Arduino.
6. Arduino će identificirati ponuđene naredbe i izvršiti određene odgovarajuće radnje. Ako se primi audio tok, bit će stavljen u red BVS zvučnika i reproduciran pomoću DUE DAC i DMA.
7. SparkFun Mono audio pojačalo pojačat će 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
Oh oprosti, 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 spojen je s mikrokontrolerom preko otporničkog mosta
Za uporabu AREF pina, otpornik R1 mora biti odlemljen s PCB-a [tiskana ploča]
Korak 7: Dostavljanje koda Arduino ploči
Stoga moramo učitati kôd na Arduino ploču kako bi mogao raditi ovisno o uputama datim u kodu.
To je vrlo jednostavno. Ja ću detaljno objasniti svaku od njih, o tome što rade i kako rade.
Kako instalirati knjižnicu?
Prije toga moramo znati kako instalirati biblioteke poslužitelja BitVoicer u Arduino IDE,.to na arduino softver.
Pa za to otvorite Arduino IDE
Na gornjoj ploči kliknite "Skica"
Zatim kliknite "Uključi biblioteku"
Na tom kliknite na "Upravljanje bibliotekom"
Tada će se otvoriti upravitelj knjižnice i možemo vidjeti popis knjižnica koje su spremne za instalaciju ili onih koje su već instalirane
Potražite biblioteku za instaliranje, a zatim odaberite broj verzije
Ovdje instaliramo biblioteke poslužitelja BitVoicer, koje su potrebne za ovaj projekt
Kako uvesti.zip biblioteku?
Knjižnice se mogu distribuirati i kao ZIP datoteka ili mapa
Naziv mape je naziv knjižnice
Unutar mape bit će.cpp datoteka,.h datoteka i često datoteka keywords.txt, mapa s primjerima i druge datoteke koje knjižnica zahtijeva
Od verzije 1.0.5 Arduino IDE -a, unutar njega možete instalirati knjižnice trećih strana
Ne raspakirajte preuzetu biblioteku, ostavite je takvu kakva je
Za to idite na sketch> Include Library> Add.zip Library
Odaberite mjesto.zip datoteke i otvorite je.
Vratite se na izbornik Sketch> Import Library.
Ako je ispravno uvezena, ta se knjižnica pri navigaciji može vidjeti pri dnu padajućeg izbornika.
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čunalom i učitavanjem na ploču.
Korak 9: Što je s napisanim kodovima?
Pogledajmo sada što 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 knjižnica koja nam daje gotovo sve resurse potrebne za razmjenu informacija s poslužiteljem BitVoicer
Postoji protokol poznat kao BitVoicer Server Protocol koji se implementira kroz klasu BVSP -a. To je potrebno za interakciju s poslužiteljem
-
BVSMic
To je knjižnica koja implementira sve što je potrebno za snimanje zvuka pomoću analogno-digitalnog pretvarača (ADC) Arduina
Ovaj se zvuk pohranjuje u unutarnji međuspremnik klase i može se dohvatiti, a zatim poslati na strojeve za prepoznavanje govora koji su dostupni na BitVoicer poslužitelju
-
BVSZvučnik
To je knjižnica koja sadrži sve bitne resurse potrebne za reprodukciju audio tokova poslanih s BitVoicer poslužitelja
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 knjižnice, pozivanje na njih napisano je u prva četiri retka što čini početak programa
Kada instalirate BitVoicer poslužitelj, možete pronaći BitSophia koja nudi sve ove četiri knjižnice
Kada korisnik doda referencu na biblioteku BVSSpeaker, automatski će se pozvati DAC knjižnica koja je ranije spomenuta
Klasa BVSP koristi se za komunikaciju s poslužiteljem BitVoicer
Klasa BVSMic koristi se za snimanje i pohranu zvuka
Klasa BVSSpeaker koristi se za reprodukciju zvuka pomoću Arduino DUE DAC -a
2. funkcija postavljanja
Funkcija postavljanja koristi se za izvođenje određenih radnji kao što su:
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 zahtijeva od poslužitelja informacije o statusu.
2. primiti () funkciju
Ova funkcija služi za provjeru 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, taj će zvuk poslati na poslužitelj BitVoicer.
4. funkcija play ()
Ova se funkcija koristi za reprodukciju zvuka koji je stavljen u red na klasi BVSSpeaker.
5. playNextLEDNote ()
Ova funkcija se koristi za kontrolu treptanja LED diode.
6. BVSP_frameReceived funkcija
Ova se funkcija poziva svaki put kada funkcija Receiver () počne identificirati da je primljen jedan kompletan okvir. Ovdje pokrećemo naredbe postignute s poslužitelja BitVoicer. Naredbe koje kontroliraju treperenje LED dioda su od 2 bajta. U tom prvom bajtu označava pin, a drugi bajt označava vrijednost pina. Ovdje koristimo funkciju analogWrite () za postavljanje odgovarajuće vrijednosti pina. U to vrijeme također moramo provjeriti je li 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_modePromijenjena funkcija
Ova se funkcija poziva svaki put kada funkcija receive () identificira promjenu načina u izlaznom smjeru (Server Arduino). BitVoicer poslužitelj može slati uokvirene podatke ili zvuk na Arduino. Prije nego komunikacija pređe iz jednog načina u drugi, BitVoicer poslužitelj š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_streamPrimljena funkcija
Ova se funkcija 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 poslužitelja. Za sinkronizaciju LED dioda sa zvukom i poznavanje točnog vremena može se koristiti besplatni softver Sonic Visualizer. Omogućuje nam gledanje audio valova tako da osoba može znati kada je pritisnuta klavirska tipka.
Korak 11: Kako uvesti objekte rješenja rješenja poslužitelja BitVoicer?
Sada smo postavili BitVoicer poslužitelj za rad s Arduinom.
Četiri su glavna objekta rješenja za BitVoicer poslužitelj: Lokacije, Uređaji, BinaryData i Glasovne sheme.
Pogledajmo ih detaljno:
Lokacije
Predstavlja fizičko mjesto na kojem se uređaj instalira.
Možemo stvoriti lokaciju koja se zove Dom.
Uređaji
Smatra se da su oni klijenti BitVoicer poslužitelja.
Poput stvaranja lokacije, možemo stvoriti i mješoviti uređaj, radi lakšeg naziva dajmo mu ime ArduinoDUE.
Ponekad se mogu dogoditi neki preljevi međuspremnika pa sam za njihovo uklanjanje morao ograničiti brzinu prijenosa podataka u komunikacijskim postavkama na 8000 uzoraka u sekundi.
BinaryData je vrsta naredbe koju BitVoicer poslužitelj može poslati klijentskim uređajima. Oni su zapravo nizovi bajtova koje možete povezati s naredbama.
Kada BitVoicer poslužitelj prepoznaje govor povezan s tom naredbom, šalje niz bajtova ciljnom uređaju.
Stoga 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 u nastavku.
Dakle, što je glasovna shema?
Glasovne sheme su mjesto gdje se sve slaže. njihova glavna uloga je definirati kako rečenice treba prepoznati 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 poslužitelj 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.
Iz donjih datoteka možete uvesti (Uvoz objekata rješenja) sve objekte rješenja koje sam koristio u ovom projektu.
Jedan od njih sadrži DUE uređaj, a drugi sadrži glasovnu shemu i njene naredbe.
Korak 12: Zaključak
Izvoli !!!
Napravili ste sjajan projekt 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, njezin je kod već dostavljen
Tako sam završio svoj drugi Instructable !!!!!!!!
Da……
Mislim da su svi to razumjeli …
Ako neko ima bilo kakvih pitanja, slobodno me pitajte
Sljedeći put ću smisliti izvrsnu Instructable …
Zbogom…
Vidimo se uskoro……………
Preporučeni:
Prepoznavanje govora s Arduinom (Bluetooth + LCD + Android): 6 koraka
Prepoznavanje govora s Arduinom (Bluetooth + LCD + Android): U ovom ćemo projektu prepoznati govor s Arduinom, Bluetooth modulom (HC-05) i LCD-om. napravimo 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 rukama, koristeći MicroBit i nekoliko senzora. Koristit ćemo Bluetooth mogućnosti na MicroBitu, zajedno s Android aplikacijom i web poslužiteljem za obuku
MQ7-MONITORING ZAGAĐENJA KORIŠTENJEM GOVORA I NODEMCU-a: 4 koraka
MQ7 MONITORING ZAZAŠTAVANJA ZAGAĐENJA KORIŠĆENJEM GOVORA I NODEMCU-a: Zagađenje je veliki problem današnjeg svijeta. Ali kako možemo pratiti naše zagađenje u blizini, sada je to vrlo jednostavno PA POČNIMO:
Prepoznavač znamenki s Pythonom: 3 koraka
Digit Recognizer With Python: Un tema je vrlo popularna u stvarnom nazivu "Computer Vision" jer se sastoji od najnovijih softvera za stvaranje softverskih pokrovitelja koji mogu upravljati imenima. Moguće je zamisliti que esta habilidad es muy útil para una computadora y permite expandir
Prepoznavač na više jezika s AIY-om: 4 koraka
Prepoznavač na više jezika s AIY-om: U svemirskim postajama. Tamo ima mnogo astronauta.n ~ astronauti dolaze s mnogih planeta (zemalja). pa bi zato AI trebao raditi na mnogim jezicima