Turinys:

Kalbos atpažinimas: 12 žingsnių
Kalbos atpažinimas: 12 žingsnių

Video: Kalbos atpažinimas: 12 žingsnių

Video: Kalbos atpažinimas: 12 žingsnių
Video: Mokomės arabų kalbos - Salam 2024, Lapkritis
Anonim
Kalbos atpažinimo įrenginys
Kalbos atpažinimo įrenginys

Sveiki visi………

Tai yra antrasis mano nurodymas, kurį skelbiu

Tad sveiki visi …

Šioje instrukcijoje aš jus išmokysiu, kaip sukurti balso atpažinimo įrenginį naudojant arduino plokštę.

Taigi manau, kad anksčiau turėjote patirties su „arduino“lentomis. Jei ne, tai čia nėra didelė problema. Bet aš rekomenduoju jums priprasti prie jo, nes labai įdomu žaisti su juo ir kurti šaunius projektus iš savo kūrybiškumo ir žinių apie jį.

Taigi žmonėms, kurie neturi ankstesnės patirties naudojant arduino:

„Arduino“yra atvirojo kodo kompiuterinė įranga, kurią gamina kompanija, turinti didelę dizainerių ir gamintojų bendruomenę. Ją galima laikyti mažu kompiuteriu, kuris gali būti naudojamas valdyti kitas elektronines grandines

„Arduino“yra užprogramuotas pačių sukurtoje aplinkoje, kurią galima lengvai atsisiųsti iš jų svetainės

1 žingsnis: Kaip nustatyti aplinką?

Kaip sutvarkyti aplinką?
Kaip sutvarkyti aplinką?
Kaip sutvarkyti aplinką?
Kaip sutvarkyti aplinką?
Kaip sutvarkyti aplinką?
Kaip sutvarkyti aplinką?
Kaip sutvarkyti aplinką?
Kaip sutvarkyti aplinką?

Tiesiog ieškokite google "parsisiųsti arduino"

Spustelėkite „Arduino - programinė įranga“

Galėsite pamatyti „Atsisiųsti„ Arduino IDE “

Pasirinkite priklausomai nuo operacinės sistemos

Atsisiųskite ir įdiekite

Taigi jūs sėkmingai įdiegėte programinę įrangą ir galite parašyti savo kodą arduino, o kabeliu galite prijungti arduino plokštę prie kompiuterio ir įterpti kodą.

2 žingsnis: Kodėl didėja „Arduino“paklausa?

Nebrangus

„Arduino“plokštės yra nebrangios, palyginti su kitomis mikrovaldiklių platformomis. Tai kainuos tik apie 50 USD.

Kelių platformų

„Arduino“programinė įranga veikia „Windows“, „Macintosh“OS ir „Linux“operacinėse sistemose. Jei galvojame apie kitas mikrovaldiklių sistemas, tai veiks tik „Windows“arba, kitaip tariant, tik „Windows“.

Atviro kodo ir išplėstinė programinė įranga

Ši programinė įranga yra atvirojo kodo, todėl žmonės pradėjo giliai apie tai mokytis ir įtraukti kitų programavimo kalbų bibliotekas (įskaitant jos veikimui skirtų funkcijų rinkinį).

Paprasta ir lengva programavimo aplinka

Žmonėms, įskaitant pradedančiuosius, lengva naudotis „Arduino IDE“(programine įranga, apie kurią jau kalbėjome…), nes daug išteklių teikia pats „Arduino“, kurį nemokamai galima rasti internete. Taigi nedvejodami sužinokite daugiau apie tai.

Atviro kodo ir išplėstinė aparatinė įranga

„Arduino“plokščių planai skelbiami pagal „Creative Commons“licenciją, todėl žmonės, turintys grandinių projektavimo patirties, gali sukurti savo modulio versiją, jie taip pat turi teisę išplėsti technologiją ir gali tobulėti, pridėdami prie jos funkcijų.

3 žingsnis: pradėkime !!!!

Taigi aš jau sakiau, kad šis projektas daugiausia skirtas balso atpažinimui naudojant „Arduino“ir tam, kad jis galėtų atlikti kai kurias užduotis.

Kalba aiškiau ……

Jis surenka vartotojo pateiktus garso signalus, kuriuos galima aptikti mirksint šviesos diodui po to, kai jis paverčiamas sintezuota kalba.

4 žingsnis: reikalingi komponentai

Privalomi komponentai
Privalomi komponentai
Privalomi komponentai
Privalomi komponentai
Privalomi komponentai
Privalomi komponentai

Pagrindiniai šio projekto komponentai yra šie:

„Arduino Due“x 1

„Spark Fun Electret“mikrofono pertrauka x 1

„Spark Fun Mono“garso stiprintuvo pertrauka x 1

Garsiakalbis: 0,25 W, 8 omai x 1

Duonos lenta x 1

5 mm šviesos diodas: raudonas x 3

Rezistorius 330 omų x 3

Perjungimo laidai x 1

Lituoklis x 1

„BitVoicer“serveris

Tai kalbos atpažinimo ir sintezės serveris, skirtas kalbos automatizavimui.

5 žingsnis: kaip tai iš tikrųjų veikia?

1. Išsiaiškinamos garso bangos, tada jos užfiksuoja šias bangas ir jas sustiprina „Sparkfun Electret Breakout“lenta.

2. Sustiprintas signalas, gautas aukščiau nurodyto proceso metu, bus skaitmenizuotas ir buferizuotas/saugomas „Arduino“plokštėje, naudojant jo analoginį skaitmeninį keitiklį (ADC).

3. Garso pavyzdžiai bus pateikti „BitVoicer Server“naudojant esamą „Arduino“nuoseklųjį prievadą.

4. „BitVoicer Server“apdoros garso srautą ir atpažins joje esančią kalbą.

5. Atpažinta kalba bus susieta su komandomis, kurios jau buvo apibrėžtos anksčiau, tada ji bus išsiųsta atgal į „Arduino“. Jei vieną iš komandų sudaro kalbos sintezė, „BitVoicer Server“paruoš garso srautą ir nusiųs jį į „Arduino“.

6. „Arduino“nustatys pateiktas komandas ir atliks tam tikrus atitinkamus veiksmus. Jei gaunamas garso srautas, jis bus įtrauktas į eilę į BVS garsiakalbių klasę ir paleistas naudojant DUE DAC ir DMA.

7. „SparkFun Mono“garso stiprintuvas sustiprins DAC signalą, kad galėtų valdyti 8 omų garsiakalbį ir būtų girdimas per jį.

6 veiksmas: komponentų prijungimas

Komponentų prijungimas
Komponentų prijungimas
Komponentų prijungimas
Komponentų prijungimas

Pirmasis žingsnis yra prijungti skirtingus duonos lentos komponentus, taip pat su arduino plokšte, kaip parodyta paveikslėlyje

Atminkite, kad čia naudojama „arduino“plokštė yra DUE, yra ir kitų „Arduino“pagamintų modelių, kurių kiekvienas veikia skirtingais įtampos lygiais

Dauguma „Arduino“plokščių veikia esant 5 V įtampai, tačiau DUE veikia esant 3,3 V

DUE jau naudoja 3,3 V analoginę nuorodą, todėl jums nereikia jungiklio prie AREF kaiščio

Atsiprašau, pamiršau pasakyti, kad AREF kaištis yra „ANALOGINIS NUORODOS PIN kodas“, esantis arduino lentoje, kaip parodyta kitame paveikslėlyje (tai yra arduino UNO, bet panaši panašioje svetainėje DUE atveju)

DUE AREF kaištis yra prijungtas prie mikrovaldiklio per rezistoriaus tiltelį

Norėdami naudoti AREF kaištį, rezistorius R1 turi būti išlydytas iš PCB [spausdintinės plokštės]

7 žingsnis: pateikite kodą „Arduino“valdybai

Kodo pateikimas „Arduino“valdybai
Kodo pateikimas „Arduino“valdybai

Taigi turime įkelti kodą į „Arduino“lentą, kad jis galėtų veikti, atsižvelgiant į kode pateiktas instrukcijas.

Tai padaryti labai paprasta. Aš išsamiai paaiškinsiu kiekvieną iš jų, ką jie daro ir kaip jie veikia.

Kaip įdiegti biblioteką?

Taigi prieš tai turime žinoti, kaip įdiegti „BitVoicer Server“bibliotekas į „Arduino IDE“,.that į „arduino“programinę įrangą.

Taigi atidarykite „Arduino IDE“

Viršutiniame skydelyje spustelėkite „Eskizas“

Tada spustelėkite „Įtraukti biblioteką“

Spustelėkite „Tvarkyti biblioteką“

Tada atsidarys bibliotekos tvarkyklė ir pamatysime bibliotekų, kurios yra paruoštos diegti, arba jau įdiegtų bibliotekų sąrašą

Ieškokite bibliotekos, kurią norite įdiegti, tada pasirinkite versijos numerį

Čia mes diegiame „BitVoicer Server“bibliotekas, būtinas šiam projektui

Kaip importuoti.zip biblioteką?

Bibliotekos taip pat gali būti platinamos kaip ZIP failas arba aplankas

Aplanko pavadinimas yra bibliotekos pavadinimas

Aplanko viduje bus.cpp failas,.h failas ir dažnai raktinis žodis.txt, pavyzdžių aplankas ir kiti bibliotekai reikalingi failai

Iš „Arduino IDE“1.0.5 versijos galite joje įdiegti trečiųjų šalių bibliotekas

Neišpakuokite atsisiųstos bibliotekos, palikite ją tokią, kokia yra

Norėdami tai padaryti, eikite į eskizą> Įtraukti biblioteką> Pridėti.zip biblioteką

Pasirinkite.zip failo vietą ir atidarykite.

Grįžkite į meniu Eskizas> Importuoti biblioteką.

Jei ji tinkamai importuota, naršant tą biblioteką reikia matyti išskleidžiamojo meniu apačioje.

8 žingsnis: programa/eskizas

Tai programa, kurią reikia įkelti į „Arduino“.

Tai galima padaryti tiesiog prijungus „Arduino Board“prie kompiuterio ir įkeliant jį į lentą.

9 žingsnis: Ką apie parašytus kodus?

Dabar pažiūrėkime, ką iš tikrųjų atlieka kiekviena kode įrašyta funkcija ………..

Bibliotekos nuorodos ir kintamoji deklaracija

Prieš kalbėdami apie tai, turime žinoti ir suprasti kai kurias pagrindines terminologijas. Tai apima:

  • BVSP

    Tai biblioteka, suteikianti mums beveik visus išteklius, reikalingus keistis informacija su „BitVoicer Server“

    Yra protokolas, žinomas kaip „BitVoicer Server Protocol“, kuris įgyvendinamas pagal BVSP klasę. Tai būtina norint bendrauti su serveriu

  • BVSMic

    Tai biblioteka, kurioje įdiegti visi dalykai, kurių reikia norint įrašyti garsą naudojant „Arduino“analoginį skaitmeninį keitiklį (ADC)

    Šis garsas yra saugomas klasės vidiniame buferyje, jį galima nuskaityti ir nusiųsti į kalbos atpažinimo variklius, kuriuos galima rasti „BitVoicer Server“

  • BVS garsiakalbis

    Tai biblioteka, kurioje yra visi esminiai ištekliai, reikalingi garso srautams iš „BitVoicer“serverio atkurti

    Tam „Arduino“plokštėje turi būti įmontuotas skaitmeninis-analoginis keitiklis (DAC)

    „Arduino DUE“yra vienintelė „Arduino“plokštė, turinti integruotą DAC

BVSP, BVSMic, BVSSpeaker ir DAC bibliotekos, nuoroda į jas parašyta pirmose keturiose eilutėse, kurios sudaro programos žiūrėjimą

Įdiegę „BitVoicer Server“, galite rasti „BitSophia“, kuri teikia visas šias keturias bibliotekas

Kai vartotojas prideda nuorodą į BVSSpeaker biblioteką, bus automatiškai iškviesta anksčiau paminėta DAC biblioteka

BVSP klasė naudojama bendrauti su „BitVoicer Server“

BVSMic klasė naudojama garsui fiksuoti ir saugoti

„BVSSpeaker“klasė naudojama garsui atkurti naudojant „Arduino DUE DAC“

2. sąrankos funkcija

Sąrankos funkcija naudojama tam tikriems veiksmams atlikti, pavyzdžiui:

Nustatyti kaiščių režimus ir jų pradines būsenas

Norėdami inicijuoti nuoseklųjį ryšį

Norėdami inicijuoti BVSP klasę

Norėdami inicijuoti BVSMic klasę

Norėdami inicijuoti BVSSpeaker klasę

Jis taip pat nustato „įvykių tvarkytojus“(funkcijų rodykles) kadrui Priimti, režimasPakeisti ir srauto gautiems BVSP klasės įvykiams

10 žingsnis: ciklo funkcija

Ji atlieka penkias pagrindines operacijas:

1. keepAlive () funkcija

Ši funkcija skirta užklausti serverį apie būsenos informaciją.

2. gauti () funkcija

Ši funkcija skirta patikrinti, ar serveris išsiuntė duomenis, ar ne. Jei serveris atsiuntė bet kokius duomenis, jis juos apdoros.

3. isSREAvailable (), startRecording (), stopRecording () ir sendStream () funkcijos

Šios funkcijos naudojamos įvairiems garso įrašymo nustatymams valdyti, o kai pasiekia garsą, jis siunčia šį garsą į „BitVoicer“serverį.

4. play () funkcija

Ši funkcija naudojama groti garsui, kuris yra eilėje BVSSpeaker klasėje.

5. playNextLEDNote ()

Ši funkcija naudojama valdyti, kaip turėtų mirksėti LED.

6. BVSP_frameReceived funkcija

Ši funkcija iškviečiama kiekvieną kartą, kai funkcija (gauti) pradeda nustatyti, kad buvo gautas vienas visas kadras. Čia vykdome komandas, gautas iš „BitVoicer Server“. Komandos, kurios valdo šviesos diodų mirksėjimą, yra 2 baitai. Pirmame baite nurodomas kaištis, o antrame baite - kaiščio vertė. Čia mes naudojame funkciją analogWrite (), kad nustatytume atitinkamą kaiščio vertę. Tuo metu taip pat turime patikrinti, ar buvo gauta baitų tipo „playLEDNotes“komanda. Jei jis buvo gautas, „playLEDNotes“nustatiau į „true“ir jis stebės ir pažymės esamą laiką. Šį laiką „playNextLEDNote“funkcija panaudos, kad sinchronizuotų šviesos diodus su daina.

7. BVSP_modeChanged funkcija

Ši funkcija iškviečiama kiekvieną kartą, kai funkcija (gauti) nustato režimo pasikeitimą išeinančia kryptimi („Server Arduino“). „BitVoicer Server“gali siųsti įrėmintus duomenis ar garsą į „Arduino“. Prieš perduodant ryšį iš vieno režimo į kitą, „BitVoicer Server“siunčia signalą. BVSP klasė atpažįsta šį signalą ir padidina arba pažymi „modeChanged“įvykį. Funkcijoje BVSP_modeChanged, jei vartotojas nustato, kad ryšys pereina iš srauto režimo į įrėmintą režimą, jis/ji žinos, kad garsas baigėsi, kad vartotojas galėtų pasakyti BVSSpeaker klasei, kad nustotų leisti garsą.

8. BVSP_streamReceived funkcija

Ši funkcija iškviečiama kiekvieną kartą, kai funkcija (gauti) nustato, kad buvo gauti garso pavyzdžiai. Jis tiesiog nuskaito garsą ir įrašo į eilę į BVSSpeaker klasę, kad play () funkcija galėtų juos atkurti.

9. „playNextLEDNote“funkcija

Ši funkcija veikia tik tuo atveju, jei funkcija BVSP_frameReceived identifikuoja komandą playLEDNotes. Jis valdo ir sinchronizuoja šviesos diodus su garsu, siunčiamu iš „BitVoicer Server“. Norėdami sinchronizuoti šviesos diodus su garsu ir žinoti teisingą laiką, galite naudoti nemokamą programinę įrangą „Sonic Visualizer“. Tai leidžia mums stebėti garso bangas, kad žmogus galėtų pasakyti, kada buvo paspaustas fortepijono klavišas.

11 veiksmas: Kaip importuoti „BitVoicer“serverio sprendimo objektus?

Dabar nustatėme padidintą „BitVoicer Server“dirbti su „Arduino“.

Yra keturi pagrindiniai „BitVoicer“serverio sprendimo objektai: vietos, įrenginiai, dvejetainiai duomenys ir balso schemos.

Pažvelkime į juos išsamiai:

Vietos

Tai reiškia fizinę įrenginio diegimo vietą.

Galime sukurti vietą, pavadintą „Namai“.

Įrenginiai

Jie laikomi „BitVoicer Server“klientais.

Kaip ir kurdami vietą, galime sukurti mišrų įrenginį, kad būtų lengviau, pavadinkime jį ArduinoDUE.

Kartais gali įvykti tam tikras buferio perpildymas, todėl norėdamas jį pašalinti turėjau apriboti duomenų perdavimo spartą ryšio nustatymuose iki 8000 mėginių per sekundę.

„BinaryData“yra komandų, kurias „BitVoicer Server“gali siųsti į kliento įrenginius, tipas. Jie iš tikrųjų yra baitų masyvai, kuriuos galite susieti su komandomis.

Kai „BitVoicer Server“atpažįsta kalbą, susijusią su ta komanda, ji siunčia baitų masyvą į tikslinį įrenginį.

Todėl dėl kiekvienos smeigtuko vertės sukūriau vieną „BinaryData“objektą ir pavadinau juos „ArduinoDUEGreenLedOn“, „ArduinoDUEGreenLedOff“ir pan.

Taigi turėjau sukurti 18 „BinaryData“objektų, todėl siūlau atsisiųsti ir importuoti objektus iš „VoiceSchema.sof“failo, kuris pateikiamas žemiau.

Taigi, kas yra balso schema?

Balso schemos yra viskas, kur viskas susideda. pagrindinis jų vaidmuo yra apibrėžti, kaip turėtų būti atpažįstami sakiniai ir kokias komandas reikia vykdyti.

Kiekvienam sakiniui galite nustatyti tiek komandų, kiek jums reikia, ir jų vykdymo tvarką.

Taip pat galite nustatyti vėlavimus tarp kiekvienos pateiktos komandos.

„BitVoicer Server“palaiko tik 8 bitų monofoninį PCM garsą (8000 mėginių per sekundę), todėl reikės konvertuoti garso failą į šį formatą, šiandien yra tiek daug internetinių konversijų rinkliavų ir rekomenduoju https://audio.online -convert.com/convert-to-wav.

Galite importuoti (importuoti sprendimo objektus) visus sprendimo objektus, kuriuos naudoju šiame projekte, iš toliau pateiktų failų.

Viename iš jų yra DUE įrenginys, o kitame - balso schema ir jos komandos.

12 žingsnis: Išvada

Štai taip !!!

Jūs sukūrėte nuostabų projektą ir galite su juo pasikalbėti

Taigi pradėk kalbėti ……………………

Galite mirksėti šviesos diodais ir tuo pačiu metu pasakyti, kad dainuoja dainą, jei reikia, jos kodas jau pateiktas

Taigi aš baigiau savo antrąjį nurodymą !!!!!!!!

Taip ……

Manau visi suprato …

Jei kas nors turite kokių nors klausimų, nedvejodami klauskite manęs

Kitą kartą sugalvosiu puikią instrukciją …

Ate…

Greitai pasimatysime……………

Rekomenduojamas: