语音识别在口语句子末尾添加的句号与动作不匹配

Full stop added by speech recognition at the end of the spoken sentence doesn't match action

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

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

通过输入或点击选择的颜色一切正常。 如果我使用带麦克风的语音,则在句子末尾添加 "full stop",即 "BLUE." 这样 LUIS 就无法识别答案并重新提出问题。

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

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

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

然后,使用擦除后的文本更新 activity.text 并将其发送给 LUIS。