Answered Jarvis speech recognition problem

  • Sunday, April 29, 2012 3:46 PM
     
      Has Code

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Speech.Recognition; using System.Speech.Synthesis; class Program { public SpeechRecognitionEngine recognitionEngine; string message; SpeechSynthesizer speaker = new SpeechSynthesizer(); public static void Main(){ Program prgrm = new Program(); prgrm.Init(); //process commands while (true) { prgrm.message=prgrm.recognise(); prgrm.command(prgrm.message); } } public void Init() { recognitionEngine = new SpeechRecognitionEngine(); recognitionEngine.SetInputToDefaultAudioDevice(); recognitionEngine.SpeechRecognized += (s, args) => { foreach (RecognizedWordUnit word in args.Result.Words) { if (word.Confidence > 0.5f) message += word.Text + " "; } }; recognitionEngine.LoadGrammar(new DictationGrammar()); Console.WriteLine(message); } public void speak(string message) { speaker.Rate = 1; speaker.Volume = 100; speaker.Speak(message); } public string recognise() { Console.WriteLine(message); recognitionEngine.RecognizeAsyncStop(); return message; } public void command(string message) { switch (message) { case "hi": speak("Hello Sir"); Console.WriteLine(message); break; case "jarvis Chrome": speak("Opening Google Chrome"); speak("Please Wait"); Console.WriteLine("Please Wait"); System.Diagnostics.Process.Start("google chrome.lnk"); break; case "jarvis time": speak("Sir , The Time is " + DateTime.Now.ToString("h:mm tt")); break; case "jarvis date": speak("Sir , The Date is " + DateTime.Now.Date); break; case "jarvis day": speak("Sir, The Day is " + DateTime.Now.DayOfWeek); break; case "thank you": speak("You'r welcome sir"); break; case "": break; default : Console.WriteLine(message); break; } } }

    This is my code

    I want it to recognise things that I ask it but it just doesn't respond :(

    I threw in some simple debuging statements to check the value of message but it doesn't work!

All Replies