给定以下代码,
Choices choices = new Choices();
choices.Add(new GrammarBuilder(new SemanticResultValue("product", "<product/>")));
GrammarBuilder builder = new GrammarBuilder();
builder.Append(new SemanticResultKey("options", choices.ToGrammarBuilder()));
Grammar grammar = new Grammar(builder) { Name = Constants.GrammarNameLanguage};
grammar.Priority = priority;
_recognition.LoadGrammar(grammar);
如何在加载的语法中添加其他单词?我知道这可以通过本机代码和使用 SpeechLib 互操作来实现,但我更喜欢使用托管库。
更新:我想要实现的是,不必因为个别更改而重复加载整个语法。对于小语法,我通过调用得到了很好的结果
_recognition.RequestRecognizerUpdate()
然后在事件中卸载旧语法并加载重建的语法:
void Recognition_RecognizerUpdateReached(object sender, RecognizerUpdateReachedEventArgs e)
对于大型语法,这变得太昂贵了。