我试图在C#中使用多个语法进行语音识别,我想在某些情况下禁用它们。
我的问题是,如果我禁用它们没有任何更改,这里是我的代码的一部分:
recognizer.LoadGrammar(g_init);
recognizer.LoadGrammar(g_menu);
recognizer.LoadGrammar(g_timer);
recognizer.LoadGrammar(g_say);
recognizer.Grammars[recognizer.Grammars.IndexOf(g_menu)].Enabled = false;
recognizer.Grammars[recognizer.Grammars.IndexOf(g_timer)].Enabled = false;
recognizer.Grammars[recognizer.Grammars.IndexOf(g_say)].Enabled = false;
这里我想禁用init语法并启用菜单语法
recognizer.Grammars[recognizer.Grammars.IndexOf(g_init)].Enabled = false;
recognizer.Grammars[recognizer.Grammars.IndexOf(g_menu)].Enabled = true;
我想知道如何禁用语法并在稍后阶段启用它们
答案 0 :(得分:1)
Grammar
个对象具有Enabled
属性,您可以直接操作。但是,更新语法后,您可能还需要synchronize the recognizer。
所以:
g_init.Enabled = false;
recognizer.RequestRecognizerUpdate();