如何使用"退出"停止Alexa技能或处理无法识别的话语?

时间:2018-04-20 10:38:51

标签: node.js alexa alexa-skills-kit

我正在玩Alexa SDK,我遇到了一个奇怪的行为。我正在尝试实现用户结束会话的所有可能方式。我遇到的问题是"退出"返回Alexa说"出现问题......"并立即退出技能。所有其他单词如" stop"或者"取消"工作正常并返回再见信息。

以下是我实现处理程序的方法:

'AMAZON.CancelIntent': function () {
    this.emit('SessionEndRequest');
},
'AMAZON.StopIntent': function () {
    this.emit('SessionEndRequest');
},
'SessionEndRequest': function() {
    const speech_output = 'Goodbye and take care!'

    this.emit(':tell', speech_output);
},

正如您所看到的,为了尽可能简化这一点,我将 StopIntent CancelIntent 重定向到 SessionEndRequest ,它将返回一个再见信息。这很好用,除了"退出"这是不被承认的。

有没有办法实现这个?我尝试使用自定义意图(称为ExitIntent)和话语"退出"加上其他一些像"看到你","直到下一次"并且所有工作都很好,除了"退出"发声。

还是有办法处理一个无法识别的话语 - 即。返回 HelpIntent

2 个答案:

答案 0 :(得分:2)

如果您想处理无法识别的话语,只需创建Unhandled请求即可。

'Unhandled': function () {
     const speech_output = 'Goodbye and take care!'
     this.emit(':tell', speech_output);
}

这可以解决您的“退出”无法解决的问题。

答案 1 :(得分:0)

我有同样的问题。简单修复,将“退出”添加为AMAZON.StopIntent