Arama butonu
Bu konudaki kullanıcılar: 1 misafir
1
Cevap
2479
Tıklama
0
Öne Çıkarma
C# | Sesle komut işleme (Speech Recognition)
B
12 yıl
Çavuş
Konu Sahibi

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)

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





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

G
12 yıl
Binbaşı

Çok gereksiz bir kütüphane...



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.