天道酬勤,学无止境

alexa-skill

How to make Alexa countdown in seconds

I want to be able to have alexa (audibly) countdown 15 seconds in my skill. I know I can just <break time="15s" /> in SSML. But that isn't audible. I also know I can just do: 15<break time="1s" /> 14<break time="1s" /> or better yet (to account for the time it takes to say the number) 15<break time="0.85s" /> 14<break time="0.85s" /> But that's going to be a ton of repeated code if I do this many times over. So I'm probably going to write a function that takes in a number and a number of seconds, and produces an SSML countdown in that interval. Before I do that, however, I was wondering if

2022-01-18 09:55:48    分类:问答    amazon-web-services   alexa   alexa-skills-kit   alexa-skill   alexa-voice-service

Alexa Dialog Model Step 和 dialogState 从未在 COMPLETED(Alexa Dialog Model Step and dialogState is never in COMPLETED)

问题 我正在使用 PHP 端点实现 Alexa 对话模型。 我使用了 Alexa 文档(https://developer.amazon.com/fr/docs/custom-skills/dialog-interface-reference.html) 这是我的例子: 我的技能: 请求意图话语:在卧室里添加一个 {obj} 插槽:{obj} / 插槽填充 短语: 我:Alexa,在卧室里添加一个对象 Alexa:你想在卧室里添加什么物品? 我:我想在卧室里加一辆汽车 Alexa:你想在卧室里加一辆车吗? 我可以 步骤1: DialogState 已启动我使用 ElicitSlot 设置 {obj} 插槽 第2步: 对话状态为 IN_PROGRESS。 我使用 ConfirmIntent 要求用户确认 第三步: 用户说是/否 ConfirmIntent 现在设置为 CONFIRMED/DENIED 但仍处于 IN_PROGRESS dialogState 应该是 COMPLETED 因为我设置了我所有的 slot 和 intent 值对吗? 那么为什么不应该在这里工作呢? 提前致谢 回答1 您的dialogState未COMPLETE的原因是因为您使用的是Dialog.ElicitSlot指令。 COMPLETED状态仅在您使用Dialog.Delegate指令时才有可能。

2022-01-15 19:01:47    分类:技术分享    alexa   alexa-skills-kit   alexa-skill   alexa-slot

从 promise.then() 方法返回 handler.ResponseBuilder(Returning handler.ResponseBuilder from promise.then() method)

问题 在我的 Alexa 技能的意图处理程序之一中,一旦我的承诺得到解决,我必须返回响应。 代码如下所示: var rcvPromise = receiveMsgQ(); rcvPromise.then(function(speechText) { console.log('rcv Promise resolved with ',speechText); return handlerInput.responseBuilder .speak(speechText) .withSimpleCard('skill_name', speechText) .withShouldEndSession(false) .getResponse(); }); 技能返回错误消息,没有关于错误的其他详细信息。 有没有办法解决这个问题? PS:我需要使用 promise,因为receiveMsgQ()是异步函数调用。 回答1 您看到的错误是因为 NodeJS 和 Alexa SDK 是异步的。 正如您可以从 Alexa SDK 代码中读取的那样,它会调用您的请求处理程序并期望返回一个 Promise。 在您的示例中,由于您的代码在调用rcvPromise.then后没有显式返回任何内容,因此会返回一个空响应,并且 SDK 会向 Alexa 发送一个空响应,从而导致错误。 当您的then()函数将被执行时

2022-01-15 14:58:07    分类:技术分享    node.js   alexa   alexa-skills-kit   alexa-skill

Alexa Dialog Model Step and dialogState is never in COMPLETED

I'm implementing an Alexa Dialog Model with an PHP Endpoint. I used the Alexa doc (https://developer.amazon.com/fr/docs/custom-skills/dialog-interface-reference.html) Here is my example: My skill: RequestIntent Utterance : add an {obj} in the bedroom Slots : {obj} / Slot Filling Phrase: Me : Alexa, Add an object in the bedroom Alexa : What object do you want to add in bedroom ? Me : I would like to add a cars in the bedroom Alexa : You want to add a car in the bedroom ? Me : Yes STEP1: DialogState is STARTED I use ElicitSlot to set the {obj} slot STEP2: dialogState is IN_PROGRESS. I use

2022-01-13 07:53:09    分类:问答    alexa   alexa-skills-kit   alexa-skill   alexa-slot

Returning handler.ResponseBuilder from promise.then() method

In one of the intent handler for my Alexa skill I have to return response once my promise is resolved. Code looks like this : var rcvPromise = receiveMsgQ(); rcvPromise.then(function(speechText) { console.log('rcv Promise resolved with ',speechText); return handlerInput.responseBuilder .speak(speechText) .withSimpleCard('skill_name', speechText) .withShouldEndSession(false) .getResponse(); }); Skill returns with ERROR message with no additional details about error. Is there any way to fix this problem? PS: I need to use promise as receiveMsgQ() is asynchronous function call.

2022-01-10 01:42:49    分类:问答    node.js   alexa   alexa-skills-kit   alexa-skill

“Alexa,打开 Mighty Righty” - 有效 /// “Alexa,问 Mighty Righty 谁是对的,我还是我的丈夫”不起作用(嗯,我不知道那个)("Alexa, open Mighty Righty" - works /// "Alexa, ask Mighty Righty who is right, me or my husband" doesn't work (hmm, I don't know that one))

问题 我发布的技能可以通过“Alexa,打开 Mighty Righty”调用,但是如果用户说“Alexa,问 Mighty Righty 谁是对的,我或我的丈夫”,它将不起作用,该怎么做? https://www.amazon.com/dp/B07SGBR24G/ 这是工作已发布技能的链接。 #------------------------------Part1-------------------------------- # In this part we define a list that contains the player names, and # a dictionary with player biographies Player_LIST = ["me or my wife", "me or my husband", "me or you"] Player_BIOGRAPHY = {"me or my wife": ["She is. Do as she says, and you'll be OK.", "You", "Of course, your wife", "No doubt, it's you"], "me or my husband": ["He is", "You are right", "He is not right", "Your

2021-12-23 14:32:41    分类:技术分享    alexa   alexa-skill   alexa-app

如何修改实时 Alexa 技能?(How do I revise a live Alexa skill?)

问题 我需要修改我发布的 Alexa 技能。 我熟悉亚马逊在发布技能后自动创建的“开发中”技能版本。 我不明白的是我如何迭代我的技能,特别是当我需要同时更改交互模型和链接的 Lambda 函数时? 例如,我可以创建一个单独的“开发中”Lambda 函数,并将其设为我的“开发中”Alexa 技能的默认端点。 但是当我提交我的“开发中”Alexa 技能以供发布时,该“开发中”Lambda 端点将成为我发布的技能的新端点。 我想这可行,我认为这就是亚马逊的意图,但我不想回收我的 Lambda 函数、重新配置 X 射线跟踪等。我使用无服务器框架来部署链接到我的 Alexa 的 Lambda 函数技能,它为我更新了我的 Lambda。 推荐的工作流程是什么? 我觉得我在这里缺少一些基本的东西。 除了“编辑开发版本”之外,我找不到任何亚马逊文档,这显然是不够的。 该页面有一个指向“发布后修改和更新您的技能”的链接,但单击它会将我带到一个关于技能分配的页面。 回答1 Alexa技能 正如您所说,当您的技能发布时,您将拥有实时版本和开发版本。 您的技能的实时版本和开发版本都显示在开发人员控制台上。 您现在可以对技能的开发版本进行更改,例如:交互模型更改、端点更改等。开发人员门户中的任何更改都需要您的技能通过认证过程。 当您提交新版本进行认证时,两个版本都会保留在您的列表中,直到新版本获得认证。

2021-12-23 08:52:44    分类:技术分享    aws-lambda   alexa   serverless-framework   alexa-skill

Alexa Skills Set SDK - 增加技能超时(Alexa Skills Set SDK - increase timeout of skill)

问题 我正在使用 nodejs 上的 Alexa Skill Set SDK 构建 Alexa 教学练习技能。 我将每个烹饪步骤保存到数据库中,因此如果技能超时,用户可以重新打开技能并从上次中断的地方继续。 问题是用户对他们必须保持重新打开技能感到恼火,人们以不同的速度工作,是否可以在我等待用户完成步骤然后说“Alexa,下一步”? 我尝试增加 lambda 超时,但没有任何区别。 回答1 我已经尝试这样做了一段时间。 在 Amazon 开发者论坛上,Amazon 的人们(例如这个回复)有几个回复,指出大约 8-10 秒的超时是不可配置的。 回答2 以下解决方案有点小技巧,不推荐使用,但可能会满足您的目的。 只需修改您的回复,如下所示: <speak> Tell recipe step here. <audio src="<-- Hosted silent mp3 file URL -->" /> </speak> 您可以在回复中添加无声 mp3 文件。 您的技能将在该 mp3 文件的时间内有效。 但是要在此响应中打断 Alexa,用户将不得不说Alexa, next step而不是Next step 。 回答3 您可以调用 API 来提供渐进式响应

2021-12-22 03:19:10    分类:技术分享    alexa   alexa-skills-kit   alexa-skill

Alexa 技能套件与 Alexa 语音服务(Alexa skill kit vs Alexa Voice Service)

问题 我正在研究 Alexa 技能(用于 Echo),并且我从一开始就研究了 Alexa 技能套件。 现在,我对 Alexa 语音服务感到困惑。 我已经阅读了亚马逊上的文档,但无法更好地理解它。 请指导什么是AVS? 它与 Alexa 技能有什么关系? 回答1 Alexa Skill Kit 用于创建专门在 Amazon Echo 或任何其他包含 Alexa 的设备上运行的技能。 Alexa 语音服务允许您将 Alexa 的语音控制添加到任何具有麦克风和扬声器的产品。 要阅读有关 Alexa 语音服务的更多信息,请查看此链接:https://developer.amazon.com/alexa-voice-service#How%20AVS%20Works 回答2 Alexa Skills Kit旨在通过开发自定义技能“让 Alexa 变得更聪明”。 这是亚马逊在 GitHub 上发布的 Node.js 开发工具包。 这些技能的先决条件是用户已经在使用支持 Alexa 的设备,例如 Echo 或 Echo Dot。 Alexa 语音服务 SDK允许设备用户在任何带有麦克风和扬声器的设备上启用 Alexa。 这是亚马逊在 GitHub 上发布的 C++ 开发工具包。 这意味着 Alexa 最终可以用于从汽车到智能冰箱的任何东西,如果使用这个 SDK,这非常令人兴奋! 回答3

2021-12-21 20:41:11    分类:技术分享    alexa-skills-kit   alexa-skill   alexa-voice-service

How do I revise a live Alexa skill?

I need to revise my published Alexa skill. I'm familiar with the "In Development" skill version which Amazon automatically creates after publishing a skill. What I don't understand is how do I iterate on my skill, particularly when I need to change the interaction model and the linked Lambda function at the same time? For example, I could create a separate "In Development" Lambda function and make it my default endpoint for my "In Development" Alexa skill. But then when I submit my "In Development" Alexa skill for publication, that "In Development" Lambda endpoint would become the new endpoint

2021-12-11 05:45:31    分类:问答    aws-lambda   alexa   serverless-framework   alexa-skill