我按照教程使用Python创建了一个Alexa应用程序:
我能够成功地遵循所有步骤并使应用程序工作.我现在想要修改python代码并使用外部库,例如import requests
我使用pip安装的任何其他库.如何设置我的lambda函数以包含我在本机上本地安装的任何pip包?
我正在玩Alexa技能套件(用于Amazon Echo),并希望创建一种将意图发送到AWS Lambda函数的技能,该函数只会向我发送电子邮件.
示例话语将是这样的:
MemoIntent take a memo {myMemo}
MemoIntent to take a memo {myMemo}
MemoIntent send a memo {myMemo}
Run Code Online (Sandbox Code Playgroud)
这样我就可以说"Alexa,请我的秘书拿一份备忘录,提醒我今天回家的路上去商店"然后会收到我的Lambda函数的电子邮件说:"提醒我去我今天回家的路上."
这个myMemo插槽是自由形式的 - 此时只需要一两句话,但是我没有在文档中找到很多关于如何为这样的东西编写模式的帮助.我目前最好的猜测是:
错误:您的请求出现问题:未知的广告位名称"{myMemo}".发生在样本'MemoIntent中,在第1行上记下备忘录{myMemo}'.
我正在使用文档不鼓励的AMAZON.LITERAL插槽类型,但它也没有提供任何关于如何进行此操作的建议.而且,就像我提到的那样,它失败了.
这是失败的架构:
{
"intents": [
{
"intent": "MemoIntent",
"slots": [
{
"name": "myMemo",
"type": "AMAZON.LITERAL"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud) 我已将我的亚马逊回声设备与我帐户相关的亚马逊门户集成.我能够使用Alexa Skills Kit创建自己的自定义问题,并使用AWS Lambda函数处理以生成响应.
我的问题是:是否有可能以编程方式"推送"消息到回显设备?例如,我希望它能够在不必问问题的情况下发言.我希望它能在特定时刻做点什么.
如果有可能,请您分享任何示例代码来实现这一目标吗?
我正在寻找一种方法来获取用户的位置,理想情况是经度/纬度,但地址也可以工作,从Alexa Skill Kit请求到我的自定义技能.此外,我不希望用户链接到我的应用程序的帐户.
这可能吗?如果是这样,怎么样?
我是新手写Alexa的技能,想写一个技巧来存储说话者的话.
例如,如果我说'Alexa,保存{无论我说什么}',它应该保存一些字符串中的单词.
根据我的理解,意图模式应该是这样的
{
intents:[
"intent" : "SaveIntent"
]
}
Run Code Online (Sandbox Code Playgroud)
和话语一样
SaveIntent save
SaveIntent store
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我如何存储'{无论我说什么}'?
我正在尝试将mp3文件转换为Amazon Alexa SSML标记语言中音频标记所需的格式,如下所述:https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs /语音合成的标记语言-SSML参考
文档建议使用https://www.ffmpeg.org/ffmpeg.html
我尝试了这个命令但找不到合适的编解码器:
ffmpeg -y -i input.mp3 -ar 44100 -ab 48k -codec:a mpeg2 -ac 1 output.mp3
我知道我需要转换文件,因为Alexa失败并出现以下错误: The audio is not of a supported MPEG version
在亚马逊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
我需要创建一个Amazon Skill Kit来在我们的票务工具中打开票证.通过查看Amazon Skill Kit的示例,我找不到接受自由格式文本作为输入的方法.其他选项是创建一个自定义插槽,其中包含所有可能的输入集作为自定义插槽输入.
但在我的情况下,我所要做的就是捕获用户输入的全部内容,将其记录在票证的某个地方,这是不太可能预期可能的话语.
amazon-web-services alexa-skills-kit amazon-echo alexa-voice-service
我正在做其中一个教程(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回答说"我不确定你的意思."
不确定发生了什么!任何指导表示赞赏!!
我正在尝试使用新的流式音频API.以下回复是否有效?当我在我的设备上测试它时,我得到"技能有问题"错误.
这是我的AWS-lambda函数的代码:
def lambda_handler(event, context):
return {
"response": {
"directives": [
{
"type": "AudioPlayer.Play",
"playBehavior": "REPLACE_ALL",
"audioItem": {
"stream": {
"token": "12345",
"url": "http://emit-media-production.s3.amazonaws.com/pbs/the-afterglow/2016/08/24/1700/201608241700_the-afterglow_64.m4a",
"offsetInMilliseconds": 0
}
}
}
],
"shouldEndSession": True
}
}
Run Code Online (Sandbox Code Playgroud) alexa-skills-kit ×10
alexa-skill ×4
aws-lambda ×4
amazon ×3
amazon-echo ×3
python ×2
ffmpeg ×1
pip ×1
userid ×1