低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

AWS IoT 物联网系列,第八篇:Alexa 入门实验

2019 年 10 月 23 日

AWS IoT 物联网系列,第八篇:Alexa 入门实验

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


准备工作:

  1. 了解什么是 Alexa skill kit



Alexa Skill kit(ASK)是一套自助服务,其中包括 API、工具、文档和代码示例,使您能够轻松快速地为建立 Alexa Skill。


  1. 需要注册两个帐号






Demo 具体操作流程

  1. 登录亚马逊开发者网站,网站右上角点击“Sign In”



  1. 登录后进入开发者控制台

  2. 选择顶部的 ALEXA SKILLS KIT 按钮

  3. 创建一个 Skill,并且取个名字

  4. 本示例选定自定义 skill,后三个为预编译模型,要深入了解各个 skill 模型,请参阅这里

  5. 下图为 Amazon Alexa 主界面,先重点关注右侧的 checklist,完成一个 Skill,必须完成图中这 4 项 Invocation Name ->Intents, Sample, and Slots -> Build Model -> Endpoint

  6. Invocation Name : 给触发 Skill 取个名字,这个名字很重要,本示例设置为 rebecca,记得保存



  1. 返回主界面后,Invocation Name 设置完成




  1. 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 完成第二、三步。如要深入开发,强烈建议阅读这个参考文档





  1. 会多出一些 Intents 和 slots,这些都是由刚才的 Json 定义而来的,并且 checklist 完成了 Build Model



  1. 选择左下角 Endpoint 按钮进入 Lambda 配置,选择 AWS Lambda ARN 按钮




到此为止,alexa skill kit 告一段落,Lambda ARN 暂时空着,接下来先配置 Lambda 。


  1. 登录至 AWS 控制台,选择 US East (N. Virginia) 地区,然后进入 Lambda 服务



  1. 创建 Lambda 函数



选择蓝图(Blueprints), 晒选框输入“alexa-skill”,然后选择 alexa-skill-kit-sdk-factskill,最后点击右下角的 “configure”



  1. 创建 Lambda 函数名称以及角色,两个名字可以不一样



设置 Lambda 角色,记得点击右下角 Allow



下面代码部分暂时不用管,点击创建函数



  1. 配置触发器:选择“Alexa Skill Kit”



Skill ID 请查看第 11 步(图片 2)中,Your Skill ID 中字段进行复制,添加后注意保存



  1. 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 安装依赖:


$ npm install
复制代码



16.3. 项目打包:生成 zip 包


$ zip -q -r9 ~/CreateThumbnail.zip *
复制代码



16.4. 上传 zip 包,界面如下图



Lambda 代码包上传完成。如需其他语言打包方法详见这里


  1. 复制右上角的 Lambda ARN



  1. 回到第 11 步图二页面,设置 Endpoint, 把 Lambda ARN 粘贴到 Default Region 中,并且保存



  1. 回到 alexa skill kit 主界面,查看 checklist,确保所有项为绿色对勾表示配置完成



  1. 接下来就可以测试配置好 Alexa, 继续使用亚马逊开发者帐号登录 https://echosim.io, 然后按住空格键录音,你可以说“open rebecca”,系统会回答“Let’s plan a trip. Where would you like to go?”然后跟着提示回答就可以了。



作者介绍:


童轶


AWS 解决方案架构师。负责基于 AWS 的云计算方案的架构设计,同时致力于 AWS 云服务在国内和全球的应用和推广。加入 AWS 之前,在国内知名互联网游戏公司担任高级系统工程师,有七年的游戏运维和 DevOps 经验。现致力于 IoT, Serverless 架构的研究与推广。


### AWS IoT 物联网系列其他博客目录如下:
[](https://amazonaws-china.com/cn/blogs/china/aws-iot-series-1/)
[](https://amazonaws-china.com/cn/blogs/china/aws-iot-series-2/)
[](https://amazonaws-china.com/cn/blogs/china/aws-iot-series-3/)
[](https://amazonaws-china.com/cn/blogs/china/aws-iot-series-4/)
[](https://amazonaws-china.com/cn/blogs/china/aws-iot-series-5/)
[](https://amazonaws-china.com/cn/blogs/china/aws-iot-series-6/)
[](https://amazonaws-china.com/cn/blogs/china/aws-iot-series-7/)
[](https://amazonaws-china.com/cn/blogs/china/aws-iot-series-8/)
复制代码


原文链接:


https://amazonaws-china.com/cn/blogs/china/aws-iot-series-8/


2019 年 10 月 23 日 08:00252

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

拥抱云原生,Fluid 结合 JindoFS:阿里云 OSS 加速利器

阿里巴巴云原生

容器 云原生 k8s 分布式计算 调度

第四章作业

ALone

Spring RSocket:基于服务注册发现的 RSocket 负载均衡

阿里巴巴云原生

Java 开发者 云原生 API 应用服务中间件

解密协议层的攻击——HTTP请求走私

京东科技开发者

安全 HTTP

话题讨论 | 每逢佳节胖三斤,过完年你胖了吗?

石云升

话题讨论 减肥 2月春节不断更

连续肝了好几天,终于把Java面试必备最重要的基础知识【Java集合】知识点总结整理出来了。

Java成神之路

Java 程序员 架构 面试 编程语言

阿里架构师道延:我对技术架构的理解与架构师角色的思考

阿里巴巴中间件

阿里云 架构 云原生 架构师 云原生架构

架构师week13作业

Geek_xq

RPC框架-dubbo:架构及源码分析-初篇

程序员架构进阶

微服务 dubbo 七日更 28天写作 2月春节不断更

android进阶之光!还有人不知道什么是AndroidX的吗?通用流行框架大全

欢喜学安卓

android 程序员 面试 移动开发

android开发工程师需要学什么?360°深入了解Flutter,这原因我服了

欢喜学安卓

android 程序员 面试 移动开发

4种方法帮你解决IntelliJ IDEA控制台中文乱码问题

华为云开发者社区

Web 虚拟机 编码 IntelliJ IDEA 控制台

iOS进阶模块(逆向安防)

ios 逆向

你真的了解什么是「暴力解法」吗 ...

宫水三叶的刷题日记

面试 算法 LeetCode 数据结构与算法 贪心算法

我在春晚现场护航直播

阿里云视频云

阿里云 运维 直播 运维工程师 春晚

定制开发小程序

luluhulian

阿里内网热搜开发者工具在线教程推荐

阿里巴巴云原生

Java 开发者 云原生 工具 Arthas

阿里内部人手一份!P8大佬也叫好的 高性能MySQL系列文档

Java架构之路

Java 程序员 架构 面试 编程语言

字节跳动,三面我败了!但是我把经验记录了下来,倒下了一个我,还有千千万万个程序员!

Java架构之路

Java 程序员 架构 面试 编程语言

架构师week13总结

Geek_xq

不服不行!阿里曝光内部高并发实战手册,Github星标98K

Java架构之路

Java 程序员 架构 面试 编程语言

MySQL详解:索引的介绍和原理分析

程序员小毕

Java MySQL 数据库 程序员 面试

MySQL | 使用 limit 优化查询和防止SQL被优化

Java王路飞

Java MySQL 程序员 面试 性能优化

在 Kubernetes 上弹性深度学习训练利器 -- Elastic Training Operator

阿里巴巴云原生

人工智能 云计算 容器 云原生 k8s

十年再出发,Dubbo 3.0 Preview 即将在 3 月发布

阿里巴巴云原生

Java 微服务 云原生 dubbo 应用服务中间件

拿到字节跳动offer后,简历被阿里捞了起来,二面竟迎来了P9的“盘问“

Java成神之路

Java 程序员 架构 面试 编程语言

了解操作系统的那些事儿,从这篇文章开始

飞天小牛肉

Java 面试 操作系统 程序员· 2月春节不断更

Serverless 躁动背后的 5 大落地之痛

阿里巴巴云原生

Serverless 微服务 开发者 云原生 k8s

连Python都不熟也能跑通AI人脸识别?“隐藏Boss”竟是它!

华为云开发者社区

Python AI OpenCV 人脸识别 图像检测

入职阿里工作5年,晋升到P8就剩这份学习笔记了,已帮助多个朋友拿到Offer

Java成神之路

Java 程序员 架构 面试 编程语言

面试官问:在读多写少的情况下,如何优化 MySQL 的数据查询方案

面试官问

MySQL 数据库 面试题 主从同步 读写分离

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

AWS IoT 物联网系列,第八篇:Alexa 入门实验-InfoQ