Şimdi Ara

C# | Sesle komut işleme (Speech Recognition)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
2.244
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • C# ile oluşturduğumuz projelerde mikrofondan alınan sesi yazıya çevirerek, gelen sese göre işlem yaptırabiliriz. Bunun için System.Speech kütüphanesini kullanacağız.

    Kütüphaneyi Kullanma
    Önce menüden “Project > Add Reference..” yolunu izleyerek System.Speech kütüphanesini projeye dahil edelim. Ardından gerekli isim alanını ekleyelim:

    using System.Speech.Recognition;


    Nesne Tanımlaması ve Ayarlar
    Kullanacağımız nesneyi sınıf seviyesinde tanımlayıp Form_Load olayında gerekli ayarlamaları yapalım.

    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);
    }


    Ses Algılandığında
    SpeechEngine nesnesi belirlediğimiz kelimelerden birini algıladığında tetiklenecek method:

    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
    Eğer No recognizer is installed ya da Yüklü tanıyıcı yok hatası alıyorsanız muhtemelen işletim sisteminin dili Türkçe olduğu içindir. Hatayı engellemek için ya Windows dili İngilizce olmalı ya da dil paketi bilgisayarda kurulu olmalı.

    Kaynak: C# | Sesle komut işleme (Speech Recognition)



    < Bu mesaj bu kişi tarafından değiştirildi BaronRhymes -- 1 Mayıs 2014; 14:44:49 >







  • Çok gereksiz bir kütüphane...
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.