Kazalo:

Prepoznavalnik govora: 12 korakov
Prepoznavalnik govora: 12 korakov

Video: Prepoznavalnik govora: 12 korakov

Video: Prepoznavalnik govora: 12 korakov
Video: В московском СИЗО раскрыли ячейку АУЕ. Сюжет НТВ «ЧП» 2024, Julij
Anonim
Prepoznavalnik govora
Prepoznavalnik govora

Zdravo vsi………

To je moj drugi pouk, ki ga objavljam

Pa dobrodošli vsi …

V tem navodilu vas bom naučil, kako z uporabo arduino plošče sestaviti prepoznavalnik glasu.

Zato menim, da ste že imeli izkušnje z arduino ploščami. Če ne, to sploh ni velik problem. Ampak priporočam, da se ga navadite, saj se je z njim zelo zanimivo igrati in ustvariti nekaj kul projektov iz tega glede na vašo ustvarjalnost in znanje o njem.

Torej za ljudi, ki nimajo predhodnih izkušenj z uporabo arduina:

Arduino je odprtokodna računalniška strojna oprema, ki jo proizvaja podjetje z veliko skupnostjo oblikovalcev in proizvajalcev. Lahko jo obravnavamo kot majhen računalnik, ki se lahko uporablja za krmiljenje drugih elektronskih vezij

Arduino je programiran v okolju, ki so ga sami razvili in ga je mogoče enostavno prenesti z njihovega spletnega mesta

1. korak: Kako vzpostaviti okolje?

Kako vzpostaviti okolje?
Kako vzpostaviti okolje?
Kako vzpostaviti okolje?
Kako vzpostaviti okolje?
Kako vzpostaviti okolje?
Kako vzpostaviti okolje?
Kako vzpostaviti okolje?
Kako vzpostaviti okolje?

Samo poiščite v googlu "download arduino"

Kliknite "Arduino - programska oprema"

Videli boste lahko "Prenesite Arduino IDE"

Izberite glede na operacijski sistem

Prenesite in namestite

Torej ste uspešno namestili programsko opremo in kodo za arduino lahko napišete, s pomočjo kabla pa lahko ploščo arduino povežete z računalnikom in vstavite kodo.

2. korak: Zakaj se povpraševanje po Arduinu povečuje?

Poceni

Arduino plošče so poceni v primerjavi z drugimi platformami mikro krmilnikov. Stalo bo le okoli 50 USD.

Na več platformah

Programska oprema za Arduino deluje v operacijskih sistemih Windows, Macintosh OS in Linux. Če pomislimo na druge sisteme mikrokrmilnikov, bo deloval samo v sistemu Windows ali z drugimi besedami, omejen le na okna.

Odprtokodna in razširljiva programska oprema

Programska oprema je odprtokodna, zato so jo ljudje začeli poglobljeno preučevati in vključevati knjižnice (ki vključujejo nabor funkcij za njeno delovanje) drugih programskih jezikov.

Enostavno in enostavno programsko okolje

Arduino IDE (programska oprema, o kateri smo že govorili …) je enostavna za uporabo, tudi za začetnike, saj veliko sredstev zagotavlja Arduino, ki so na voljo brezplačno na internetu. o tem.

Odprtokodna in razširljiva strojna oprema

Načrti plošč Arduino so objavljeni pod licenco Creative Commons, zato lahko ljudje, ki imajo izkušnje z oblikovanjem vezij, izdelajo svojo različico modula, prav tako imajo pravico razširiti tehnologijo in jo lahko izboljšajo z dodajanjem funkcij.

3. korak: Začnimo !!!!!

Tako sem že povedal, da je ta projekt osredotočen predvsem na prepoznavanje glasu z uporabo Arduina in mu omogoča izvajanje nekaterih nalog.

Bolj jasno govorimo ……

Sprejema zvočne signale, ki jih posreduje uporabnik, ki jih je mogoče zaznati z utripanjem LED, potem ko se ta pretvori v sintetiziran govor.

4. korak: Potrebne komponente

Potrebne komponente
Potrebne komponente
Potrebne komponente
Potrebne komponente
Potrebne komponente
Potrebne komponente

Glavne komponente, potrebne za ta projekt, so:

Arduino Due x 1

Spark Fun Electret mikrofon prekinitev x 1

Spark Fun Mono Audio Amp Breakout x 1

Zvočnik: 0,25 W, 8 ohmov x 1

Ogledna plošča x 1

5 mm LED: rdeča x 3

Upor 330 ohmov x 3

Mostične žice x 1

Spajkalnik x 1

Strežnik BitVoicer

Je strežnik za prepoznavanje in sintezo govora za avtomatizacijo govora.

5. korak: Kako dejansko deluje?

1. Odkrijejo se zvočni valovi, ki jih zajame in jih ojača plošča Sparkfun Electret Breakout.

2. Ojačani signal, dosežen z zgornjim postopkom, bo digitaliziran in shranjen/shranjen na plošči Arduino z uporabo analogno-digitalnega pretvornika (ADC), ki je v njem.

3. Zvočni vzorci bodo posredovani BitVoicer strežniku z uporabo prisotnih serijskih vrat Arduino.

4. BitVoicer Server bo obdelal zvočni tok in nato prepoznal govor, ki ga vsebuje.

5. Prepoznani govor bo preslikan na ukaze, ki so bili že definirani sami, nato pa bo poslan nazaj v Arduino. Če je eden od ukazov sestavljen iz sinteze govora, bo strežnik BitVoicer pripravil zvočni tok in ga poslal v Arduino.

6. Arduino bo identificiral podane ukaze in izvedel določeno ustrezno dejanje. Če je prejet zvočni tok, bo v vrsti v razredu zvočnikov BVS in predvajan z uporabo DUE DAC in DMA.

7. Mono zvočni ojačevalnik SparkFun bo ojačal signal DAC, tako da lahko poganja 8 ohmski zvočnik in ga je mogoče slišati skozi njega.

6. korak: Ožičenje komponent

Ožičenje komponent
Ožičenje komponent
Ožičenje komponent
Ožičenje komponent

Prvi korak je ožičenje različnih komponent na plošči in tudi s ploščo arduino, kot je prikazano na sliki

Ne pozabite, da je tukaj uporabljena plošča arduino DUE, obstajajo tudi drugi modeli, ki jih je izdelal Arduino in vsak deluje na različnih nivojih napetosti

Večina plošč Arduino deluje pri 5 V, vendar DUE deluje pri 3,3 V

DUE že uporablja 3,3 V analogno referenco, zato ne potrebujete mostiča na pin AREF

Oprosti, pozabil sem reči, da je pin AREF "ANALOGNI REFERENČNI PIN", ki je prisoten na arduino plošči, kot je prikazano na naslednji sliki (gre za arduino UNO, vendar je podobno na podobnem spletnem mestu v primeru DUE)

Pin AREF na DUE je preko upornega mostu povezan z mikrokrmilnikom

Za uporabo zatiča AREF je treba upor R1 spajkati s tiskanega vezja [tiskana vezja]

Korak 7: Predložite kodo odboru Arduino

Posredovanje kode odboru Arduino
Posredovanje kode odboru Arduino

Zato moramo kodo naložiti na ploščo Arduino, da lahko deluje glede na navodila v kodi.

To je zelo enostavno. Vsakemu bom podrobno razložil, kaj počnejo in kako delujejo.

Kako namestiti knjižnico?

Zato moramo pred tem vedeti, kako v Arduino IDE namestiti knjižnice strežnika BitVoicer, to pa v programsko opremo arduino.

Zato za to odprite Arduino IDE

Na zgornji plošči kliknite "Skica"

Nato kliknite »Vključi knjižnico«

Ob tem kliknite »Upravljanje knjižnice«

Nato se odpre upravitelj knjižnic in vidimo seznam knjižnic, ki so pripravljene za namestitev, ali tistih, ki so že nameščene

Poiščite knjižnico za namestitev in izberite številko različice

Tukaj nameščamo knjižnice strežnika BitVoicer, ki so potrebne za ta projekt

Kako uvoziti knjižnico.zip?

Knjižnice je mogoče distribuirati tudi kot datoteko ZIP ali mapo

Ime mape je ime knjižnice

Znotraj mape bodo datoteka.cpp, datoteka.h in pogosto datoteka keywords.txt, mapa z primeri in druge datoteke, ki jih zahteva knjižnica

Od različice 1.0.5 Arduino IDE lahko vanj namestite knjižnice drugih proizvajalcev

Prenesene knjižnice ne razpakirajte, pustite jo takšno, kot je

Za to pojdite na skico> Vključi knjižnico> Dodaj knjižnico.zip

Izberite lokacijo datoteke.zip in jo odprite.

Vrnite se v meni Sketch> Import Library.

Če je pravilno uvožena, bo ta knjižnica med navigacijo vidna na dnu spustnega menija.

8. korak: Program/skica

To je program, ki ga je treba naložiti v Arduino.

To lahko storite tako, da ploščo Arduino povežete z računalnikom in jo naložite na ploščo.

9. korak: Kaj pa napisane kode?

Zdaj pa poglejmo, kaj vsaka od funkcij, zapisanih v kodi, dejansko počne ………..

Knjižnične reference in deklaracija spremenljivk

Preden govorimo o tem, moramo poznati in razumeti nekaj osnovnih terminologij, ki vključujejo:

  • BVSP

    To je knjižnica, ki nam daje skoraj vse vire, potrebne za izmenjavo informacij s strežnikom BitVoicer

    Obstaja protokol, znan kot protokol strežnika BitVoicer, ki se izvaja prek razreda BVSP. To je potrebno za interakcijo s strežnikom

  • BVSMic

    To je knjižnica, ki izvaja vse, kar je potrebno za snemanje zvoka z uporabo analogno-digitalnega pretvornika (ADC) Arduina

    Ta zvok je shranjen v notranjem medpomnilniku razreda in ga je mogoče pridobiti in nato poslati v mehanizme za prepoznavanje govora, ki so na voljo na strežniku BitVoicer

  • Zvočnik BVS

    To je knjižnica, ki vsebuje vse bistvene vire, ki so potrebni za reprodukcijo zvočnih tokov, poslanih s strežnika BitVoicer

    Za to mora imeti plošča Arduino vgrajen digitalno-analogni pretvornik (DAC)

    Arduino DUE je edina plošča Arduino, ki ima vgrajen DAC

Knjižnice BVSP, BVSMic, BVSSpeaker in DAC, sklicevanje na njih je zapisano v prvih štirih vrsticah, kar pomeni začetek programa

Ko namestite BitVoicer Server, lahko najdete BitSophia, ki ponuja vse te štiri knjižnice

Ko uporabnik doda sklic na knjižnico BVSSpeaker, se samodejno prikliče knjižnica DAC, ki je bila prej omenjena

Razred BVSP se uporablja za komunikacijo s strežnikom BitVoicer

Razred BVSMic se uporablja za zajem in shranjevanje zvoka

Razred BVSSpeaker se uporablja za reprodukcijo zvoka z uporabo DU DAC -ja Arduino

2. nastavitvena funkcija

Nastavitvena funkcija se uporablja za izvajanje določenih dejanj, kot so:

Za nastavitev načinov nožic in njihovih začetnih stanj

Za začetek serijske komunikacije

Za inicializacijo razreda BVSP

Za inicializacijo razreda BVSMic

Za inicializacijo razreda BVSSpeaker

Določa tudi »upravljalce dogodkov« (kazalce na funkcije) za dogodke frameReceived, modeChanged in streamReceived razreda BVSP

10. korak: Funkcija zanke

Izvaja pet glavnih operacij:

1. funkcija keepAlive ()

Ta funkcija zahteva od strežnika informacije o stanju.

2. funkcija prejemanja ()

Ta funkcija preverja, ali je strežnik poslal kakršne koli podatke ali ne. Če strežnik pošlje kakršne koli podatke, jih bo obdelal.

3. Funkcije isSREAvailable (), startRecording (), stopRecording () in sendStream ()

Te funkcije se uporabljajo za nadzor različnih nastavitev pri snemanju zvoka in potem, ko doseže zvok, bo ta zvok poslal na strežnik BitVoicer.

4. funkcija play ()

Ta funkcija se uporablja za predvajanje zvoka, ki je v vrsti v razredu BVSSpeaker.

5. playNextLEDNote ()

Ta funkcija se uporablja za nadzor utripanja LED.

6. BVSP_frameReceived funkcija

Ta funkcija se pokliče vsakič, ko funkcija accept () začne ugotavljati, da je bil sprejet en celoten okvir. Tu izvajamo ukaze, pridobljene s strežnika BitVoicer. Ukazi, ki nadzorujejo utripanje LED, so 2 bajta. V tem prvem bajtu je označen pin, drugi bajt pa vrednost pin. Tukaj uporabljamo funkcijo analogWrite () za nastavitev ustrezne vrednosti pin. Takrat moramo preveriti tudi, ali je bil sprejet ukaz playLEDNotes, ki je tipa Byte. Če je bil sprejet, nastavim playLEDNotes na true in bo spremljal in označeval trenutni čas. Ta čas bo funkcija playNextLEDNote uporabila za sinhronizacijo LED s skladbo.

7. BVSP_modeChanged funkcija

Ta funkcija se pokliče vsakič, ko funkcija accept () ugotovi spremembo načina v odhodni smeri (strežnik Arduino). Strežnik BitVoicer lahko pošlje uokvirjene podatke ali zvok v Arduino. Preden komunikacija preide iz enega načina v drugega, strežnik BitVoicer pošlje signal. Razred BVSP identificira ta signal in zviša ali označi dogodek modeChanged. Če uporabnik zazna funkcijo BVSP_modeChanged, bo komunikacija prešla iz pretočnega načina v uokvirjen način, bo vedel, da se je zvok končal, tako da lahko uporabnik razredu BVSSpeaker pove, naj preneha predvajati zvok.

8. BVSP_streamReceived funkcija

Ta funkcija se pokliče vsakič, ko funkcija accept () ugotovi, da so bili prejeti zvočni vzorci. Preprosto prikliče zvok in ga postavi v čakalno vrsto v razred BVSSpeaker, da jih lahko predvaja funkcija play ().

9. funkcija playNextLEDNote

Ta funkcija deluje le, če funkcija BVSP_frameReceived identificira ukaz playLEDNotes. Upravlja in sinhronizira LED z zvokom, poslanim s strežnika BitVoicer. Za sinhronizacijo LED z zvokom in poznavanje pravilnega časa lahko uporabite brezplačno programsko opremo Sonic Visualizer. Omogoča nam gledanje zvočnih valov, tako da lahko oseba ugotovi, kdaj je bila pritisnjena klavirska tipka.

11. korak: Kako uvoziti objekte rešitev strežnika BitVoicer?

Zdaj smo nastavili strežnik BitVoicer za delo z Arduinom.

Za strežnik BitVoicer obstajajo štirje glavni objekti rešitve: Lokacije, Naprave, BinaryData in Glasovne sheme.

Oglejmo si jih podrobneje:

Lokacije

Predstavlja fizično lokacijo, na kateri je naprava nameščena.

Ustvarimo lahko lokacijo z imenom Domov.

Naprave

Veljajo za odjemalce strežnika BitVoicer.

Tako kot ustvarjanje lokacije lahko ustvarimo tudi mešano napravo, zato jo zaradi lažjega imena poimenujmo ArduinoDUE.

Včasih se lahko zgodi nekaj prelivanja medpomnilnika, zato sem za njegovo odpravo moral omejiti podatkovno hitrost v nastavitvah komunikacije na 8000 vzorcev na sekundo.

BinaryData je vrsta ukaza, ki ga lahko strežnik BitVoicer pošlje odjemalcem. To so dejansko bajtni nizi, ki jih lahko povežete z ukazi.

Ko BitVoicer Server prepozna govor, povezan s tem ukazom, pošlje matriko bajtov ciljni napravi.

Zato sem za vsako vrednost pin ustvaril en objekt BinaryData in jih poimenoval ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff itd.

Zato sem moral ustvariti 18 objektov BinaryData, zato predlagam, da prenesete in uvozite predmete iz datoteke VoiceSchema.sof, ki je navedena spodaj.

Kaj je torej glasovna shema?

Glasovne sheme so tam, kjer je vse skupaj. njihova glavna vloga je opredeliti, kako naj se stavki prepoznajo in katere ukaze je treba izvesti.

Za vsak stavek lahko določite toliko ukazov, kot jih potrebujete, in vrstni red, v katerem bodo izvedeni.

Določite lahko tudi zamude med vsakim od podanih ukazov.

Strežnik BitVoicer podpira samo 8-bitni mono PCM zvok (8000 vzorcev na sekundo), zato bo treba zvočno datoteko pretvoriti v to obliko, danes je na voljo toliko spletnih cestnin za pretvorbo in priporočam https://audio.online -convert.com/convert-to-wav.

Iz spodnjih datotek lahko uvozite (Uvoz objektov rešitve) vse predmete rešitve, ki sem jih uporabil v tem projektu.

Eden od njih vsebuje napravo DUE, drugi pa glasovno shemo in njene ukaze.

12. korak: Zaključek

Izvolite !!!!

Naredili ste čudovit projekt in z njim se lahko pogovorite

Torej začni govoriti ………………

LED lahko utripate, hkrati pa lahko to poveste, če poje pesem, če jo potrebuje, njena koda je že zagotovljena

Tako sem zaključil svoj drugi Instructable !!!!!!!!!

Ja ……

Mislim, da so vsi to razumeli …

Če ima kdo kakšno vprašanje, me lahko vpraša

Naslednjič bom prišel do odličnega Instructablea …

Adijo…

Se vidiva kmalu……………

Priporočena: