当前位置:首页 > 资讯 > 正文

如何指定语音识别器语言

如何指定语音识别器语言

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

了解如何选择要用于语音识别的安装语言。

此处,我们枚举了已安装在系统上的语言,标识了默认语言,并选择了不同的语言以供识别。

  • Windows.Media.SpeechRecognition
  • Windows.Globalization

本主题基于快速入门:语音识别而构建。你应该已经大致了解了语音识别和识别约束。

要完成该教程,请阅读这些主题来熟悉此处讨论的技术:

  • 安装 Microsoft Visual Studio。
  • 获取开发人员许可证。有关说明,请参阅使用 Visual Studio 2013 开发。
  • 采用 JavaScript 创建你的第一个应用。
  • 采用 JavaScript 的 Windows 应用商店应用的路线图
  • 通过快速入门:添加 HTML 控件并处理事件来了解事件
  • 要获得有助于设计既实用又有吸引力且支持语音的应用的提示,请参阅适用于 Windows Phone 的语音设计指南。

语音识别器使用系统语音语言作为其默认识别语言。用户可在设备的“设置 > 系统 > 语音 > 语音语言”屏幕上设置此语言。

我们通过查看 systemSpeechLanguage 静态属性来识别默认语言。



已安装的语言在不同的设备之间可能会不同。如果对于特定的约束你依赖于某种语言,你应验证是否存在该语言。

注意  在安装新的语言包后,必须重新启动。如果指定的语言不受支持或未完成安装过程,将引发异常,其错误代码为 SPERR_NOT_FOUND (0x8004503a)。

 

通过检查 SpeechRecognizer 类的下列两种静态属性之一,来确定设备上受支持的语言:

  • supportedTopicLanguages—可与预定义的听写语法和 Web 搜索语法一起使用的 Language 对象的集合。

  • supportedGrammarLanguages—可与列表约束或语音识别语法规范 (SRGS) 文件一起使用的 Language 对象的集合。

要指定一种语言,请将 Language 对象传入 SpeechRecognizer 构造函数。

此处,我们将 "en-US" 指定为识别语言。



可对主题约束进行配置,方法是将 SpeechRecognitionTopicConstraint 添加到 SpeechRecognizerconstraints 集合,然后调用 compileConstraintsAsync。如果识别器未使用支持的主题语言进行初始化,则将返回 TopicLanguageNotSupportedspeechRecognitionResultStatus

可对列表约束进行配置,方法是将 speechRecognitionListConstraint 添加到 SpeechRecognizerconstraints 集合,然后调用 compileConstraintsAsync。你无法直接指定自定义列表的语言。该列表将改为使用识别器的语言进行处理。

SRGS 语法是由 SpeechRecognitionGrammarFileConstraint 类表示的开放式标准 XML 格式。与自定义列表不同,你可以在 SRGS 标记中指定语法语言。如果识别器未使用与 SRGS 标记相同的语言进行初始化,compileConstraintsAsync 将失败并返回 TopicLanguageNotSupportedSpeechRecognitionResultStatus

响应语音交互

设计人员