Mundarija:
- 1-qadam: Atrof-muhitni qanday sozlash kerak?
- 2 -qadam: Nega Arduinoga talab oshmoqda?
- 3 -qadam: Boshlaylik !!!!!
- 4 -qadam: zarur komponentlar
- 5 -qadam: Bu aslida qanday ishlaydi?
- 6 -qadam: Komponentlarni ulash
- 7 -qadam: Arduino kengashiga kodni taqdim etish
- 8 -qadam: Dastur/eskiz
- 9 -qadam: Yozilgan kodlar haqida nima deyish mumkin?
- 10 -qadam: Loop funktsiyasi
- 11 -qadam: BitVoicer server echimlarini qanday import qilish mumkin?
- 12 -qadam: Xulosa
Video: Nutqni aniqlash vositasi: 12 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Hammaga salom………
Bu men yozayotgan ikkinchi ko'rsatma
Shunday ekan hammaga xush kelibsiz …
Bu yo'riqnomada men sizga arduino taxtasi yordamida ovoz tanuvchini qanday yasashni o'rgatmoqchiman.
Menimcha, bundan oldin sizda arduino platalari bilan tajribangiz bor, agar bo'lmasa, bu katta muammo emas, lekin men sizga ko'nikishni tavsiya qilaman, chunki u bilan o'ynash va ajoyib loyihalar yaratish juda qiziq. bu sizning ijodingiz va bu boradagi bilimingizga ko'ra.
Arduino -dan oldingi tajribaga ega bo'lmagan odamlar uchun:
Arduino - bu ochiq manbali kompyuter uskunasi, uni dizaynerlar va ishlab chiqaruvchilar keng jamoasiga ega bo'lgan kompaniya ishlab chiqaradi, uni boshqa elektron sxemalarni boshqarish uchun ishlatilishi mumkin bo'lgan kichik kompyuter kabi hisoblash mumkin
Arduino o'zlari ishlab chiqqan muhitda dasturlashtirilgan bo'lib, ularni o'z veb -saytidan osongina yuklab olish mumkin
1-qadam: Atrof-muhitni qanday sozlash kerak?
Google -da "arduino -ni yuklab olish" ni qidiring
"Arduino - dasturiy ta'minot" ni bosing
Siz "Arduino IDE -ni yuklab oling" ni ko'rasiz
Operatsion tizimingizga qarab tanlang
Yuklab oling va o'rnating
Shunday qilib, siz dasturiy ta'minotni muvaffaqiyatli o'rnatdingiz va siz o'z kodingizni arduino uchun yozishingiz mumkin va kabel yordamida siz arduino kartasini kompyuterga ulashingiz va kodni kiritishingiz mumkin.
2 -qadam: Nega Arduinoga talab oshmoqda?
Arzon
Arduino platalari boshqa mikrokontrolderlar bilan taqqoslaganda arzon. Bu taxminan 50 dollar turadi.
O'zaro platforma
Arduino uchun dasturiy ta'minot Windows, Macintosh OS va Linux operatsion tizimlarida ishlaydi. Agar biz boshqa mikro-nazorat tizimlari haqida o'ylayotgan bo'lsak, u faqat Windows-da ishlaydi yoki boshqacha aytganda faqat oynalar bilan chegaralanadi.
Ochiq kodli va kengaytiriladigan dasturiy ta'minot
Dastur ochiq manba bo'lib, shuning uchun odamlar bu haqda chuqur o'rgana boshladilar va boshqa dasturlash tillarining kutubxonalarini (uning ishlashi uchun funktsiyalar to'plamini o'z ichiga oladi) qo'sha boshladilar.
Oddiy va oson dasturlash muhiti
Yangi boshlanuvchilar, shu jumladan yangi boshlanuvchilar uchun Arduino IDE -dan foydalanish juda oson, chunki Arduino -ning ko'p manbalari Internetda bepul mavjud, shuning uchun ko'proq bilishni xohlaysiz. bu haqida.
Ochiq manba va kengaytiriladigan apparat
Arduino taxtalarining rejalari Creative Commons litsenziyasi ostida nashr etiladi, shuning uchun sxemalarni loyihalash tajribasiga ega bo'lganlar modulning o'z versiyasini yaratishi mumkin, ular texnologiyani kengaytirish huquqiga ega va unga xususiyatlarni qo'shish orqali yaxshilanishi mumkin.
3 -qadam: Boshlaylik !!!!!
Men allaqachon aytganmanki, bu loyiha asosan Arduino yordamida ovozni aniqlash va unga ba'zi vazifalarni bajarishga ruxsat berish bilan bog'liq.
Aniqroq gapiring ……
U sintezlangan nutqqa aylantirilgandan so'ng, LED tomonidan yonib-o'chib turishi bilan aniqlanishi mumkin bo'lgan, foydalanuvchi tomonidan berilgan tovush signallarini qabul qiladi.
4 -qadam: zarur komponentlar
Loyiha uchun zarur bo'lgan asosiy komponentlar:
Arduino tufayli x 1
Spark Fun Electret mikrofonining uzilishi x 1
Spark Fun Mono Audio Amp Breakout x 1
Karnay: 0,25 Vt, 8 ohm x 1
Non paneli x 1
5 mm LED: qizil x 3
Rezistor 330 ohm x 3
Jumper simlari x 1
Lehimlash temir x 1
BitVoicer server
Bu nutqni avtomatlashtirish uchun nutqni aniqlash va sintez qilish serveri.
5 -qadam: Bu aslida qanday ishlaydi?
1. Ovoz to'lqinlari aniqlanmoqda, keyin u bu to'lqinlarni ushlaydi va Sparkfun Electret Breakout taxtasi orqali kuchaytiriladi.
2. Yuqoridagi jarayondan olingan kuchaytirilgan signal raqamli bo'ladi va uning analog-raqamli konvertori (ADC) yordamida Arduino platasida saqlanadi.
3. Audio namunalar BitVoicer serveriga Arduino ketma -ket porti yordamida taqdim etiladi.
4. BitVoicer Server ovozli oqimni qayta ishlaydi va u o'z ichiga olgan nutqni taniydi.
5. Tanilgan nutq oldindan aniqlangan buyruqlar bilan taqqoslanadi, so'ngra Arduino -ga qaytariladi. Agar buyruqlardan biri nutqni sintez qilishdan iborat bo'lsa, BitVoicer Server audio oqimini tayyorlab, Arduino -ga yuboradi.
6. Arduino berilgan buyruqlarni aniqlab beradi va tegishli tegishli harakatni bajaradi. Agar audio oqim qabul qilinsa, u BVS Speaker sinfiga navbatga qo'yiladi va DUE DAC va DMA yordamida ijro etiladi.
7. SparkFun Mono Audio Kuchaytirgich DAC signalini kuchaytiradi, shuning uchun u 8 Ohmli dinamikni boshqarishi va u orqali eshitilishi mumkin.
6 -qadam: Komponentlarni ulash
Birinchi qadam - rasmda ko'rsatilgandek, arduino taxtasi bilan turli xil komponentlarni simga ulash
Esda tutingki, bu erda ishlatiladigan arduino taxtasi DUE, Arduino tomonidan ishlab chiqarilgan boshqa modellar mavjud, ularning har biri har xil kuchlanish darajasida ishlaydi
Arduino platalarining ko'pchiligi 5 V da ishlaydi, lekin DUE 3,3 V da ishlaydi
DUE allaqachon 3,3 V analog ma'lumotnomasidan foydalanadi, shuning uchun sizga AREF piniga o'tish moslamasi kerak emas
Kechirasiz, men AREF pinini "ANALOG REFERENS PIN -kodi" deb aytishni unutganman, u keyingi rasmda ko'rsatilgandek arduino taxtasida mavjud (bu arduino UNO, lekin shunga o'xshash sayt DUE holatida ham shunga o'xshash)
DUE-dagi AREF pimi rezistorli ko'prik orqali mikro-boshqaruvchiga ulanadi
AREF pinidan foydalanish uchun R1 rezistorini PCB [Chop etilgan elektron karta] dan lehimlash kerak
7 -qadam: Arduino kengashiga kodni taqdim etish
Shunday qilib, biz kodni Arduino Board -ga yuklashimiz kerak, shunda u kodda ko'rsatilgan ko'rsatmalarga muvofiq ishlaydi.
Buni amalga oshirish juda oson, men ularning har biriga nima qilishlari va qanday ishlashlari haqida batafsil aytib beraman.
Kutubxonani qanday o'rnatish kerak?
Shunday qilib, bundan oldin biz BitVoicer Server kutubxonalarini Arduino IDE -ga, ya'ni arduino dasturiga qanday o'rnatishni bilishimiz kerak.
Buning uchun Arduino IDE -ni oching
Yuqori panelda "Eskiz" ni bosing
Keyin "Kutubxonani qo'shish" ni bosing
Buning uchun "Kutubxonani boshqarish" ni bosing
Keyin kutubxona menejeri ochiladi va biz o'rnatishga tayyor yoki oldindan o'rnatilgan kutubxonalar ro'yxatini ko'rishimiz mumkin
O'rnatish uchun kutubxonani qidiring va versiya raqamini tanlang
Bu erda biz BitVoicer Server kutubxonalarini o'rnatamiz, bu loyiha uchun zarur
. Zip kutubxonasini qanday import qilish mumkin?
Kutubxonalar ZIP fayl yoki papka sifatida ham tarqatilishi mumkin
Jildning nomi - kutubxonaning nomi
Jildning ichida.cpp fayli,.h fayli va ko'pincha kalit so'zlar.txt fayli, misollar papkasi va kutubxona talab qiladigan boshqa fayllar bo'ladi
Arduino IDE 1.0.5 versiyasidan siz uning ichiga uchinchi tomon kutubxonalarini o'rnatishingiz mumkin
Yuklab olingan kutubxonani ochmang, xuddi shunday qoldiring
Buning uchun eskiz> Kutubxonani qo'shish>.zip kutubxonasini qo'shish -ga o'ting
. Zip faylining manzilini tanlang va uni oching.
Sketch> Import Library Library menyusiga qayting.
Agar u to'g'ri import qilingan bo'lsa, u holda siz kutubxonani ochilganda menyuning pastki qismida ko'rishingiz kerak.
8 -qadam: Dastur/eskiz
Bu Arduino -ga yuklanishi kerak bo'lgan dastur.
Buni Arduino platasini kompyuterga ulab, taxtaga yuklash orqali amalga oshirish mumkin.
9 -qadam: Yozilgan kodlar haqida nima deyish mumkin?
Keling, kodda yozilgan har bir funktsiya aslida nima bilan shug'ullanishini ko'rib chiqaylik ……………
Kutubxona ma'lumotnomalari va o'zgaruvchilar deklaratsiyasi
Bu haqda gapirishdan oldin, biz ba'zi asosiy terminlarni bilishimiz va tushunishimiz kerak.
-
BVSP
Bu bizga BitVoicer Server bilan ma'lumot almashish uchun zarur bo'lgan deyarli barcha manbalarni beradigan kutubxona
BitVoicer server protokoli BVSP klassi orqali amalga oshiriladigan protokol mavjud. Bu server bilan ishlash uchun kerak
-
BVSMic
Bu Arduino analog-raqamli konvertori (ADC) yordamida ovoz yozish uchun zarur bo'lgan hamma narsani bajaradigan kutubxona
Bu audio sinf ichki buferida saqlanadi va ularni qaytarib olish mumkin, keyin BitVoicer Serverda mavjud bo'lgan nutqni aniqlash dvigatellariga yuborish mumkin
-
BVSSpeaker
Bu BitVoicer serveridan yuborilgan audio oqimlarni qayta ishlab chiqarish uchun zarur bo'lgan barcha asosiy manbalarni o'z ichiga olgan kutubxona
Buning uchun Arduino platasida o'rnatilgan raqamli-analogli konvertor (DAC) bo'lishi kerak
Arduino DUE - bu DAC o'rnatilgan yagona Arduino platasi
BVSP, BVSMic, BVSSpeaker va DAC kutubxonalari, ularga havola birinchi to'rtta satrda yozilgan bo'lib, ular dasturni kuzatib turadi
BitVoicer Server -ni o'rnatganingizda, bu to'rtta kutubxonani ta'minlaydigan BitSophia -ni topishingiz mumkin
Foydalanuvchi BVSSpeaker kutubxonasiga havola qo'shganda, yuqorida aytib o'tilgan DAC kutubxonasi avtomatik ravishda chaqiriladi
BVSP klassi BitVoicer Server bilan aloqa qilish uchun ishlatiladi
BVSMic klassi ovoz yozish va saqlash uchun ishlatiladi
BVSSpeaker klassi Arduino DUE DAC yordamida ovozni qayta tiklash uchun ishlatiladi
2. sozlash funktsiyasi
O'rnatish funktsiyasi ba'zi harakatlarni bajarish uchun ishlatiladi, masalan:
Pin rejimlarini va ularning dastlabki holatlarini o'rnatish
Seriya aloqasini boshlash uchun
BVSP sinfini ishga tushirish uchun
BVSMic sinfini ishga tushirish uchun
BVSSpeaker sinfini ishga tushirish uchun
Shuningdek, u BVSP sinfidagi "Qabul qilingan", "Qabul qilingan", "O'zgartirilgan" va "O'tkazib yuborilgan" hodisalar uchun "voqea ishlovchilarini" (funktsiya ko'rsatgichlari) o'rnatadi
10 -qadam: Loop funktsiyasi
U beshta asosiy operatsiyani bajaradi:
1. keepAlive () funktsiyasi
Bu funksiya serverdan holati haqida ma'lumot so'rash.
2. qabul () funktsiyasi
Bu funksiya serverga ma'lumot yuborilganmi yoki yo'qligini tekshirish, agar server biron bir ma'lumot yuborsa, uni qayta ishlaydi.
3. isSREAvailable (), startRecording (), stopRecording () va sendStream () funktsiyalari
Bu funksiyalar audio yozib olishning turli xil sozlamalarini boshqarish uchun ishlatiladi va u ovozga kirgandan keyin BitVoicer serveriga yuboriladi.
4. play () funktsiyasi
Bu funksiya BVSSpeaker sinfida navbatga qo'yilgan ovozni ijro etish uchun ishlatiladi.
5. playNextLEDNote ()
Bu funksiya Led qanday miltillashi kerakligini boshqarish uchun ishlatiladi.
6. BVSP_frameReceived funktsiyasi
Bu funktsiya har safar qabul qilish () funktsiyasi bitta to'liq ramka olinganligini aniqlay boshlaganda chaqiriladi, bu erda biz BitVoicer Serverdan olingan buyruqlarni bajaramiz. LEDlarning miltillashini boshqaruvchi buyruqlar 2 baytdan iborat. U birinchi baytda pinni, ikkinchi baytda esa pin qiymatini bildiradi. Bu erda biz pinga mos keladigan qiymatni o'rnatish uchun analogWrite () funktsiyasidan foydalanmoqdamiz. O'sha paytda biz ham bayt tipidagi playLEDNotes buyrug'i qabul qilinganligini tekshirishimiz kerak. Agar u qabul qilingan bo'lsa, men playLEDNotes -ni rost qilib qo'ydim va u joriy vaqtni kuzatadi va belgilaydi. Bu vaqt playNextLEDNote funktsiyasi tomonidan LEDlarni qo'shiq bilan sinxronlashtirish uchun ishlatiladi.
7. BVSP_modeChanged funksiyasi
Bu funksiya har safar qabul qilish () funktsiyasi chiqish yo'nalishidagi (Server Arduino) rejim o'zgarishini aniqlaganida chaqiriladi. BitVoicer Server Arduino -ga ramkali ma'lumot yoki audio yuborishi mumkin. Aloqa bir rejimdan boshqasiga o'tishdan oldin BitVoicer Server signal yuboradi. BVSP klassi bu signalni aniqlaydi va modeChanged hodisasini ko'taradi yoki belgilaydi. BVSP_modeChanged funktsiyasida, agar foydalanuvchi aloqa rejimidan ramkali rejimga o'tayotganini aniqlasa, u ovoz tugaganini biladi, shuning uchun foydalanuvchi BVSSpeaker sinfiga ovozni ijro etishni to'xtatishni aytishi mumkin.
8. BVSP_streamReceived funktsiyasi
Bu funksiya har safar qabul qilish () funksiyasi audio namunalar qabul qilinganligini aniqlaganida chaqiriladi. Bu shunchaki ovozni oladi va ularni BVSSpeaker sinfiga navbatga qo'yadi, shunda play () funktsiyasi ularni qayta yaratishi mumkin.
9. playNextLEDNote funktsiyasi
Bu funksiya faqat BVSP_frameReceived funksiyasi playLEDNotes buyrug'ini aniqlasa ishlaydi. U BitVoicer Serverdan yuborilgan audio bilan LEDlarni boshqaradi va sinxronlashtiradi. LEDlarni audio bilan sinxronlashtirish va to'g'ri vaqtni bilish uchun Sonic Visualizer bepul dasturidan foydalanish mumkin. Bu bizga ovoz to'lqinlarini ko'rishga imkon beradi, shuning uchun odam pianino tugmachasi qachon bosilganligini aniqlay oladi.
11 -qadam: BitVoicer server echimlarini qanday import qilish mumkin?
Endi biz BitVoicer serverini Arduino bilan ishlash uchun o'rnatdik.
BitVoicer Server uchun to'rtta asosiy echim ob'ektlari mavjud: Joylashuvlar, Qurilmalar, BinaryData va Ovozli sxemalar.
Keling, ularni batafsil ko'rib chiqaylik:
Joylar
Bu qurilma o'rnatiladigan jismoniy joyni ko'rsatadi.
Biz "Uy" deb nomlangan joyni yaratishimiz mumkin.
Qurilmalar
Ular BitVoicer Server mijozlari hisoblanadi.
Joylashuvni yaratish singari, biz ham aralash qurilmani yaratishimiz mumkin, shuning uchun uni ArduinoDUE deb nomlaymiz.
Ba'zida ba'zi buferlar to'lib toshishi mumkin, shuning uchun uni yo'q qilish uchun aloqa sozlamalarida Ma'lumot uzatish tezligini sekundiga 8000 ta namuna bilan cheklashim kerak edi.
BinaryData - BitVoicer Server mijoz qurilmalariga yuboradigan buyruq turi. Ular aslida buyruqlar bilan bog'lanishingiz mumkin bo'lgan bayt massivlari.
BitVoicer Server bu buyruq bilan bog'liq nutqni taniganida, u bayt massivini maqsadli qurilmaga yuboradi.
Shuning uchun men har bir pin qiymatiga bitta BinaryData ob'ektini yaratdim va ularni ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff va boshqalar deb nomladim.
Men 18 ta BinaryData ob'ektini yaratishim kerak edi, shuning uchun men sizga quyida keltirilgan VoiceSchema.sof faylidan ob'ektlarni yuklab olishni va import qilishni taklif qilaman.
Xo'sh, ovoz sxemasi nima?
Ovozli sxemalar bu erda hamma narsa birlashadi. Ularning asosiy vazifasi jumlalarni qanday tan olish kerakligini va barcha buyruqlarni bajarish kerakligini aniqlashdir.
Har bir jumla uchun siz kerakli buyruqlar sonini va bajarilish tartibini belgilashingiz mumkin.
Siz har bir berilgan buyruqlar orasidagi kechikishlarni belgilashingiz mumkin.
BitVoicer Server faqat 8-bitli mono PCM ovozini qo'llab-quvvatlaydi (sekundiga 8000 ta namuna), shuning uchun audio faylni ushbu formatga o'tkazish kerak bo'ladi, bugungi kunda juda ko'p onlayn konvertatsiya to'lovlari mavjud va men tavsiya qilaman https://audio.online -convert.com/convert-to-wav.
Siz ushbu loyihada ishlatgan barcha hal qilish moslamalarini quyidagi fayllardan import qilishingiz mumkin.
Ulardan birida DUE qurilmasi, ikkinchisida Ovoz sxemasi va uning buyruqlari mavjud.
12 -qadam: Xulosa
Mana, kelding !!!!
Siz ajoyib loyiha qildingiz va u bilan gaplashishingiz mumkin
Shunday qilib, gaplashishni boshlang …………………
Siz LEDlarni o'chirib qo'yishingiz mumkin va shu bilan birga, agar kerak bo'lsa, qo'shiq kuylaydi deb ayta olasiz, uning kodi allaqachon berilgan
Shunday qilib, men ikkinchi yo'riqnomani tugatdim !!!!!!!!!
Ha ……
Menimcha, hamma buni tushundi …
Agar kimdirda biron bir savol bo'lsa, iltimos, mendan so'rang
Keyingi safar men ajoyib ko'rsatma beraman
Xayr…
Ko'rishguncha……………
Tavsiya:
Suv sathini aniqlash vositasi: 7 qadam
Suv sathini aniqlash vositasi: Ultrasonik sensor radar tizimi bilan bir xil printsipda ishlaydi. Ultrasonik sensor elektr energiyasini akustik to'lqinlarga aylantirishi mumkin va aksincha. Mashhur HC SR04 ultratovush sensori 40 kHz chastotada ultratovush to'lqinlarini hosil qiladi
Arduino yordamida nutqni aniqlash (Bluetooth + LCD + Android): 6 qadam
Arduino yordamida nutqni aniqlash (Bluetooth + LCD + Android): Ushbu loyihada biz Arduino, Bluetooth moduli (HC-05) va LCD yordamida nutqni aniqlaymiz. Keling, o'zingizning nutqni aniqlash moslamasini yarataylik
Qo'l harakatini aniqlash vositasi: 5 qadam
Qo'llarning harakatini aniqlash vositasi: Umumiy nuqtai nazar, ushbu loyihada biz MicroBit va bir nechta datchiklar yordamida qo'llarning asosiy harakatlarini taniy oladigan qo'lqop tayyorlaymiz. Biz Android ilovasi va veb -server bilan birgalikda MicroBit -dagi Bluetooth imkoniyatlaridan foydalanamiz
Google Speech API va Python yordamida nutqni aniqlash: 4 qadam
Google Speech API va Python yordamida nutqni aniqlash: Nutqni tanib olish Nutqni aniqlash sun'iy intellektning pastki qismi bo'lgan tabiiy tilni qayta ishlashning bir qismidir. Oddiy qilib aytganda, nutqni aniqlash - bu kompyuter dasturlarining og'zaki tilda so'zlar va iboralarni aniqlash qobiliyati
Itlarning kayfiyatini aniqlash vositasi (Raspberry Pi): 5 qadam
Itning kayfiyatini aniqlash vositasi (Raspberry Pi): Bu ko'rsatma itning ovozini qabul qilish va ularga LED indikatorlari bilan yaqinlashish kerakmi yoki yo'qligini aniqlash uchun mo'ljallangan. Ko'pgina it egalari o'z uy hayvonlarini bilishadi va ular bergan signallarni o'qiy olishadi, shuning uchun bu ko'rsatma asosan yo'naltirilgan