C# | Sesli Komut ile Renk Değiştirme

1Jeff

Developer & Coder
Ultra Member
Katılım
20 Eki 2019
Konular
145
Mesajlar
720
Tepkime puanı
443
Konum
Helsinki
RC Point
0
Programımızın çalışma prensibi şu şekildedir: Bağlı mikrofonumuza “Red”,”Green”,”Blue”,”Yellow” gibi renklerin ismini söyledikten sonra Form1’imizin arkaplan renginin değişeceğini göreceğiz.

Projemize başlamadan önce “Visual Studio”da açtığımız projede “proje” sekmesine geliyoruz. “Başvuru Ekle” dedikten sonra, ekrana gelen “Başvuru Yöneticisi”nden “System.Speech” referansını ekliyoruz. Ardından Form1’imizin içine gelerek en üstte şunları ekliyoruz:

C#:
using System.Speech.Recognition;
using System.Speech.Synthesis;
using System.Threading;
using System.Diagnostics;

Form1 arayüzümüze bir adet button ekliyoruz.

Şimdi Buton’a tıklandıktan sonra olacakları yazalım.
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Speech.Recognition;
using System.Speech.Synthesis;
using System.Threading;
using System.Diagnostics;
namespace seskaydi
{
 public partial class seskaydi : Form
 {
 public seskaydi()
 {
 InitializeComponent();
 }
 PromptBuilder pbuilder = new PromptBuilder();//Hızlı okuyucu tanımladık.
 SpeechSynthesizer synt = new SpeechSynthesizer();//Konuşma Sentezleyici Oluşturduk
 private void seskaydi_Load(object sender, EventArgs e)
 {
 
 }
 
private void ses_Duyuldu(object sender, SpeechRecognizedEventArgs e)
 {
 string soylenen = e.Result.Text;//soylenen metne, konuşulan metni attık
 if(soylenen=="Red")//Eğer kırmızı ise
 {
 pbuilder.ClearContent();
 pbuilder.AppendText("İt is Red!");//Diye bir cümle oluşturduk
 synt.Speak(pbuilder);//Bilgisayar tarafından bu cümle seslendirilecek.
 this.BackColor = Color.Red;//Arkaplan kırmızı olsun
 }
 else if(soylenen=="Yellow")//Eğer sarı ise
 {
 pbuilder.ClearContent();
 pbuilder.AppendText("İt is Yellow");//Diye bir cümle oluşturduk
 synt.Speak(pbuilder);//bigisayar tarafından bu <a href="http://www.gorselprogramlama.com/wp-content/uploads/2019/04/ezgif-1-e7a30f3d4351.gif"><img class="aligncenter size-medium wp-image-20576" src="http://www.gorselprogramlama.com/wp-content/uploads/2019/04/ezgif-1-e7a30f3d4351-300x275.gif" alt="ezgif-1-e7a30f3d4351" width="300" height="275" /></a> cümle seslendirilecek.
 this.BackColor = Color.Yellow;//Arkaplan sari olsun.
 }
 else if(soylenen=="Green")//Eğer yeşil ise
 {
 pbuilder.ClearContent();
 pbuilder.AppendText("İt is Green");//Diye bir cümle oluşturduk
 synt.Speak(pbuilder);//Bilgisayar tarafından bu cümle seslendirilecek.
 this.BackColor = Color.Green;//arkaplan yeşil olsun.
 }
 else if(soylenen=="Blue")//Eğer mavi ise
 {
 pbuilder.ClearContent();
 pbuilder.AppendText("İt is Blue");//Diye bir cümle oluşturduk
 synt.Speak(pbuilder);//Bilgisayar tarafından bu cümle seslendirilecek.
 this.BackColor = Color.Blue;//Arkaplan mavi olsun.
 }
 else if(soylenen=="Exit Application")//eğer bu cümle kullanılırsa
 {
 pbuilder.ClearContent();
 pbuilder.AppendText("Thanks for Using, my User");//diye bir cümle oluşturduk.
 synt.Speak(pbuilder);//Bilgisayar tarafından bu cümle seslendirilecek.
 Application.Exit();//Uygulama kapatılsın.
 }
 }
 
private void button1_Click(object sender, EventArgs e)
 {
 SpeechRecognitionEngine algilamaMotoru = new SpeechRecognitionEngine();/*algilamaMotoru adında Konuşma
tanıma motoru tanımladık*/
 algilamaMotoru.SetInputToDefaultAudioDevice();//Otomatik seçilen mikrofonumuza attık.
 Choices sesGrubu = new Choices("Red", "Green", "Blue", "Yellow","Exit Application");/* Ses grubu tanımladık.
Renkleri buradan seçeceğiz*/
 GrammarBuilder gramerYapilandirici = new GrammarBuilder(sesGrubu);/*Grammer yapılandırıcı ekledik.*/
 gramerYapilandirici.Culture = System.Globalization.CultureInfo.GetCultureInfoByIetfLanguageTag("en-US");
/*Hangi dilde tanımlaması gerektiğini belirttik. "Amerikan İngilizcesi"*/
 Grammar gramer = new Grammar(gramerYapilandirici);//Grameri tanımladık.
 algilamaMotoru.LoadGrammar(gramer);//algilamamotorunun gramerini oluşturduk.
algilamaMotoru.SpeechRecognized += ses_Duyuldu;//Konuşma tanımlandıkça ses_Duyuldu metotu çalışsın.
 algilamaMotoru.RecognizeAsync(RecognizeMode.Multiple);//Çoklu ses tipinde çalışsın.
 }
 }
}
 
Üst