首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请看语音转换成文字的代码,运作不成功

2013-09-16 
请看语音转换成文字的代码,运行不成功?public class SpRecognition{private static SpRecognition _Instan

请看语音转换成文字的代码,运行不成功?


        public class SpRecognition
        {
            private static SpRecognition _Instance = null;
            private SpeechLib.ISpeechRecoGrammar isrg;
            private SpeechLib.SpSharedRecoContextClass ssrContex = null;
            private System.Windows.Forms.Control cDisplay;  //fan:用来显示语音转化后的文本
            public System.Windows.Forms.TextBox textbox;   //fan:增加textbox在SpRecognition 类
            public SpRecognition()
            {
                ssrContex = new SpSharedRecoContextClass();
                isrg = ssrContex.CreateGrammar(1);
                SpeechLib._ISpeechRecoContextEvents_RecognitionEventHandler recHandle =
                new _ISpeechRecoContextEvents_RecognitionEventHandler(ContexRecognition);
                ssrContex.Recognition += recHandle;
            }
            public void BeginRec(Control tbResult)
            {
                isrg.DictationSetState(SpeechRuleState.SGDSActive);
                cDisplay = tbResult;
                //cDisplay.Text = "dddddddddd";  测试,可以成功在textbox1那里显示出来

            }
            public static SpRecognition instance()
            {
                if (_Instance == null)


                    _Instance = new SpRecognition();
                return _Instance;
            }
            public void CloseRec()
            {
                isrg.DictationSetState(SpeechRuleState.SGDSInactive);
            }
            private void ContexRecognition(int iIndex, object obj, SpeechLib.SpeechRecognitionType type, SpeechLib.ISpeechRecoResult result)
            {
                cDisplay.Text += result.PhraseInfo.GetText(0, -1, true);
            }
            public void MessageBegin()
            {
                textbox = new TextBox();
                textbox.Text = "Notice :this time ,it Begin recoginse";
                MessageBox.Show(textbox.Text);

            }
            public void MessageEnd()
            {
                textbox = new TextBox();
                textbox.Text = "Notice :this time ,it End recoginse";
                MessageBox.Show(textbox.Text);
            }
        }



F6生成没有问题,使用以下按钮的代码运行,每次一点击的时候,就提示出错。 从 IClassFactory 为 CLSID 为 {47206204-5ECA-11D2-960F-00C04F8EE628} 的 COM 组件创建实例失败,原因是出现以下错误: 80045077。





private void button3_Click(object sender, EventArgs e)
        {            
            SpRecognition cc = new SpRecognition();
            cc.MessageBegin();
            cc.BeginRec(textBox2);  //Fan:把内容输入textbox1        
        }


[解决办法]
帮您找了个例子

热点排行