Turinys:
- 1 žingsnis: Kaip nustatyti aplinką?
- 2 žingsnis: Kodėl didėja „Arduino“paklausa?
- 3 žingsnis: pradėkime !!!!
- 4 žingsnis: reikalingi komponentai
- 5 žingsnis: kaip tai iš tikrųjų veikia?
- 6 veiksmas: komponentų prijungimas
- 7 žingsnis: pateikite kodą „Arduino“valdybai
- 8 žingsnis: programa/eskizas
- 9 žingsnis: Ką apie parašytus kodus?
- 10 žingsnis: ciklo funkcija
- 11 veiksmas: Kaip importuoti „BitVoicer“serverio sprendimo objektus?
- 12 žingsnis: Išvada
Video: Kalbos atpažinimas: 12 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
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ą?
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
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
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
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:
Kalbos atpažinimas naudojant „Arduino“(„Bluetooth“+ LCD + „Android“): 6 žingsniai
Kalbos atpažinimas naudojant „Arduino“(„Bluetooth + LCD + Android“): Šiame projekte mes atliksime kalbos atpažinimą naudodami „Arduino“, „Bluetooth“modulį (HC-05) ir LCD. sukurkime savo kalbos atpažinimo įrenginį
Kalbos atpažinimas naudojant „Google Speech“API ir „Python“: 4 veiksmai
Kalbos atpažinimas naudojant „Google Speech“API ir „Python“: kalbos atpažinimas Kalbos atpažinimas yra natūralios kalbos apdorojimo dalis, kuri yra dirbtinio intelekto dalis. Paprasčiau tariant, kalbos atpažinimas yra kompiuterinės programinės įrangos galimybė atpažinti žodžius ir frazes šnekamąja kalba
Asmeninis anglų kalbos treneris - AI balso asistentas: 15 žingsnių
Asmeninis anglų kalbos treneris - AI balso asistentas: Šis projektas padės studentams, besiruošiantiems bet kokiam kalbos egzaminui, kur jie gali būti apmokyti bendraujant su „Snips AI“
Retro kalbos sintezė. Dalis: 12 daiktų internetas, namų automatika: 12 žingsnių (su paveikslėliais)
Retro kalbos sintezė. Dalis: 12 daiktų internetas, namų automatika: Šis straipsnis yra 12 -asis iš namų automatikos instrukcijų serijos, dokumentuojančių, kaip sukurti ir integruoti „IoT Retro Speech Synthesis Device“į esamą namų automatikos sistemą, įskaitant visas būtinas programinės įrangos funkcijas, leidžiančias
Pridėkite Rytų Azijos kalbos palaikymą prie „Windows XP“: 12 žingsnių
Pridėti Rytų Azijos kalbų palaikymą prie „Windows XP“: Ši instrukcija mokys jus, kaip pridėti Rytų Azijos simbolių prie „Windows XP“. Čia taip pat sukūriau „Windows Vista“. Kitaip tariant, tai leidžia prie „Windows“pridėti kinų, korėjiečių, japonų ir kt. XP, kad galėtumėte skaityti ir rašyti tose kanaluose