Microsoft语音平台 - 在SRGS语法中使用听写

时间:2014-05-22 11:55:31

标签: c# speech-recognition

我正在开发基于Microsoft Speech API的C#应用​​程序。 我需要在我的应用程序中管理静态和自由文本。例如,用户可以说"搜索文件[此处为免费听写让用户提供文件名]"。

根据这篇文章(Combine free-form dictation and semantic in a srgs grammar),我尝试使用以下语法:

<grammar version="1.0" xml:lang="fr-fr"  mode="voice" root="toplevel"
xmlns="http://www.w3.org/2001/06/grammar" tag-format="semantics/1.0" >
  <rule id="toplevel" scope="public">
    <ruleref uri="#tmkAction" />
    <ruleref special="GARBAGE"/>
    <ruleref uri="#tmkItemType" />
    <ruleref uri="sapi:dictation" type="application/srgs+xml"/>
    <tag>out.SpokenText=rules.latest();</tag>
  </rule>

但是,根据验证器,这个语法文件不正确(&#34;警告:无法加载外部语法&#39;语法:听写&#39;&#34;)并且不起作用。

有没有人知道如何在Microsoft Speech Platform中混合使用自由文本和静态语法?

谢谢

1 个答案:

答案 0 :(得分:0)

当您在最后一个ruleref标记中使用sapi名称空间时,首先声明它:xmlns:sapi="http://schemas.microsoft.com/Speech/2002/06/SRGSExtensions

This可以作为信息来源。

我注意到您的错误大约是grammar:dictation,而您的属性是sapi:dictation。我认为你必须确保你的xml文件在构建时得到了很好的部署。

您还应该确保从您的文化中安装了Speech SDK Runtime Languages;文本到语音一和语音识别一。 Here