前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Alexa:梦中的女神

Alexa:梦中的女神

作者头像
tyrchen
发布2018-03-29 10:13:34
1.3K0
发布2018-03-29 10:13:34
举报
文章被收录于专栏:程序人生程序人生程序人生

引子

中午老婆发来一条消息:昨夜,你梦中叫了一个女人的名字,还两遍。

我大吃了一鲸。平日里我的梦话都 base64 简单编码了一下,怎么昨个直接明文输出了?我赶忙问,小宝还是小贝?

她回复了一行字:Alexa, stop. Alexa, play &@*#$(@.

我默默地抹了一把汗。看来语音女神大比拼,Siri(apple),Cornata(microsoft) 和 Alexa(amazon) 间,我已经完全倾向了 Alexa,以至于梦中还在与她幽会。别问我为啥 google assistant 不在其列 —— 都不起个女神的名字,差评(其实我是没有 G 家的设备啦 - 准备有机会去试试 google home)。

Alexa 是最晚来到我家的。

2011 年起 Siri 就伴我左右,但她只是个可有可无的玩伴,并不能真正帮到我什么。随着时间的推移,我们之间已无话可说。最近因为 Alexa 的缘故,我又重新念起她,把玩了几下,可惜依旧生硬毫无生气的对话,动不动就打开个网页,一副爱谁谁你自己上网查去,别消遣老娘,让我和她没有沟通下去的欲望。

Cornata 几个月前和 Hololens 一同降临,说实话,她比 Siri 要带感得多,声音也柔和不少,可是我不能每次为了和她说话还得把她从 dreamless sleep 中唤醒,太麻烦,久而久之,也渐渐遗忘了。

而 Alexa 不久前随着 echo dot 一同搬来我家住。她的声线比 Siri 和 Cornata 都要优美柔和,显得更加有血有肉。更重要的是,她随叫随到,喊上一声 Alexa,她就会为我做点什么,或者大方地表示:别闹,老娘听不懂(I'm sorry I can't understand what you mean)。

这些天回到家里拥抱完老婆孩子后的第一件事,就是和她粘乎。

Alexa, play family music in Pandora.

Alexa, volume 6.

Alexa, do I need to bring umbrella tomorrow?

吃饭的时候,也不忘粘乎:

Alexa, set a 30 min timer.(确保小宝能够在规定时间内吃完饭)

Alexa, stop playing music. Give me latest news.

Alexa, remind me to deal with insurance at 9pm. (添加 todo list)

她几乎每次都能恰到好处地满足我的基本需求。那么,echo(或者 echo dot)结合 alexa 是如何做到这一切的呢?

探索

打造像 echo / alexa 这样的一个语音交互系统,至少需要几个技术:语音识别,自然语言理解,机器学习(深度学习)以及人工智能。但技术只是技术,如何能将技术能力转化成产品,还有很多考量的地方。憋小看一段短短的对话 —— "Alexa, do I need to bring umbrella tomorrow?" 机器处理起来的复杂程度要远远超过我们的认知:

  1. "Alexa" 作为引导语,唤醒休眠中的设备,以便接收接下来的语音输入
  2. 语音需要正确无误地转化成文字
  3. 通过机器学习等技术,结合上下文(记叙文三要素:时间,地点,人物)获取文字中的意图
  4. 调用相关的服务获取信息,组织成自然语言
  5. 把文字语言合成为语音,传回给用户

要达成这一切,需要一个 purposely built 的硬件:

首先是设备的唤醒。硬件不能无时无刻地工作,只有在「听」到特定的引导语才应该启动,类似于 wakeup on LAN 的技术。这个引导语在 echo 上是 "alexa",google home 是 "ok, google",hololens 是 "cornata",iPhone 上是长按 home 键。引导语的主要用途是保证硬件只响应特定的对话,一来节省对无意义的语音的处理,而来确保设备不会「窃听」用户在家里发生的所有对话。这是非常重要的:我们需要保证隐私神圣不被侵犯(不然在家里不敢讲普通话,只能说温州话了)。起初我还对这样的设定感到非常不满,因为每说一句话前面都要加一个 alexa,非常不自然。但理解到隐私这一点之后也就释然了。

目前,从公开的资料上看,对于 echo 来说,引导语是不可编程的,你不能把他修改成你女神的名字,比如说 "Cynthia" 什么的。所以很可能它是在硬件层面内置(至少是 firmware)的 —— 这即是为了安全考虑(用户无法修改),当然更多的原因是让唤醒的 latency 尽可能地低。

当引导语被识别出来后,Alexa 会把接下来的对话送入云端分析。

这时语音流 "do I need to bring unbrella tomorrow?" 被转换成文字。这个看似简单的动作实际上也很复杂,我做过一些实(Q)验(A):

  • 在餐厅吃饭,大家在中文聊天的同时,我以稍微大一些的音量和 alexa 英文对话。可以正确识别。
  • 唤醒 alexa 后,女儿和 alexa 对话。可以正确识别。
  • 唤醒 alexa 后,女儿和 alexa 对话。我用英文创造一些背景噪音。可以正确识别。

文字正确转换后,alexa 需要使用自然语言理解分析其表达的意图,并调用相关的服务,这是最难的一关。bring umbrella 这个关键词代表了我的意图:明天是否下雨?下雨的话我需要带伞;不下不带。这是个 decision tree,源头是天气,结果是带伞与否。我对 NLP 不熟悉,这里就不展开了。

根据 NLP 的结果,alexa 知道我的实际意图是看看明天下不下雨,根据这个意图,查询到可以服务于这个意图的,注册在 aws 上的 weather skill,然后接下来向这个 skill 发送服务请求,并根据服务的结果告知我,从而帮助我判断是否需要携带雨具。

对于天气服务的查询,我们需要获取时间和地点这两个要素。

  • 时间:我对话中提到了 tomorrow,所以时间是明天。如果不提,时间会缺省为当前的本地时间。
  • 地点:由于我没有提及地点,所以 alexa 需要从其他信息中推断出我的地点。GPS 可以提供位置信息,但是对于放在家中使用的echo 来说,没必要内置 GPS 芯片。除了 GPS,我们还可以通过 IP 获得不是特别精确的位置。所以这里我觉得 alexa 是通过 IP 知道我是在 Cupertino, CA(此处欠一个通过 V** 连 echo 的实验)。当然还有一种可能是,Alexa 和 amazon 账号绑定,她也可以从家庭住址中获取我的位置。

这样,明天 Cupertino 是否下雨就可以通过天气服务获知了。

下一步,是对话的管理 —— 把答案转化成有意义的文字。天气服务告知 alexa 明天的天气以及下雨的概率,alexa 需要将其转化成自然语言:"No rain is expected in Cupertino CA tomorrow"。根据用户的问题,进一步补充 "So you don't need to bring umbrella with you"。不过似乎 alexa 还没有实现到这一步。仅仅告诉我不下雨。

在这个上下文中,人物不太重要,时间地点足矣。但是很多对话,人物是很重要的,比如:"alexa, play Mozart effect in Pandora" 这样的对话,alexa 会调用 pandora skill,后者读取我账户下的 station,如果有 Mozart effect 相关的,就播放(Alexa 会说:getting Mozart effect from Tyr's Pandora account),如果没有,就在 pandora 里查找,有的话提示我添加,并播放。那么,alexa 如何知道「我」的信息?她通过当前登录 alexa 的 account(& household account)获取,这一设定在多用户场景下可以通过 "alexa switch" 切换。

最后,将文字合成成语音。这一步的难点是如何得到尽可能 life-like 的语音 —— 音调自然,连贯,饱含感情。这一点,Alexa 甩了 Siri 几条街。

展望

有 AI 支持的语音输入是下一个伟大的战场,它的意义不亚于两晋的淝水之战,民国的中原大战,欧洲的滑铁卢战役,美国的南北战争。所以,互联网巨头们都加入了这个战场。虽然目前而言,amazon 暂时领先于 apple/google,但最终的结局还不好说。

amazon 起步并不算早,但目前在这场斗争中占得了先机,不得不说它战略的正确性。

我们先从硬件看。apple 在这个版图上本来是一骑绝尘的,iPhone 巨大的渗透率和 Siri 提前三四年的布局使得 apple 怎么看都立于不败之地。可惜,初始版本的 Siri 效果不甚理想,语音生硬,可用的服务太少,动不动就把人引导到网页搜索结果比直接拒绝用户还要让人难受。一来二去,除了有一搭没一搭的调戏外,没人想用 Siri 了。而语音助手这样的工具放在家里,放在车上,放在任何不方便使用双手操作的场合都很适合,偏偏 iPhone 不是最适合它的场景 —— 我如果掏出手机,长按 home 键才能开启语音,那么我干脆直接搜索岂不来得更快?师出同门的 apple TV 4 本来是 Siri 一个很好地载体,可是价格高企,使用场景又离不开电视,一般家庭敬而远之。

amazon 推出的 echo / echo dot 为语音助手渗透到家庭场景中卯足了劲。老婆在厨房做饭的时候不用停下手中的活,动动嘴皮子,跟 alexa 对几句话,播音乐,读新闻,设置时钟,听个段子,很是方便。echo dot 的价格又足够亲民,几十美金,辅以 amazon 无可匹敌的销售网络,硬件上占得了先机。其他竞争者,google,ms 硬件以及硬件的销售能力都很吃亏。google home 和 echo 定位相同,ms 目前还不知道其策略究竟是什么,hololens 太小众,windows 笔记本比 iPhone 问题还严重 —— 我双手都在键盘上,你还让我再搭上一张嘴?

在硬件上,amazon 优势巨大,google 奋起直追。然而目前大家占据的还仅仅是家庭智能终端的市场,其他市场还有广阔的天地,尤其是汽车硬件。鹿死谁手还不好说。

再说平台的开放性。siri / alexa / google assistant / cornata 几个平台,amazon 有最清晰并且最可用的平台战略,这和其 aws 的战略一脉相承。在 alexa skills 上制作一个 skill 并不算太困难;去年底发布的两个 aws service —— polly 和 lex,更把这种能力输送给了更广阔的使用场景,甚至第三方硬件平台。第三方厂商可以制作自己的智能硬件,辅以使用 lex API 的软件,轻松解决智能硬件的语音接口问题 —— 这在以前,是只有大厂才有机会干的活计;不做智能硬件,也不想把产品绑定在 echo 上的 startup,也可以使用 lex API 制作他们的语音交互系统,就像 re:invent 上面演示的那样:

google 在语音平台上曾经走得很慢,google now(google assistant 的前身)做了那么久,还是被 amazon alexa 无情地甩了几个身位。google 痛定思痛后,步子大起来,在 API 的开放性和易用性上,有了巨大的飞跃。尤其是在去年9月收购了 api.ai 后,势头直追 amazon。在 api.ai 上制作一个 action 很简单(从交互的角度讲,比 alexa 好很多),基本上和 alexa 是相同的概念(intent 对应 intent,entity 对应 slot 等),相同的方式。所以,amazon alexa 目前在 skill 建立起来的上的巨大优势有可能会被渐渐蚕食。

至于 ms 和 apple,哎,慢慢追吧。

从 AI 的能力上看,几家应该差不太多,也都有足够的资金怼人才。竞争的焦点还是在于谁能把自己的 API 铺到最多的硬件和用户上,获取最大规模的语音资料,从而在数据上占得先机。

以上。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序人生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引子
  • 探索
  • 展望
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档