public static void loadGrammar(Elite.MessageBus messageBus) { SpeechRecognitionEngine recognitionEngine = messageBus.recognitionEngine; recognitionEngine.SetInputToDefaultAudioDevice(); recognitionEngine.InitialSilenceTimeout = TimeSpan.FromSeconds(5); recognitionEngine.EndSilenceTimeout = TimeSpan.FromSeconds(1.5); recognitionEngine.BabbleTimeout = TimeSpan.FromSeconds(5); DateTime startTime = DateTime.Now; Debug.Write("Begin loading star system grammar"); bool grammarLoaded = true; int counter = 0; try { GrammarBuilder gb = new GrammarBuilder(); gb.Culture = messageBus.recognitionEngineLang; Choices systemChoice = new Choices(); foreach (string system in messageBus.systemIndex["systems"].Keys) { List <string> alternates = alternatePhonetics(system); foreach (string alternate in alternates) { counter += 1; GrammarBuilder systemBuilder = new GrammarBuilder(alternate); systemBuilder.Culture = messageBus.recognitionEngineLang; SemanticResultValue systemSemantic = new SemanticResultValue(systemBuilder, system); systemChoice.Add(new GrammarBuilder(systemSemantic)); } } gb.Append(systemChoice); Grammar grammar = new Grammar(gb); grammar.Name = "populated"; recognitionEngine.LoadGrammar(grammar); Debug.Write("Star system recognition engine rules loaded: " + counter); } catch (Exception ex) { Debug.Write(ex.ToString()); grammarLoaded = false; Debug.Write("Error: Unable to load grammar"); Announcements.errorAnnouncement(messageBus, "Unable to load star system recognition engine"); } if (grammarLoaded) { DateTime endTime = DateTime.Now; TimeSpan loadTime = endTime - startTime; Debug.Write("Finished loading star system grammar. Load time: " + loadTime.Seconds.ToString() + " seconds"); Debug.Write("Recognition Engine - Audio Level: " + recognitionEngine.AudioLevel.ToString()); Debug.Write("Recognition Engine - Audio Format: " + recognitionEngine.AudioFormat.ToString()); Debug.Write("Recognition Engine - Grammars Loaded: " + recognitionEngine.Grammars.Count.ToString()); Debug.Write("Recognition Engine - Recognizer Information: " + recognitionEngine.RecognizerInfo.Name.ToString()); Announcements.engineAnnouncement(messageBus); } messageBus.grammarLoaded = grammarLoaded; }