要问智能手机上最鸡肋的功能,小编第一个想到的是人工智能语音助手:几乎不使用,扔掉又可惜。
为什么几乎不用呢?且不说别的,首先就因为语音助手们不会像人一样说话。
每和它说一句话,都要先说“嘿,Siri”,或者“你好小艺”,或者“小爱同学”,或者……说久了小编觉得自己都快成智障了……
这第一步就让人望而却步,所以,打入冷宫呗。
不过,在11月19日举行的小米开发者大会上,小米小爱同学3.0的发布引起了小编的注意,因为她有一个重要的更新:更自然的连续对话。
小爱同学也成了首个在手机上实现自然语言连续对话的AI助理。
最近,IT之家小编汐元更新了小爱同学3.0,体验了一下这个连续对话究竟是怎样的。
一、小爱同学3.0连续对话的体验
汐元使用的是小米9 Pro 5G版,更新时只需要对小爱同学说“现在升级”,她就能够自动升级到3.0版本了。
升级之后,连续对话功能不是默认开启的,你需要在小爱同学的设置选项中手动开启。
开启后,汐元尝试和小爱同学进行了一段对话:
在这之前,汐元还和旧版的小爱同学进行了一段类似的对话:
对比上面两个测试的视频,很明显,支持连续自然语言对话的小爱同学3.0比以前好用多了,体现在:
说一次唤醒词,就可以一直对话下去,不用反复喊“小爱同学”了;
在小爱同学话说一半的时候,你可以打断她,让她执行下一个指令;
当然,目前在连续对话下,你和小爱同学闲聊,她仍然会回答一些不合逻辑的话:
但至少,现在和小爱同学说话,在方式上很像和人交流了。
汐元觉得,这才是AI助手摆脱“智障”标签的第一步。
别小看这第一步。“人机语音交互”的终极目标,不就是要像“人人语言交互”一样吗?
这么,这一小步背后,又是哪些技术在制程呢?连续对话功能,究竟是怎么实现的?
二、全双工多轮交互技术到底是什么?
根据小米的介绍,他们采用的是全双工多轮交互技术。这是个什么技术呢?
首先,全双工的意思就是,在同一时间里,信号可以双向传输,即A可以发消息给B,同时B也可以发消息给A。
也就是A和B都可以同时发送信息和接收信息。
同理,半双工的意思就是在同一时间,信号只能单向传输,即要么A发消息给B,要么B发小给A。
这个差别就像是现实中双行道和单行道的差别。
全双工本身不是什么尖端的、困难的技术,相反,很早就有了。它就是在芯片层面和外部之间采用发送线和接受线各自独立的方法。
例如,电话就是典型的全双工技术,而电话已经诞生100多年了。
只是,要在AI语音交互中加入全双工技术,这就有点困难了,毕竟,你要对话的不是真实的人啊。
三、插曲:常规情况下,语音助手是怎么识别人声的
这里汐元要插一段,简单给大家说一下通常AI进行语音识别是怎么实现的。
例如,我在对语音助手说“打开IT之家”的时候,手机通过麦克风接受到汐元的声波模拟信号,然后将模拟信号转化为数字信号。
接着,系统会对数字信号进行特征提取,提取时会将这段语音信息分成很多小块,然后根据每个小块的特征组成音素——“da kai ai ti zhi jia”,再将这些音素根据声学特征进行分类。
然后,系统会将这些因素和自己的语言库进行比对,根据语言的规律,找出对应的文字。
接着,系统还要根据文字进行自然语言理解,去理解文本的含义,然后找到答案,最后去进行自然语言的生成,输出回答语音。这个过程中,需要强大的对话引擎参与。
目前对话引擎主要分为检索模型和生成模型。
检索模型,意思就是从知识库中检索最相近的问题,然后找出对应的答案。
▲图片来源:微软小冰技术讲解PPT
生成模型,这个有些抽象,通俗说就是根据神经网络训练的结果来给出答案。这个答案是AI自创的,不是检索数据库得到的。
所以,在算法不成熟的时候,AI的回答可能会有些不合逻辑。但这个更符合连续对话场景的需要。
小爱同学大部分时候采用的就是生成模型。
这相当于AI助手完成一个语音识别并回答的过程,也可以理解为完成一个半双工的过程。
四、全双工交互的难点和解决方法
那么全双工下有什么不同呢?
首先我们知道,对于AI助手而言,全双工就是输入、输出可以同时进行,这本身不是什么难点,毕竟电话都能做到了。
难在哪里呢?难在你和AI交互的时候,一旦全双工,会带来整个系统性的问题需要解决。
包括:
第一:怎么全面地降低功耗?
第二,连续对话是一个长时间的过程,怎么消除噪声干扰?这个噪声包括杂音,还有你不是对AI说地那些话。
第三,AI怎么理解、记住上下文语义,让对话能够继续下去?
第四,AI在说话时,你也说话了。AI怎么判断你是不是要打断他,也就是怎么避免被误打断。
还有一个比较远,就是AI和你持续对话时,能不能判断什么时候沉默,什么时候打破沉默,要不要引出新话题?就是让你觉得你说话的对象不是死板、机械的。
能够解决这些问题,全双工也就能普及了。
上面这些问题,其实目前都没有十全十美的解决方案,但已经有可用的了。
具体看小爱同学,怎么解决呢,
1、连续对话免唤醒
这个技术需要解决一系列问题。
连续对话免唤醒,也就是只唤醒一次,就可以多轮对话。现在你每说完一个指令,AI不会歇着,而是随时待命。那么问题来了,首先怎么降低功耗呢?
有一个办法是分级处理。比如说,我向小爱同学下达了一个指令,她响应后,不会像以前那样休息,而是继续待命,等待再有人声被检测到。
等待的过程中,她不会做复杂地监听,而是第一级先简单处理噪音,再做二级高精度处理。等有人声出现,才会进行声纹识别等操作。也就是说,她是逐步提升计算性能的。
还有一点,也有利于降低功耗,就是语义拒识的算法,这个不仅是去除噪声,也可以检测到环境中,包括人说话中一些没有语义意义的音频片段(例如音乐声、尖叫声,说话中的嗯啊口语等),然后将他们去除,这样也可以节省后端处理的计算资源。
当然,降低功耗也离不开硬件层面的进步,这是软硬结合才能实现的效果。
然后就是,过去你在唤醒词后面就是要对AI说的,现在连续对话了,AI怎么知道你是对它说话呢?
这里有一个过程叫语义选择。通俗理解,就是当AI收到人声,进入语义分析的环节时,它会先看看这句话的意思是否跟我这个设备覆盖的语义规模、意图相吻合,从而判断当前人是不是跟设备说话。
汐元也模拟了一段包含噪声、不同说话声的测试场景:
小爱同学很稳地过滤掉了背景的音乐噪声,完全没有受到干扰。
周围的其他声音中,汐元本人的说话声,小爱同学基本都能准确识别出来。而另一台手机播放的声音,有时候会对交流造成打断,有时候也能识别完整的语义,有时候则只能识别只言片语,然后给出错误的回答。
这说明,小爱同学已经具备在复杂环境中识别指令的技术,但是,判断的准确性还不太完美。
目前还有一种多模态交互的技术,就是除了语音之外,终端还会配合其他的传感器,特别是视觉方面,这样,AI就能更加精确地判断用户说话地意图了。
2、让对话稳定持续下去
在连续对话中,怎样让对话持续下去呢?
首先要让对话显得自然,不出错。我们在和语音助手交流地时候,经常会发现,你说话地时候,稍微停顿长一些,AI的识别就停止了(以为你说完了),然后给出一个错误的回答。
这种情况,小爱同学的解决办法是,在云端根据用户说话节奏和内容,进行动态断句,这可能需要一定时间的学习。
在回复时,则可以适时的回复“嗯”等人类常用的接话话术,这样,系统就打破了对说话规则的要求,用户也可以按照自身的说话习惯来进行交流。
怎样理解上下文呢?说实话,这目前还是AI语音助手的一个难点。
这一点上,小爱同学的思路是,引入交互认知智能的概念,简单说就是她在分析语义的时候会思考,会解读当前所处的语境环境,并结合历史任务,判断用户的意图到底是什么。
这其中,涉及一些专业的技术,例如跨技能的上下文处理、多引擎(信息检索、任务)的融合、指代消解、知识推理等。
指代消解是这里一个很重要的技术,大意就是能够理解上下文代词的意义。跨技能的上下文指代消解,就是在不同场景下也能判断代词。
例如汐元对小爱同学说:“今天上海天气怎么样?”然后又说“导航去那里”,查天气和导航是两个不同的技能,小爱同学就能够理解其中的代词。
然后还有一点,是防止误打断。这一点,小爱同学也有对应的技术,可以在对话的过程中,实时判断是否需要打断,不容易出现误打断,同时,对没有语义的输入,则不会打断语音合成播放。
3、让对话更有灵性
最后还有主动交互的技术,它可以智能判断,甚至主动打断用户的啰嗦的表述,当对话陷入冷场时,也可以主动打破沉默僵局,实现流畅自然的用户口语交流习惯。
这个技术暂时还没有完全成熟的应用,不过在不久的将来,相信我们会看到更有灵性的AI助手。
总结
小爱同学3.0第一次将全双工多轮对话的技术带到了手机AI语音助手上,从而实现了连续对话的能力,正如汐元所说的,这是手机AI助手真正可用的第一步。
不过,汐元也了解到,这个技术此前在一些品牌的智能音箱产品上已经使用了,这说明,全双工的语音识别,是一个趋势。
当然,全双工的语音识别技术还没那么成熟,也需要更长时间的技术优化,但好歹,它已经让我们看到了AI助手在未来的无限可能性。
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。