我正在使用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而不是听写语法的想法。 :)
答案 0 :(得分:2)
如果您使用符合SRGS的语法,则可以使用weights来基本分配优先级。 Grammar对象支持符合W3C SRGS specification的xml格式的语法。