【问题标题】:alexa-sdk response.listen(reprompt speech)alexa-sdk response.listen(提示语音)
【发布时间】:2017-12-27 16:41:11
【问题描述】:

Alexa High Low Game Skill的startGameHandlers中有如下代码:

'AMAZON.YesIntent': function() {
    this.attributes["guessNumber"] = Math.floor(Math.random() * 100);
    this.handler.state = states.GUESSMODE;
    this.response.speak('Great! ' + 'Try saying a number to start the game.').listen('Try saying a number.');
    this.emit(':responseReady');
},

在我开始游戏并回答“是”后,我听到 Alexa 的语音输出“太好了!试着说出一个数字来开始游戏。”。如果我没有回应,我应该期待“试着说一个数字”的提示性演讲吗?被 Alexa 玩弄了?我观察到的是,即兴演讲从未播放过。

在会话结束之前,Alexa 将等待我的回复多长时间?看来我必须快速响应才能继续,否则会话将关闭。

【问题讨论】:

    标签: alexa-skills-kit aws-sdk-nodejs


    【解决方案1】:

    是的,Alexa 应该播放即兴演讲。等待8s后触发reprompt。再次提示后的响应时间也是 8 秒。在此时间范围之后,会话关闭。

    要解决 Alexa 不触发重新提示的问题,您可以尝试像这样发送响应。

    'AMAZON.YesIntent': function() {
        this.attributes["guessNumber"] = Math.floor(Math.random() * 100);
        this.handler.state = states.GUESSMODE;
        var speechOutput = 'Great! Try saying a number to start the game.';
        var repromptSpeech = 'Try saying a number.';
        this.emit(':ask', speechOutput, repromptSpeech);
    };
    

    【讨论】:

    • 你如何从reprompt演讲中得到回应?
    • 视情况而定。要么响应是新意图。这意味着对重新提示的响应正在触发意图。在这种特殊情况下,我会推荐一个插槽,您可以在其中存储您在 SpeechOutput/repromptSpeech 中询问的值。
    猜你喜欢
    • 2018-04-19
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    相关资源
    最近更新 更多