当我在TextBox中聚焦时,SpeechRecognitionEngine停止工作

时间:2012-02-11 14:47:05

标签: c# .net wpf speech-recognition sapi

我正在使用SpeechRecognitionEngine来识别WPF应用程序中的语音。该应用程序使用小型自定义语法,并尝试使用RecognizeMode.Multiple异步检测单词。

问题是,如果我单击我放置在界面上的TextBox控件内部,识别器会再运行两到三个单词,然后停止运行。 在应用程序的输出窗口中,我可以看到大约4个线程被关闭。

如果我没有点击TextBox,一切正常;我甚至可以在应用程序窗口外面点击记事本或其他东西,识别仍然有效。

我正在使用Windown 7 Home Premium x64和Visual Studio 2010。

以下是相关的代码部分:

try
{
    var c = new Choices();

    c.Add("copy");
    c.Add("cut");
    c.Add("paste");
    c.Add("delete");
    c.Add("select all");
    c.Add("compile");
    c.Add("refactor");
    c.Add("spellcheck");
    c.Add("exit");

    var gb = new GrammarBuilder(c);
    var g = new Grammar(gb);

    SpeechRecognitionEngine recognitionEngine = new SpeechRecognitionEngine();
    recognitionEngine.SetInputToDefaultAudioDevice();
    recognitionEngine.LoadGrammar(g);

    recognitionEngine.SpeechRecognized +=
        new EventHandler<SpeechRecognizedEventArgs>(rec_SpeechRecognized);

    recognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
}
catch (Exception ex)
{
       MessageBox.Show(ex + "");
}


private void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
    Console.Out.WriteLine(e.Result.Text + " ");
}

0 个答案:

没有答案