.Net Framework’ün 3.0 versiyonu ile gelen System.Speech kütüphanesinde bulunan metodlar ve sınıflar ile Ses Algılama işlerini nasıl yapabileceğimi bir uygulama ile görmeye çalıştım.İnternette benzeri olan basit uygulamayı biraz farklı yorumlayarak aktarıyorum.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Speech;
using System.Speech.Recognition;
using System.Threading;
using System.Diagnostics;
using System.Timers;

//Kullanılan Kütüphaneler Burada önemli olan Speech kütüphanelerinin ve SDK’larının kurulu olması.

namespace AppleVoice
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

SpeechRecognitionEngine sre = new SpeechRecognitionEngine();
//Algılama Engine burada tanımlanıyor

private void Form1_Load(object sender, EventArgs e)
{
KomutlariOlustur();

//4 Olay var;Algılama,Tanıma,Tamamlanma,Cevap
sre.SpeechDetected += new EventHandler(sre_SpeechDetected);
sre.SpeechRecognized += new EventHandler(sre_SpeechRecognized);
sre.RecognizeCompleted += new EventHandler(sre_RecognizeCompleted);
sre.SpeechRecognitionRejected += new EventHandler(sre_SpeechRecognitionRejected);
Thread t = new Thread(delegate() { sre.SetInputToDefaultAudioDevice(); sre.RecognizeAsync(RecognizeMode.Single); });
t.Start();

//Thread salınıyor
}

private void KomutlariOlustur()
{
string[] komutlar = new string[] { “apple”, “pear” };
Choices insChoices = new Choices(komutlar);
GrammarBuilder insGrammarBuilder = new GrammarBuilder(insChoices);
insGrammarBuilder.Culture = System.Globalization.CultureInfo.GetCultureInfoByIetfLanguageTag(“en-US”);
Grammar insGrammar = new Grammar(insGrammarBuilder);
sre.LoadGrammar(insGrammar);

//Komutlar tanımlanıyor.Burada önemli olan Dil Faktörü .NET ve OS’unuzun uyumuna göre tanım vermelisiniz

}

void sre_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e)
{
progressBar1.Style = ProgressBarStyle.Blocks; ;
lblDurum.Text = “Komut algılanamadı.”;
}

void sre_RecognizeCompleted(object sender, RecognizeCompletedEventArgs e)
{
sre.RecognizeAsync();
progressBar1.Style = ProgressBarStyle.Blocks;
}

void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
if (e.Result.Text == “apple”)
{
Process.Start(“notepad.exe”);
}
else if (e.Result.Text == “pear”)
{
Process.Start(“mspaint.exe”);
}
lblDurum.Text = “”;
//elma dersek notepad armut dersek paint çalışacak
}

void sre_SpeechDetected(object sender, SpeechDetectedEventArgs e)
{
int ds = Convert.ToInt32(System.DateTime.Now.Second);
lblDurum.Text = “Komut algılanıyor…”;
progressBar1.Style = ProgressBarStyle.Marquee;
}

}
}