1月7号,中国电视史上首场“人机大战”,在《最强大脑》第四季舞台上正式打响。最终,人类“最强大脑”王峰2:3惜败于人工智能机器人“小度”。

比赛现场,由代表人类的“世界记忆大师”王峰迎战智能机器人“小度”。比赛共分两轮,在第一轮比赛中,人类选手和小度需要通过分析照片中出现的幼年人脸,来识别出现场20年后的成年人,面对双胞胎识别这一难题,小度精准识别,以72.99%—高于第二张0.01%的识别率成功锁定目标,王峰0:1落败。

在第二轮中,小度和王峰在30张共近千人脸的小学毕业照中成功选出了主人公。但由于第一轮的落败,最终小度机器人以3:2击败王峰。

百度首席科学家吴恩达认为,这次人机大战,是顶级的人脸识别选手和擅长棋类游戏的人工智能比拼。赛场上意外出现了双胞胎,无疑更增加了辨认难度。

为什么小度机器人能做到跨年龄识别的准确性?背后有什么不为人知的瞬间?在1月5日百度举办的人机大战提前观赛会上,百度深度学习实验室主任林元庆第一时间披露了人脸识别背后的技术难点,以及百度本次赴战背后的故事。

以下为演讲实录节选:

林元庆:我是百度深度学习实验室的林元庆,今天也非常高兴代表百度的人工智能给大家分享一下我们参加这个比赛的一些心得。百度在人工智能起步的时候非常早,搜索里面用到非常多人工智能的技术,百度人工智能最核心的就是百度大脑,经过非常多年的积累,现在百度大脑拥有世界上最大规模的神经网络,万亿级别的参数,千亿的训练数据,亿级别的特征,这个是非常强大的人工智能系统。

这次参加比赛的主要是以深度学习实验室为主,主要是在计算机视觉和深度学习的平台、深度学习的平台在座的各位听说过,和谷歌的类似,只不过百度有百度的优势,在一些方面比它们做的更好。

我们今年选择参加《最强大脑》,在这里我解释一下图象识别这一块,人脸和人脑的识别不一样,比如说猫,就算是3岁的小孩,猫摆出不同的姿势,各种各样的猫都能够很好的识别。机器如果精确的识别,后面需要非常海量的数据训练,可能是成千上万的数据。训练的结果还不一定正确,下一次碰到姿势不一样的猫,有可能识别错。虽然我们人工智能技术过去几年取得了长足的进步,但是识别还是一个非常难的事情。

《最强大脑》挑战的是比识别猫更难的,历史上有许多次的人机大战,比如说最近几天大家讨论的Master,之前的AlphaGo、深蓝等等。比如说针对下棋,空间还是有限的。识别需要一些模糊推理的能力,其实这里面还不是传统的计算器很擅长的。甚至我自己也把我的高中毕业照给一些同事看过,基本上是很难识别出来的。最后有同事识别出来,我说你们怎么识别?看气质。看气质的东西我说计算机怎么搞?这次和《最强大脑》做的几期节目,这些任务,比如说跨年龄的,第三期的遮挡,戴着口罩和大墨镜、帽子从上往下照,看到鼻子以下的部位,这些任务是大家公认没有解决好的问题,这些事情还是蛮难的,不是说大家都能做的很好的。

这次百度也希望从综合的方面和人类比一下,最后能不能做的非常好。我们经过了很多年的研发,最后看一看我们和这些人类比,到底我们的水平在哪里。特别是我们这次的比赛,大家看王峰最后的题目做出来的时候,我切身的体会到他们和普通人真的不一样,我们的对手还是非常强劲,比如说王峰。

《最强大脑》今年早些时候找到我们的时候,也不知道这个节目能不能做好,因为这是前所未有的,没有一家公司在这方面专门做过这些内容,他们也不知道,在国内找了很多家公司看一看谁能做的比较好。这个是他们当时给我们的测试,当时基本上是《最强大脑》坐一排,百度的坐一排,把这些数据给我们,看一看你能做对多少个。但是在这上面,总共八个,我们只错了一个,难度还是蛮大的。从《最强大脑》的节目组来讲,看完了我们做的以后被我们震住了,选择百度和他们做这一档节目。这里面还看了语音的能力,综合来说百度在这方面非常强,最后他们选择和百度做这一期节目。

过去两个多月的时间备战,准备上这个节目。我大概给大家一个概念,这里面到底做了哪些特别棒的事情。最后的人脸系统分两步训练的,第一步训练的是通用的人脸识别系统,不是专门针对跨年龄的,这次成功最关键的是这一块,训练了一个非常强大的人脸识别系统。我们的数据里面是两百万人,每个人有一百张照片,我们用一个非常大的数据训练我们的人脸识别系统,这是百度很多年积累起来的数据,这个过程的迭代是数据和算法一起迭代,这里面非常难的事情是你要有非常好的算法,充分利用这些数据。利用这些数据,你能设计出非常好的算法符合这些数据。

现在人工智能在接下来的五到十年里是一个非常重要的技术,我们后面人类和人工智能一定是共存的,我们百度更相信最后是人工智能帮助人类,比如说《最强大脑》这个节目不是宣传打败了人类,输赢我们不是最看重的,最重要的是看一看百度和中国的人工智能已经到了怎么样的水平,这是我们特别关心的。后面的五年、十年,甚至二十年、五十年,我们一定会跟人工智能的技术共存,希望我们把这些技术用好,帮助人类解决问题,而不是让这些技术成为人类的对立面。如果大家想做人工智能的可以加入像百度这样的公司,大家一起努力,把技术用到最好。

这几期做节目的过程中也发现了,从旁观者的角度来看,挺值得我们思考的。比如说每一期的节目,如果是小度赢了,很多观众觉得蛮沮丧的,如果是人类赢了,大家会很欢呼。我觉得我们应该从另外一个方面看,比如说王昱珩说过人类发明汽车的时候,不会因为汽车比我们跑的快我们很沮丧。我们发明的这些技术最后是为我们所用的,这些技术会是未来的技术,这一次《最强大脑》的人机大战,我们也在思考怎么样和人工技术共存,怎么样更好的利用人工智能技术,谢谢大家!

本周,人类和机器人将比拼语音识别技能。

虽然人工智能在语音识别上面一直不断进步,但相比较人类而言,仍然没有十足胜出的把握。特别是在复杂的声音环境下,人类能轻松分辨杂音,机器却未必一定能听出来。

本期的节目设置就在这方面做了文章。

人机大战第二期《不能说的秘密》赛况介绍

周杰伦化身接头人,派出三位线人隐藏在大脑合唱团(21人)中“收集情报”,周杰伦和三名线人接头过程中通话遭到干扰,通话时断时续,线人声音暴露,我方担心线人安危,派出“机器人小度”和“名人堂”选手孙亦廷前去营救,两位营救队员只能根据不稳定通话中的只言片语作为辨别依据,在性别相同、年龄相仿、声线极为相似的专业合唱团中将3位线人找出,找出多者获胜。

《最强大脑》人机大战第二场,人类勉强在语音识别上保住了一点尊严

人类派出的选手为“听音神童”孙亦廷。在《最强大脑》第二季中,孙亦廷面对将被蒙住双眼仅凭听水球坠地破碎的声音来判断其落下高度(要求正负相差1米)的挑战。“听音神童”孙亦廷。虽然孙亦廷他只有8岁,但却有着超乎常人的听力。

他的父亲说他从小就表现出很强的音乐天赋,大自然中的一切声音进入他的耳朵,都可以转化为五线谱上的音符,这个活泼好动的小鬼毫不谦虚地说:“我的耳朵是最棒的!”

而百度机器人所具备的Deep Speech语音识别技术,在2016年2月,Deep Speech入选MIT 2016年全球十大突破技术。

Deep Speech专注于提高嘈杂环境下的英语语音识别的准确率,它在噪音环境中的识别准确率超越谷歌、苹果的语音技术。在此基础上,研发了可实现普通话语音查询功能,识别准确率高达94%。

目前,Deep Speech通过使用一个单一的学习算法具备准确识别英语和汉语的能力。百度通过框架性的创新使汉语安静环境普通话语音识别技术的识别相对错误率比现有技术降低15%以上,识别率已接近97%。

最终,孙亦廷和机器人分别准确识别出一位“线人”,这期以平局收场。语音识别让人类勉强保留住了一次尊严。

声纹识别比赛难点及技术解析

本次比赛对机器来说是声纹识别。声纹识别和语音识别一样,都是通过对采集到的语音信号进行分析和处理,提取相应的特征或建立相应的模型,然后据此做出判断;但它与语音识别又有区别,其目的不是识别语音的内容,而是识别说话人的身份。

《最强大脑》人机大战第二场,人类勉强在语音识别上保住了一点尊严

1、什么是声纹识别?

声纹识别简单的说就是判断给定的一句话到底是谁说的技术。早在上世纪40年代末期就有相关研究者开始进行相关技术的探索,主要应用于军事情报领域。其理论基础就是“每个人的说话特性都具有其独特的特征”,而决定这种独特特征的主要因素有:

1)声腔的差异,其包括咽喉、鼻腔、口腔以及胸腔等,这些器官的形状、尺寸和位置决定了声腔的差异。因此大家可以感受到,不同的人说话,其声音的频率分布是不同的;

2)发声的操作方式,主要是指唇、口齿、舌头等部位在发声时的相互作用。一般而言,人在逐渐的学习过程中就会慢慢的形成了自己的声纹特性,正常说话时的声纹状态还是相对稳定的。但是声纹特性仍然具有易变性,因为影响声纹特性的两个因素非常容易受身体状况、年龄、情绪等情况的干扰,从而导致声纹特性的变化。例如:人随着年龄的变化声纹特性也在随之变化,尤其是小时候和成年后;人在感冒时由于鼻腔堵塞等问题会明显感觉到声纹特性的不一致等。当然,人也可以通过刻意的模仿等形成不同的声纹特性。总而言之,声纹特征是类似于虹膜、指纹等一种具有独特性的生物特征。

《最强大脑》人机大战第二场,人类勉强在语音识别上保住了一点尊严

声纹识别从任务上来说,主要分为声纹确认技术(1:1)和声纹识别技术(1:N)两类。声纹确认技术回答的是两句话到底是不是一个人说的问题,而声纹识别技术回答的则是”给定的一句话属于样本库中谁说的”问题。本次节目就是采用了“声纹识别”任务,在21位声音特性及其相似的歌手中,凭借着有限的声音样本,来回答样本属于谁的问题。

《最强大脑》人机大战第二场,人类勉强在语音识别上保住了一点尊严

2、“不能说的秘密”声纹识别难点?

1)难度一:泛化能力

目前机器学习算法大多采用数据驱动的方法,什么是数据驱动呢?

简单来说,就是“你给了机器什么样的数据,机器以后就只认识这样的数据。”而在面对与学习时不一样的数据时,机器则往往会存在识别障碍。衡量一个机器学习算法好坏的一个重要指标,就是机器能够处理学习时没有遇见过的样本的能力,这种能力被称之为”泛化能力”。

例如,如果百度让机器学习识别狗时,用的学习样本都是成年的阿拉斯加,那么算法在遇到泰迪时,就会极有可能告诉你泰迪不是一只狗。在声纹识别中百度也会面临着同样的问题,传统的声纹识别任务都是注册和测试都是非常匹配的,即注册采用正常说话,测试也是正常说话。

而在本次比赛中,注册的语音则变成了唱歌,测试的才是正常说话。因此,百度需要让百度的模型能够学到同一个人在唱歌和说话时的差异。这对声纹识别算法的泛化能力提出了更高的要求。

2)难度二:注册语音的趋同效应

一般而言,正常人说话时的声音特征是具有明显的差异的。而本次比赛采用的大合唱形式能显著的降低了不同人的差异性。由于合唱的要求大家的声音能像一个人那样的整齐,因此不同的合唱队员的唱歌样本就会有趋同效应,大家会刻意的通过改变发音习惯等来使得合唱的效果更好。这就好比分类难度从猫和狗的识别变成了阿拉斯加和哈士奇的区别。二者的难度有明显的差异。并且,合唱的内容有长时间的语气词内容,更进步增加了注册语音的混淆程度。

3)难度三:线人测试声音的断断续续

由于人在发音时,存在协同发音的效应,即前后相连的语音总是彼此影响,后面说的内容会受前面说的内容的影响。而这些特性会被机器已数据驱动的方式学习到模型中,而在面临断断续续的语音时,特定说话人的一些发音习惯就有很大可能被损坏掉,从而加大了说话人特征提取表征的难度。

4)难度四:线人测试声音时长过短

由于目前的机器学习的算法要能够有效的表征出一段语音能够表示的说话人信息,那么这段语音必须要有足够长。否则,语音过短,提取出来的特征不足以有效的表征该说话人的信息,就会导致系统性能出现严重下降。这就是声纹识别领域中的短时语音声纹验证难题。在实际测试中,线人说话的声音过短,不超过10个字,有效时间长短也小于3s。这就给百度的算法带来了极大的难度,百度需要更为鲁棒(Robust)的来提取出短时的、断断续续的线人说话声音所能够表征的线人特性。

《最强大脑》人机大战第二场,人类勉强在语音识别上保住了一点尊严

3、声纹识别通用原理是什么?

《最强大脑》人机大战第二场,人类勉强在语音识别上保住了一点尊严

4、百度大脑声纹识别过程还原

一个基本的声纹识别过程如下图,主要包括声纹注册和声纹识别阶段:

Step1:声纹注册阶段

在声纹注册阶段,每个可能的用户都会录制足够的语音然后进行说话人特征的提取,从而形成声纹模型库。通俗来说,这个模型库就类似于字典,所有可能的字都会在该字典中被收录。

Step2:声纹测试阶段

在该阶段,测试者也会录制一定的语音,然后进行说话人特征提取,提取完成后,就会与声纹模型库中的所有注册者进行相似度计算。相似度最高的注册者即为机器认为的测试者身份。

因此,在实际比赛中,上述的过程可以被进一步解释如下图所示:

《最强大脑》人机大战第二场,人类勉强在语音识别上保住了一点尊严

大合唱阶段,即可以对比成声纹注册阶段,百度通过收集每个合唱队员的唱歌语音,然后得到能够表征该合唱队员的说话人特征,从而构建好21个合唱队员的声纹模型库。

线人在与周杰伦进行对话的阶段,机器和人截获到的断断续续的语音,及可以看成是线人的测试语音,通过提取该测试语音的说话人特征,然后与模型库中的21个合唱队员依次进行相似度计算,相似度最高的合唱队员即为机器认为的线人真是身份。

值得一提的是,机器可以对采集到的语音进行录制,不存在记忆消失的问题,而人由于只能依靠记忆来完成对语音特征的存储。因此,机器在面临先听21个人合唱还是先听3个线人说话上是一样的,而人类则不同,在比赛中,人类先听线人说话,意味着人类只需要记住3个线人的说话特征,然后在从21个合唱队员中找出与这3个人相似的声音。这个难度是比,记住21个人唱歌,然后从3个人中找出对应的身份要相对简单。

5、百度大脑如何提取声纹特征?算法如何?

1)声学特征提取

语音信号可以认为是一种短时平稳信号和长时非平稳信号,其长时的非平稳特性是由于发音器官的物理运动过程变化而产生的。从发音机理上来说,人在发出不同种类的声音时,声道的情况是不一样的,各种器官的相互作用,会形成不同的声道模型,而这种相互作用的变化所形成的不同发声差异是非线性的。但是,发声器官的运动又存在一定的惯性,所以在短时间内,百度认为语音信号还是可以当成平稳信号来处理,这个短时一般范围在10到30毫秒之间。

这个意思就是说语音信号的相关特征参数的分布规律在短时间(10-30ms)内可以认为是一致的,而在长时间来看则是有明显变化的。在数字信号处理时,一般而言百度都期望对平稳信号进行时频分析,从而提取特征。因此,在对语音信号进行特征提取的时候,百度会有一个20ms左右的时间窗,在这个时间窗内百度认为语音信号是平稳的。然后以这个窗为单位在语音信号上进行滑动,每一个时间窗都可以提取出一个能够表征这个时间窗内信号的特征,从而就得到了语音信号的特征序列。这个过程,百度称之为声学特征提取。这个特征能够表征出在这个时间窗内的语音信号相关信息。如下图所示:

《最强大脑》人机大战第二场,人类勉强在语音识别上保住了一点尊严

这样,百度就能够将一段语音转化得到一个以帧为单位的特征序列。由于人在说话时的随机性,不可能得到两段完全一模一样的语音,即便是同一个人连续说同样的内容时,其语音时长和特性都不能完全一致。因此,一般而言每段语音得到的特征序列长度是不一样的。

在时间窗里采取的不同的信号处理方式,就会得到不同的特征,目前常用的特征有滤波器组fbank,梅尔频率倒谱系数MFCC以及感知线性预测系数PLP特征等。然而这些特征所含有的信息较为冗余,百度还需要进一步的方法将这些特征中所含有的说话人信息进行提纯。

2)说话人特征提取

百度在提取说话人特征的过程中采用了经典的DNN-ivector系统以及基于端到端深度神经网络的说话人特征(Dvector)提取系统。两套系统从不同的角度实现了对说话人特征的抓取。

《最强大脑》人机大战第二场,人类勉强在语音识别上保住了一点尊严

A.算法1 DNN-ivector

这是目前被广泛采用的声纹识别系统。其主要特点就是将之前提取的声学特征通过按照一定的发声单元对齐后投影到一个较低的线性空间中,然后进行说话人信息的挖掘。直观上来说,可以理解成是在挖掘“不同的人在发同一个音时的区别是什么?”。

《最强大脑》人机大战第二场,人类勉强在语音识别上保住了一点尊严

首先百度会用大量的数据训练一个能够将声学特征很好的对应到某一发声单元的神经网络,如下图所示。这样,每一帧特征通过神经网络后,就会被分配到某一发声单元上去。然后,百度会对每一句话在所有的发声单元进行逐个统计,按照每个发声单元没单位统计得到相应的信息。这样,对于每一句话百度就会得到一个高维的特征矢量。

在得到高维的特征矢量后,百度就会采用一种称之为total variability的建模方法对高维特征进行建模,

M=m+Tw

其中m是所有训练数据得到的均值超矢量,M则是每一句话的超矢量,T是奇通过大量数据训练得到的载荷空间矩阵,w则是降维后得到的ivector特征矢量,根据任务情况而言,一般取几百维。最后,对这个ivector采用概率线性判别分析PLDA建模,从而挖掘出说话人的信息。

在实际中,百度依托百度领先的语音识别技术训练了一个高精度的深度神经网络来进行发声单元的对齐,然后依托海量数据训练得到了载荷矩阵空间T,最后创造性地采用了自适应方法来进行调整T空间和PLDA空间,大大增强了模型在唱歌和说话跨方式以及短时上的声纹识别鲁棒性。

B.算法2 基于端到端深度学习的说话人信息提取

如果说上一套方法还借鉴了一些语音学的知识(采用了语音识别中的发声单元分类网络),那么基于端到端深度学习的说话人信息提取则是一个纯粹的数据驱动的方式。通过百度的海量数据样本以及非常深的卷积神经网络来让机器自动的去发掘声学特征中的说话人信息差异,从而提取出声学特征中的说话人信息表示。

《最强大脑》人机大战第二场,人类勉强在语音识别上保住了一点尊严

百度首先通过海量的声纹数据训练一个深度卷积神经网络,其输出的类别就是说话人的ID,实际训练中百度使用了数万个ID来进行网络的训练。从而得到了能够有效表征说话人特性底座网络。在根据特定场景的任务进行自适应调优。具体过程如下图所示:

在完成网络的训练后,百度就得到了一个能够提取说话人差异信息的网络,对每一句话百度通过该网络就得到了说话人的特征。

系统的融合

两套系统百度最后在得分域上进行了加权融合,从而给出最后的判决结果。