C# google search with voice

Hey guys im new in this C# so i dont know to much , and i will be grateful if you can tell me how can i search on google with vocal commands ^^.

Here is my entire code.Explain step by step please :D.(Tell me if i must add new libraries or new entrance or new "using" stuff :D

{

public partial class Form1 : Form
{           

    SpeechSynthesizer s = new SpeechSynthesizer();
    Choices list = new Choices();
    Boolean wake = true;
    public Form1()
    {
        SpeechRecognitionEngine rec = new SpeechRecognitionEngine();
        list.Add(new String[] { "hello", "how are you", "what time is it", "what day is it", "open google", "wake", "sleep", "restart", "open studio", "close studio", "search", "standby", "mute", "unmute", "up", "down", "hex system up"});
        Grammar gr = new Grammar(new GrammarBuilder(list));
        try
        {
            rec.RequestRecognizerUpdate();
            rec.LoadGrammar(gr);
            rec.SpeechRecognized += rec_SpeachRecognized;
            rec.SetInputToDefaultAudioDevice();
            rec.RecognizeAsync(RecognizeMode.Multiple);
        }
        catch { return; }


        InitializeComponent();
    }
    public void KillProg(String s)
    {

        System.Diagnostics.Process[] procs = null;
        try
        {
            procs = Process.GetProcessesByName(s);
            Process prog = procs[0];
            if (!prog.HasExited) { prog.Kill(); }


    }finally
        {
            if (procs != null) 
            { 
                foreach (Process p in procs)
                {
                    p.Dispose();
                }
            }
        }
}    


    public void restart()
    {
        Process.Start(@"D:\here.exe");
        Environment.Exit(0);
    }
    public void  say(String h)
    {

        s.Speak(h);

    }

    public static void ExecuteCommand(string Command)
    {
        System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c" + Command);
        procStartInfo.RedirectStandardOutput = true;
        procStartInfo.UseShellExecute = false;
        procStartInfo.CreateNoWindow = true;
        System.Diagnostics.Process proc = new System.Diagnostics.Process();
        proc.StartInfo = procStartInfo;
        proc.Start();
        proc.Close();
    }
    //Speech Commands
    private void rec_SpeachRecognized(object sender, SpeechRecognizedEventArgs e)
    {            
        String r = e.Result.Text;
        if (r == "wake") { say("The system is listening sir"); } wake = true;
        if (r == "sleep") { say("The system will no more listen sir"); } wake = false;
        if (wake == true)            
        {
            if (r == "hex system up") {Process.Start(@"C:\Program Files\Rainmeter\Rainmeter.exe"); say("Welcome back sir                   the system is loading and all energy is stabilized      ,          now i am at 100% capacity"); }
            if (r == "down") { ExecuteCommand("C:/nircmd.exe changesysvolume -10000"); }
            if (r =="up") {ExecuteCommand ("C:/nircmd.exe changesysvolume 10000");}
            if (r == "unmute"){ExecuteCommand ("C:/nircmd.exe mutesysvolume 0"); say("system unmute sir");}
            if (r == "mute") {say("mute now!"); ExecuteCommand ("C:/nircmd.exe mutesysvolume 1");}
            if (r == "standby") { say("The system will enter in waiting mode sir"); ExecuteCommand("C:/nircmd.exe standby"); }      
            if (r == "close studio") { KillProg("WDExpress"); }
            if (r == "open studio") { Process.Start(@"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\WDExpress.exe"); }
            if (r == "hello") { say("Hi"); } 
            if (r == "how are you") { say("Great , and you?"); }
            if (r == "what time is it") { say(DateTime.Now.ToString("hh:mm")); }
            if (r == "what day is it") { say(DateTime.Now.ToString("M/d/yyyy")); }
            if (r == "open google") { Process.Start("https://www.google.ro"); }
        }   





    }

    private void say()
    {
        throw new NotImplementedException();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    public bool c { get; set; }

    public int r { get; set; }

    public int rnd { get; set; }
}

}

Answers


SpeechRecognitionEngine has multiple "modes". You are using it in command mode, meaning you give it some prespecified words that it can recognize. To use it in Dictation mode, which allows it to recognize arbitrary words, add an instance of System.Speech.Recognition.DictationGrammar as a Grammar to your SpeechRecognitionEngine, by doing so: rec.LoadGrammar(new DictationGrammar());. After this is done, the SpeechRecognitionEngine will recognize arbitrary words.


To do the actual google search part, you can search for something on google by doing so: System.Diagnostics.Process.Start("http://www.google.com/search?q=" + StringToSearchFor). This can be used in the rec_SpeechRecognized method. You could for instance check if the recognized text starts with "google", and then search for whatever comes after that.

Example:

    private void rec_SpeachRecognized(object sender, SpeechRecognizedEventArgs e)
    {
        if (e.Result.Text.StartsWith("google "))
        {
            System.Diagnostics.Process.Start(
                "https://www.google.com/search?q=" + e.Result.Text.Substring(7) //"google " is 7 characters long.
            );
        } 
        ...
    }

Related blog post: http://csharp-tricks-en.blogspot.dk/2011/03/speech-recognition-part-1-dictation-mode.html


Need Your Help

for a CSS File --> http status 404 - the requested resource is not available

html css jsf-2

I am getting the "http status 404 - the requested resource is not available" error for my template.css file. From my research i have figured that it is a problem of referencing.