我正在尝试将语义和听写请求的结果结合在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”
答案 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平台。