Articles of alexa

Alexa技巧,audio播放需要时间

我正在研究与audio播放列表的Alexa技能。audio放在同一个S3桶,我使用该特定位置的URL(启用云端)。 问题是一些audio需要一些时间才能开始(即5秒),而有些则很快就开始了。 文件大小或文件位置没有区别,所有audio都使用相同的代码。 虽然,我想这是Alexaaudio播放器的一些问题。 我的audio播放代码是: this.response.audioPlayerPlay('REPLACE_ALL', url, token, null, offset); 请注意,我在node.js工作,我的终点是一个lambda函数,我使用“alexa-sdk”(节点包) 我无法理解这个问题。 请帮忙。

节点JScallback与Alexa技能

我有一个模块,其中包括一个请求调用,似乎没有得到执行。 var request = require('request'); var Alexa = require('alexa-sdk'); var APP_ID = <my alexa app ID>; var self = module.exports = { handler : function (event, context, callback) { var alexa = Alexa.handler(event, context); alexa.appId = APP_ID; alexa.registerHandlers(self); alexa.execute(); }, "TestIntent": function () { var speechOutput = "Recorded Test"; request("http://www.google.com", function(error, response,body) { return console.log(body); […]

如何正确指定Alexa技能的lambda函数中的SSML?

我正在努力使Alexa的技能在Alexa中被标记为SSML。 我试图模仿在这个回购的例子,但我总是收到一个lambda响应 { … "response": { "outputSpeech": { "type": "SSML", "ssml": "<speak> [object Object] </speak>" }, … } 和Alexa的字面意思是“对象对象”。 这是我input到我的lambda函数(使用node.js): var speechOutput = { type: "SSML", ssml: 'This <break time=\"0.3s\" /> is not working', }; this.emit(':tellWithCard', speechOutput, SKILL_NAME, "ya best not repeat after me.") 像这样设置speechOutput也不起作用: var speechOutput = { type: "SSML", ssml: 'This <break time=\"0.3s\" […]

从AWS Lambda Alexa Intent,Node.js中发布到SNS

我有一个用Node.js编写的Lambda函数,可以成功发布到SNS。 当我在Alexa Lambda函数的Alexa意图中使用相同的函数时,只有在注释掉代码的Alexa部分时才会执行该函数。 这是独立的Lambda函数: var AWS = require("aws-sdk"); exports.handler = function() { var sns = new AWS.SNS(); var params = { Message: "Cheese", Subject: "Test SNS From Lambda", TopicArn: "arn:aws:sns:us-east-1:xxxxxxx:MyTopic" }; sns.publish(params, function(){}); }; 如果我然后尝试将SNS代码放入我的Alexa lambda函数的函数中,则不会执行。 Alexa代码的其余部分工作正常,但没有发布到SNS。 如果我把它的Alexa部分注释掉,它确实有效。 这是不起作用的代码(aws-sdk包含在文件的顶部,在本例中省略): exports.handler = function(event, context) { var sns = new AWS.SNS(); var params = { Message: "Cheese", […]

如何解决警告:应用程序ID没有设置?

我总是在我的日志文件中得到'应用程序ID没有设置'的错误,而我在这个例子中设置了这个ID: const APP_ID = 'amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; 我该如何解决这个问题?

使用Alexa和JS的HTTP发布

我试图获得一个Alexa技能(JS / Lambda)使用HTTP.request将值发布到REST服务器。 我正在尝试一些简单的事情来完成工作。 我想我错过了一些明显的东西。 理想的技能使用 我说,“Alexa,告诉testing五”。 Alexa将代码中指定的URL更新为5。 Alexa说:“我已经把价值更新到了五点。” 问题 我有两个问题: 口语与打字的话语 。 如果我在亚马逊服务模拟器(“五”)中键入我的插槽值,该值将发布到我的服务器,因为它应该是。 但是,如果我说同样的话,即使Alexa正确地识别了这些单词(通过查看应用程序中的卡片确认),该值也不会被发布,并且她说:“我找不到问题的答案。 在哪里以及如何调用输出function 。 我想我需要添加类似下面两行的内容,但是根据我在当前代码中添加的位置,Alexa会响应而不更新节点,或者什么也不做。 var text = 'I have updated the value to' + targetSlot; output( text, context ); 调用名称 posting test 意图架构 { "intents": [ { "intent": "writeTarget", "slots": [ { "name": "Target", "type": "NUMBER" } ] }] } 示例话语 […]

问题与空的SpeechletResponse(Alexa)

有些东西与我的AMAZON.StopIntent搞砸了。 无论我放在哪里(我试过每个教程中的所有内容),只要被调用,我就会得到“请求的技能响应出现问题”,Alexa应用程序将错误显示为“speechletresponse不能为空”。 我的项目是在JSON,而不是Java格式。 如果有人能帮忙,我会非常感激! 谢谢! 按照要求,这是什么被发送到Lambda { "session": { "sessionId": "SessionId.XXXXX", "application": { "applicationId": "amzn1.ask.skill.XXXXXXX" }, "attributes": {}, "user": { "userId": "amzn1.ask.account.XXXXXXX" }, "new": true }, "request": { "type": "IntentRequest", "requestId": "EdwRequestId.XXXXXX", "locale": "en-US", "timestamp": "2017-01-18T22:38:53Z", "intent": { "name": "AMAZON.StopIntent", "slots": {} } }, "version": "1.0" } 这里是相关的代码: var handlers = { 'LaunchRequest': function () […]

问题与Claudia.js文本答复和Alexa

我正在研究Claudia.js机器人,它可以通过Slack,FB信使和Alexa技能来实现。 假设在克劳迪娅,你可以返回纯文本,框架将正确地返回到“前端”…我现在有什么这里工作正常与FB和松弛,但是当我通过Alexa“服务模拟器”我总是得到“回应无效”。 这是使用Claudia.js的lambda。 基本上,它从客户端获取消息,然后将它们分stream到另一个“AI”的Lambda。 Alexa似乎窒息了第67行。想法? const promiseDelay = require('promise-delay'); // const aws = require('aws-sdk'); // const lambda = new aws.Lambda(); const lambda = require('aws-lambda-invoke'); const botBuilder = require('claudia-bot-builder'); const stackTrace = require('stack-trace'); //const slackDelayedReply = botBuilder.slackDelayedReply; const getIntentName = alexaPayload => alexaPayload && alexaPayload.request && alexaPayload.request.type === 'IntentRequest' && alexaPayload.request.intent && alexaPayload.request.intent.name; const api = […]

亚马逊Alexa,alexa-app和中间件

现在已经走了两天不一样的路线,不能弄明白。 也许有人可以解释我的问题。 我试图运行一个连接到多个平台的botserver,已经有5个左右的工作。 我现在也试图整合Alexa。 我看到Alexa请求进入我的服务器(所以Alexa的技能和端点configuration是正确的),但是这也花了我相当一段时间,亚马逊显然只发送stream量到端口443,所以在亚马逊开发中心定义另一个端口号是允许的,但什么都不做…好的! 通过添加端口转发负载平衡器解决。 在真正的问题上。 我正在尝试使用以下示例中的alexa-app作为我的框架: var express = require("express"); var alexa = require("alexa-app"); var express_app = express(); var app = new alexa.app("sample"); app.intent("number", { "slots": { "number": "AMAZON.NUMBER" }, "utterances": ["say the number {-|number}"] }, function(request, response) { var number = request.slot("number"); response.say("You asked for the number " + number); } ); […]