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

问题描述 投票:0回答:1

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

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

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

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

botframework speech-recognition luis azure-cognitive-services azure-speech
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.