【问题标题】:How to bypass disfluencies in Microsoft.Speech.Recognition?如何绕过 Microsoft.Speech.Recognition 中的不流畅?
【发布时间】:2012-07-20 03:55:54
【问题描述】:

我正在我的呼叫中心实施语音识别。我正在使用 Miscrosoft Speech Platform,我希望能够将我的 DTMF 识别替换为语音识别(例如,“说出您要联系的部门”而不是“按一个进行销售”)。

我的 SpeechRecognitionEngine 完全符合我的要求,但有一个例外。在识别自发语音时,我必须考虑不流利('uh'、'um'、'er'、'you know'、'like')。我的问题是,.NET 框架中是否有任何方法允许识别引擎绕过这些话语并继续搜索实际语音?

如果没有任何预先提供的方法,您将如何绕过这些不流畅性?我怀疑答案可能在于我如何构建我的语法,但任何见解都将不胜感激。

谢谢!

【问题讨论】:

    标签: c# speech-recognition


    【解决方案1】:

    处理这个问题的方法是在你的语法中。您需要将这些“不流畅”添加到您的语法规则中。这就是调整语音识别的地方。您需要查看应用程序中所有无法识别的短语并聆听录音,以找出用户所说的“不合语法”,然后添加它们。例如,如果您问用户“您想吃什么,比萨饼还是汉堡包?”如果您的语法仅设置为处理“pizza”或“hamburger”并且用户响应“um Pizza”,那么它将因语法错误而失败。您需要以可选的方式将“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>
    

    微软有一个关于semantic interpretation here的讨论。

    【讨论】:

    • 感谢您的回复。我尝试这样做,但在实施时,我的识别结果更改为“um Sales”或“uh Administration”(查询公司部门时)。我希望绕过这些填充的暂停,而不是将它们包含在我的结果中。我怎样才能改变语法来完成这个?
    • 这非常适合我的规格。感谢您的帮助,我对 XML 语法的了解严重不足。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多