Exemple #1
0
        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"));
            }
        }
Exemple #2
0
        void Change()
        {
            if (_speech == null)
            {
                return;
            }

            lock (this)
            {
                if (!Init())
                {
                    return;
                }

                var list = new List <String>
                {
                    Name
                };
                list.AddRange(_dic.Keys);
                _speech.SetChoices(list);
            }
        }