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

C# Microsoft语音平台-在SRGS语法中使用听写,c#,speech-recognition,C#,Speech Recognition,我正在开发一个基于微软语音API的C#应用程序。 我需要在我的应用程序中管理静态和自由文本。例如,用户可以说“搜索文件[这里免费听写,让用户给出文件名]” 基于本文(),我尝试使用以下语法: <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" > <r

我正在开发一个基于微软语音API的C#应用程序。 我需要在我的应用程序中管理静态和自由文本。例如,用户可以说“搜索文件[这里免费听写,让用户给出文件名]”

基于本文(),我尝试使用以下语法:

<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>

out.SpokenText=rules.latest();
但是,根据验证器,该语法文件不正确(“警告:无法加载外部语法‘语法:听写’”),并且无法工作

有人知道如何在微软语音平台上混合使用自由文本和静态语法吗


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

可以是信息的来源

我可以注意到您的错误是关于
语法:听写
,而您的属性是
sapi:dictation
。我认为您必须确保xml文件在构建时部署良好


您还应确保已从您的区域性安装了Speech SDK运行时语言,即文本到语音和语音识别语言。

如果旧问题位于同一主题上,则无需启动新问题。可能重复的问题不在同一主题上。Microsoft中的听写支持。语音命名空间是新的。此外此外,System.Speech和Microsoft.Speech之间的语法似乎有所不同。