日期:2014-05-17  浏览次数:21223 次

有谁用过SpeechSDK,做语音转换成文本。语音识别问题 C#
本帖最后由 milian91 于 2012-10-26 13:08:20 编辑
我在msdn上找到了:SpeechRecognitionEngine 类的示例源码,能够转换成文本,但是这个程序是控制台应用程序。
但是我把转到winfrom上去时出现:
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine() ;
 recognizer.SetInputToDefaultAudioDevice(); 值不在预期的范围内,错误。我下载别人写的类似转换程序也是出现这问题,
我用的是window2003,安装SpeechSDK,以及语言包,控制台应用程序能正常转换,但是winFrom就不能,再指定:
以从默认音频设备接收输入(SetInputToDefaultAudioDevice)时报错。




有哪位大神知道这个问题怎么解决。


这下面是我转换的代码:

  static bool completed;
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            using (SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine())//new CultureInfo("zh-CN")
            {

                //Create and load the exit grammar.
                Grammar exitGrammar = new Grammar(new GrammarBuilder("exit"));
                exitGrammar.Name = "Exit Grammar";
                recognizer.LoadGrammar(exitGrammar);

                // Attach event handlers to the recognizer.
                recognizer.SpeechRecognized +=new EventHandler<SpeechRecognizedEventArgs>(SpeechRecognizedHandler);

                // Assign input to the recognizer.
                recognizer.SetInputToDefaultAudioDevice();
                // Begin asynchronous recognition.
                RtxtBox.Text = "马上开始...\r";
                completed = false;
                recognizer.RecognizeAsync(RecognizeMode.Multiple);
                // Wait for recognition to finish.
                while (!completed)
                {
                    Thread.Sleep(333);