AWS IoT 物联网系列博客
当前物联网环境中,设备类型多种多样,连接方式不一而足。为了帮助读者更好的理解并运用 AWS IoT 相关服务,我们提供了一个完整的 IoT 起步指南,包含设备的注册及上线、设备管理、用户身份及权限管理以及成本控制,通过这一系列的起步指南,也可以快速了解到 AWS IoT 服务如何与 Amazon Alexa 语音助手进行集成。AWS IoT 物联网系列共 8 篇,本篇是该系列的第一篇,其他篇链接请在本文结尾处查看。
Amazon Alexa 简介
Amazon Echo 是当前最炙手可热的智能语音音响,内置的语音助理 Alexa 可以高效准确的理解用户对它发出的语音指令,而不需要任何的遥控器。市场上的一些智能产品,比如咖啡机、灯具、电视等,只需要语音它们就可以执行一系列的动作,而这些产品都没有内置 Alexa,那设备厂商是如何做到的呢?开发者可以通过 Alexa Skill 来增加更多丰富多彩的应用。
Demo 介绍及准备工作
通过此 Demo,开发者可以学习如何从零开始通过 Alexa skill 设计出具有高度定制化的语言助手,最终使用对话方式定制旅行计划。
为了完成此 Demo,需要使用三个工具:
Alexa skill kit
AWS Lambda
NodeJS
准备工作:
了解什么是 Alexa skill kit
Alexa Skill kit(ASK)是一套自助服务,其中包括 API、工具、文档和代码示例,使您能够轻松快速地为建立 Alexa Skill。
需要注册两个帐号
亚马逊 AWS 帐号:https://aws.amazon.com
亚马逊开发者帐号:https://developer.amazon.com(注册个人开发者需要上传身份证)
Demo 具体操作流程
登录亚马逊开发者网站,网站右上角点击“Sign In”
登录后进入开发者控制台
选择顶部的 ALEXA SKILLS KIT 按钮
创建一个 Skill,并且取个名字
本示例选定自定义 skill,后三个为预编译模型,要深入了解各个 skill 模型,请参阅这里
下图为 Amazon Alexa 主界面,先重点关注右侧的 checklist,完成一个 Skill,必须完成图中这 4 项 Invocation Name ->Intents, Sample, and Slots -> Build Model -> Endpoint。
Invocation Name : 给触发 Skill 取个名字,这个名字很重要,本示例设置为 rebecca,记得保存
返回主界面后,Invocation Name 设置完成
Intents, Samples, and Slots: 定义对话逻辑,也就是交互模型都在这里进行创建。此示例中为了大家方便操作,把配置文件制作为 json 文档,请把 json 文档内容粘贴进“JSON Editor”,https://github.com/alexa/alexa-cookbook/blob/master/handling-responses/dialog-directive-delegate/sample-nodejs-plan-my-trip/speech-assets/InteractionModel.json, 点击”Save Model”保存后,再点击”Build Model”(要稍等一会), 最后返回主界面会看到 checklist 完成第二、三步。如要深入开发,强烈建议阅读这个参考文档
会多出一些 Intents 和 slots,这些都是由刚才的 Json 定义而来的,并且 checklist 完成了 Build Model
选择左下角 Endpoint 按钮进入 Lambda 配置,选择 AWS Lambda ARN 按钮
到此为止,alexa skill kit 告一段落,Lambda ARN 暂时空着,接下来先配置 Lambda 。
登录至 AWS 控制台,选择 US East (N. Virginia) 地区,然后进入 Lambda 服务
创建 Lambda 函数
选择蓝图(Blueprints), 晒选框输入“alexa-skill”,然后选择 alexa-skill-kit-sdk-factskill,最后点击右下角的 “configure”
创建 Lambda 函数名称以及角色,两个名字可以不一样
设置 Lambda 角色,记得点击右下角 Allow
下面代码部分暂时不用管,点击创建函数
配置触发器:选择“Alexa Skill Kit”
Skill ID 请查看第 11 步(图片 2)中,Your Skill ID 中字段进行复制,添加后注意保存
Lambda 函数代码打包上传。此项目 Demo 代码路径:https://github.com/alexa/alexa-cookbook/tree/master/handling-responses/dialog-directive-delegate/sample-nodejs-plan-my-trip/src 。此项目有 alexa-sdk 依赖,所以必须打包上传,以下打包上传步骤:
16.1. 克隆 alexa-cookbook 项目或者下载上述链接下的三个文件,此例为直接下载三个文件到新建目录 alexa-demo-skill-kit 中
16.2. 此项目有 alexa-sdk 的依赖,所以使用 npm 安装依赖:
16.3. 项目打包:生成 zip 包
16.4. 上传 zip 包,界面如下图
Lambda 代码包上传完成。如需其他语言打包方法详见这里
复制右上角的 Lambda ARN
回到第 11 步图二页面,设置 Endpoint, 把 Lambda ARN 粘贴到 Default Region 中,并且保存
回到 alexa skill kit 主界面,查看 checklist,确保所有项为绿色对勾表示配置完成
接下来就可以测试配置好 Alexa, 继续使用亚马逊开发者帐号登录 https://echosim.io, 然后按住空格键录音,你可以说“open rebecca”,系统会回答“Let’s plan a trip. Where would you like to go?”然后跟着提示回答就可以了。
作者介绍:
童轶
原文链接:
https://amazonaws-china.com/cn/blogs/china/aws-iot-series-8/
评论