我已经在XML中为C#定义了多个规则。加载文件并最终调用RecognizeAsync(RecognizeMode.Multiple),希望它能成为连续识别。 SpeechRecognized事件正确地从语法文件中返回已识别的文本。
现在,我希望有一个规则接受"比率为2到3",但返回显示文本"比例为2:3"。我定义了以下规则,该规则适用于返回"比例为2:3:" :
<rule id="ratio" scope="public">
<example>ratio of 2 to 3</example>
ratio of
<ruleref uri="#numbers"/><tag>$.value1=$$; </tag>
<item> to </item>
<ruleref uri="#numbers"/><tag>$.value2=$$;</tag>
<tag>$="ratio of "+ $.value1+ ":" +$.value2;</tag>
</rule>
但是因为这是一个非常最底层的规则,有多个规则可以称之为,我发现的唯一方法是回应&#34; 2:3&#34;更高的规则是由每个更高的规则也使用语义解释。这将意味着对规则的大量额外编码,否则不需要语义。
那么,在XML规则中是否存在&#34;比率&#34;让它回归&#34;比例2:3&#34;不使用语义?或者更重要的是,在XML中是否有指定被识别的单词&#34; to&#34;在&#34;比率为2比3&#34;实际上是&#34;:&#34;?或者就此而言,如何将显示从&#34;更改为&#34;到&#34;两个&#34;或&#34;到&#34;或者&#34;以及#34;或&#34;:&#34;?
感谢您的任何建议。