问题标签 [alexa-skills-kit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2493 浏览

javascript - Alexa Skills Kit:如何使用 JS 将图像添加到标准卡片

我一直在构建alexa-skills-kit-js/samples/ 中的示例

但他们没有任何您将图像添加到响应卡的位置。

response.askWithCard(speechOutput, repromptOutput, cardTitle, cardContent);

图像去哪儿了?cardContent 通常是一个字符串。我只是把它变成一个包含图像的对象......?

0 投票
2 回答
603 浏览

java - 从 Speechlet 枚举自定义槽值

有什么方法可以检查或枚举您的交互模型中设置的自定义槽?例如,假设您有一个具有以下意图的意图模式:

此外,您已将 LIST_OF_SHAPES 自定义槽定义为具有以下值:

问题:我可以从我的 Speechlet 或我的 RequestStreamHandler 中调用一种方法来枚举那些自定义插槽值吗?

我查看了 位于此处的 Alexa Skills Kit 的 SDK Javadocs

我什么也没找到。

我知道我可以获得带有意图的插槽的值:

我什至可以枚举所有传入的插槽(以及它们的值):

我真正想要的是:

有了这些信息,我就不必维护两个单独的“列表”或“枚举”;一个在交互模型中,另一个在我的请求处理程序中。似乎这应该是一件事吧?

0 投票
0 回答
921 浏览

amazon-web-services - Alexa Skill 工具包:目标 Lambda 应用程序返回失败响应

我基于https://github.com/amzn/alexa-skills-kit-java/tree/master/samples/src/main/java/helloworld使用 Java 创建了一个简单的 Hello world Alexa Skill 作为 AWS Lambda 。

但是当我尝试测试我的 lambda 函数时,它返回了以下错误

{

"errorMessage": "加载类 helloworld.HelloWorldSpeechletRequestStreamHandler 时出错:com/amazon/speech/speechlet/lambda/SpeechletRequestStreamHandler",

“errorType”:“类 java.lang.NoClassDefFoundError”

}

但我上传的 zip 文件包含HelloWorldSpeechletRequestStreamHandler

为什么会出现这个错误?

0 投票
1 回答
831 浏览

alexa-skills-kit - Alexa Skills Kit:无法让 AMAZON.NUMBER、AMAZON.DATE 工作

这应该简单明了,但我很难让它工作。所以:

将 AMAZON.LITERAL 用于以下数字可以正常工作:

意图架构:

示例话语:

但是,当我将插槽类型更改为AMAZON.NUMBER(应该是)并说出“四万”或“三九六七四”时,它停止工作。返回的意图是用于帮助的意图,而不是用于帮助的意图Group_Size(换句话说,返回了不相关/不正确的意图)。

AMAZON.DATE当我用于我的其他意图之一时,同样的问题。

我对 ASK 还很陌生,所以我需要做些什么才能让这些预定义类型正常工作吗?我浏览了文档和一些代码示例,但没有发现任何问题。请问有什么指点吗?

0 投票
1 回答
328 浏览

alexa - 在 Alexa 上显示多个家庭卡显示时遇到问题

以前当我向 alexa 发出搜索命令时。我刚收到 5 件商品作为回应。附上截图。

在此处输入图像描述

比我展示了第一个项目的图像,其中有 5 个项目作为响应。对于具有单张卡片的响应,卡片图像和卡片价值显示得非常好。附上截图。

在此处输入图像描述

但我想为每 5 个项目显示 5 个图像。这在一张卡中是不可能的,因为一张卡只能有一张图像。同样对于一个呼叫,只能给出一个响应,可以有一张卡。一个呼叫的多个响应将不起作用。

这是我想尝试的,但不确定 alexa 是否有这个功能。

  1. 我向 alexa 发出命令以查找某些内容。

  2. 我得到 5 个项目来响应该命令。

  3. 这 5 个项目作为响应,我想用作自动命令(Alexa 将自动为收到的每个项目执行一个调用,而不是提示用户说出或给出命令)并执行 5 个调用。我会得到 5 个回复,每个回复都有一张卡片。因此,这 5 张卡片将附有 5 张图像。

DO alexa 有一个自动命令选项,我可以在收到响应时触发它,但我在 Doc 中找不到它。

如果我可以尝试任何其他方法?

有人帮忙吗?谢谢你!

0 投票
5 回答
2365 浏览

aws-lambda - Amazon Alexa Device Discovery for Smart Home API with Lambda 失败

我已经设置了一个 Alexa 智能家居技能,所有设置都完成了,oauth2 处理完成了,并且在我的 Amazon Echo 设备上启用了技能。Lambda 函数已设置并链接到技能。当我“发现设备”时,我可以在日志中看到负载命中了我的 Lambda 函数。我实际上是通过 context.succeed() 方法返回带有测试设备的以下 JSON。但是 Echo 告诉我它找不到任何设备。

上面的有效载荷看起来正确吗?

0 投票
1 回答
2154 浏览

alexa - 我们如何实现“Alexa,Simon 说......”意图捕捉具有广泛变化的自由形式语音作为文本?

我想捕捉用户以文本形式对 Alexa 说的任何内容。'Alexa,Simon 说......' 的工作原理正是如此。有人可以暗示如何实现该意图吗?

我看了这个这个这个,但是建议的答案对我不起作用,而且还没有具体的“公认”答案。

只要指定了示例话语(即硬编码字面意思),LITERAL 槽类型就可以工作。就像上述线程中建议的答案一样,我试图通过提供 400 多种可能的话语组合来“训练”,希望它能以某种方式找出其余的组合。但是,没有骰子。

我的输入可能是随机的,如“TBD-2019-UK”、“17_TBD_UK_Leicester”、“17_TBD_UK_Leicester 1”、“18_TBD_UK_Leicester 2”、“Chicago IL United States”等。这是一年中相当随机的组合,城市,州,国家,其他一些没有特定顺序的关键文本(现在让我们忽略特殊字符)。即使在 Sample Utterances 中指定了“Chicago IL United States”,LITERAL 也无法自动捕获诸如“Pittsburgh PA United States”之类的内容,除非这也是硬编码的。我无法想出年份、城市、州、国家、其他一些关键数据点的所有可能排列和组合(......因为这听起来不切实际/荒谬)。

另外,用户可以添加更多值。所以它需要是智能和动态的。

问题是,如果没有为话语找到匹配的意图,而不是返回用户的语音文本,我的 Alexa 就什么也做不了。它只是不做任何事情就消失了。有任何想法吗?

0 投票
2 回答
2924 浏览

alexa-skills-kit - Alexa Skills Kit 输入的“包罗万象”不是明确的意图

我正在构建一个需要能够处理问题答案的 Alexa 应用程序。我有一个SkipIntent意图,其中包含示例话语以跳过一个问题。

我想建立一个AnswerIntent可以接受任何答案并根据正确答案处理它们的答案。我尝试使用Amazon.LITERAL带有一些示例的类型(来自这个问题:How to accept the Free form text as input to Amazon Skill Kit?):

如果我在答案前加上“是它”或其他定义的前缀之一,这实际上有效,但它没有得到“仅答案”部分。它似乎与我SkipIntent的定义为:

我定义AnswerIntent正确吗?如果没有,有没有更好的方法来捕捉无限的可能性?亚马逊似乎不喜欢 LITERAL 方法,所以我愿意接受更好的方法。

0 投票
1 回答
675 浏览

java - 自动装配的存储库除了 main() 之外的所有地方都是空的

我能够从 main() 内部获得存储库功能,但在其他任何地方都没有。

从我读过的所有内容来看,这似乎与我试图在 Spring 的“上下文”或“容器”之外创建的 @Autowired 成员有关。

其他人似乎想出的典型罪魁祸首与使用“new”创建一个最终超出 Spring 范围的对象有关,但我已尽我所能确保创建依赖于 @Autowired 的所有内容由 Spring 本身。

我的 main() 方法中有以下简单的 oneOff() 方法,用于打印前 10 个名称,这些名称在运行时按预期工作:

}

产生:

但是,当我调用刚刚粘贴到我的 servlet 类中的重复方法时,存储库永远不会被实例化并且我得到 NullPointerExceptions。

小服务程序类:

实际使用存储库的 Speechlet 类:

再次使用 oneOff() 方法:

0 投票
4 回答
3160 浏览

alexa - Alexa 技能工具包 -Lambda 函数 - 无法验证 SpeechletRequest (java)

我尝试基于https://github.com/amzn/alexa-skills-kit-java创建一个 HelloWorld 技能,但是当我测试 lambda 函数时,它显示了这个错误

这是我的 Java 文件

我错过了什么??