首页 文章

语音识别引擎无法正常工作

提问于
浏览
0

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

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

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

奇怪的是,如果我使用语音识别,而不是语音识别引擎我的程序运行完美,但ofcourse每次我说点什么无关它搅乱了,因为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 .

1 回答

  • 4

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

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

相关问题