C# Ses ile Komut Kullanımı
C# Ses ile Komut Kullanımı
C# İle projelerinizde sesli komut özelliğinden faydalanabilirsiniz.Daha açıklayıcı olmak gerekir ise C# ile yazı yazmadan ses ile programınızın çalışmasını ve özelliklerini yerine getirmesini sağlayabilirsiniz.
Gelelim bunu nasıl yapacağımıza. Aşağıda yazanları sırası ile yapmanız gerekiyor.
Kütüphaneyi Kullanmak
Menüden "Proje > Başvuru Ekle > FrameWork " yolunu izleyin ve "System.Speech" kütüphanesini projenize ekleyin. Ardından aşağıdaki kodu yazın.using System.Speech.Recognition;
Nesne Tanımlaması ve Ayarlar
Kullanacağımız nesneleri tanımlayacağız ve form_load gibi olayların olmasını sağlayacağız.SpeechRecognitionEngine speechEngine = new SpeechRecognitionEngine(); private void Form1_Load(object sender, System.EventArgs e) { // varsayılan ses alıcı aygıtını kullan speechEngine.SetInputToDefaultAudioDevice(); // algılanacak kelime gurubunu belirle Choices choises = new Choices("yes", "no"); // tanımladığımız kelimeleri gramer haline getirelim GrammarBuilder grammarBuilder = new GrammarBuilder(choises); // yeni bir grammar nesnesi oluştur Grammar grammar = new Grammar(grammarBuilder); // oluşturulan grameri speechEngine nesnesine yükle speechEngine.LoadGrammar(grammar); // belirlenen kelimelerden biri algılandığında speechEngine.SpeechRecognized += speechEngine_Event; // speechEngine nesnesi kelimeleri asenkron ve çoklu olarak algılasın speechEngine.RecognizeAsync(RecognizeMode.Multiple); }
Sesin Algılanması
Yazdığımız projede kullanıcının sesinin algılanması ve ses ile işlem yapılması olayı.void speechEngine_Event(object sender, SpeechRecognizedEventArgs e) { // algılanan kelimeler içinde foreach (RecognizedWordUnit words in e.Result.Words) { // kelimeye göre işlem if (words.Text.Equals("yes")) { MessageBox.Show("Evet!"); } else if (words.Text.Equals("no")) { MessageBox.Show("Hayır!"); } else { MessageBox.Show("Söylenilen sözcük algılanamadı!"); } } }
Hatalar ve Çözümleri
No recognizer installed ya da tanımlı olmayan dil gibi bir hata alırsanız sisteminizin dili türkçe olmasından ve ingilizce dil paketlerinin yüklü olmamasından kaynaklıdır.İşletim sisteminizin dilini İngilizce yaparak bu hatalardan kurtulabilirsiniz.
Yorum Gönder