利用.framework 4 提供system.speech的类库,写个简单的speech-to-text

利用microsoft help view,可以得到相关的简单示例,在这里,就简单梳理下,speech-to-text的过程操作。

第一步,实例化一个语音识别引擎SpeechRecognitionEngine,进行相关的属性配置,比如有区域设置、语音输入类型、语法规范,等等

1.区域配置,其实,可以在初始化引擎对象时,默认就行;也就可以这样制定初始化new SpeechRecognitionEngine(new CultureInfo("en-US"))。

通过help view示例,可查询到引擎的默认属性。

RecognizerInfo info = sre1.RecognizerInfo;
            string AudioFormats = "";
            foreach (SpeechAudioFormatInfo fmt in info.SupportedAudioFormats)
            {
                AudioFormats += String.Format("       {0}\n", fmt.EncodingFormat.ToString());
            }
            string AdditionalInfo = "";
            foreach (string key in info.AdditionalInfo.Keys)
            {
                AdditionalInfo += String.Format("      {0}: {1}\n", key, info.AdditionalInfo[key]);
            }
            Console.WriteLine(String.Format(
                               "Name:                 {0 }\n" +
                               "Description:          {1} \n" +
                               "SupportedAudioFormats:\n" +
                               "{2} " +
                               "Culture:              {3} \n" +
                               "AdditionalInfo:       \n" +
                               " {4}\n",
                               info.Name.ToString(),
                               info.Description.ToString(),
                               AudioFormats,
                               info.Culture.ToString(),
                               AdditionalInfo));

利用.framework 4 提供system.speech的类库,写个简单的speech-to-text_第1张图片

2.语音输入类型

提供有SetInputToAudioStream(),SetInputToDefaultAudioDevice(),SetInputToNull(),SetInputToWaveFile(),SetInputToWaveStream()五种方法,详见help文档

这里使用了通过win7的录音笔,录制的音频wma,再通过格式转化为wav。

3.语法规范

没有深究,help文档也有详细说明,直接就按默认的。

第二步,设置事件响应。在本示例中,设置了两个事件,即实时读取识别内容和识别后在读取。注意:分别测试两个事件较好。

sre1.SpeechRecognized += new EventHandler(SpeechRecognized);              //sre1为语音引擎实例化的对象
sre1.SpeechHypothesized += new EventHandler(SpeehchHypothesizing);

                  //响应事件后,打印识别内容。

static void SpeechHypothesizing(object sender, SpeechHypothesizedEventArgs e)
        {
            Console.WriteLine(e.Result.Text);
        }

 

原文是:本书的产品设计应用神经生物学、认知科学、以及学习理论,这使得这本书能够将这些知识深深地印在你的脑海里,不容易被遗忘。

下面是用vs2012写的源代码和音频文件。

 http://download.csdn.net/detail/jixiang1234567/6294101

 

你可能感兴趣的:(利用.framework 4 提供system.speech的类库,写个简单的speech-to-text)