【问题标题】:Full stop added by speech recognition at the end of the spoken sentence doesn't match action语音识别在口语句子末尾添加的句号与动作不匹配
【发布时间】:2020-04-28 06:44:36
【问题描述】:

我开发了一个虚拟助手,并正在使用网络聊天通过认知语音服务对其进行测试。 我有一个问题:机器人的一些响应包括建议的操作,例如,

"Choose a color"
"RED" "BLUE" "GREEN"

通过输入或单击所选颜色,一切正常。 如果我使用麦克风讲话,则在句子末尾添加一个“句号”,即“BLUE”。 这样 LUIS 就无法识别答案并重新提出问题。

让它正确识别的最佳方法是什么?有没有办法禁止语音引擎添加最后的句号?还是有更好的解决方案? (比如标准化 LUIS 中的标点符号以使其忽略它或其他什么?)

【问题讨论】:

    标签: botframework speech-recognition azure-language-understanding azure-cognitive-services azure-speech


    【解决方案1】:

    在您的机器人收到标点符号之后,但在将其发送到 LUIS 并由其处理之前,您需要清除标点符号的活动。您可以使用以下正则表达式删除不需要的字符(选择要清除的字符...我包含了很多)并替换剩余的堆叠空白,如下所示:

    让 text = turnContext.context.activity.text; 让scrubbedText = text.replace(/[.,/#!$%\^&*;:{}=-_`~()]/g,""); const finalString = scrubbedText.replace(/\s{2,}/g," ");

    然后,使用清理后的文本更新 activity.text 并将其发送到 LUIS。

    【讨论】:

    • 虽然它看起来更像是一种解决方法,但它确实有效,因此我将其标记为一种解决方案,但我最喜欢的一个会知道一种方法来禁用“,”的自动附加来自 STT 引擎的句子结尾。
    • 目前还没有可用的功能。上述方法是一种可接受的做法,已在许多不同的场景中使用。
    猜你喜欢
    • 2012-03-14
    • 2012-12-16
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多