停止响应windows命令

本文关键字:命令 windows 响应 | 更新日期: 2023-09-27 18:14:17

请看下面的代码

  private void button2_Click(object sender, EventArgs e)
        {
            SpeechRecognizer sr = new SpeechRecognizer();
            Choices colors = new Choices();
            colors.Add(new string[] { "red arrow", "green", "blue" });
            GrammarBuilder gb = new GrammarBuilder();
            gb.Append(colors);
            Grammar g = new Grammar(gb);
            sr.LoadGrammar(g);
           // SpeechSynthesizer s = new SpeechSynthesizer();
           // s.SpeakAsync("start speaking");
            sr.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sr_SpeechRecognized);
        }
        void sr_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            MessageBox.Show(e.Result.Text);
        }

这是使用MS语音引擎的正常语音识别代码。您可以在这里看到我加载了一些语法。但是,也有一个问题。也就是说,这不仅响应给定的语法,而且响应MS内置的语音命令!像语音命令最小化窗口,打开开始菜单等!

我真的不需要。我的应用程序应该只响应我的语法,而不是MS内置的命令。有什么方法可以让我做到这一点吗?

停止响应windows命令

SpeechRecognizer对象建立在现有的Windows语音系统之上。从MSDN:

应用程序使用共享识别器访问Windows语音识别。使用SpeechRecognizer对象添加到Windows语音用户体验。

考虑使用一个SpeechRecognitionEngine对象,因为它运行在进程内而不是系统范围内。