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