我刚接触Alexa,并掌握了经典的“太空事实”技能。但是,在启动请求之后,我找不到任何有关如何添加语音的资源。
我想做的事的一个例子: 我:Alexa开放空间事实 Alexa:土星很大 我:下一个
我认为命令“ next”必须是一种话语。我曾考虑过使用广告位或意向确认,但我认为这样还行得通吗?
我想要实现的是,在遇到一个空格之后,用户只需说“下一个”或“另一个”即可再次触发我的功能。
我只是错过了什么吗?没有记录吗?还是不可能?
答案 0 :(得分:0)
“太空事实”技能有一系列事实。因此,您要做的就是在用户说“下一个”或“再一个”时从阵列中选择一个。
使用AMAZON.NextIntent
为了捕获用户的“下一步” 话语,请在交互模型中使用预定义的AMAZON.NextIntent
。因此,当用户说“ Next” 时,此意图将被映射。还要添加“更多” 作为此意图的补充说明。
现在,在您的后端代码中添加AMAZON.NextIntent
处理程序,并从事实数组中获取另一个事实作为响应。 (添加一些逻辑,以便该技能不会再随机返回相同的事实。您可以使用sessionAttributes
来跟踪读取的事实索引)
注意:要让Alexa说出第一个事实后等待用户输入,您需要保持会话状态。据我所记得,事实技能在讲完第一个事实之后就结束了会议。
根据响应中的shouldEndSession
参数使会话保持活动状态。对于任何请求(如果未提供),shouldEndSession
默认为true
。在您的情况下,对LaunchRequest
的响应应将此shouldEndSession
参数设置为false
。只有会话保持打开状态,用户才能说出“下一个” 。
阅读this answer,以了解有关如何使用ask-nodejs-sdk使会话保持活动状态的更多信息。
答案 1 :(得分:0)
仅在“构建”选项卡下的ASK开发人员控制台中添加您的对话(话语和回复)。 您将需要执行以下操作- 1.创建意图 2.添加话语 3.添加回复 4.保存并构建