İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

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

csharpdersleri

0
İyinet Üyesi
Katılım
2 Mayıs 2013
Mesajlar
16
Reaction score
0
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:

Kod:
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.

Kod:
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:

Kod:
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)
 

Mashadow

0
İyinet Üyesi
Katılım
23 Ağustos 2014
Mesajlar
24
Reaction score
0
Konum
Tekirdağ
Bu son zamanlarda populer olmaya başlayan ve benim de ilgimi çeken bir konu oldu. Windowsun içinde bulunan temel speech to text ya da tam tersi text to speech apilerini kullanmak sizi tatmin etmiyorsa "IVONA" gibi ücretli uygulamaları kullanarak bir çok dil, bir çok ses tonunu yazılımlarınızda entegre kullanabiliyorsunuz. Yapılan en güzel çalışmalardan biri de
Ironman filminden bildiğimiz yapay zekaya sahip JARVIS adlı robotun taklitinin yapılmaya çalışıldığı projelerdir, gerçekten insana fikir ve ilham veriyor

Örnek Video: http://www.youtube.com/watch?v=46iJXpDmtvE

Ayrıca bu jarvis projesi açık kaynak ve dilerseniz indirip geliştirebiliyorsunuz.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst