Sadržaj:

Prepoznavač govora: 12 koraka
Prepoznavač govora: 12 koraka

Video: Prepoznavač govora: 12 koraka

Video: Prepoznavač govora: 12 koraka
Video: Закир Найк о шиитах. Шииты о Закире 2024, Srpanj
Anonim
Prepoznavač govora
Prepoznavač govora

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?

Kako postaviti okoliš?
Kako postaviti okoliš?
Kako postaviti okoliš?
Kako postaviti okoliš?
Kako postaviti okoliš?
Kako postaviti okoliš?
Kako postaviti okoliš?
Kako postaviti okoliš?

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

Potrebne komponente
Potrebne komponente
Potrebne komponente
Potrebne komponente
Potrebne komponente
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

Ožičenje komponenti
Ožičenje komponenti
Ožičenje komponenti
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

Dostavljanje koda Arduino odboru
Dostavljanje koda Arduino odboru

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: