System.Speech İle Basit Bir Ses Algılama Uygulaması

15 Şub

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

}
}

Reklamlar

13 Yanıt to “System.Speech İle Basit Bir Ses Algılama Uygulaması”

  1. oGuZz_Z Eylül 9, 2011 3:49 pm #

    Error HRESULT E_FAIL has been returned from a call to a COM component. loadgrammer bolumunde diye bir hata aliyorum cozumu hakkinda yardimci olabilirmisiniz

    • emrealic Eylül 9, 2011 5:24 pm #

      Makalede de bahsettiğim bazı eklentileri internette bulup kurman gerekiyor

  2. ekrem Ocak 24, 2012 12:12 pm #

    merhaba. bahsettiğiniz eklentileri nasıl yükleyeceğiz. teşekkürler.

    • emrealic Ocak 24, 2012 5:00 pm #

      Bu yazıyı çok önceden yazdığım için şimdilik şunu yükleyerek denemeni tavsiye ediyorum?
      http://www.microsoft.com/download/en/details.aspx?id=10121
      .net speech sdk şeklinde ihtiyacın olanı arayıp, bulman gerekebilir.
      Doğru sdk ve eklentileri deneyerek bulman gerekebilir o zaman için benim bilgisayarımda hazırda kurulu olanları hatırlamıyorum.

      • emreerdem Şubat 9, 2012 12:23 pm #

        GetCultureInfoByIetfLanguageTag(“en-US”);
        Burun tr-TR için olanı var mı? ve çalışıyor mu?

      • emrealic Şubat 9, 2012 12:57 pm #

        O zaman için bulamamıştım, şimdi varsa da freeshare olduğunu sanmıyorum. Bir arkadaşım için bu konuyla ilgilenceğim bulursam bilgi veririm.

  3. ahmet Mart 13, 2012 5:44 pm #

    projeyi yaptım çalışıyo ama komutları uygulamıyo sebebi nedir ?

    • emrealic Mart 13, 2012 7:26 pm #

      Şu mesajımı inceler misin:
      Gönderilme tarihi 24.01.2012 at 5:00 pm | In reply to ekrem.
      Bu yazıyı çok önceden yazdığım için şimdilik şunu yükleyerek denemeni tavsiye ediyorum?
      http://www.microsoft.com/download/en/details.aspx?id=10121
      .net speech sdk şeklinde ihtiyacın olanı arayıp, bulman gerekebilir.
      Doğru sdk ve eklentileri deneyerek bulman gerekebilir o zaman için benim bilgisayarımda hazırda kurulu olanları hatırlamıyorum.

  4. furkan Aralık 28, 2012 11:25 am #

    Bende sdk da yüklü fakat program ne hata veriyor ne de komutları çalıştırıyor sebebi nedir?

    • emrealic Aralık 28, 2012 3:22 pm #

      aşağıdaki bazı cevaplarıma ilave olarak, başka eklentiler olduğu için onları da kurman gerekiyor.

      • furkan Aralık 28, 2012 7:16 pm #

        hangi eklentiler onlar bilgilendirirseniz sevinirim

      • emrealic Ocak 20, 2013 9:54 am #

        İnternette araştırmanı öneririm, bu çok önceden yaptığım bir çalışma

      • furkan Ocak 28, 2013 7:21 pm #

        bu programı yaptığınızda bilgisayaranızın dili ingilizcemiydi?

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

w

Connecting to %s

%d blogcu bunu beğendi: