Mündəricat:

Nitq tanıyıcı: 12 addım
Nitq tanıyıcı: 12 addım

Video: Nitq tanıyıcı: 12 addım

Video: Nitq tanıyıcı: 12 addım
Video: Osmangazi Köprüsü | "Bunun dört tane direğinde 160 ton altın yoksa böyle bir köprü yok." 2024, Iyul
Anonim
Nitq Tanıdıcı
Nitq Tanıdıcı

Hər kəsə salam………

Bu, göndərdiyim ikinci təlimatımdır

Elə isə hamıya xoş gəldiniz …

Bu Təlimat kitabında sizə bir arduino lövhəsindən istifadə edərək səs tanıyıcının necə qurulacağını öyrədəcəyəm.

Düşünürəm ki, əvvəllər arduino lövhələri ilə təcrübəniz var, yoxsa, burada böyük bir problem yoxdur, amma onunla oynamaq və maraqlı layihələr yaratmaq çox maraqlı olduğu üçün öyrəşməyi məsləhət görürəm. yaradıcılığınıza və bu barədə biliyinizə görə.

Arduino istifadə etmək təcrübəsi olmayan insanlar üçün:

Arduino, böyük bir dizayner və istehsalçı cəmiyyətinə sahib olan bir şirkət tərəfindən istehsal olunan açıq mənbəli bir kompüter qurğusudur və digər elektron sxemləri idarə etmək üçün istifadə edilə bilən kiçik bir kompüter kimi qəbul edilə bilər

Arduino, veb saytlarından asanlıqla yüklənə biləcək özləri tərəfindən hazırlanmış bir mühitdə proqramlaşdırılmışdır

Addım 1: Ətraf mühiti necə qurmaq olar?

Ətraf mühiti necə qurmaq olar?
Ətraf mühiti necə qurmaq olar?
Ətraf mühiti necə qurmaq olar?
Ətraf mühiti necə qurmaq olar?
Ətraf mühiti necə qurmaq olar?
Ətraf mühiti necə qurmaq olar?
Ətraf mühiti necə qurmaq olar?
Ətraf mühiti necə qurmaq olar?

Sadəcə google -da "arduino yüklə" axtarın

"Arduino - Proqram təminatı" na basın

"Arduino IDE -ni yükləyin" maddəsini görə bilərsiniz

Əməliyyat sistemindən asılı olaraq seçin

Yükləyin və quraşdırın

Proqramı uğurla qurdunuz və arduino üçün kodunuzu yaza bilərsiniz və kabelin köməyi ilə arduino lövhəsini kompüterə qoşa və kodu daxil edə bilərsiniz.

Addım 2: Arduino -ya tələbat niyə artır?

Ucuz

Arduino lövhələri digər mikro nəzarətçi platformaları ilə müqayisədə ucuzdur. Təxminən 50 dollara başa gələcək.

Çarpaz platforma

Arduino Proqramı Windows, Macintosh OS və Linux əməliyyat sistemlərində işləyir. Digər mikro nəzarətçi sistemlərini düşünsək, yalnız Windows-da işləyəcək və ya başqa sözlə yalnız Windows ilə məhdudlaşacaq.

Açıq mənbə və genişləndirilə bilən proqram

Proqram açıq mənbəyidir, buna görə insanlar bu mövzunu dərindən öyrənməyə və digər proqramlaşdırma dillərinin kitabxanalarını (işləməsi üçün bir sıra funksiyalardan ibarət) daxil etməyə başladılar.

Sadə və asan proqramlaşdırma mühiti

Yeni başlayanlar da daxil olmaqla insanlar üçün Arduino IDE -dən (əvvəllər bəhs etdiyimiz proqram ….) istifadə etmək çox asandır, çünki internetdə pulsuz olaraq mövcud olan böyük miqdarda mənbələr Arduinonun özləri tərəfindən təmin edilir. bunun haqqında.

Açıq mənbə və genişləndirilə bilən aparat

Arduino lövhələrinin planları Creative Commons lisenziyası altında nəşr olunur, belə ki, dövrə dizaynı təcrübəsi olan insanlar modulun öz versiyasını hazırlaya bilər, eyni zamanda texnologiyanı genişləndirmək hüququna malikdirlər və ona xüsusiyyətlər əlavə etməklə inkişaf edə bilərlər.

Addım 3: Başlayaq !!!!

Artıq dedim ki, bu layihə əsasən Arduino -dan istifadə edərək səs tanıma və bəzi vəzifələri yerinə yetirməyə imkan verir.

Daha aydın danışmaq ……

İstifadəçi tərəfindən verilən səs siqnallarını götürür, bu da sintez nitqinə çevrildikdən sonra LED-in yanıb-sönməsi ilə aşkar edilə bilər.

Addım 4: Tələb olunan komponentlər

Tələb olunan komponentlər
Tələb olunan komponentlər
Tələb olunan komponentlər
Tələb olunan komponentlər
Tələb olunan komponentlər
Tələb olunan komponentlər

Bu layihə üçün lazım olan əsas komponentlər:

Arduino Due x 1

Spark Əyləncəli Elektret Mikrofonunun qırılması x 1

Spark Fun Mono Audio Amp Breakout x 1

Dinamik: 0.25W, 8 ohm x 1

Çörək lövhəsi x 1

5 mm LED: Qırmızı x 3

Rezistor 330 ohm x 3

Jumper telləri x 1

Havya x 1

BitVoicer Server

Danışıq avtomatlaşdırılması üçün bir nitq tanıma və sintez serveridir.

Addım 5: Əslində necə işləyir?

1. Səs dalğaları aşkar edilir, sonra bu dalğaları tutur və Sparkfun Electret Breakout lövhəsi ilə gücləndirilir.

2. Yuxarıda göstərilən prosesdən əldə edilən gücləndirilmiş siqnal rəqəmsallaşdırılacaq və tərkibində olan analoq-rəqəmsal çeviricidən (ADC) istifadə edilərək Arduino lövhəsində saxlanılacaq.

3. Səs nümunələri, mövcud Arduino seriyalı portu istifadə edərək BitVoicer Server -ə veriləcəkdir.

4. BitVoicer Server audio axını emal edəcək və sonra tərkibindəki nitqi tanıyacaq.

5. Tanınmış nitq əvvəllər özü tərəfindən müəyyən edilmiş əmrlərlə müqayisə olunacaq, sonra Arduinoya geri göndəriləcək. Əmrlərdən biri nitqin sintezindən ibarətdirsə, BitVoicer Server audio axını hazırlayaraq Arduinoya göndərəcək.

6. Arduino verilən əmrləri müəyyən edəcək və müəyyən uyğun hərəkəti yerinə yetirəcək. Bir səs axını alınarsa, BVS Speaker sinifinə sıralanacaq və DUE DAC və DMA istifadə edərək oxunacaq.

7. SparkFun Mono Audio Gücləndirici, DAC siqnalını gücləndirəcək, beləliklə 8 Ohm dinamik idarə edə və onun vasitəsilə eşidilə bilər.

Addım 6: Bileşenlerin Bağlanması

Bileşenlerin Bağlanması
Bileşenlerin Bağlanması
Bileşenlerin Bağlanması
Bileşenlerin Bağlanması

İlk addım, çörək taxtasında və arduino lövhəsində şəkildəki kimi fərqli komponentlər bağlamaqdır

Burada istifadə olunan arduino lövhəsinin DUE olduğunu unutmayın, Arduino tərəfindən istehsal olunan fərqli modellər var, hər biri fərqli gərginlik səviyyələrində işləyir

Arduino lövhələrinin çoxu 5 V -da işləyir, lakin DUE 3.3 V -də işləyir

DUE artıq 3.3 V analoq istinaddan istifadə edir, buna görə AREF pininə tullanmağa ehtiyac yoxdur

Üzr istəyirik, AREF pininin bir sonrakı şəkildə göstərildiyi kimi bir arduino lövhəsində mövcud olan "ANALOG REFERANS PIN" olduğunu söyləməyi unutdum (Bu arduino UNO -dur, lakin DUE vəziyyətində oxşar saytda oxşardır)

DUE üzərindəki AREF pimi, rezistor körpüsü vasitəsilə mikro nəzarətçiyə bağlanır

AREF pinindən istifadə etmək üçün R1 rezistoru PCB-dən [Çaplı Devre Kartından] lehimlənməlidir

Addım 7: Arduino lövhəsinə kod verilməsi

Arduino İdarə Heyətinə Kod verilməsi
Arduino İdarə Heyətinə Kod verilməsi

Beləliklə, kodu Arduino lövhəsinə yükləməliyik ki, kodda göstərilən təlimatlardan asılı olaraq işləyə bilsin.

Bunu etmək çox asandır. Hər birini nə etdiklərini və necə işlədiklərini ətraflı izah edəcəyəm.

Kitabxana necə quraşdırılır?

Buna görə də bundan əvvəl BitVoicer Server kitabxanalarını Arduino IDE -yə, yəni arduino proqramına necə quracağımızı bilməliyik.

Bunun üçün Arduino IDE -ni açın

Üst paneldə "Eskiz" düyməsini basın

Sonra "Kitabxana daxil et" düyməsini basın

Bunun üzərinə "Kitabxananı İdarə et" düyməsini basın

Sonra kitabxana meneceri açılacaq və quraşdırmağa hazır olan və ya artıq quraşdırılmış kitabxanaların siyahısını görə bilərik

Qurmaq üçün kitabxana axtarın və sonra versiya nömrəsini seçin

Burada bu layihə üçün lazım olan BitVoicer Server kitabxanalarını quraşdırırıq

. Zip kitabxanasını necə idxal etmək olar?

Kitabxanalar bir ZIP faylı və ya qovluq olaraq da paylana bilər

Qovluğun adı kitabxananın adıdır

Qovluğun içərisində.cpp faylı,.h faylı və tez -tez açar sözlər.txt faylı, nümunələr qovluğu və kitabxananın tələb etdiyi digər fayllar olacaq

Arduino IDE -nin 1.0.5 versiyasından içərisində 3 -cü tərəf kitabxanalarını quraşdıra bilərsiniz

Yüklənmiş kitabxananı açmayın, olduğu kimi buraxın

Bunun üçün eskiz> Kitabxanaya Daxil et>.zip Kitabxanası əlavə edin

. Zip faylının yerini seçin və açın.

Sketch> Kitabxana İdxal menyusuna qayıdın.

Düzgün idxal edildikdə, naviqasiya edərkən açılan menyunun altındakı kitabxana görünməlidir.

Addım 8: Proqram/Sketch

Bu, Arduinoya yüklənməli olan proqramdır.

Bunu sadəcə Arduino lövhəsini kompüterə bağlayaraq lövhəyə yükləməklə etmək olar.

Addım 9: Yazılan kodlar haqqında nə demək olar?

İndi kodda yazılan hər bir funksiyanın əslində nə etdiyinə baxaq ………

Kitabxana istinadları və dəyişən bəyannaməsi

Bu barədə danışmazdan əvvəl bəzi əsas terminləri bilməli və başa düşməliyik.

  • BVSP

    BitVoicer Server ilə məlumat mübadiləsi üçün lazım olan demək olar ki, bütün mənbələri bizə verən bir kitabxanadır

    BVSP sinfi vasitəsi ilə həyata keçirilən BitVoicer Server Protokolu olaraq bilinən bir protokol var. Bu serverlə qarşılıqlı əlaqə qurmaq üçün lazımdır

  • BVSMic

    Arduinonun Analog-Rəqəmsal Dönüştürücüsündən (ADC) istifadə edərək səs yazmaq üçün lazım olan hər şeyi həyata keçirən bir kitabxanadır

    Bu səs sinifin daxili tamponunda saxlanılır və onları əldə etmək olar, sonra BitVoicer Server -də mövcud olan nitq tanıma mühərriklərinə göndərilə bilər

  • BVSSpeaker

    BitVoicer Serverdən göndərilən audio axınların bərpası üçün lazım olan bütün əsas mənbələri özündə birləşdirən kitabxanadır

    Bunun üçün Arduino lövhəsində quraşdırılmış Rəqəmsal-Analog Konvertoru (DAC) olmalıdır

    Arduino DUE, inteqrasiya olunmuş DAC -a malik yeganə Arduino lövhəsidir

BVSP, BVSMic, BVSSpeaker və DAC kitabxanaları, bunlara istinad proqrama baxan ilk dörd sətirdə yazılmışdır

BitVoicer Server qurduqda bütün bu dörd kitabxananı təmin edən BitSophia tapa bilərsiniz

İstifadəçi BVSSpeaker kitabxanasına istinad əlavə etdikdə əvvəllər qeyd olunan DAC kitabxanası avtomatik olaraq işə salınacaq

BVSP sinfi BitVoicer Server ilə ünsiyyət qurmaq üçün istifadə olunur

BVSMic sinfi səsləri çəkmək və saxlamaq üçün istifadə olunur

BVSSpeaker sinfi, Arduino DUE DAC istifadə edərək səsin bərpası üçün istifadə olunur

2. quraşdırma funksiyası

Quraşdırma funksiyası müəyyən hərəkətləri yerinə yetirmək üçün istifadə olunur:

Pin rejimlərini və onların ilkin vəziyyətlərini təyin etmək

Serial ünsiyyətə başlamaq üçün

BVSP sinifini işə salmaq üçün

BVSMic sinifini işə salmaq üçün

BVSSpeaker sinifini başlatmaq üçün

Ayrıca, BVSP sinifinin çərçivə Alınan, Modu Dəyişdirilmiş və Alınan Hadisələr üçün "hadisə idarəçiləri" (funksiya göstəriciləri) təyin edir

Addım 10: Döngü funksiyası

Beş əsas əməliyyatı həyata keçirir:

1. keepAlive () funksiyası

Bu funksiya serverdən status məlumatı istəməkdir.

2. qəbul () funksiyası

Bu funksiya, serverin hər hansı bir məlumat göndərib göndərmədiyini yoxlamaqdır.

3. isSREAvailable (), startRecording (), stopRecording () və sendStream () funksiyaları

Bu funksiyalar səs yazmaqla bağlı müxtəlif parametrləri idarə etmək üçün istifadə olunur və səsi əldə etdikdən sonra bu səsi BitVoicer Serverə göndərir.

4. play () funksiyası

Bu funksiya BVSSpeaker sinifində növbə çəkilən səsi oxumaq üçün istifadə olunur.

5. playNextLEDNote ()

Bu funksiya Ledin necə yanıb -sönməsini nəzarət etmək üçün istifadə olunur.

6. BVSP_frameReceived funksiyası

Bu funksiya, qəbul () funksiyası tam bir çərçivənin alındığını müəyyən etməyə başlayanda hər dəfə çağırılır. Burada BitVoicer Serverdən əldə edilən əmrləri yerinə yetiririk. LEDlərin yanıb -sönməsini idarə edən əmrlər 2 baytdır. Birincisi baytı pinlə, ikinci baytı isə pin dəyərini göstərir. Burada pinə uyğun dəyəri təyin etmək üçün analogWrite () funksiyasından istifadə edirik. O zaman biz də bayt tipli playLEDNotes əmrinin alındığını yoxlamalıyıq. Qəbul edildiyi təqdirdə, playLEDNotes -ı doğru olaraq təyin etdim və cari vaxtı izləyəcək və qeyd edəcək. Bu vaxt, playNextLEDNote funksiyası tərəfindən LED -ləri mahnı ilə sinxronizasiya etmək üçün istifadə ediləcək.

7. BVSP_modeChanged funksiyası

Bu funksiya, qəbul () funksiyası gedən istiqamətdə (Server Arduino) rejim dəyişikliyini müəyyən edəndə çağırılır. BitVoicer Server, çərçivəli məlumatları və ya səsləri Arduinoya göndərə bilər. Rabitə bir rejimdən digərinə keçməzdən əvvəl BitVoicer Server bir siqnal göndərir. BVSP sinfi bu siqnalı müəyyənləşdirir və modeChanged hadisəni qaldırır və ya bayraqlayır. BVSP_modeChanged funksiyasında istifadəçi ünsiyyətin axın rejimindən çərçivəli rejimə keçdiyini aşkar edərsə, istifadəçinin BVSSpeaker sinifinə səsləndirməni dayandırmasını söyləyə biləcəyi üçün səsin bitdiyini biləcək.

8. BVSP_streamReceived funksiyası

Bu funksiya, hər dəfə qəbul () funksiyası səs nümunələrinin alındığını müəyyən edəndə çağırılır. Sadəcə səsi alır və play () funksiyası onları yenidən yarada bilməsi üçün onları BVSSpeaker sinfinə sıralayır.

9. playNextLEDNote funksiyası

Bu funksiya yalnız BVSP_frameReceived funksiyası playLEDNotes əmrini təyin edərsə işləyir. LEDləri BitVoicer Serverdən göndərilən səslə idarə edir və sinxronizasiya edir. LEDləri səslə sinxronizasiya etmək və düzgün vaxtı bilmək üçün pulsuz bir proqram Sonic Visualizer istifadə edilə bilər. Səs dalğalarını izləməyimizə imkan verir ki, bir insan bir piano düyməsinə nə vaxt basıldığını anlaya bilsin.

Addım 11: BitVoicer Server Həll Obyektlərini Necə İdxal etmək olar?

İndi BitVoicer Serverini Arduino ilə işləməyə qurduq.

BitVoicer Server üçün dörd əsas həll obyekti var: Yerlər, Cihazlar, BinaryData və Səs Şemaları.

Bunlara ətraflı baxaq:

Yerlər

Cihazın quraşdırıldığı fiziki yeri təmsil edir.

Ev adlı bir yer yarada bilərik.

Cihazlar

BitVoicer Serverin müştəriləri hesab olunurlar.

Bir yer yaratmaq kimi Qarışıq bir cihaz yarada bilərik, asanlıq üçün onu ArduinoDUE olaraq adlandıraq.

Bəzən bəzi tampon daşqınları baş verə bilər ki, onu aradan qaldırmaq üçün ünsiyyət parametrlərindəki Məlumat Oranını saniyədə 8000 nümunə ilə məhdudlaşdırmalı oldum.

BinaryData, BitVoicer Serverin müştəri cihazlarına göndərə biləcəyi bir növdür. Bunlar əslində əmrlərə bağlaya biləcəyiniz bayt diziləridir.

BitVoicer Server bu əmrlə əlaqəli nitqi tanıyanda, bayt dizisini hədəf cihaza göndərir.

Bu səbəbdən hər pin dəyərinə bir BinaryData obyekti yaratdım və onlara ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff və s.

Beləliklə, 18 BinaryData obyekti yaratmalı oldum, buna görə aşağıda təqdim olunan VoiceSchema.sof faylından obyektləri yükləməyinizi və idxal etməyinizi təklif edirəm.

Bəs Səs Şeması nədir?

Səs sxemləri hər şeyin bir araya gəldiyi yerdir. Bunların əsas rolu, cümlələrin necə tanınacağını və bütün əmrlərin yerinə yetirilməsinin lazım olduğunu təyin etməkdir.

Hər cümlə üçün, istədiyiniz qədər əmr və icra olunma qaydasını təyin edə bilərsiniz.

Təqdim olunan əmrlərin hər biri arasında gecikmələr təyin edə bilərsiniz.

BitVoicer Server yalnız 8 bitlik mono PCM səsini (saniyədə 8000 nümunə) dəstəkləyir, buna görə də audio faylını bu formata çevirməyə ehtiyac olacaq, bu gün o qədər çox onlayn çevrilmə haqqı var və tövsiyə edirəm https://audio.online -convert.com/convert-to-wav.

Aşağıdakı fayllardan bu layihədə istifadə etdiyim bütün həll obyektlərini idxal edə bilərsiniz.

Onlardan birində DUE Cihazı, digərində Səs Şeması və Əmrləri var.

Addım 12: Nəticə

Buyurun !!!

Mükəmməl bir layihə hazırladınız və onunla danışa bilərsiniz

Elə isə danışmağa başlayın …………………

LEDləri yanıb -sönə bilərsiniz və eyni zamanda ehtiyac olarsa bir mahnı oxuduğunu söyləyə bilərsiniz, kodu artıq verilmişdir

Beləliklə, İkinci Təlimatımı tamamladım !!!!!!!!

Bəli ……

Düşünürəm ki, hamı başa düşdü …

Hər hansı bir sualınız varsa, zəhmət olmasa məndən soruşun

Növbəti dəfə əla bir Təlimatla qarşılaşacağam …

Sağolun…

Tezliklə görüşərik ……………

Tövsiyə: