我对Alexa的回应有某些疑问。
1. this.emit(':ask', speechOutput, repromptSpeech)
我知道this.emit(':tell',speechOutput)
将导致Alexa说出speechOutput
然后关闭会话,并且this.emit(':ask', speechOutput, repromptSpeech)
不会关闭会话,Alexa将等待用户输入。但是(用户提供的)新输入将存储在哪里。例如:
用户:“ blah blah blah” 2号是星期几{本来应该是广告位输入}
Alexa:对不起,我没有得到日期/*speechOutput*/
。你会为我重复一遍吗? /*repromptSpeech*/
用户:那是2018年1月2日。
现在,此新信息将在2018年1月2日存储在哪里。
有什么函数可以传递可以存储用户新响应的参数?
2.`this.emit(':responseReady')`
如果我在没有调用函数this.response.speak(speechOutput)
的情况下多次使用this.emit(':responseReady')
,它将按预期运行,还是Alexa会说出首先遇到的speechOutput
?
3.如何使对话互动?
以我的能力,我向用户提供了很多不好的数据。
到目前为止,我一直在做的是:
一,从网上获取结果
二。建立所有数据(其中
包含100多行)
三,用speechOutput
讲speechOutput
但是我想知道有没有办法让我给用户2或3行回复,然后问“您想了解更多吗?”。根据用户的回答,即“是”或“否”,我将讲更多的结果,或者只是从技能上讲this.emit(':tell',speechOutput)
。
最佳答案
是的,您可以使用SSML提供2线或3线响应,并发出询问,以便Alexa麦克风可以打开,以接受用户的输入,具体取决于您提出的问题类型,您必须像“您是否知道更多”那样处理意图。用户的可能响应为Amazon.Yes / Amazon.No。使用状态具有更好的意图映射。
关于node.js - Alexa响应和响应生成器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48625529/