如何绕过Microsoft.Speech.Recognition中的不流畅?

时间:2012-07-18 21:51:10

标签: c# speech-recognition

我正在呼叫中心实施语音识别。我正在使用Miscrosoft语音平台,我希望能够用语音识别替换我的DTMF识别(例如,“说出你想要达到的部门”,而不是“按一个用于销售”)。

我的SpeechRecognitionEngine完全符合我的规格,但有一个例外。在承认自发言论的同时,我必须解释不流利('呃','嗯','呃','你知道','喜欢')。我的问题是,.NET框架中是否有任何方法允许识别引擎绕过这些话语并继续搜索实际语音?

如果没有任何预先提供的方法,你会如何绕过这些不满?我怀疑答案可能在于我如何构建我的语法,但任何见解都会受到高度赞赏。

谢谢!

1 个答案:

答案 0 :(得分:0)

处理此问题的方法是在你的语法中。您需要将这些“不流畅”添加到语法中的规则中。这就是语音识别的调整。您需要查看应用程序中所有无法识别的短语,并听取录音来确定用户所说的“超出语法”然后添加它们。例如,如果你问用户“你想吃什么,比萨饼或汉堡包?”如果您的语法只设置为处理“披萨”或“汉堡包”并且用户响应“嗯披萨”那么它将因语法失败而失败。您需要在规则中添加“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对semantic interpretation here进行了讨论。