0

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

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

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

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

4

1 回答 1

0

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

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

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

于 2020-01-10T19:18:43.520 回答