Alexa语音控制

Alexa是亚马逊开发的智能语音服务, 用户可以通过Echo音箱来指挥Alexa做一些事情. 

项目相关代码: https://github.com/shijian-ws/alexa

Alexa官网: https://developer.amazon.com/alexa

新建Skill: Skill可以被理解一个应用, 可以在Alexa应用商店中被用户使用

Alexa应用商店:https://www.amazon.com/gp/help/customer/display.html?nodeId=201602060

    Alexa应用商店 App Store 需要美国账户, Android没有使用过

Alexa控制台:https://developer.amazon.com/edw/home.html#/

Alexa语音控制_第1张图片
Alexa语音控制_第2张图片
Alexa语音控制_第3张图片
Alexa语音控制_第4张图片
Alexa语音控制_第5张图片
Alexa语音控制_第6张图片

创建亚马逊Lambda服务  https://console.aws.amazon.com/console/home

# 因为以前注册的账号, 有点记不清了AWS好像似乎需填写一些个人信息, 绑定银行卡之类的

Alexa语音控制_第7张图片

选择弗吉尼亚北部服务器

Alexa语音控制_第8张图片

进入Lambda服务. 选择创建函数


Alexa语音控制_第9张图片

我已经了解一些格式配置 所以选择空模板自己写


Alexa语音控制_第10张图片
Alexa语音控制_第11张图片
Alexa语音控制_第12张图片
Alexa语音控制_第13张图片
Alexa语音控制_第14张图片
Alexa语音控制_第15张图片
Alexa语音控制_第16张图片

继续配置Alexa, Lambda服务运行代码最后配置

Alexa语音控制_第17张图片

保存 下一步

之后的两步骤和发布应用相关, 测试可以跳过这样之后可以在Alexa应用you skills中看见, 其他人不可见


Alexa语音控制_第18张图片
Alexa语音控制_第19张图片
Alexa语音控制_第20张图片
Alexa语音控制_第21张图片

可以看出Alexa已经进行access_token请求, 说明获取code步骤成功, 在6月份时候出现过一次获取code步骤都不执行,检查到最后是因为使用Let's Encrypt开源项目签发的免费https证书导致授信问题,  浏览器对Let's Encrypt支持的很好, 但猜测估计Alexa使用的是Apache-HttpClient框架导致授信CA有问题, 从日志截图的相关请起头也能出看一些信息

从日志来看是缺少请求参数, 而且请求头携带了authorization, base64解密之后就是client_id:client_secret, 忽然想起来Alexa配置的问题


修改一下配置 保存


Alexa语音控制_第22张图片

关于Alexa用户授权方面API文档


到这一步基本上Alexa配置就完成了, 设备检索就是向AWS的Lambda服务发送请求获取Alexa可以控制的设备

Alexa与Lambda交互API文档

GitHub的请求与相应例子

为了更好的了解Alexa与Lambda交互请求信息, 所以准备对Lambda服务添加请求日志记录功能

进入AWS服务开启DynameDB, 一个动态数据存储服务

Alexa语音控制_第23张图片



Alexa语音控制_第24张图片


Alexa语音控制_第25张图片

点击创建会等待一会


Alexa语音控制_第26张图片

选择创建Lambda使用的角色

Alexa语音控制_第27张图片
Alexa语音控制_第28张图片

点击验证一下策略, 然后保存


Alexa语音控制_第29张图片
Alexa语音控制_第30张图片

进入Lambda服务可以看见已经可以控制DynameDB


开始编写Lambda服务代码 然后保存

Lambda相关文档

Alexa语音控制_第31张图片

在保存按钮旁边有个测试, 选择配置测试, 创建一个测试

Alexa语音控制_第32张图片

点击一下测试, 看看Lambda服务运行结果


Alexa语音控制_第33张图片

查看日志服务


Alexa语音控制_第34张图片

这样开始操作Alexa应用里面的Skill进行设备发现


Alexa语音控制_第35张图片
Alexa语音控制_第36张图片

说一下分组、设备、情景的关系

分组就是讲多个情景或设备绑定到一个分组中, 在使用Alexa时会循环发送操作每个情景或设备, 不推荐, 可以在自己服务端进行业务绑定

设备、情景的区别就是一个设备类型字段值不同, 可以在服务端进行具体的划分


Alexa语音控制_第37张图片

给Alexa应用绑定Echo智能音箱, Echo智能音箱可以在亚马逊代购, 万能的淘宝也有



Alexa语音控制_第38张图片
Alexa语音控制_第39张图片
Alexa语音控制_第40张图片


Alexa语音控制_第41张图片
Alexa语音控制_第42张图片
Alexa语音控制_第43张图片

等待一会Echo即有提示连接信息, 因为Echo访问美国亚马逊服务器可能存在超时延迟, 被墙问题


Alexa语音控制_第44张图片

可以看到Alexa触发的发现设备日志了

Alexa语音控制_第45张图片

你可能感兴趣的:(Alexa语音控制)