İçindekiler:

Konuşma Tanıyıcı: 12 Adım
Konuşma Tanıyıcı: 12 Adım

Video: Konuşma Tanıyıcı: 12 Adım

Video: Konuşma Tanıyıcı: 12 Adım
Video: Animasyonlarla İngilizce: Kendini Tanıtma #1 (T. & İng. Altyazılı) 2024, Kasım
Anonim
Konuşma Tanıyıcı
Konuşma Tanıyıcı

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?

Ortam Nasıl Kurulur?
Ortam Nasıl Kurulur?
Ortam Nasıl Kurulur?
Ortam Nasıl Kurulur?
Ortam Nasıl Kurulur?
Ortam Nasıl Kurulur?
Ortam Nasıl Kurulur?
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

Gerekli Bileşenler
Gerekli Bileşenler
Gerekli Bileşenler
Gerekli Bileşenler
Gerekli Bileşenler
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

Bileşenleri Kablolama
Bileşenleri Kablolama
Bileşenleri Kablolama
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

Arduino Kartına Kod Verme
Arduino Kartına Kod Verme

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: