一、简介
Alexa指的是亚马逊在 2015 年推出的语音助手。在亚马逊推出 Echo 音箱之前,Alexa 其实还是一个查询网站流量的工具型网站,于 1999 年被亚马逊收购。
二、创建product
1、创建Amazon Developer Account:点击链接
2、创建product
3、配置product(Android)
点击Security Profile
然后生成一个Api key,上面的截图已经生成一个了,
需要填写你的包名,MD5签名,以及Sha256签名。
Mac获取签名命令:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
三、体验Android Demo
https://blog.csdn.net/wangyongyao1989/article/details/80183020
四、 Alexa Voice Service
1、AVS概述
Alexa的语音服务(AVS)是一种智能化和可扩展的云服务,是Amazon提供给联网终端设备的服务,需要集成在联网终端设备中;联网终端设备硬件上必须包含麦克风和扬声器。用户可以简单地与Alexa交谈,让它播放音乐、回答问题、获取新闻和本地信息、控制智能家居产品等。通过免费的Alexa应用程序,用户可以在任何地方方便地控制和管理他们的产品。如果你希望你的产品具有丰富和直观的用户体验,集成Alexa是一个正确的选择。 AVS将在2017年初登陆英国和德国;为Alexa引入显示卡后,有显示屏设备可通过图形界面显示来补充来自Alexa的语音回应。
作为一个AVS开发者,你可以构建一个产品去访问Alexa不断增长的能力、更新、特性、以及成千上万的Skill。最重要的是AVS是免费使用的。
AVS的特点包括:自然语音控制:Alexa有非常棒的自动会话识别和自然语言理解引擎,可以对语音请求及时识别和回应。更加智能:Alexa总是在变得更加智能,因为有不断增加的新能力和服务。通过机器学习、规则API更新、特性增加、用户skill增加来实现这一点。免费、容易集成:AVS API是一种编程语言无关的服务,容易集成到你的设备、服务和应用中,而且免费。
2、ASR
ASR(Automatic Speech Recognition) Profile Selection:确定最好的自动语音识别模式。Alexa使用自动会话识别(ASR)和自然语言理解(NLU)的组合来理解用户的语音并精确反馈。ASR将语音转成文字,NLU将文字转换成指令。最后Alexa发送指令到对应的产品,执行某个具体的操作,比如播放音乐。
对应于不同的产品、形状、声学环境和应用场景,AVS提供三种ASR模式。模式参数在每个“识别事件(Recognize event)”消息负载中发送给Alexa,并且也用于显示用户语音的结束是由客户端确定还是由云端来确定。(怎样确定语音结束被成为语音终点检测(speech endpointing))典型的ASR模式如下图所示:
3、AVS API
(1)授权
I、Authorize from a Companion App (通过配套APP授权)
如果产品缺少图形用户界面(GUI)(通常也称为”headless”),可以配套的Android或IOS APP来实现授权。APP负责获得授权码并安全的传输到产品。产品负责使用授权码从LWA获得访问令牌并刷新令牌,然后用令牌去调用AVS服务。如下图所示:
II、Authorizing from a Companion Site(通过配套网站授权)
具有Alexa功能的产品(Headless设备比如智能音箱)需要获得Login With Amazon(LWA)访问令牌,用此访问令牌去授权代表用户访问API接口。具有配套的产品注册网站的产品生产商可参考这部分内容。获得和使用访问令牌的工作流程如下:
1 用户访问产品注册网址,输入产品特定信息;
2 产品注册网址使用用户提供的注册信息创造LWA请求,并将用户转到LWA网址;
3 用户登录到LWA;
4 用户授权他的特定产品可用于Alexa;
5 LWA返回访问令牌给产品注册网址;
6 产品注册网址将访问令牌安全地传输给用户的特定产品;
7 用户的特定产品使用此令牌去执行AVS API接口调用。
III、Authorize from an AVS Product (基于产品授权)
要访问Alexa语音服务,启用Alexa的Android或iOS应用程序需要获取Login with Amazon(LWA)访问令牌,该令牌将随每个请求一起发送到Alexa语音服务。授权页面如下:
vI、Code-Based Linking (CBL) for Other Devices and Platforms(基于数字字母代码授权)
要访问Alexa语音服务(AVS),启用Alexa的产品需要获取随每个请求发送到AVS的随Amazon登录(LWA)访问令牌。本文档描述了基于代码的链接(CBL),这是一种最适合具有有限或无法访问字符输入的产品的授权方法,例如电视或智能手表。
在产品注册期间,向用户提供短的字母数字代码和URL。在可访问浏览器的单独设备上,用户访问URL,使用其Amazon凭据登录,并输入短代码以将产品与其Amazon帐户相关联。链接后,产品会通过启动画面通知用户,并提供对AVS的访问权限。
(2)endpoints(站点)
AVS公开HTTP / 2服务,并期望为HTTP / 2编码的多部分消息。支持以下端点:
(3)传输协议
I、下行通道(Downchannel)
下行通道是在HTTP/2连接中创建的流,用于将来自云的指令传递给客户端。下通道从设备保持半封闭状态,从AVS打开的连接的生命周期。下行通道主要用于向客户端发送云启动的指令和音频附件。
II、创建HTTP2连接
产品开机时,它应该与AVS 建立单个 HTTP2连接。此连接用于处理所有指令和事件,包括在downchannel流上发送到客户端的任何内容。
维持与AVS的连接需要两件事:
* 建立下行信道流
* 与AVS(同步产品组件状态SpeechRecognizer,AudioPlayer,警报,喇叭,SpeechSynthesizer)
同步状态后,您的客户端应该能够使用此连接:
* 向AVS发送事件并从AVS接收指令 (注意:每个事件及其关联的响应都在单个事件流上发送。收到响应后,应关闭流)
* 在downchannel流上接收云启动的指令
III、维护HTTP/2连接
A.事件流生命周期
每个新事件都在自己的流上发送。通常,在Alexa语音服务将指令和相应的音频附件返回给您的客户端后,这些流将关闭。
请求按顺序处理。因此,在Alexa开始响应您之前的请求(一旦上一个请求返回标头)之后,应该发送新请求。
您的产品打开一个流并发送一个多部分消息,其中包含一个JSON格式的事件和最多一个二进制音频附件(零或一个)。有关更多信息,请参阅构建HTTP / 2请求。
AVS在流式传输完成之前,可能会在同一个流上返回由多个JSON格式的指令和相应的音频附件组成的多部分消息。下面的url属性cid:在一个Play或Speak指令也将出现在相关联的音频附件的报头。
在AVS的响应之后,应该关闭事件流。
B.Downchannel生命周期
同时,指令可以在下行通道上发送给客户端。主要是,downchannel用于云发起的指令。
GET请求创建具有AVS的连接的10秒内对指令作出路径。
此流用于发送客户端云启动的指令和音频附件,例如来自Amazon Alexa应用程序的计时器,警报和指令。与事件流不同,下行信道不会立即关闭,并且设计为从客户端保持半开状态并从AVS长时间打开。
当关闭下行通道流时,客户端必须立即建立新的下行通道,以确保您的客户端可以接收云启动的指令。
C.Ping和超时
您的客户端必须执行以下操作之一,否则将导致关闭连接:
* 当连接空闲时,PING每5分钟向AVS 发送一帧。
* 做一个GET对要求/ping每5分钟当连接处于空闲状态。
样品申请
:method = GET
:scheme = https
:path = / ping
authorization = Bearer {{YOUR_ACCESS_TOKEN}}
在PING失败时,应关闭连接并立即创建新连接。
D.服务器启动的断开连接
当服务器启动断开连接时,您的客户端应该:
打开一个新连接并通过它路由任何新请求。
处理完所有打开的请求并正常关闭其相应的流后,关闭旧连接。
保持与启动断开连接之前建立的任何流URL的连接(例如Amazon Music,Audible等)。只要字节可用,在服务器启动的断开连接之前播放的流应该继续播放。
如果尝试创建新连接失败,则客户端应以指数退避重试。
(4)构造HTTP请求
I、HTTP请求格式图
建立与Alexa语音服务(AVS)的连接后,我们的客户端将使用HTTP / 2编码的多部分消息与Alexa进行通信。HTTP请求格式如下图
II、HTTP / 2消息头
每次调用AVS都需要以下标题:
:method = {{verb}}
:scheme = https
:path = / {{API version}} / {{events or directives}}
authorization = Bearer {{access_token}}
content-type = multipart / form-data; 边界= {{boundary_term}}
III、请求和响应实例
五、Alexa Skills Kit
参考:https://blog.csdn.net/facemax/article/details/80505796
六、Alexa管理后台
进入:https://alexa.amazon.com/spa/index.html页面
然后在这里可以添加和删除Skill
七、Alexa指令集
网友评论