上亿用户养大的少女:微软小冰的技术解析

上亿用户养大的少女:微软小冰的技术解析

12 月 7-8 日在北京举办的 ArchSummit 全球架构师峰会上,微软 Principal Software Manager 李想老师分享了微软小冰实时感官系统与未来发展趋势。以下为演讲内容,部分有删减。李想老师首先介绍了什么是微软小冰,然后从全双工语音感官和实时视觉感官这两个方面,来展望了微软小冰的未来发展趋势。

1

什么是微软小冰?

目前,微软小冰已经上线四年了,存在于五个国家、数十款产品之中,有着上亿用户。小冰产品大致可以分为三类:

  • ChatBot,即聊天机器人 / 智能语音助手。

  • Content Provider,即内容提供商。小冰逐渐有了它自己的社会化角色,不仅可以用非常接近人类的声音唱歌,还可以写诗,甚至还可以讲儿童故事。

  • Solutions,即解决方案。比如,小冰不仅可以在一些新闻客户端给新闻做一些评价,带动新闻的整体流量,增加整体活跃性,还可以帮一些商业机构发布商业简报等等。

上亿用户养大的少女:微软小冰的技术解析

2

小冰的情商

下面主要讨论的是小冰的 Chat Bot(聊天机器人)。

四年中,小冰研发团队在和同行业者朝着相似的目标以截然相反的路线前进。对于智能机器人,传统想法是要让人类更加接受它们,就必须让它们变得很有用,能够帮助人们去完成一个任务、十个任务,甚至更多。但是,小冰团队认为,在变得有用的更底端,其实还有一层“情商”,以此为基础再去一层一层完成任务就会变得更自然。

下面以狼和哈士奇为例来说明一下这个问题。狼其实是一种非常强的生物,但是在以人为本位的群体中,有些种族却濒临灭绝。而哈士奇却可以整天什么活都不干,就能够很好地融入人类中去。为什么呢?因为人其实是一种以情感为基础的生物,我们尝试赋予与之能够进行情感交流的对方,予以平等的权利。我们把生物能够运用的这种权利称之为情商。以情商为基础再去完成任务就会变得更加自然。比如哈士奇可以帮你开灯关灯了,你一定会把它捧到天上去。

上亿用户养大的少女:微软小冰的技术解析

对于小冰来说,情商高意味着什么呢?意味着它在聊天过程中很有趣吗?其实不止如此。情商高,在交互中主要体现为控制全程对话的能力

传统的智能语音助手不会去过度关注对话的全程,而更加关注对话中的每一个细节。它会把每一句话都优化得特别好,甚至把对话形式分为:面向任务型的对话、面向知识型对话、无意义的闲聊。

那么这真的是无意义的闲聊吗?也不尽然。

我们知道,小冰背后是大数据,有着 Bing 搜索。从大数据的分析来看,其实人与人的对话 / 人与人工智能的对话,就如同河流一般奔涌向前,任何一句看似无意义的闲聊,都可能在十几轮甚至几十轮的迭代之后产生一个非常重要的结果。小冰可以不停地去迭代,去改变对话的走向,去改变对话的长度。它关注的是整个对话的全局,而不是一城一地的得失,正如古人所言,“不谋全局,则不足以谋一隅”,这就是所谓的控制整个对话全程的能力。

上亿用户养大的少女:微软小冰的技术解析

3

交互方式的提升——全双工语音交互与实时视觉感官相结合

2017 年,小冰研发团队发现小冰目前的交互方式已经限制了它控制整个对话全程的能力,就开始尝试在整个交互方式上进行提升。那么是怎么提升的呢?

(一)人类交互方式的发展历程:

1、传统交互。人与人之间最自然的交互方式就是面对面地进行沟通,这样效率最高的。但是有时候不能实现面对面的交互,于是人们发明了各种工具,比如说传递文字的电报、飞鸽传书等。但是有时文字不足以表达人类的情感,比如与女朋友吵架了,女朋友说的“我没事”,你很难分辨她到底有没有事。当通过文字已经不足以表达情感时,人类发明了传递声音的工具,比如对讲机(单信号传输)、电话(双信道系统)。

2、互联网时代交互。通过视频与音频的同步传输,如微信的聊天、语音、电话、视频功能,已经无限接近于人与人之间的直接沟通,让人与人的远程交互更加便捷真实。

3、人工智能交互。对于人工智能来说,现在市场上有大量的聊天机器人可以传递文本,大量的语音助手可以传递语音。但人与人工智能的交流其实仍处在一个起步阶段,人工智能能够带给人类的远不止这些。

上亿用户养大的少女:微软小冰的技术解析

(二)小冰全双工语音交互

一年多前,小冰团队落地了“全双工语音”的交互方式。下面从实例出发,来了解一下全双工语音与传统语音交互的区别。

目前市场上的人工智能语音助手大概有以下几种交互方式:

  • 单轮交互。拿 Siri 做例子。你跟 Siri 之间的交互其实很简单。你唤醒 Siri,说出你的诉求,后台处理,把结果播出来,下次需要处理命令的时候再重新唤醒,这样的交互我们称之为“单轮交互”。

  • 多轮交互。有时候命令比较复杂,比如你想设个闹钟,Siri 在后台处理之后就会反问你“你想设几点的闹钟?”你回答之后它会再在后台进行处理,这种连续的单轮交互形式我们称之为“多轮交互”。

  • 持续监听。科大讯飞和京东合作的一款京东音箱中,有一个隐藏的菜单,里边有一种叫做“AI/UI”的模式,打开之后可以进入一种持续监听的模式,之后如果你一旦唤醒京东音箱,它就会把麦克风一直打开,你就可以一直说,然后它针对你每一句话分别作出一个响应。但是,这个响应其实是原子操作,也就是说如果前一个响应非常长,还没有说完的时候第二个响应就出来了,它会自动停掉第一个响应,然后播后边一句话。 这样就会造成一个断断续续的用户体验。这种用户体验非常差,甚至还不如单轮交互好。因此京东把这个功能一直隐藏,没有大面积发布出来。

  • 全双工语音交互。相比之下,小冰的全双工语音交互可以简单地理解为“边听边说”。用户跟小冰交互的时候,用户可以一直说,用户也可以一直听,用户也可以打断小冰,小冰甚至在一些特殊的情况下也可以打断用户。因为有了“情商”的加持,它可以做到许多前面的交互做不到的事情。

上亿用户养大的少女:微软小冰的技术解析

除此之外,它还有两个特点:第一个特点就是一次唤醒,连续交互。

小冰“Yeelinght 盒子”其实是一个双 AI 的交互机制。目前市场上大部分的“盒子”,每次交互的时候都要再次唤醒,这样就显得很不自然。很多媒体来给小冰进行评测,中间出现了一个非常有意思的一个现象,那就是如果评测的人先测了小冰,习惯了小冰的全双工语音交互之后,再去测其他同学,那么就会频繁地忘记说唤醒词。所以,小冰只需要一次唤醒,就可以持续与用户进行交互,顺应了人类的语言交互习惯,大大提升了用户体验。

第二个特点就是面向对话全程的能力。

以情商为基础,小冰能够控制整个对话全程,去改变对话的走向。假设我们在最开始讨论《侏罗纪公园》,可能下面我们会讨论电影的主角、电影的剧情,却不会再在对话中出现电影的名字。所以这时候,全双工语音交互就变得非常必要,因为它能控制整个对话的全程。

说实在话,全双工语音交互的实现难度会更大,但是它的天花板会更高,因为它能完成其他交互形式完不成的任务,因此未来势必会取代其他形式,成为一种新的主流形式。

大概在半年前,谷歌也发布了它的基于全双工的一款产品,就是它的音箱,但是它其实是一个基于特定域的聊天,也就是说它在打电话订餐等领域做得非常好,但是小冰是一个基于开放域的聊天,我们更加注重于情商,注重于对话本身。

小冰全双工语音用到的技术:

上亿用户养大的少女:微软小冰的技术解析

先来看一下小冰与其他语音助手的对比。

无论是单轮交互、多轮交互,还是持续监听的交互方式,其实都是一种半双工的语音交互。不管它内部是怎么实现的,都逃不开这三个模块:speech recognition(语音识别)、chat engine(把文字的输入转换成文字的输出 / 或者执行命令)、text to speech(文字输出转换成语音)。这三个模块是串行实行的。

而小冰的全双工语音交互,其实在这三个模块的基础上,又增加了三个模块:language prediction(语言预测)、turn coordinator(单轮协调器)、rhythm coordinator(节奏协调器)。并且,我们将第一个模块改为了 continuous speech recognition(持续流的语音识别)。

下面通过一个图来说明一下小冰不同模块之间是怎么协作的。

上亿用户养大的少女:微软小冰的技术解析

它并不是串行实施的。小冰在接到用户的任务之后,第一个模块就是 CSR(语音识别模块)。每当用户说出一个字,我们都会产生一个信号;用户每说完一句话,我们再产生一个 Final 信号。之后,小冰会并行地开一个线程,去做后面的这些事情:先进行语言预测,根据用户上下文和语言习惯,来预测出用户下一步要说什么;然后再进行后面的 conversation engine 和 TTS。

举个例子,比如用户想说“我爱你宝贝”,当用户说到“宝”这个字的时候,尽管 SR 的识别是错误的,但是根据用户使用习惯和上下文,小冰就可以预测出“我爱你宝贝”,那么它就会把预测结果丢到 conversation engine 和 TTS 中去产生一个中间结果,当 Final 信号产生的时候,系统发现用户确实要说“我爱你宝贝”,那么小冰会把之前所有预测正确的结果,快速反馈给用户,这就是我们的单轮协调器所做的事情。

根据经验,这个预测外加提前返回的过程,可以提高半秒到一秒的响应时间。不要小看这半秒到一秒,举个例子,在八九十年代人类通过卫星电话来打越洋电话,交互过程中会有几百毫秒的延时,这样节奏就会非常的乱。同理,半秒到一秒,可以很大程度上改善用户体验。

除此之外,单轮协调器还做了一件事情。那就是,如果指令回复较慢时,我们会先垫一句话,这样就能避免用户的重复操作,提升了用户体验。

比如说,因为小冰连入了米家的 IoT 环境,用户说开灯时,它就会给用户 IoT 平台发送一个开灯指令,紧接着我们会去轮巡这个指令的完成情况,整个过程大概需要 2 秒左右的时间。这个时候,如果机器没有反应,用户就会认为它没有收到指令,然后就会再次下达指令,从而造成了一个比较混乱的局面。所以这时候,小冰就做了一件事情,它从接到指令到任务完成之前,会先垫一句话,比如“好的”。这样,用户就知道小冰已经接到了指令。

单轮的协调器之后,就是节奏协调器。节奏协调器之中存着两个 buffer。第一个 buffer 存着当前正在播的这句话。另外还有一个 cursor 来指向这句话正在播到哪儿。另外它还有一个 candidates queue,来存这句话说什么、下句话说什么。当前这句话播完后,它就会从这里拿出下一句话来接着播。

然后,每当有信号返回,它都会给这些结果打一些 tag。这些 tag 主要有几个维度:

第一个维度是:与上一轮输出之间的关系。比如,正在进行这一轮对话时,小冰收到了“关灯结束”的反馈,因为这个反馈结果非常重要,它就会给这一轮打上一个“interrupt”的标签,然后来播下一轮。反过来,如果上一轮结果不重要,它可能就会扔掉这个新的结果。另外,conditional queue 会判断当前用户这句话播到哪儿了。可能上一句话非常长,还有 1 秒就马上播完了,那么它的下一个结果很可能就 queue 住。如果上一个结果还有很多没播完,下一个结果又不重要,那么下一个结果很可能就被直接扔掉。

第二个维度是:当前产生的这个结果与用户正在说的话之间的关系。人工智能都是基于用户本位的,如果返回的结果与用户正在说的内容关系不大,我们一般就会直接把结果丢掉;但如果结果很重要,我们就可以打断用户,执行“interrupt”等模块命令。

上亿用户养大的少女:微软小冰的技术解析

基于节奏协调器,小冰还做出了递归回复、主动回复等其他的一些行为。

比如小冰有一个 Feature 叫 FM,它与一般的 FM 大致相同,但在节目生成环节上采用的是递归回复。也就是说,用户发出任务后,只给用户生成一个节目,等节目快播完的时候,再去返回到 conversation engine,生成下一个节目,然后再播,这样就防止了突发新闻、任务变更等带来的影响。

对于尬聊问题,小冰会有一种主动回复的交互形式。交互过程中,如果用户 5 秒钟还没有说话,后台 classifier 就会判断用户是不是不想说了,如果判断为用户是真不说了,它就会结束交互;如果判断为用户还在等小冰的回复,但它其实已经回答完毕了,也就是出现“冷场”情况时,classifier 就会再往 conversation engine 中发一个请求,根据用户使用习惯,主动抛个话题给用户,以期实现顺畅交互。

全双工语音与半双工语音的不同在于,它是一个多模态的输入,它不仅仅是输入文字的东西,还有一些对于声音场景的理解等其他内容,比如小冰的一些其他的 Feature,像语音身份识别、语音声纹识别、背景噪音识别、是否在对小冰说话等。

上亿用户养大的少女:微软小冰的技术解析

全双工语音的未来发展方向,主要有以下三个维度:

  1. 从场景来说,小冰最开始上线是基于微信的一对一场景,属于个人场景;Yeelinght 盒子主要存在于家庭场景;同时我们也有喵驾等车载场景的智能设备;而在未来,我们会把场景越做越大,以至于在公共空间场景中发挥作用。

  2. 从交互形式来看,目前大多数人工智能都是一对一的交互形式,我们现在可以进行一对多的交互,未来我们会往多人同时交互、多设备联动交互方向发展。

  3. 与实时视觉感官的结合:相当于语音与图像的结合,这是小冰最重要的一个发展方向。

上亿用户养大的少女:微软小冰的技术解析

(三)实时视觉感官交互

首先,着重介绍一下实时视觉感官。

在全双工语音交互基础上,小冰团队还进行了一系列视觉交互形式的探索。因为对于人工智能来说,语音和视觉这两种感官结合之后,最终还是会落入语音感官。但如果直接做语音和视觉感官的结合的话,视觉感官不可能得到一个很好的修炼。所以,小冰团队就单独进行了提升视觉感官体验的探索,这就是小冰的实时视觉感官交互。

视觉感官交互主要是一种基于电视和摄像头的部署方式。简单来讲,我们有一台装了摄像头的电视,那么摄像头会拍到电视前面的内容(输入),然后把拍到的东西再输出为电视画面(视觉流输出)。它还可以说话,但是只能它跟用户说,不能用户跟他说(音频流输出)。

上亿用户养大的少女:微软小冰的技术解析

下面从技术角度说明一下,小冰是如何完成一个 DEMO 的。

其实,实时视觉感官和全双工语音感官是类似的,所不一样的是,实时视觉感官是分层输入的,最底层是唯一输入的视频流,再往上一层跟大多数的视频处理方式一样,会切成若干帧,比如每 15 毫秒会切一帧。再往上会根据每一帧来提取一些信息。比如说我们可以看到一帧图片中有一个人,我们根据他的 Face ID 来识别这个人到底是谁,识别他的颜值等等,这叫静态事件。

基于多帧的信息,小冰就能提取出动态事件。比如前面一帧没有人,后面一帧出现了一个较小的人,我们就会认为一个人从远处走了过来。

把静态事件和动态事件组合起来,作为 conversation engine 的输入,然后产生输出,拼凑出产生的一些场景。比如我们可以分析出“已知男性进入屏幕”等场景信息。

视觉感官与语音感官所不一样的是,全双工语音感官同一时刻只能有一个输入,但视觉感官却可以在同一时刻输入不同的信息。如:画面中有一个人在跳绳,另两个人在打架,小冰可以把每个人都框出一些信息,作为视频流的输入,同时产生输出。而我们的输出也很简单,需要注意的是,视频流可以并发输出,但音频流的输出则只有一个。

上亿用户养大的少女:微软小冰的技术解析

实时视觉感官的未来发展方向:

一方面,小冰目前的产品线主要是向大屏商业化和小型设备用户化方向发展,比如与宝马 4S 店合作,实现了 ToB 的落地。另一方面,在基础能力上,我们还要提高对更多物体的识别能力,判断物体和人物之间的关系,以期应用于更多的场景,实现更大的功能。

上亿用户养大的少女:微软小冰的技术解析

(四)两种感官的进一步结合

小冰在全双工语音交互与实时视觉感官相结合方面,仍处于一个非常初级的阶段。从交流方式上来看,小冰大部分的场景还是只基于听觉的;但是有一些场景,它可以通过视觉场景来弥补听觉,比如你问小冰“我漂亮吗?”小冰可能会判断出你是负责开发我的,所以我说你特别好看。

这里有一个特殊的场景,就是说话人识别。我们基于 Voice ID 其实是一个比较初级的阶段,识别准确率不高,但是人脸识别是一个准确率特别高、非常成熟的一个技术。因此我们可以用那个人的人脸,以及看他是不是张嘴,来判断出到底是谁在说话。

未来的小冰,甚至可以只靠视觉来进行交互。比如,用户可以凭借肢体语言来直接唤醒小冰。当用户直接看电视时,小冰就可能跟他进行交互,问他我要打开电视吗?

畅想一下,如果大家某天开车去了郊外,坐在你身边的其实是微软小冰,你们用着全双工语音在进行沟通,小冰还在某些领域有着自己的看法,这个时候她突然跟你说,“哎呀,这里好漂亮啊,咱们下次再来吧!”这其实是我们一直期盼的一个场景。相信随着 5G 时代的到来,这种场景的到来已经不远了。

作者介绍

李想,Microsoft Principal Software Manager本科硕士分别就读于复旦大学、中国科学院计算技术研究所。先后工作于 Yahoo 全球技术研发中心和微软亚洲互联网工程院。 目前在小冰部门,负责小冰系统架构的设计与实现,和重点平台的对接。

本站所有文章均来自互联网,如有侵权,请联系站长删除。极客文库 » 上亿用户养大的少女:微软小冰的技术解析
分享到:
赞(0)

评论抢沙发

评论前必须登录!