Sadržaj:

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

Video: Prepoznavač govora: 12 koraka

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

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?

Kako postaviti okruženje?
Kako postaviti okruženje?
Kako postaviti okruženje?
Kako postaviti okruženje?
Kako postaviti okruženje?
Kako postaviti okruženje?
Kako postaviti okruženje?
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

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

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

Ž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

Dostavljanje koda Arduino odboru
Dostavljanje koda Arduino odboru

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: