• Ana Sayfa
  • C#
  • C# Sesli komut programı – C# Speech recognition – Hey Obama !

C# Sesli komut programı – C# Speech recognition – Hey Obama !

 C# Sesli komut programı – C# Speech recognition – Hey Obama !
Okunuyor C# Sesli komut programı – C# Speech recognition – Hey Obama !

Selamun aleyküm üniversite 1 başlamışım.Liseden uzak kalalı çok olmuş vakitle beraber bildiklerimide yitirmişim.Ve dedimki c# tekrar başlıyacağım .2-3 günde yuttum.Bide yapay zeka filmi izlemişim bi gaza geldim.Yapay zeka programı yapayacağım ne yapayim ? C# Sesli komut programı yapayim.Kendisi videosu alttadır.Ne kadar yapay zeka olduğu tartılır tabi 😀 ancak kendi çapında zamanın koşullarında evet başarılı bir programdı.Umarım daha iyilerini yapmak size nasip olur.

C# Sesli komut programı – C# Speech recognition

 



 

Baştan söylim kopyala yapıştırla , exeye çift tıklamayla hata alabilirsiniz.Neden ? Ben bu programı yaparken işletim sistemim ingilizceydi , ve bu speech dll kullanırken işletim sisteminin ingilizce olması gerektiğini duymuştum.

Neden mikrofonunuz yüklü görmüyor olabilir.

Neden komut.txt gösterdiğiniz yolda olmayabilir. Yoruma yazarsanız yardımcı olmaya çalışırım.

Neyi Amaçladım?

Projede amacım diğer programlardan farklı olarak cevap verebilmesi mantıklı iletişimler kurabilmesiydi amacım sadece sesli asistan yapmak değildi.Ancak projeyi bitirdikden kısa süre sonra proje dosyası elimden kayboldu .Sınavlar başladı kısaca bu projeyi geliştirmeye yönelik şevkim son buldu ancak bu haliylede faydalı olabileceği arkadaşlar olduğuna eminim.En azından merak giderecek kadar .

C# Sesli komut programı Proje Kodları

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;
//hay maşaallah
using System.Speech;
using System.Speech.Recognition;
using System.Speech.Synthesis;
using System.Diagnostics;
using System.IO;
using System.Windows;
using System.Threading;


namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine();
        SpeechSynthesizer OBAMA = new SpeechSynthesizer();
        string QEvent;
        string ProcWindow;
        double timer = 10;
        int count = 1;
        Random rnd = new Random();

        private void Form1_Load(object sender, EventArgs e)
        {
    _recognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"C:\Users\M.Arif\Documents\kodlar.txt")))));
    _recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_recognizer_SpeechRecognized);
    _recognizer.SpeechDetected += new EventHandler<SpeechDetectedEventArgs>(_recognizer_SpeechDetected);
    _recognizer.RecognizeCompleted += new EventHandler<RecognizeCompletedEventArgs>(_recognizer_RecognizeCompleted);
    _recognizer.SpeechRecognitionRejected += new EventHandler<SpeechRecognitionRejectedEventArgs>(_recognizer_SpeechRecognitionRejected);

        Thread t = new Thread(delegate() { _recognizer.SetInputToDefaultAudioDevice(); _recognizer.RecognizeAsync(RecognizeMode.Single); });
t.Start();
        }
        void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            int ranNum = rnd.Next(1, 10);
            string speech = e.Result.Text;
            switch (speech)
            {
                //İletişim 
                case "hello":
                case "hello Obama":
                    if (ranNum < 6) { OBAMA.Speak("sanada selam ramazan kardes") ; }//bırda amacım rastgele cevap atması hep ayni değil robota dönüyor sonra :D
                    else if (ranNum > 5) { OBAMA.Speak("Hi"); pictureBox1.ImageLocation = @"C:\Users\Löl\Documents\Visual Studio 2012\Projects\WindowsFormsApplication3\WindowsFormsApplication3\Resources\face.gif"; } 
                    break;
                case "good bye":
                case "good bye obama":
                case "close":
                case "close obama":
                    OBAMA.Speak("Until next time");
                   
                    Application.Exit();
                    
                    break;
                case "hey edward":
                    if (ranNum < 5) { QEvent = ""; OBAMA.Speak("Yes sir"); }
                    else if (ranNum > 4) { QEvent = ""; OBAMA.Speak("Yes?"); }
                    break;
                case "how are you":
                    OBAMA.Speak("im okey and you sir");
                    

                    break;
                //websiteler
                case "run face":
                    System.Diagnostics.Process.Start("https://www.facebook.com/");
                    
                    break;
                case "run google":
                    System.Diagnostics.Process.Start("https://www.google.com/");

                    break;
                case "run youtube":
                    System.Diagnostics.Process.Start("https://www.youtube.com");

                    break;
                case "run father":
                    System.Diagnostics.Process.Start("https://www.youtube.com");

                    break;

                //program açma komutları
                case "open program":
                    System.Diagnostics.Process.Start("file location");
                    OBAMA.Speak("Loading");
                    break;

                //program kapatma komutları
                case "close program":
                    ProcWindow = "process name";
                    StopWindow();
                    break;

                //gün ay yıl
                case "what time is it":
                    DateTime now = DateTime.Now;
                    string time = now.GetDateTimeFormats('t')[0];
                    OBAMA.Speak(time);
                    break;
                case "what day is it":
                    OBAMA.Speak(DateTime.Today.ToString("dddd"));
                    break;
                case "whats the date":
                case "whats todays date":
                    OBAMA.Speak(DateTime.Today.ToString("dd-MM-yyyy"));
                    break;

                //diğer komutlar
           
                case "Baban Kim":
                    OBAMA.Speak("Ramadan Sherif Akbuz");
                    break;
                case "go fullscreen":
                    FormBorderStyle = FormBorderStyle.None;
                    WindowState = FormWindowState.Maximized;
                    TopMost = true;
                    OBAMA.Speak("expanding");
                    break;
                case "exit fullscreen":
                    FormBorderStyle = FormBorderStyle.Sizable;
                    WindowState = FormWindowState.Normal;
                    TopMost = false;
                    break;
                case "switch window":
                    SendKeys.Send("%{TAB " + count + "}");
                    count += 1;
                    break;
                case "reset":
                    count = 1;
                    timer = 11;
                    lblTimer.Visible = false;
                    
                    ShutdownTimer.Enabled = false;
                    lstCommands.Visible = false;
                    break;
                case "out of the way":
                    if (WindowState == FormWindowState.Normal || WindowState == FormWindowState.Maximized)
                    {
                        WindowState = FormWindowState.Minimized;
                        OBAMA.Speak("My apologies");
                    }
                    break;
                case "come back":
                    if (WindowState == FormWindowState.Minimized)
                    {
                        OBAMA.Speak("Alright?");
                        WindowState = FormWindowState.Normal;
                    }
                    break;
                case "show commands":
                    string[] commands = (File.ReadAllLines(@"C:\Users\Cp\kodlar.txt"));
                    OBAMA.Speak("Very well");
                    lstCommands.Items.Clear();
                    lstCommands.SelectionMode = SelectionMode.None;
                    lstCommands.Visible = true;
                    foreach (string command in commands)
                    {
                        lstCommands.Items.Add(command);
                    }
                    break;
                case "hide listbox":
                    lstCommands.Visible = false;
                    break;

                //fişi çek  yeniden başlat kapat
                case "shutdown":
                    if (ShutdownTimer.Enabled == false)
                    {
                        QEvent = "shutdown";
                        OBAMA.Speak("I will shutdown shortly");
                        lblTimer.Visible = true;
                        ShutdownTimer.Enabled = true;
                    }
                    break;
                case "log off":
                    if (ShutdownTimer.Enabled == false)
                    {
                        QEvent = "logoff";
                        OBAMA.Speak("Logging off");
                        lblTimer.Visible = true;
                        ShutdownTimer.Enabled = true;
                    }
                    break;
                case "restart":
                    if (ShutdownTimer.Enabled == false)
                    {
                        QEvent = "restart";
                        OBAMA.Speak("I'll be back shortly");
                        lblTimer.Visible = true;
                        ShutdownTimer.Enabled = true;
                    }
                    break;
                case "abort":
                    if (ShutdownTimer.Enabled == true)
                    {
                        QEvent = "abort";
                    }
                    break;
                case "speed up":
                    if (ShutdownTimer.Enabled == true)
                    {
                        ShutdownTimer.Interval = ShutdownTimer.Interval / 10;
                    }
                    break;
                case "slow down":
                    if (ShutdownTimer.Enabled == true)
                    {
                        ShutdownTimer.Interval = ShutdownTimer.Interval * 10;
                    }
                    break;
            }
        }

        private void ShutdownTimer_Tick(object sender, EventArgs e)
        {
            if (timer == 0)
            {
                lblTimer.Visible = false;
                ComputerTermination();
                ShutdownTimer.Enabled = false;
            }
            else if (QEvent == "abort")
            {
                timer = 10;
                lblTimer.Visible = false;
                ShutdownTimer.Enabled = false;
            }
            else
            {
                timer = timer - .01;
                lblTimer.Text = timer.ToString();
            }
        }

        private void ComputerTermination()
        {
            switch (QEvent)
            {
                case "shutdown":
                    System.Diagnostics.Process.Start("shutdown", "-s");
                    break;
                case "logoff":
                    System.Diagnostics.Process.Start("shutdown", "-l");
                    break;
                case "restart":
                    System.Diagnostics.Process.Start("shutdown", "-r");
                    break;
            }
        }
        private void StopWindow()
        {
            System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcessesByName(ProcWindow);
            foreach (System.Diagnostics.Process proc in procs)
            {
                proc.CloseMainWindow();
            }
        }

        
        void _recognizer_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e)
        {



            progressBar1.Style = ProgressBarStyle.Blocks;
            label1.Text = "Komut algılanamadı.";

        }

        void _recognizer_RecognizeCompleted(object sender, RecognizeCompletedEventArgs e)
        {
            _recognizer.RecognizeAsync();
            progressBar1.Style = ProgressBarStyle.Blocks;

        }
        void _recognizer_SpeechDetected(object sender, SpeechDetectedEventArgs e)
        {

            label1.Text = "Komut algılanıyor...";
            progressBar1.Style = ProgressBarStyle.Marquee;

        }

C# Sesli komut programı Tasarımı ve Üzerindekiler



c# sesli komut

Üzerinde 2 label 1 progessbar 1 picturebox 1 adette listbox var adı lstCommands olmak üzere tasarımı bu şekilde yapabilir yada video da yaptım şekilde daha cafcaflı hale getirebilirsiniz.

 

 

Diğer yazılım makalelerimiz için

Facebook Grubumuz İçin Tıklayın

 

 

Yapılan Yorumlar
  • Avatar for Akın Akın dedi ki:

    indirme linki koysaydın keşke

  • Avatar for sencer sencer dedi ki:

    güzel program bu programa türkçe komut verebilir miyiz ? bunu yapmaya uğraşıyorum ancak türkçe olmasını istiyorum.

  • Avatar for mesut mesut dedi ki:

    C:\Users\Löl\Documents\Visual Studio 2012\Projects\WindowsFormsApplication3\WindowsFormsApplication3\Resources\face.gif
    bu verdeğin dosya yolunda ne olması gerekiyor paylaşırsan sevinirim

    • Avatar for Ramazan Şerif Ramazan Şerif dedi ki:

      herhangi bir resim.Face gif kuullanmıştım ben hareket eden yüz resmi , sen görsel açısından istediğini kullanabilirsin 🙂

  • Avatar for turkeryagiz turkeryagiz dedi ki:

    C:\Users\M.Arif\Documents\kodlar.txt bu nedir abi ?

    • Avatar for Ramazan Şerif Ramazan Şerif dedi ki:

      gösterdiğin yola sende farklı olabilir kodlar adında txt belgesi oluşturacağız.Program içinde if ile kontrol ettiğimiz kodları oraya yazacağız

  • Avatar for serkan serkan dedi ki:

    indirme linki atarmısın ?

  • Avatar for Ramazan UZUN Ramazan UZUN dedi ki:

    indirme linki atarmısın üzerinde eklemeler yapmak istiyorum kolay gelsin

  • Avatar for YEmre YEmre dedi ki:

    .txt dosyasının içindeki komutları nasıl yazdık, ” ” içindemi – ile mi v.s ” ‘phrase’ cannot be an empty string.” hatası alıyorum.

    • Avatar for Ramazan Şerif Ramazan Şerif dedi ki:

      Merhaba dosya yolu olarak gösterdiğimiz txt dosyasına Kodları yazmamız gerekiyor. Başarılar !!!

  • Avatar for Suat6 Suat6 dedi ki:

    Komut.Txt bölümünü anlamdım kısaca yazarmısınız

  • Avatar for onur onur dedi ki:

    lblTimer.Visible = false; hatasi aliyorum

    • Avatar for onur onur dedi ki:

      Error 1 ‘System.Windows.Forms.Timer’ does not contain a definition for ‘Visible’ and no extension method ‘Visible’ accepting a first argument of type ‘System.Windows.Forms.Timer’ could be found (are you missing a using directive or an assembly reference?) C:\Users\ONUR\AppData\Local\Temporary Projects\WindowsFormsApplication1\Form1.cs 144 30 WindowsFormsApplication1

      hata boyle

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.