C# 语音识别引擎没有正常工作

C# 语音识别引擎没有正常工作,c#,speech-recognition,C#,Speech Recognition,我正在编写一个小应用程序,它应该能够侦听用户命令并将击键发送到另一个程序。我正在使用语音识别引擎类,但我的脚本无法正常工作 若我使用自定义语法(只有很少的单词,如“开始”或“退出”),程序将始终识别我的一个单词,即使我说了完全不同的话。 对于距离,我说“stackoverflow”,程序识别“start” 使用默认字典,程序几乎无法使用(我必须100%正确,否则它无法理解) 奇怪的是,如果我使用语音识别器而不是语音识别引擎,我的程序工作得很好,但当然,每次我说一些无关的话,它都会出错,因为Win

我正在编写一个小应用程序,它应该能够侦听用户命令并将击键发送到另一个程序。我正在使用语音识别引擎类,但我的脚本无法正常工作

若我使用自定义语法(只有很少的单词,如“开始”或“退出”),程序将始终识别我的一个单词,即使我说了完全不同的话。 对于距离,我说“stackoverflow”,程序识别“start”

使用默认字典,程序几乎无法使用(我必须100%正确,否则它无法理解)

奇怪的是,如果我使用语音识别器而不是语音识别引擎,我的程序工作得很好,但当然,每次我说一些无关的话,它都会出错,因为Windows语音识别处理结果,我不希望发生这种情况。这就是我使用语音识别引擎的原因

我做错了什么

Choices c = new Choices(new string[] { "use", "menu", "map", "save", "talk", "esc" });
GrammarBuilder gb = new GrammarBuilder(c);
Grammar g = new Grammar(gb);
sr = new SpeechRecognitionEngine();
sr.LoadGrammar(g);
sr.SetInputToDefaultAudioDevice();
sr.SpeechRecognized += sr_SpeechRecognized;

差点忘了,我不知道这是否相关,但我使用的是Visual Studio 11 Ultimate Beta。

对于检测到的每个语音识别结果,您也会收到识别的置信度-低置信度表示引擎对结果“不太确定”,您可能想要拒绝它,例如:

private void SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
    if (e.Result.Confidence >= 0.7)
    {
       //high enough confidence, use result
    }
    else
    {
      //reject result
    }
}

对于检测到的每个语音识别结果,您也会收到识别的置信度-低置信度表示引擎对结果“不太确定”,您可能希望拒绝该结果,例如:

private void SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
    if (e.Result.Confidence >= 0.7)
    {
       //high enough confidence, use result
    }
    else
    {
      //reject result
    }
}

好了,现在效果好多了,我必须把它设置为0.9,但是我要做更多的测试,但我想它是完美的。好了,现在效果好多了,我必须把它设置为0.9,但是,我要做更多的测试,但我想它是完美的。