语音识别是通过机器的音频输入设备(如麦克风)获取用户所说的内容,然后进行分析处理,最终将口头表述的内容转换为文本的过程。
要在应用程序中完成语音识别任务,需要用到SpeechRecognizer类(位于Windows.Media.SpeechRecognition命名空间)。该类的使用也比较简单,通常的过程如下:
- 实例化SpeechRecognizer对象。
- 可以向Constraints集合添加自定义的识别约束(规则),只要实现了ISpeechRecognitionConstraint接口的类型都可以,如基于SGRS文件定义的语法规则等。这一步是可选的,只有对语音识别有较为严格的要求时才会考虑自定义识别规则。
- 调用CompileConstraintsAsync方法编译上一步中定义的识别规则。就算没有添加自定义规则也应该调用CompileConstraintsAsync方法,因为语音识别组件也需要编译系统默认的识别规则。
- 调用SpeechRecognizer或者RecognizeWithUIAsync方法开始进行识别。识别结束后,会将处理结果封装在SpeechRecognitionResult对象返回。可以从SpeechRecognitionResult对象的Text属性中获得到已经识别出来的文本内容。Status属性反映语音识别的操作状态,如果为Success则表明整个识别过程顺序完成。
接下来是一个语音识别的小示例。
应用主页面的XAML代码如下:
<StackPanel>
<TextBox x:Name="txtInput" Height="100" TextWrapping="Wrap"/>
<Button x:Name="btn