停止响应Windows命令

时间:2013-05-18 06:09:53

标签: c# .net windows visual-studio-2010 speech-recognition

请查看以下代码

  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内置命令。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

SpeechRecognizer对象建立在现有Windows语音系统之上。来自MSDN

  

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

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