İçindekiler:
- Adım 1: Ortam Nasıl Kurulur?
- Adım 2: Arduino'ya Talep Neden Artıyor?
- Adım 3: Başlayalım !!!!!
- 4. Adım: Gerekli Bileşenler
- Adım 5: Aslında Nasıl Çalışır?
- Adım 6: Bileşenleri Kablolama
- Adım 7: Arduino Kartına Kod Sağlama
- Adım 8: Program/Çizim
- Adım 9: Ya Yazılan Kodlar?
- Adım 10: Döngü İşlevi
- Adım 11: BitVoicer Sunucu Çözüm Nesneleri Nasıl İçe Aktarılır?
- Adım 12: Sonuç
Video: Konuşma Tanıyıcı: 12 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
Herkese selam………
Bu, gönderdiğim ikinci talimatım
Öyleyse hepiniz hoş geldiniz….
Bu Eğitilebilir Kitapta size bir arduino kartı kullanarak bir ses tanıyıcının nasıl oluşturulacağını öğreteceğim.
Yani daha önce arduino kartlarıyla ilgili bir deneyiminiz olduğunu düşünüyorum. Olmazsa, burada çok büyük bir sorun değil. Ama alışmanızı tavsiye ederim çünkü onunla oynamak çok ilginç ve güzel projeler üretin. yaratıcılığınıza ve bu konudaki bilginize göre.
Yani daha önce arduino kullanma deneyimi olmayanlar için:
Arduino, geniş bir tasarımcı ve üretici topluluğuna sahip bir şirket tarafından üretilen açık kaynaklı bir bilgisayar donanımıdır. Diğer elektronik devreleri kontrol etmek için kullanılabilecek küçük bir bilgisayar gibi düşünülebilir
Arduino, kendi geliştirdikleri ve web sitelerinden kolayca indirilebilen bir ortamda programlanmıştır
Adım 1: Ortam Nasıl Kurulur?
Sadece google'da "arduino indir" araması yapın
"Arduino - Yazılım" üzerine tıklayın
"Arduino IDE'yi İndirin" ifadesini görebileceksiniz
İşletim Sisteminize göre seçin
İndirin ve kurun
Böylece yazılımı başarıyla yüklediniz ve arduino için kodunuzu yazabilir ve bir kablo yardımıyla arduino kartını bilgisayara bağlayabilir ve kodu yerleştirebilirsiniz.
Adım 2: Arduino'ya Talep Neden Artıyor?
Ucuz
Arduino kartları, diğer mikro denetleyici platformlarıyla karşılaştırıldığında ucuzdur. Sadece 50 dolara mal olacak.
Çapraz platform
Arduino Yazılımı Windows, Macintosh OS ve Linux işletim sistemlerinde çalışır. Diğer mikro denetleyici sistemleri düşünürsek sadece Windows'ta yani sadece pencerelerle sınırlı çalışacaktır.
Açık kaynak ve genişletilebilir yazılım
Yazılım açık kaynaktır, bu nedenle insanlar onun hakkında derinlemesine çalışmaya ve diğer programlama dillerinin kitaplıklarını (işlemi için bir dizi işlevi içerir) dahil etmeye başladılar.
Basit ve kolay programlama ortamı
Arduino IDE'yi (daha önce tartıştığımız….) kullanmak, yeni başlayanlar da dahil olmak üzere insanlar için kolaydır, çünkü internette ücretsiz olarak bulunan büyük miktarda kaynak Arduino tarafından sağlanmaktadır. hakkında.
Açık kaynak ve genişletilebilir donanım
Arduino panolarının planları Creative Commons lisansı altında yayınlanmaktadır, bu nedenle devre tasarımı konusunda deneyimi olan kişiler modülün kendi versiyonunu yapabilirler, aynı zamanda teknolojiyi genişletme ve ona özellikler ekleyerek geliştirme hakkına da sahiptirler.
Adım 3: Başlayalım !!!!!
Bu projenin esas olarak Arduino'yu kullanarak ses tanımaya ve bazı görevleri yerine getirmesine izin vermeye odaklandığını daha önce söylemiştim.
Daha açık konuşmak …….
Kullanıcı tarafından sağlanan, LED'in yanıp sönmesiyle algılanabilen ses sinyallerini alır ve sentezlenmiş konuşmaya dönüştürülür.
4. Adım: Gerekli Bileşenler
Bu proje için gerekli olan ana bileşenler şunlardır:
Arduino Ödeneği x 1
Spark Fun Elektret Mikrofon Koparma x 1
Spark Fun Mono Audio Amp Breakout x 1
Hoparlör: 0.25W, 8 ohm x 1
Breadboard x 1
5 mm LED: Kırmızı x 3
Direnç 330 ohm x 3
Atlama telleri x 1
Havya x 1
BitVoicer Sunucusu
Konuşma otomasyonu için bir konuşma tanıma ve sentez sunucusudur.
Adım 5: Aslında Nasıl Çalışır?
1. Ses dalgaları bulunup bu dalgaları yakalar ve Sparkfun Elektret Breakout kartı ile güçlendirilir.
2. Yukarıdaki işlemden elde edilen güçlendirilmiş sinyal, içinde bulunan analogdan dijitale dönüştürücü (ADC) kullanılarak Arduino kartında dijitalleştirilecek ve arabelleğe alınacak/depolanacaktır.
3. Ses örnekleri, mevcut Arduino seri bağlantı noktası kullanılarak BitVoicer Sunucusuna sağlanacaktır.
4. BitVoicer Sunucusu ses akışını işleyecek ve ardından içerdiği konuşmayı tanıyacaktır.
5. Tanınan konuşma, daha önce kendisi tarafından tanımlanmış komutlarla eşleştirilecek, ardından Arduino'ya geri gönderilecektir. Komutlardan biri konuşma sentezlemeyi içeriyorsa, BitVoicer Sunucusu ses akışını hazırlayacak ve Arduino'ya gönderecektir.
6. Arduino, sağlanan komutları belirleyecek ve belirli uygun eylemi gerçekleştirecektir. Bir ses akışı alınırsa, BVS Speaker sınıfında sıraya alınır ve DUE DAC ve DMA kullanılarak çalınır.
7. SparkFun Mono Ses Amplifikatörü, DAC sinyalini yükseltecek ve böylece 8 Ohm'luk bir hoparlörü çalıştırabilecek ve onun aracılığıyla duyulabilecektir.
Adım 6: Bileşenleri Kablolama
İlk adım, farklı bileşenleri devre tahtasına ve ayrıca resimde gösterildiği gibi arduino kartına bağlamaktır
Burada kullanılan arduino kartının DUE olduğunu unutmayın, Arduino tarafından üretilen her biri farklı voltaj seviyelerinde çalışan farklı modeller var
Arduino kartlarının çoğu 5 V'ta çalışır, ancak DUE 3,3 V'ta çalışır
DUE zaten 3,3 V analog referans kullanır, bu nedenle AREF pinine atlama kablosuna ihtiyacınız yoktur
Ah pardon, bir sonraki şekilde gösterildiği gibi bir arduino kartında bulunan bir AREF pininin bir "ANALOG REFERANS PIN'i" olduğunu söylemeyi unuttum (Bu bir arduino UNO'dur ancak DUE durumunda benzer sitede benzer)
DUE üzerindeki AREF pimi, bir direnç köprüsü aracılığıyla mikro denetleyiciye bağlanır
AREF pinini kullanmak için, R1 direncinin PCB'den [Baskılı Devre Kartı] lehimlenmesi gerekir
Adım 7: Arduino Kartına Kod Sağlama
Bu yüzden kodu Arduino Board'a yüklemeliyiz, böylece kodda verilen talimatlara göre çalışabilir.
Bunu yapmak çok kolay. Her birini detaylı olarak, ne yaptıklarını ve nasıl çalıştıklarını anlatacağım.
Kitaplık Nasıl Kurulur?
Bundan önce, BitVoicer Sunucu kitaplıklarını Arduino IDE'ye, yani arduino yazılımına nasıl kuracağımızı bilmeliyiz.
Bunun için Arduino IDE'yi açın
Üst panelde "Çizim" üzerine tıklayın
Ardından "Kitaplığı Dahil Et" e tıklayın
Bunun üzerine "Kütüphaneyi Yönet" e tıklayın
Ardından kütüphane yöneticisi açılacak ve kuruluma hazır olan veya halihazırda kurulmuş olan kütüphanelerin bir listesini görebiliriz
Yüklenecek kitaplığı arayın ve ardından sürüm numarasını seçin
Burada bu proje için gerekli olan BitVoicer Sunucu kitaplıklarını kuruyoruz
Bir.zip kitaplığı nasıl içe aktarılır?
Kitaplıklar ayrıca bir ZIP dosyası veya klasörü olarak da dağıtılabilir
Klasörün adı kitaplığın adıdır
Klasörün içinde bir.cpp dosyası, bir.h dosyası ve genellikle bir keywords.txt dosyası, örnekler klasörü ve kitaplığın gerektirdiği diğer dosyalar bulunur
Arduino IDE'nin 1.0.5 sürümünden içerisine 3. parti kütüphaneler kurabilirsiniz
İndirilen kitaplığı açmayın, olduğu gibi bırakın
Bunun için çizim > Kitaplığı Dahil Et >.zip Kitaplığı Ekle'ye gidin
.zip dosyasının konumunu seçin ve açın.
Sketch > Import Library menüsüne dönün.
Düzgün bir şekilde içe aktarılırsa, o kitaplık gezinirken açılır menünün altında görülecektir.
Adım 8: Program/Çizim
Arduino'ya yüklenmesi gereken program budur.
Arduino Board'u bilgisayara bağlayarak ve board'a yükleyerek basitçe yapılabilir.
Adım 9: Ya Yazılan Kodlar?
Şimdi kodda yazılan fonksiyonların her birinin gerçekte ne yaptığına bakalım ………..
Kütüphane referansları ve değişken bildirimi
Bunun hakkında konuşmadan önce bazı temel terminolojileri bilmeli ve anlamalıyız. Bunlar şunları içerir:
-
BVSP
BitVoicer Sunucusu ile bilgi alışverişi için gerekli olan hemen hemen her kaynağı bize sağlayan bir kütüphanedir
BVSP sınıfı aracılığıyla uygulanan BitVoicer Sunucu Protokolü olarak bilinen bir protokol mevcuttur. Bu, sunucuyla etkileşim kurmak için gereklidir
-
BVSMic
Arduino'nun Analog-Dijital Dönüştürücüsünü (ADC) kullanarak sesi kaydetmek için gereken her şeyi uygulayan bir kütüphanedir
Bu ses, sınıfın dahili ara belleğinde depolanır ve alınabilir ve ardından BitVoicer Sunucusunda bulunan konuşma tanıma motorlarına gönderilebilir
-
BVSHoparlör
BitVoicer Sunucusundan gönderilen ses akışlarını yeniden üretmek için gerekli tüm temel kaynakları içeren bir kitaplıktır
Bunun için Arduino kartının yerleşik bir Dijital-Analog Dönüştürücüye (DAC) sahip olması gerekir
Arduino DUE, entegre DAC'ye sahip tek Arduino kartıdır
BVSP, BVSMic, BVSSpeaker ve DAC kütüphaneleri, bunların referansı programın başlangıcını oluşturan ilk dört satıra yazılır
BitVoicer Server'ı kurduğunuzda, bu dört kitaplığın tümünü sağlayan BitSophia'yı bulabilirsiniz
Kullanıcı BVSSpeaker kitaplığına bir referans eklediğinde, daha önce bahsedilen DAC kitaplığı otomatik olarak çağrılır
BVSP sınıfı, BitVoicer Sunucusu ile iletişim kurmak için kullanılır
BVSMic sınıfı, ses yakalamak ve depolamak için kullanılır
BVSSpeaker sınıfı, Arduino DUE DAC kullanarak sesi yeniden üretmek için kullanılır
2. kurulum işlevi
Kurulum işlevi, aşağıdakiler gibi belirli eylemleri gerçekleştirmek için kullanılır:
Pin modlarını ve başlangıç durumlarını ayarlamak için
Seri iletişimi başlatmak için
BVSP sınıfını başlatmak için
BVSMic sınıfını başlatmak için
BVSSpeaker sınıfını başlatmak için
Ayrıca BVSP sınıfının frameReceived, modeChanged ve streamReceived olayları için "olay işleyicileri" (işlev işaretçileri) ayarlar
Adım 10: Döngü İşlevi
Beş ana operasyon gerçekleştirir:
1. KeepAlive() işlevi
Bu işlev, sunucudan durum bilgisi istemek içindir.
2. alma() işlevi
Bu fonksiyon, sunucunun herhangi bir veri gönderip göndermediğini kontrol etmek içindir. Sunucu herhangi bir veri gönderdiyse, onu işleyecektir.
3. isSREAvailable(), startRecording(), stopRecording() ve sendStream() işlevleri
Bu işlevler, ses kaydında çeşitli ayarları kontrol etmek için kullanılır ve ses elde edildikten sonra bu sesi BitVoicer Sunucusuna gönderir.
4. oynat() işlevi
Bu fonksiyon, BVSSpeaker sınıfında kuyruğa alınan sesi çalmak için kullanılır.
5. playNextLEDNote()
Bu fonksiyon, Led'in nasıl yanıp söneceğini kontrol etmek için kullanılır.
6. BVSP_frameAlınan işlevi
Bu fonksiyon, bir tam çerçevenin alındığını belirlemek için alma() işlevi her başladığında çağrılır. Burada BitVoicer Sunucusundan elde edilen komutları çalıştırıyoruz. LED'lerin yanıp sönmesini kontrol eden komutlar 2 Bayt'tır. Bunda ilk bayt pini, ikinci bayt ise pin değerini gösterir. Burada analogWrite() fonksiyonunu kullanarak pine uygun değeri veriyoruz. O sırada Byte türündeki playLEDNotes komutunun alınıp alınmadığını da kontrol etmemiz gerekiyor. Alındıysa, playLEDNotes'u true olarak ayarladım ve o anki saati izleyip işaretleyecek. Bu süre, LED'leri şarkıyla senkronize etmek için playNextLEDNote işlevi tarafından kullanılacaktır.
7. BVSP_modeDeğişen işlev
Bu işlev, alıcı () işlevi, giden yönde modda bir değişiklik belirlediğinde (Sunucu Arduino) her zaman çağrılır. BitVoicer Sunucusu, Arduino'ya çerçeveli veri veya ses gönderebilir. İletişim bir moddan diğerine geçmeden önce BitVoicer Sunucusu bir sinyal gönderir. BVSP sınıfı bu sinyali tanımlar ve modeChanged olayını yükseltir veya işaretler. BVSP_modeChanged işlevinde, kullanıcı iletişimin akış modundan çerçeveli moda geçtiğini algılarsa, sesin sona erdiğini bilir ve böylece kullanıcı BVSSpeaker sınıfına ses çalmayı durdurmasını söyleyebilir.
8. BVSP_streamAlınan işlevi
Bu işlev, Receive() işlevi ses örneklerinin alındığını her tanımladığında çağrılır. Sadece sesi alır ve play() işlevinin bunları yeniden üretebilmesi için BVSSpeaker sınıfında sıraya koyar.
9. PlayNextLEDNote işlevi
Bu işlev yalnızca, BVSP_frameReceived işlevi playLEDNotes komutunu tanımlarsa çalışır. LED'leri BitVoicer Sunucusundan gönderilen sesle kontrol eder ve senkronize eder. LED'leri sesle senkronize etmek ve doğru zamanlamayı bilmek için ücretsiz bir Sonic Visualizer yazılımı kullanılabilir. Kişinin bir piyano tuşuna ne zaman basıldığını anlayabilmesi için ses dalgalarını izlememizi sağlar.
Adım 11: BitVoicer Sunucu Çözüm Nesneleri Nasıl İçe Aktarılır?
BitVoicer Sunucusunu Arduino ile çalışacak şekilde kurduk.
Bir BitVoicer Sunucusu için dört ana çözüm nesnesi vardır: Konumlar, Aygıtlar, BinaryData ve Ses Şemaları.
Bunlara ayrıntılı olarak bakalım:
Konumlar
Cihazın kurulduğu fiziksel konumu temsil eder.
Ev adında bir konum oluşturabiliriz.
Cihazlar
BitVoicer Server'ın istemcileri olarak kabul edilirler.
Lokasyon oluşturmak gibi Mixed bir cihaz oluşturabiliriz, kolaylık olması için ArduinoDUE olarak adlandıralım.
Bazen bazı arabellek taşmaları olabilir, bu yüzden bunu ortadan kaldırmak için iletişim ayarlarındaki Veri Hızını saniyede 8000 örnekle sınırlamak zorunda kaldım.
BinaryData, BitVoicer Sunucusunun istemci cihazlara gönderebileceği bir komut türüdür. Bunlar aslında komutlara bağlayabileceğiniz bayt dizileridir.
BitVoicer Sunucusu bu komutla ilgili konuşmayı tanıdığında, bayt dizisini hedef cihaza gönderir.
Bu nedenle her pin değerine bir BinaryData nesnesi oluşturdum ve bunlara ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff vb. adlar verdim.
Bu yüzden 18 BinaryData nesnesi oluşturmak zorunda kaldım, bu yüzden nesneleri aşağıda verilen VoiceSchema.sof dosyasından indirip içe aktarmanızı öneririm.
Peki Ses Şeması nedir?
Ses Şemaları her şeyin bir araya geldiği yerdir. bunların ana rolü, cümlelerin nasıl tanınması gerektiğini ve tüm komutların hangilerinin çalıştırılması gerektiğini tanımlamaktır.
Her cümle için istediğiniz kadar komut ve bunların yürütüleceği sırayı tanımlayabilirsiniz.
Sağlanan komutların her biri arasında gecikmeler de tanımlayabilirsiniz.
BitVoicer Sunucusu yalnızca 8 bit mono PCM sesini (saniyede 8000 örnek) destekler, bu nedenle ses dosyasını bu biçime dönüştürmeye ihtiyaç duyulacaktır, bugün çok fazla çevrimiçi dönüştürme ücreti var ve https://audio.online'ı öneririm. -convert.com/convert-to-wav.
Bu projede kullandığım tüm çözüm nesnelerini aşağıdaki dosyalardan import edebilirsiniz (Importing Solution Objects).
Bunlardan biri DUE Cihazı, diğeri ise Ses Şeması ve Komutlarını içerir.
Adım 12: Sonuç
İşte!!!!
Harika bir proje yaptınız ve onunla konuşabilirsiniz
Öyleyse konuşmaya başlayın……………….
LED'leri yanıp sönebilir ve aynı zamanda gerekirse bir şarkı söylemesini söyleyebilirsiniz, kodu zaten verilmiştir
Böylece İkinci Eğitilebilirliğimi tamamladım !!!!!!!!!
Evet……
Sanırım herkes anladı….
Herhangi birinin herhangi bir sorusu varsa, lütfen bana sormaktan çekinmeyin
Bir dahaki sefere mükemmel bir Instructable ile geleceğim….
Hoşçakal…
Yakında görüşürüz……………
Önerilen:
Arduino İle Konuşma Tanıma (Bluetooth + LCD + Android): 6 Adım
Arduino İle Konuşma Tanıma (Bluetooth + LCD + Android): Bu projemizde Arduino, Bluetooth modülü (HC-05) ve LCD ile konuşma tanıma yapacağız. kendi konuşma tanıma cihazınızı yapalım
Konuşma/Metin Dönüştürme Eldiveni için Hareket: 5 Adım
Hareketten Konuşmaya/Metin Dönüştürme Eldiveni: Bu projeyi uygulamanın arkasındaki fikir/zorluk, konuşma yoluyla iletişim kurmakta ve el hareketlerini veya daha popüler olarak Amerikan işaret dili (ASL) olarak bilinen el hareketlerini kullanarak iletişim kurmakta zorluk çeken insanlara yardım etmekti. Bu proje sağlığa doğru bir adım olabilir
El Hareketi Tanıyıcı: 5 Adım
El Hareketi Tanıyıcı: Genel BakışBu projede, bir MicroBit ve birkaç sensör kullanarak bazı temel el hareketlerini tanıyan bir eldiven yapacağız. Bir Android Uygulaması ve bir Web Sunucusu ile birlikte MicroBit'teki Bluetooth özelliklerini kullanacağız
Python ile Rakam Tanıyıcı: 3 Adım
Python ile Rakam Tanıyıcı: En popüler gerçek öğelerden biri olan “Bilgisayar Görüşü”, en geniş kapsamlı yazılımlardan oluşur. Genişletmek için en olası hayal gücü
AIY ile Çoklu Dil Tanıyıcı: 4 Adım
AIY ile Çoklu Dil Tanıyıcı: Dış uzay istasyonlarında birçok astronot var. ve astronotlar birçok gezegenden (ülkeden) geliyor. bu nedenle, AI orada birçok dilde çalışmalıdır