Daha önceki makalemde “Speech Recognition” konusunu ele alan programın kodlarını analiz edeceğimi söylemiştim. Hadi buyrun programa bir göz atalım.Öncelikle programımıza kütüphane ekleyerek başlayalım. Bu kütüphaneyi eklemek için “Solution Explorer” aracından projemize sağ tıklayalım ve “Add > Reference” bölümüne girelim. Açılan penceredeki “Assemblies” grubunun altında bulunan “Framework” içerisinden “System.Speech” eklentisini seçelim ve ihtiyacımız olan kütüphanelere erişimimizi aktif hale getirelim. ( Sayfanın sonunda yer alan Uyarı kısmını iyice okuyun. )

Voice
Şekil 1. Programın arayüzü

Değişkenler:

Boolean Döngüleri :

Bilgisayarımıza bağlı olan mikrofonu sürekli aktif hale getirelim. Bunun için bir  button oluşturalım ve bu buttonu bir timer ile belirlenen zaman aralıklarıyla tıklatalım. Oluşturduğumuz Click olayını bir boolean döngüsüyle kontrol edelim (baslat).

Ses tanımlama motorunu kontrollü bir biçimde çalıştırmak için bir boolean döngüsü oluşturalım. Neden böyle bir şey yapıyoruz? Çünkü program içerisinde birden fazla komut oluşturulacaksa yani Şekil 1’deki gibi değilde fazlalaştırılmış komut dizini yapılacaksa, tek komutta kalmaması ve o komuttan istenildiği zaman çıkılması sağlanacaktır (onlyone).

Komutla çalıştırılacak olan programın çalışıp çalışmadığını döndüren boolean değerini oluşturalım (PROGRAM). İçerik “false” başlatılacak. İstenilen döngü onaylandığında “true” değer döndürecek, döndürülen değerle işimiz bittiğinde “false” döndürülecek.

String ve Integer Döngüleri :

İçeriğinde komut veya komutlarımızı ve program veya programlarımızı oluşturacağımız fakat bu program için sadece bir komut ve program sınırı koyduğumuz string dizilerini oluşturalım ve bu dizilerin içeriğindeki dizi değerlerini niteleyen değişkenleri oluşturalım.

Fonksiyonlar :

Start, stop ve mikrofon butonumuz için gereken ayarların bulunduğu yongalar aşağıdaki gibidir. Start’a basıldığı andan itibaren komut istemi devreye girecek ve gelen komuta göre sistemdeki dizinini belirlediğiniz veya ismini tanımladığınız programın açılması sağlanacaktır.

Button Olayları:

Dizi girdilerinin onaylanmasının ve temizlenmesinin, formun kapatılmasının ve taskbar’a indirilmesinin,mikrofonun  sürekli aktif olmasının sağlandığı kısımları oluşturalım.

Zamanlayıcılar ve RecognizedEvent  :

clicker_timer_Tick” olayında aktif button(mikrofon)’un zamanlayıcısını oluşturalım. “acilma_suresi_Tick” olayında ise sistemde çalıştıracağımız program döngüsünü oluşturalım. İşlemler bittiğinde zamanlayıcıyı ve durumları “false” yapalım. “Speech_Recognized” sınıfında “onlyone” boolean değerinin ses çıkışına dair bir bildirim alıp almadığının kontrolünü yapalım. Bununla birlikte “System.Speech” kütüphanesine ait olan “e.Result.Text” içerisindeki string değerinin içeriğinin mikrofonumuzdan söylemiş olduğumuz cümleyle aynı olup olmadığını kontrol eden döngüyü oluşturalım. Eğer döngü doğrulanırsa, dizinini girdiğimiz program aktif olacak ve bize cevap olarak sunulacak ses komutunu duyacağız. İşlem bittiğinde döngüyü sonlandırıp, komut istemcisini beklemeye alalım (!onlyone).

Uyarı : Yazacağınız programın çalışması için gereken öncelikli koşul sisteminizdeki ingilizce dil seçeneğinin aktif olması gerekmektedir. Daha sonraki işlem ise ingilizce konuşma paketini (~121 mb) indirmeniz gerekmektedir. Bu işlemleri yaptıktan sonra bilgisayarınızı yeniden başlatın.  Programınızın null değer döndürmemesi için bu uyarıyı eksiksiz yapın.
Ek olarak hatırlatma: Komutlar ingilizce olmak zorundadır.

Şimdilik size aktaracaklarım bu kadar. Eğer isterseniz yukarıdaki programın demo olmayan versiyonunu benimle irtibata geçerek temin edebilirsiniz.

Programın kaynak kodu ve çıktısı:

Programı İndir

Erhan ULMAN

1995 doğumlu, Kocaeli Üniversitesi Mekatronik Mühendisliği Öğrencisi, NEFES Doğa Kulübü Yöneticisi. #android #csharp #teknoloji #bilişim #astronomi

Yanıt Bırak

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir