using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Speech.Recognition; using System.Threading; namespace VoiceControlSystem { public class SpeachToText { #region Fields private SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine(); private ManualResetEvent _completed = null; private bool speachRejectEnabled = false; private GrammarBuilder gb; private string configData = ""; public delegate void Response(string text); public event Response response; #endregion #region Properties public bool SpeechRejectEnabled { get { return speachRejectEnabled; } set { speachRejectEnabled = value; } } #endregion #region Constructors public SpeachToText() { gb = new GrammarBuilder(); } #endregion #region Methods public void Start() { //Register events _recognizer.SpeechRecognized += new EventHandler(_recognizer_SpeechRecognized); //_recognizer.LoadGrammarCompleted += new EventHandler(_recognizer_LoadGrammarCompleted); if (speachRejectEnabled) { _recognizer.SpeechRecognitionRejected += new EventHandler(_recognizer_SpeechRecognitionRejected); } try { _recognizer.SetInputToDefaultAudioDevice(); // set to the first mic detected _recognizer.RecognizeAsync(RecognizeMode.Multiple); } catch (Exception err) { response(err.Message); } }//End WaitForRec public void Stop() { //_completed.Set(); _recognizer.RecognizeAsyncStop(); _recognizer.Dispose(); GC.Collect(); }//End EndRec public void AddWord(string word) { if (_recognizer != null) { _recognizer.RequestRecognizerUpdate(); _recognizer.LoadGrammar(new Grammar(new GrammarBuilder(word)) { Name = word + "Grammer" }); } }//End AddWord public void AddWords(List words) { foreach (string word in words) { Grammar gr = new Grammar(new GrammarBuilder(word)); _recognizer.LoadGrammar(gr); } }//End addWords public void AppendWord(string word) { gb.Append(word); } public void AppendChoice(string[] choices) { gb.Append(new Choices(choices)); } public void AppenWildCard() { gb.AppendWildcard(); } public void AppendDictation() { gb.AppendDictation(); } public void ApplyGrammars() { _recognizer.RequestRecognizerUpdate(); _recognizer.LoadGrammar(new Grammar(gb)); } public void AddDictation() { _recognizer.RequestRecognizerUpdate(); _recognizer.LoadGrammar(new DictationGrammar()); } public void AddGrammar(Grammar grammar) { _recognizer.RequestRecognizerUpdate(); _recognizer.LoadGrammar(grammar); } public List GetWords() { List words = new List(); foreach (Grammar gr in _recognizer.Grammars) { words.Add(gr.RuleName); } return words; }//End GetWords public void GetConfigData() { } #endregion #region Events void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) { response(e.Result.Text); } void _recognizer_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e) { response("Speach not recognized"); } void _recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e) { } #endregion }//End Class }//End namespace if you liked the post please donate bits to : 15FywX3AFfjGdfZyLSBPqCafhfNd9TiqUb