在找机器人女友前,你还需要看下这篇最强自然语音交互科普贴
电影《 Her 》里,语音交互成为普遍的交互方式:孤独的作家西奥多,有语音操控的随身计算设备,用语音撰写感人的书信安抚受伤人,还找到了“机器人女友”莎曼萨。
作为一个懒人,每次看这部电影,都对语音交互充满期待。这,真的就那么远么?造出机器人女友真要到电影里的 2025 年么?我也找出门问问的 CTO 雷欣分(ke)享(pu)了。
造出莎曼萨需要分几步
打造莎曼萨这样的机器人,本质上是建立一套基于自然语音的操作系统。这背后最重要的工作应该是自然语音交互,主要包括:语音识别、语义理解、信息搜索、语音合成。
模拟出像莎曼萨那样迷人的声音,就是语音合成。这个过程其实可以理解成语音识别的反过程。现在有不少开源的项目,简单合成并不困难,但是如果要合成高质量的具体某个人的声音,就需要很多工程优化和个性化定制了。
仅有语音识别、语义分析、语音合成这些初级技能,萨曼莎肯定就像一般韩剧里的女主,颜值超高,智商超低。要真正讨人喜欢,还需要自然语言搜索、智能推荐这些高阶技能。
这个看起来挺抽象,举几个例子就很容易懂了。
语音识别:语音输入法、微信的声音转文字就是最典型的案例。
语义理解:Siri、微软小冰、小娜就是比较典型的案例了。
自然语音搜索:比如搭载了出门问问Ticwear系统的Moto360视频里展示的语音提问、搜索。
智能推荐:还没有看到明显的案例,像《 Her 》里莎曼萨那样主动提供建议,这个还是有点难度的。Google 现在也在做这个,譬如当你达到某个地点时,会主动推荐一些你可能需要的信息。
造出莎曼萨还有哪些困难要解决
要造出莎曼萨,当然不是一件容易事,还有很多问题要解决。
一、语音识别
1、算法
最近几年,语音算法方面基本比较成熟,深度学习(DNN、RNN)已经成为核心算法,极大的提高了识别准确率,但是仍有好多问题需要解决。
(1) 噪音:人在噪音环境下,也很难听清楚别人在说什么。而算法只能解决部分问题。之前小鱼在家的 CEO 宋程枫就表示他们花费了大量的人力物力财力解决噪音问题。
(2) 方言:这个就果断不解释了。你确定你能听懂全国各地方言么?更何况是机器呢。
(3) 远场:声音的传播会随着距离指数衰减。当人距离声源远时,可能就很难听清,机器也一样。
2、数据
机器学习是现阶段最有效的方法,但需要大量的数据和机器来训练模型,一般往往需要上万小时的声学、文本数据来学习。训练数据可以从网上挖掘,但都是通用的数据资料。而要做得深入、更好用,还需要特定垂直领域的数据,这可能就需要企业自己去搜集大量领域内数据。
3、工程
语音识别其实是一个比较大的工程,涉及到:大规模的声学和语言学模型训练(基于CPU/GPU 集群)、云端实时识别、离线指令识别等。要做到这些都不容易。如果是移动端,还需要考虑在线 / 离线结合的问题,同时适配众多的手机机型,这一点也不容易。
二、语义分析
1、算法
我们日常说的话往往是口语,同样一句话有可能有十种说法。比如,可能会说“我想去从东直门去西直门”,也可能会是“去西直门,从东直门”。人很容易理解这些,但对机器来说,就太难了。
另外,与语音识别类似,NLP 处理也要做很多领域的定制的结构化的学习方法。很多时候,人类都无法正确、准确的描述问题,很难从对话中或者直接搜索得到他想要的确切信息。这就会增加机器理解语义的难度。这种时候就只能一边猜,一边问了,用户体验就会下降。
2、数据
机器学习需要大量的数据学习,但目前还缺乏领域内的标注数据。有些时候,一个词就可以指代不同的东西;有些时候,一个固定的声音,还会有不同的文字和解释。比如,中文的 shangwujiudian,既可以理解成上午 9 点,也可以理解成商务酒店;英文的 buy 和 by 同音,但意义并不同;用户说周杰伦时,既有可能是想知道周杰伦的歌,也可能是想看周杰伦的百科。同时,自然语言的数据质量往往比较差,还需要做筛选,才能提高机器学习的有效性。
另外,现有的数据还不足以建立起大规模的知识图谱,还需要挖掘大量的知识,放在知识库里,并不断积累。比如,提到刘德华,一个优质的知识图谱,应该涵盖刘德华的生平经历、家庭状况、歌曲、电影等各种资料。
3、工程
自然语言处理的过程比较复杂。声音信号转化成文字后,还需要不少后期处理,比如分词、分类、纠错,首先要确定是哪一类信息,明确用户要做什么事,再找到关键参数。这些复杂的流程都对应着庞大的工程。
何时能够造出莎曼萨?
虽然有不少困难,但目前在语音识别、语义分析方面都还是有进展的。
语音识别方面的进展是突破性的。深度学习最成功的应用就是在语音识别上。首先,准确率得到了显著提高,并简化了系统,而且可以更有效的利用海量数据。据说语音识别的准确率已经从 80% 多提升到了 90% 多。
语义识别方面也有进展。2 年前,Google发布“知识图谱”,为用户提供有完整知识体系的搜索结果,为机器搭建更丰富的知识图谱。IBM Watson 也做过深度问答系统,2011 年参加智力竞赛节目“Jeopardy!”,战胜了两位人类,选手。目前,不少大公司也推出了比较成熟的语音语义识别产品,我们最熟悉的就是 Google Now、Siri、Cortana。
近几年,随着智能硬件的兴起,在智能车载、智能家居领域,传统输入方式受限,语音交互开始被接受,交互技术逐渐成熟,近几年语音交互使用量增长很迅速,今后 2-3 年会更普及。但要做出接近莎曼萨的产品,估计至少还要 20 年。
莎曼萨能说中文(普通话)吗?
这个肯定是可以的。不过,与英文相比,中文(普通话)识别与分析的难度更大。语音方面,中文有声调的差别和大量的同音字。语义方面,现阶段英文句法分析(parsing)准确率能达到 90% 以上,但中文只有 80% 多,这主要还是因为汉语太博大精深了。
(1)变调:汉语里两个以上音节在连续的时候,由于受前后音节的影响,有些音节的声调会发生变化。普通话的连读变调在上声字里表现最为突出,识别难度更大。
(2)同音:汉语音节少,造成的一个后果就是同音字太多,声音转文本信号的难度增加。
(3)多意:汉语一个字、一个词往往能表达多种含义,比如“闻”既可以指嗅,也可以指听。
(4)没有形态变化:比如“建议”,既可以是名词,也可以是动词,但英文里就直接用 suggest 和 suggestion 两个词表示。
(5)难分词断句:像“小王死了爸爸”这种句子,断句不同意义就不同,汉语里有很多。
(6)语序灵活:比如,“海淀桥怎么去,从东直门”在中文里是能被理解的,但在英文里一般有固定的语序。
(7)多成语、俗语、俚语:这个就不解释了吧,想想我们高考的时候就天天被虐,机器的日子估计也不好过呢。
不过,目前国内也有几家做自然语音处理相关的公司,比如出门问问、讯飞、云知声等,一直在做相关的研究和探索。目前在安静环境下特定领域定制过的语音识别系统识别准确率已经相当高。对于语音交互而言语音识别已经不是瓶颈,对语言的理解更为重要。