private void bVoice_Click(object sender, EventArgs e) { if (MonoCompat.IsMono) { Logger.Log(LogType.Warning, "Voice commands are for windows operating systems only"); return; } //if button was already clicked, cancel if (listening) { listening = false; bVoice.ForeColor = System.Drawing.Color.Black; return; } System.Speech.Recognition.SpeechRecognitionEngine engine = new System.Speech.Recognition.SpeechRecognitionEngine(); bVoice.ForeColor = System.Drawing.Color.Aqua; System.Speech.Recognition.Choices commands = new System.Speech.Recognition.Choices(); commands.Add(new string[] { "restart", "shutdown", "status report", "players", "help" }); System.Speech.Recognition.Grammar gr = new System.Speech.Recognition.Grammar(new System.Speech.Recognition.GrammarBuilder(commands)); try { listening = true; engine.RequestRecognizerUpdate(); engine.LoadGrammar(gr); engine.SpeechRecognized += engine_SpeechRecognized; engine.SetInputToDefaultAudioDevice(); engine.RecognizeAsync(System.Speech.Recognition.RecognizeMode.Multiple); engine.Recognize(); } catch { return; } }