标签: alexa-skill

Amazon Echo - 将消息推送到设备

我已将我的亚马逊回声设备与我帐户相关的亚马逊门户集成.我能够使用Alexa Skills Kit创建自己的自定义问题,并使用AWS Lambda函数处理以生成响应.

我的问题是:是否有可能以编程方式"推送"消息到回显设备?例如,我希望它能够在不必问问题的情况下发言.我希望它能在特定时刻做点什么.

如果有可能,请您分享任何示例代码来实现这一目标吗?

amazon-web-services aws-lambda alexa-skill alexa-skills-kit

22
推荐指数
1
解决办法
9752
查看次数

亚马逊Alexa:存储用户的话

我是新手写Alexa的技能,想写一个技巧来存储说话者的话.
例如,如果我说'Alexa,保存{无论我说什么}',它应该保存一些字符串中的单词.
根据我的理解,意图模式应该是这样的

{
   intents:[
       "intent" : "SaveIntent"
   ]
}
Run Code Online (Sandbox Code Playgroud)

和话语一样

SaveIntent save
SaveIntent store
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我如何存储'{无论我说什么}'?

amazon alexa-skill alexa-skills-kit

20
推荐指数
3
解决办法
1万
查看次数

亚马逊Alexa技能套件:如何与外部应用程序帐户/ userId链接

亚马逊alexa技能请求中有一个userId,我试图了解这是什么,如果有一些参考,因为我想链接和Amazon Echo用户帐户与我自己的应用程序中的帐户,并这样做我必须有某种静态userId才能使用.

示例请求:

{
 "version": "1.0",
 "session": {
   "new": false,
   "application": {
   "applicationId": "amzn1.echo-sdk-ams.app.[unique-value-here]"
  },
  "sessionId": "session1234",
  "attributes": {},
  "user": {
    "userId": null //IS THERE A DETAILED REFERENCE OF THIS SOMEWHERE?
  }
},
"request": {
"type": "IntentRequest",
"requestId": "request5678",
"intent": {
  "name": "MyColorIsIntent",
  "slots": {
    "Color": {
      "name": "Color",
      "value": "blue"
    }
  }
}
}
}
Run Code Online (Sandbox Code Playgroud)

amazon userid amazon-web-services alexa-skill alexa-skills-kit

16
推荐指数
2
解决办法
1万
查看次数

在Echo上测试时,Alexa Skill无法识别

我正在做其中一个教程(HelloWorld)为Echo制作技能,我按照指示操​​作.当我使用服务模拟器测试技能时,我输入了

Alexa, tell Greeter to say hello
Run Code Online (Sandbox Code Playgroud)

并返回以下JSON响应:

{
  "version": "1.0",
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "Hello World!"
},
"card": {
  "content": "Hello World!",
  "title": "Greeter",
  "type": "Simple"
},
"shouldEndSession": true
  },
  "sessionAttributes": {}
}
Run Code Online (Sandbox Code Playgroud)

我认为这是正确的输出.然而,当我尝试在我的Echo上测试技能时,Alexa回答"对不起,我没有你的问题." 我继续了历史,Alexa将我的命令解释为"alexa告诉greeter打个招呼".似乎Alexa没有认识到这项技能?

我正在使用Amazon Lambda来执行代码,因此我检查了日志,并且当我向上面讲述命令时代码未执行.

我将javascript文件中的app_id替换为与我的技能相对应的app_id.我也把亚马逊技能套件作为触发器.

我也尝试了其他教程(ChemistryFlashCards和HistoryBuff),Alexa回答说"我不确定你的意思."

不确定发生了什么!任何指导表示赞赏!!

aws-lambda alexa-skill alexa-skills-kit amazon-echo

15
推荐指数
3
解决办法
1万
查看次数

Alexa技能SSML最大长度

SSMLAmazon Echo Alexa技能JSON响应中属性的最大长度或限制是多少?

"outputSpeech": {
    "type": "SSML",
    "ssml": "<speak>This output speech uses SSML.</speak>"
}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services alexa-skill alexa-skills-kit alexa-voice-service

11
推荐指数
1
解决办法
3441
查看次数

使用Lex和Alexa之间的差异

我正在构建一个Alexa技能,允许Alexa用户与面向消费者的电子商务网站进行交互.可以调用站点上已存在的代表.现在,我想构建一个语音应用程序作为一个侧面项目,通过对话扩展相同的选项.将需要像位置,呼叫类别等的插槽.它基本上是应用程序/事务机器人.

在未来,如果这是成功的,我希望在不同的物联网设备(如Google Home Assistant等)上可以访问相同的通用应用程序.因此,我想抽象出语音交互并拥有相同的(一般)流程和API进行交互.

这让我对api.ai,wit.ai,Lex等不同技术进行了一些研究.

但是,由于这是Alexa的应用程序,我已经完全依赖AWS和亚马逊,我想我更喜欢使用Lex或者只是编写一个原生的Alexa应用程序.

我很难理解两者之间的差异.我知道Alexa是使用Lex构建的,我发现他们有类似的概念,如意图,插槽等.

但是,我正在寻找两种服务之间的任何差异:

  1. 使用Lex会让我更容易与其他设备集成吗?或者有任何好处吗?

  2. 使用Lex会让我在设计/修改会话流程方面有更大的灵活性吗?看起来Lex有点复杂,因此可能允许更多的功能.

  3. 或者只是Lex提供了几乎完全相同的功能,而且仅适用于不是Alexa的设备?

  4. Lex是否提供比Alexa更多的分析处理?在Alexa我只能看到意图/插槽,但如果我能看到Lex中的实际文本,那将是理想的.

nlp amazon-web-services alexa alexa-skill dialogflow-es

11
推荐指数
2
解决办法
5059
查看次数

Alexa找不到我的技能

我基于Alexa Skills Kit中提供的示例之一创建了我的Alexa Skill作为AWS Lambda Node.js应用程序.我按照所有说明操作:

  1. 我的Echo使用与AWS上的开发者帐户相同的帐户注册
  2. 我在亚马逊开发者控制台上配置了我的技能
  3. 我将应用程序ID从控制台放入我的应用程序代码中
  4. 我将我的代码上传到AWS Lambda服务(根据指示设置为N. Virginia)
  5. 我测试了我的服务,它返回了预期的JSON
  6. 我在开发人员控制台中输入了我的ARN作为端点
  7. 在控制台的下一步,它告诉我通过说"Alexa,问问HelloWorld"来测试Echo的技能.

当我这样做时,她回答说"与所请求的应用程序进行通信时出现问题." 在Echo应用程序中它说:

意外通信问题HelloWorld请求标识符:amzn1.echo-api.request.e2d17280-592a-474f-a6b1-d1a9d8ff816d与请求的应用程序通信时出现问题

我可以从我的AWS Lambda函数列表中看到没有请求到达服务.我重新启动了Echo.我给了它一个小时,以防它需要时间在某处传播,但它仍然给出相同的响应.

所以这是一个非常模糊的死胡同.有没有人碰到这个?任何想法尝试什么?

aws-lambda alexa-skill alexa-skills-kit

9
推荐指数
1
解决办法
4523
查看次数

如何保持alexa技能开放?

我创造了一项技能,以便人们可以跟踪某些状态.但不是每次都要求alexa打开应用程序并进行交互.

alexa ask grocerylist to add 2 eggs
alexa ask grocerylist to add bread
Run Code Online (Sandbox Code Playgroud)

我希望保持杂货店技能开放,以便用户可以与之互动,直到他们要求它关闭

alexa open grocerylist
.... 2 mins later
add 2 eggs
.... 1 min later
add bread
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,而不必alexa ask grocerylist每次都使用.

amazon alexa-skill alexa-skills-kit

9
推荐指数
2
解决办法
1万
查看次数

单元测试使用alexa-sdk的Alexa技能

我正在开发节点中的Alexa技能,我想知道如何对我的代码进行单元测试.我正在使用亚马逊发布的alexa sdk.

我找到了许多库来实现这一目标,但它们似乎是在alexa sdk可用之前开发的.

提前致谢.

alexa-skill alexa-skills-kit

9
推荐指数
1
解决办法
1037
查看次数

如何使用有效的AWS配置文件配置Alexa ask-cli?

在使用developer.amazon.com和aws.amazon.com的浏览器GUI之后,事情变得严肃起来,现在我想使用ask-cli来初始化Alexa技能和他们的lambda函数.

当我想ask init,它告诉我,我应该选择一个配置文件或创建一个新配置文件.两者都跳转到浏览器并使用OAuth验证我的问题安装.

~ ask init
? Please create a new profile or overwrite the existing profile.
 (Use arrow keys)
  ??????????????
? Create new profile
  ??????????????
  Profile              Associated AWS Profile
  [default]                 ** NULL **
  [aws_profile]             ** NULL **
Run Code Online (Sandbox Code Playgroud)

但AWS Profile不会关联我的AWS Profile.

如果我没有将配置文件与AWS连接,我的LamdaFunction将无法加载/部署.

No AWS credential setup for profile: [default]. 
Lambda clone skipped. CLI lambda functionalities can be enabled 
by running `ask init` again to add 'aws_profile' to ASK cli_config
Run Code Online (Sandbox Code Playgroud)

我怎么能正确连接我的ask-cli?

alexa-skill

9
推荐指数
2
解决办法
3252
查看次数