处理这个问题的方法是在你的语法中。您需要将这些“不流畅”添加到您的语法规则中。这就是调整语音识别的地方。您需要查看应用程序中所有无法识别的短语并聆听录音,以找出用户所说的“不合语法”,然后添加它们。例如,如果您问用户“您想吃什么,比萨饼还是汉堡包?” 如果您的语法仅设置为处理“披萨”或“汉堡包”并且用户响应“嗯披萨”,那么它将因语法不正确而失败。您需要以可选的方式将“um”添加到规则中。如果您使用的是 XML 语法,它可能看起来像这样:
<rule id="whatToEat">
<ruleref uri="influencies" repeat="0-1" />
<one-of>
<item>pizza</item>
<item>hamburger</item>
</one-of>
</rule>
<rule id="influencies">
<one-of>
<item>uh</item>
<item>um</item>
</one-of>
</rule>
如果您不想在返回值中包含“影响”,则可以使用标签来返回语义解释。包含这种语义解释的方式因平台而异,但这里有一个示例:
<rule id="whatToEat">
<ruleref uri="influencies" repeat="0-1" />
<one-of>
<item>pizza<tag>out.mySlot="pizza"</tag></item>
<item>hamburger<tag>out.mySlot="hamburger"</tag></item>
</one-of>
</rule>
<rule id="influencies">
<one-of>
<item>uh</item>
<item>um</item>
</one-of>
</rule>
Microsoft 在此处讨论了语义解释。