void Change() { lock (this) { if (!Init()) { return; } var list = new List <String>(); list.Add(_Name); list.AddRange(_dic.Keys); _speech.SetChoices(list); //var gc = _rg.Grammars.Count; ////_rg.RecognizeAsyncCancel(); //_rg.UnloadAllGrammars(); //var cs = new Choices(); //cs.Add(_Name); //cs.Add(_dic.Keys.ToArray()); //var gb = new GrammarBuilder(); //gb.Append(cs); //var gr = new Grammar(gb); //// 不能加载自然语法,否则关键字识别率大大下降 ////_rg.LoadGrammarAsync(new DictationGrammar()); //_rg.LoadGrammarAsync(gr); //// 首次启动 //if (gc == 0) _rg.RecognizeAsync(RecognizeMode.Multiple); //var gc = (Int32)_rg.GetValue("Grammars").GetValue("Count"); //_rg.Invoke("UnloadAllGrammars"); //var cs = "Choices".GetTypeEx().CreateInstance() as IList; //cs.Add(_Name); //cs.Add(_dic.Keys.ToArray()); //var gb = "GrammarBuilder".GetTypeEx().CreateInstance(); //gb.Invoke("Append", cs); //var gr = "Grammar".GetTypeEx().CreateInstance(gb); //_rg.Invoke("LoadGrammarAsync", gr); //// 首次启动 //if (gc == 0) _rg.Invoke("RecognizeAsync", "RecognizeMode".GetTypeEx().GetFieldEx("Multiple")); } }
void Change() { if (_speech == null) { return; } lock (this) { if (!Init()) { return; } var list = new List <String> { Name }; list.AddRange(_dic.Keys); _speech.SetChoices(list); } }