次のコードを考えると、
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)
大規模な文法の場合、これはコストがかかりすぎます。