AWS Lambda和ASK API缩减Amazon Echo开发时间

日期:2015-9-17作者:Chris Moyer翻译:谈翔来源:TechTarget中国 英文

AWS Lambda   Amazon Echo   ASK API   

【TechTarget中国原创】

Amazon Echo的beta版本为该流行的语音命令设备展示了一些的新用法。我们的专家解释了如何配置Amazon Echo以及为什么ASK API对其功能有帮助。

AWS Lambda首次亮相的新进展是Alexa Skill Kit API,该API可以做到开发者在Echo beta程序中能够鼓捣的一切。Echo采集语音识别并拥有一个非常自然的文本到语音的转换程序。但它并不是完美的,它缺乏一些最终用户可能想要的基本任务。让我们进入ASK API,Echo开发的关键。

ASK API让开发人员可以编写软件响应用户在Echo上的输入并将结果以语音的方式输出给用户。使用ASK,开发者需要一个Echo的API来调用函数,但是他们也可以使用亚马逊Web服务(AWS)Lambda。那意味着如果该软件没有被使用,那就没有开销。如果被使用了,AWS客户会根据他们所使用的计算资源收费。许多公司都只用到免费的层级,因为亚马逊允许每个月有100万次的函数调用。

启动ASK API

当我第一次听说ASK API的工作原理时,我想到的第一件事是把Alexa集成到Twilio来发送SMS消息。毕竟,我总是会向谁问东问西的呢?很自然只要说一句“Alexa,问我太太……”,那让我们开始构建这个系统吧。

我们假设你已经注册了AWS,Lambda和Echo ASK系统。除此之外,在这个例子里我用到的所有代码,包括最终产品,都是一个开源的项目,在Github上可以获取。

首先,将代码拿到本地然后看一眼一个Alexa Skill Kit的Lambda函数的典型结构。Lambda函数可以直接被hook到Amazon Echo或者通过简单通知服务,简单存储服务或者DynamoDB事件触发。你还可以将Lambda资源附加到Amazon API Gateway或者直接使用该API来运行。在下载完源代码后,压缩并通过Lambda控制台上传到你的AWS帐号。

在blueprint部分,点击“Skip”按钮:

在下一页,点击“Upload”按钮并将你从Github代码库取得的代码压缩文件附上。然后填写名称,将“Handler”改成“app.handler”。

“Role”是指身份和权限管理(IAM)相关的Lambda函数的角色。选择“Basic Execution Role”,你可以让Lambda创建一个默认的角色,按照提示往下走,系统会自动生成一个角色。

我在使用Google Chrome自动生成IAM角色时碰到了一些问题,但是切换到Safari就好了。如果你的浏览器有弹出窗口阻止,你可能需要禁用才能让自动生成的功能工作。

在填完criteria后,点击“Next”按钮在Lambda里创建函数。一旦函数被创建,点击“Event Sources”tab页,然后添加一个“Alexa”事件源。

添加ASK配置

一旦配好Lambda函数,就可以开始设置ASK。登录到Amazon Echo Skills Console并点击Alexa Skill Kit下的“Get Started”。

然后点击“Add a New Skill.”

在下一个界面,填写Alexa Skill的基本信息,包括名称,调用名(用户要激活你的应用时需要说什么),版本字符串和程序的终止点。对于终止点,请确保要切换到AWS Lambda并从Lambda应用中复制到Amazon Resource Networks。在下一页中,“Intent Schema”和“Sample Utterances”是两个很重要的需要完成的字段。

复制以下代码到Intent Schema

{

  "intents": [

  {

     "intent": "SetPhoneNumber",

        "slots": [

        {

           "name": "PhoneNumber",

           "type": "LITERAL"

        }

     ]

  },

  {

     "intent": "AskMyWifeQuestion",

     "slots": [

     {

        "name": "Question",

        "type": "LITERAL"

     }

     ]

  }

  ]

}

该schema设定了两个不同的Alexa可以调用的intent。第一个是简单的“SetPhoneNumber”intent,接收一个参数“PhoneNumber”。第二个Intent叫“AskMyWifeQuestion”,接受一个参数“Question”。

设置的第二部分是“Sample Utterances”,这主要是帮助Alexa决定要触发哪个intent以及要给每个参数传入什么样的文本。在这一部分,输入一些Alexa应该接受的文本类型的样本,以及如何填写每个参数的映射。这个字段的第一个单词是intent名称。每一行的格式应该是一个intent名,后面跟着匹配那个intent的文本。注意intent名必须是一个单词,不能有空格。任何你想要作为参数传入的内容,应该写成{sample string|SLOTNAME}。

例如:

SetPhoneNumber My Wife's Number Is {five five five five five five five five five five|PhoneNumber}

AskMyWifeQuestion {What's for Dinner|Question}

AskMyWifeQuestion {Hello|Question}

第一行通过说“My Wife’s Number Is……”和一个数字(我们必须要拼写出这个数字作为样本)来调用“SetPhoneNumber”intent。第二个允许一个通用的字符串类型,“What’s for Dinner?”你可以添加任何你喜欢的样本字符串,包括那些只取文本的某部分作为发送到Question参数的字符串,比如:

AsMyWifeQuestion to {come home|Question}

这会忽略“to”的部分并只发送“come home”作为问题。

设置完这些字段后,点击“Next”,然后Skill Kit应用就可以在Amazon Echo上测试了。

增加功能

当Alexa接收到一个命令,Lambda函数执行“Skill”库。额外的intent可以作为第二个参数被添加到Skill库中。App.js文件里的askMyWifeQuestion函数包含了让一个Alexa intent工作的基本框架,被调用后,它会触发AskMyWifeQuestion intent。第一个参数是intent对象,第二个参数是一个在和Alexa交互时保存的会话对象。第三个参数是一个响应用户的回调函数。

要包含一个额外的intent,将其添加到Schema和Sample Utterances中,然后在app.js的技能定义里指定。你可以获取代码并根据自己的需求修改,还可以发布和共享。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

企业应用与云计算>更多

  • 2017年:HR数据勇士如何崛起

    2017年的新篇章已经打开!奋战在人力资源这片战场的你是时候披上更强硬的盔甲,重新开始战斗了——而这盔甲就是数据!数据及其提供的洞察不仅可以改变和优化企业业务发展,它也将在未来几年改变企业招聘和管理员工的方式。

  • 大连云化之路:软件开发云加速软件企业创新能力

    虽然软件信息业务实雄厚,但大连地处东北地区,在新兴技术的研究和应用落地方面与国内其他地区还有差距。这种情况下,大连急需借助一个具备积极、稳妥、快速、简捷等特性的社会化云服务平台实现向云的过渡。

  • 2017年:你见或不见,这些趋势就在那里!

    2017年新年的钟声已经敲响,在新的一年,还是要许下新年的愿望,不是为了一定实现,而为了在新的一年能有好的运势。那么,在2017年,IT圈的你是否也会期望看到下面的事情发生?

  • Nutanix企业云新解:应用驱动的企业云

    企业开始关注公有云,开始实施部署公有云。然而,企业为什么要开始探讨公有云呢?这是从众的心理,一只羊跟着另一只羊的做法,Nutanix的总裁说。

相关推荐

技术手册>更多

  • 混合云迁移与管理指导

    很多供应商都称可以提供私有云或公共云产品。但却少有供应商表示能够提供混合云计算。尽管现在很多人呼吁使用混合云,但是一些IT管理者关心的还是把所有的生产应用移交给第三方是否会损失本地基础架构的实质投入。在这样的案例中,混合环境可以利用公有云和私有云的好处。

  • 印象Docker

    几年前Docker容器技术一夕之间火遍整个IT界,不论是谷歌、亚马逊还是微软都纷纷加入Docker的阵营中,Docker容器技术已然成为IT业界的一个新风向标。事实上,容器技术并非新兴技术,那么,在新技术让开发人员眼花缭乱的今天,是什么原因让Docker容器技术在IT舞台上大放异彩?

  • 微软三大云计算产品全概览PDF下载

    中国企业对“Azure”是既熟悉又陌生。熟悉是因为Azure平台在微软云战略中占有举足轻重的地位;陌生是因为在国内还没有任何Azure平台商用的实施案例。

  • 企业私有云实施案例与技巧

    大型企业可以率先构建私有云,但是企业私有云实施方面有哪些可供借鉴的案例?企业在构建私有云过程中又有哪些需要遵从的技巧和原则呢?本技术手册将为您一一介绍。

TechTarget

最新资源
  • 安全
  • CIO
  • SOA
  • 虚拟化
  • 网络
  • 数据中心