在srgs语法中结合自由形式的听写和语义

时间:2012-06-11 21:58:57

标签: grammar speech-recognition context-free-grammar sapi

我正在尝试将语义和听写请求的结果结合在SRGS文档的语义值中。例如,我会说“搜索土豆”,输出将类似于out =“搜索马铃薯”,其中马铃薯是用户说出的随机单词。我想要使​​用垃圾特殊规则,但它似乎不起作用。到目前为止,这就是我所拥有的:

<rule id="rule1" scope="public">
<one-of>
  <item xml:lang="en-us">Search</item>
  <item>Cherche</item>
</one-of>
<tag>out.command="Search"</tag>
<tag>out.param1=<ruleref special="GARBAGE"/></tag>
<tag>out=out.command+out.param1;</tag>

我还看到了帖子:Free-form text with custom SRGS based Grammer,其中有人提出了DICTATION标签。但问题是它似乎与SRGS不兼容。

如果有帮助,我使用tag-format =“semantics / 1.0”

2 个答案:

答案 0 :(得分:4)

我也为此寻找过高和低,终于找到了答案。我使用了以下代码并将其加载到System.Speech.Recognition.Grammar中,它运行良好。

<ruleref uri="grammar:dictation" type="application/srgs+xml"/>

只需将此ruleref添加为您想要获取口述文本的项目即可。您可以直接在ruleref:

之后使用此方法将带口字的文本拉出为语义/标记
<tag>out.SpokenText=rules.latest();</tag>

答案 1 :(得分:1)

如果您查看W3C论文“Extending SRGS to Support More Powerful and Expressive Grammars”,您会发现此标准组认为只需要您提及的方案(参见示例1.a),但目前SRGS不支持标准。您的问题是如何使用SRGS执行此操作,但有可能在SRGS之外获得相同结果,这取决于所使用的ASR平台。