深入理解Amazon Alexa Skill(二)】的更多相关文章

本节来讨论Alexa Skill中涉及到的授权问题. Alexa内功能的授权 Alexa会发给skill用户的token,然后skill代码使用这个token来访问Web API访问用户的Alexa内的功能,如list等. 授予skill第三方的权限--Account Linking 参考:https://developer.amazon.com/docs/account-linking/understand-account-linking.html#account-linking-and-th…
本节利用三星Smartthings Classic物联网平台的web service smartapp,实现了一个Alexa智能家居skill的例子,由此来了解Alexa是如何控制其他云的智能家居设备的. 三星Smartthings平台是如何运行第三方云来控制其设备的 三星Smartthings Classic支持开发者自己编写SmartApp来控制智能家居设备.参考官网中Web Service SmartApps的教程就可以写一个允许使用Web API来远程控制该平台设备的SmartApp.简…
语音助手(Virtual Personal Assistants, VPA)是物联网智能家居中很火的一个领域,用户可以通过语言作为入口来控制家里各种各样的设备,而亚马逊的Alexa(echo,echo dot)是做的最早也是最优秀的一款产品,衍生出了很大的开发生态圈.本文基于亚马逊的官方文档试图记录作者对其Skill工作原理的理解. 这不是一个手把手Skill开发入门教程,仅仅讲解了概念与个人的一些理解 宏观概念 Alexa提供一系列内置的功能,比如回答问题,语音游戏,控制智能家居设备,这些功能…
理解skill调用 本节来更详细的讨论alexa是如何确定调用哪个skill的. 参考:https://developer.amazon.com/zh/docs/custom-skills/understanding-how-users-invoke-custom-skills.html 明确调用(Specific Request (Intent)) 用户在语音中明确的包含了要调用的skill的名字,云会给skill发送一个带有具体intent的 IntentRequest.用户可以有很多种表达…
访问Alexa的API,必须要携带AccessToken,也就是必须要登录授权,本文主要记录Amazon Alexa在Android平台上的登录授权过程. 一.在亚马逊开发者平台注册应用 进入亚马逊开发者平台的Alexa栏 https://developer.amazon.com/edw/home.html#/ 点击Alexa Voice Service的Get Started,进入到应用管理页面 选择注册一个产品,我这边选的是application,然后开始填写相关信息. 这里Applicat…
原文:深入理解C指针之二:C内存管理 内存管理对所有程序来说都很重要.有时候内存由运行时系统隐式的管理,比如为变量自动分配内存.在这种情况下,变量分配在它所处的函数的栈帧上(每个函数都有它自己的栈帧,用来保存它的局部变量和返回地址等).如果是静态或全局变量,内存处于程序的数据段,会被自动清零.数据段是一个区别于可执行代码和运行时系统管理的其它数据的内存区域. C语言也支持动态内存管理,对象就是从堆上分配出来的内存.这是用分配和释放函数手动实现的,这个过程被称为动态内存管理.在C中动态分配内存的基…
深入理解Spring AOP之二代理对象生成 spring代理对象 上一篇博客中讲到了Spring的一些基本概念和初步讲了实现方法,当中提到了动态代理技术,包含JDK动态代理技术和Cglib动态代理 动态代理这部分我有过一篇博客介绍:动态代理,想深入了解的朋友能够看一看,再回想一下,Spring中怎样区分採用JDK动态代理和CGlib动态代理: 假设目标对象的实现类实现了接口.Spring AOP 将会採用 JDK 动态代理来生成 AOP 代理类: 假设目标对象的实现类没有实现接口,Spring…
理解JavaScript继承(二) 5.寄生式继承 function object(o) { function F() {} F.prototype = o; return new F(); } function createAnother(original){ var clone = object(original);//通过调用函数创建一个新对象 clone.sayHi=function(){//以某种方式增强这个对象 alert("hi"); }; return clone;//…
我理解的数据结构(二)-- 栈(Stack) 一.栈基础 栈是一种线性结构 相比较数组,栈对应的操作是数组的子集 只能从一端添加元素,也只能从同一端取出元素,这一端称为栈顶 栈是一种后进先出的数据结构,LIFO(Last In First Out) 二.栈的应用 Undo操作(撤销) 程序调用所使用的系统栈 三.栈的实现 其实,实现一个栈结构非常简单,我们只需要复用上一节我们自己封装的数组就可以快速的实现一个栈的创建.以数组的最后一个元素当成栈顶元素. 1. 首先,我们先创建一个栈的借口,里面声…
深入理解Java AIO(二)—— AIO源码解析 这篇只是个占位符,占个位置,之后再详细写(这个之后可能是永远) 所以这里只简单说一下我看了个大概的实现原理,具体的等我之后更新(可能不会更新了) 当然我讲的很烂,建议如果不是特别在意的话直接跳到下一节看Linux AIO的实现,或者自己去网上找找资料(虽然我找不到就是了). 之前也说过,Java AIO是直接使用epoll + 使用了并发包中的线程池来管理任务实现的异步,整体设计思路我个人觉得应该是采用Proactor模式. 大概就是围绕一个封…