我正在使用SAPI创建一个语音识别应用程序。我需要能够为我使用的不同语法赋予不同的优先级。(我定义的听写语法和其他语法)只有当语音输入与我定义的语法中的任何单词不匹配时,我才需要识别器在我定义的语法中搜索并查看听写语法。现在我有一个这样的代码:
Grammar myGram;
Choices myEditor = new Choices();
myEditor.Add("public");
//adding other choices
myGram = new Grammar(new GrammarBuilder(myEditor));
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
recognizer.LoadGrammar(myGram);
Grammar dictation = new DictationGrammar();
dictation.Name = "Dictation Grammar";
recognizer.LoadGrammar(dictation);
recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(
SpeechRecognizedHandler);
recognizer.SetInputToDefaultAudioDevice();
recognizer.RecognizeAsync(RecognizeMode.Multiple);请告诉我如何优先考虑myGram而不是听写语法。:)
发布于 2012-06-27 23:41:15
如果您使用符合SRGS的语法,那么基本上可以使用weights来分配优先级。Grammar对象支持符合W3C SRGS specification的xml格式的语法。
https://stackoverflow.com/questions/11229548
复制相似问题