最强大脑“人机大战”第二轮战平,吴恩达详解背后技术原理-阿里云开发者社区

开发者社区> 云栖大讲堂> 正文

最强大脑“人机大战”第二轮战平,吴恩达详解背后技术原理

简介:
+关注继续查看

如果说在上一轮人机大战的人脸识别对决中,由于小度对阵了并不擅长人脸识别的王峰,令比赛意义打了折扣,那么昨天进行的第二轮声音识别的人机大战,虽然最终只是战平,但对于AI 界的意义却似乎更大。

原因有两点:一、公认实力顶尖的对手;二、业界公认困难的比赛内容

在对手上,此次迎战百度小度的是名人堂公认最擅长声音辨别的选手孙亦廷,他辨别声音细节的能力在名人堂无出其右,能通过水球从0~70米高空坠地破碎的声音,来准确辨别水球下落时的高度。这相当于在一根70米长的琴弦上拉奏任意位置,他都通过音高准确辨别拉弦的位置,甚至比这更困难。

在比赛内容上,存在当前声纹识别领域公认的几大难点。我们不妨先看看比赛规则:

由嘉宾周杰伦在21位专业合唱团成员中任选三位歌唱者,并与其进行现场通话,通话录音被截取成片段,人机共同根据这些“只言片语”的童话片段,在随后的合唱表演中一次找出这三位歌唱者。

看完比赛规则后,连专业人士也认为这对目前的声纹识别技术有较大的难度,极限元的联合创始人、人工智能专家马骥告诉雷锋网:

影响声纹识别的声音特征参数比如韵律、节奏、基频、速度等等因素,这些在说话和唱歌时是完全不同的。对于小度来说,学习训练建模用的语音数据和最终进行识别的语音数据,生物特征差别太大就会导致判断失误。


低质量的语音数据,又要在强噪声干扰下对歌唱数据进行识别,对小度来说确实挑战很大。

据以往对声纹识别技术的了解,雷锋网(公众号:雷锋网)发现百度小度此次至少面临声纹识别领域中的3个困扰:

一、收集正常说话声,却需要辨别唱歌

我们知道,声纹识别的基本原理其实是特征值比对,通过之前收集的声音中提取特征值来形成特征库,之后将需要辨别的声音与特征库中的数据进行比对。问题就在于,专业合唱者的歌声和正常说话时声音的特征是有明显区别的。

实际上,对于专业合唱者来说,在唱歌时发声部位靠后,正常说话时发生部位靠前,从物理上看,发声部位都不一样。这就要求机器学习算法具有极强的「泛化能力」,能够准确处理学习时没有遇到过的样本。

小度如果想要成功辨别,就必须具备在较少的数据(只言片语)中辨别同一个人在说话和唱歌时差距的能力。

二、合唱发声差异性极小且互相影响

目前声纹识别技术尚未完全解决的一大难题就是对抗环境噪音干扰,以及在多人同时发声条件下对声音的识别。在现场除了有环境底噪之外,每个合唱队员在发声时或多或少都会混进一些别人的声音。

最强大脑人机大战第二轮战平,吴恩达详解背后技术原理

此外,在声纹识别中也存在类似于人脸识别中的”双胞胎难题”——声音的趋同效应。此次嘉宾周杰伦在合唱团中挑选的人的声音差异性非常小,而大合唱本身又要求声音整齐和谐,这又进一步提高了辨别的难度——大家会刻意通过改变发音习惯等来使得合唱达到更好的效果。

三、声音片段不完整且时间过短

人在发音时,存在着协同发音效应,即一句话前后相连的语音总是彼此影响,而这些特性会被机器以数据驱动的方式学习到模型中。

而在本次比赛中,语音被特意处理为了不连续的信号,人的一些发音习惯就很可能被损坏掉,加大了小度机器人对原本说话人特征提取表征的难度。

对于机器学习算法来说,一段语音的时间越长,那么捕捉的有效特征就越多,如果语音过短则会大大降级识别率,这就是声纹识别领域中的短时语音声纹验证难题。而在节目中截取后的录音片段,一整条语音不超过10个字,有效时间小于 3s。这就给小度的算法带来了极大的难度——它需要更有效地从短时的、断断续续的线人说话声中提取出所能表征的个人信息。

最强大脑人机大战第二轮战平,吴恩达详解背后技术原理

本文暂且不讨论这些条件对于人类的困难程度,因为孙亦廷拥有的辨音能力并非通过后天训练可获得,天赋就占据了主导因素。单就对于机器而言这也是前所未有的挑战,使得百度语音技术部总监高亮在现场多次出现咬唇、皱眉等紧张状态。

最强大脑人机大战第二轮战平,吴恩达详解背后技术原理

小度两次辨别失误的背后发生了什么?

最终,三个环节的较量双方以1:1平局告终。人类选手孙亦廷也成功辨别第二位歌唱者,而小度也只成功辨别了第三位歌唱者。有趣的是,第一次人机均辨别错误,而错误答案竟出乎意料的一致。小度在前两次失败和一次成功中究竟经历什么?负责百度人工智能技术研究的核心专家向雷锋网透露其中的奥秘。

百度首席科学家吴恩达(Andrew Ng)表示,“在此次人机大战之前,我们使用了2万个人的数据和超过5000个小时的训练时间来训练我们的模型。

最强大脑人机大战第二轮战平,吴恩达详解背后技术原理

【吴恩达和林元庆正在讲解节目背后的原理】

两个模型出现“分歧”

吴恩达说,在本次比赛中,小度使用了两套声纹识别领域比较经典的算法来进行声音识别,一是基于 DNN-ivector 的系统,一是基于端对端深度神经网络的说话人特征提取。同时使用两套系统能分别从不同角度对说话人的特征进行提取,最后再将两个模型进行融合,这样能有效提升系统的鲁棒性(Robustness)。  

他说,实际上两个模型都在三次辨别中正确辨别了两次,但是当两个模型的结果融合在一起的时候,反而最终只辨别对了一个。原因主要在于辨别难度较高,两套算法模型在前两轮出现了“分歧”。

吴恩达说,第一个模型判断正确了一、三轮,第二个模型判断正确了二三轮,当两个模型在出现“分歧”时,哪一个算法表现地更 “自信”,就取用谁的答案。这就好比人们在考数学题时用了两种解题思路,解出了不同的答案,由于时间紧迫只能选择一个“相对靠谱”的答案。

最强大脑人机大战第二轮战平,吴恩达详解背后技术原理

他坦言,两个模型都判断对了两个,但是最终的结果反倒只对了一个,这确实有些"unlucky"(不凑巧),存在一定概率问题。但也确实让看到了优化的空间,未来希望能使用更优的方法,比如使用更多数量的模型来进行综合计算。

通过自适应调整来辨别唱歌

百度小度是如何通过说话声来“听懂”歌声的,这让许多人疑惑不解。百度深度学习实验室(IDL)主任林元庆告诉雷锋网:

第一步,我们会利用大量的标准化数据来进行底座训练,得到一个基本的模型,这个是没有特殊处理的,比如在我们采取20000个人的语音数据都是从语音搜索引擎抽取出来的,通过这些数据我们就可以训练出一个非常好的模型。


在此基础上,我们收集少量的,比如1000个人在特殊场景下的声音,比如说唱歌。在比赛之前我们知道有唱歌内容,但是不知道要唱什么歌,于是去收集一些歌来训练模型,让模型能够更准确的识别说话和唱歌时的声音差异。

最强大脑人机大战第二轮战平,吴恩达详解背后技术原理

【DNN-ivector 算法如何辨别唱歌】

如何解决底噪和多人同时说话

对于如何解决背景噪音的问题上,吴恩达表示,通常在训练模型时会刻意加入一些背景噪音的数据,我们可以通过叠加两段声音的叠加来得到一段新的带噪音的语音,将这些噪音放入到我们的深度神经网络进行训练,就可以在一定程度上解决背景噪音的问题。

在和环境底噪相比,声纹识别更大的难题是多人同时发声音。当两(多)个人同时说话,且声音的音色、频率相近时,机器很难区分哪一个是自己想要听的,哪一个是噪音。而人的耳朵经过多年的进化,已经获得了一种叫做“鸡尾酒会效应”的神奇能力,能自动屏蔽不想听到的声音。

对此,百度语音识别技术负责人李先刚坦言,

就现在的深度学习或者相关技术来说,处理同一个麦克风捕捉的多人同时说话的数据确实很难做,还有很多地方值得我们去挑战。但就实际应用场景来说,有其他方法可以较好地解决该问题,比如强化定位,正如人有两个耳朵可以定位声音源,在实际应用中我们可以采用多个麦克风来加强目标声源的声音,这样就能较好地分辨目标声源和周围嘈杂。

吴恩达告诉雷锋网,此次百度在CES上推出的最近推出的小鱼(Little Fish)机器人中配置了2个麦克风,可以一定程度解决多人说话的问题,未来还可以用4个、7个甚至更多麦克风来处理该问题。

由此我们发现,虽然21位歌唱者是以合唱的形式进行发声,但节目组“很有心机”地为每个人都配备了高指向型的,这正是为了尽可能避免相互声音干扰的问题。

最强大脑人机大战第二轮战平,吴恩达详解背后技术原理    

从比赛的结果来看,虽然小度前两次均识别失败,且节目组有些“鸡贼”地以合唱之名来突出辨别的难度,事实上由于每个选手都单独配备了麦克风,小度获取的语音数据也许几乎无异于单独录制。但总体看来,各个因素造成的声纹识别难度是业界有目共睹的,且抛开所谓技术理想,百度大脑“秀肌肉”的目的就已然达到。

随着人工智能的发展,未来这样的“人机大战”可能会更加频繁的上演,人类智慧天赋的极限在短时间内几乎很难上升,但机器进步的空间却依然很大。正如当年第一台蒸汽火车被发明出来时,有人驾着马车讥笑火车没有马车快一样,那些讥笑火车的人最终受到历史的讥笑。如果人们在看待人机大战之时,只关心“谁战胜了谁”,那么总有一天人机大战也会失去意义。

下周五,再次出山的“水哥”王昱珩和小度机器人据说依然会进行图像识别相关的比拼。具有顶尖观察力、脑力的人类,和世界一流的人工智能之间还会碰撞出怎样的火花?还需拭目以待。雷锋网将继续为您带来报道和技术分析,也希望更多人的关注点不再仅仅聚焦于输赢。

本文作者:谢幺

本文转自雷锋网禁止二次转载,原文链接



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4350 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7720 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
9396 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
10759 0
用WEB技术栈开发NATIVE应用(二):WEEX 前端SDK原理详解
WEEX依旧采取传统的web开发技术栈进行开发,同时app在终端的运行体验不输native app。其同时解决了开发效率、发版速度以及用户体验三个核心问题。那么WEEX是如何实现的?目前WEEX已经完全开源,并捐给Apache基金会,我们可以通过分析其源码来一探究竟。
3857 0
走进JavaWeb技术世界4:Servlet 工作原理详解
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 本文是微信公众号【Java技术江湖】的《走进JavaWeb技术世界》其中一篇,本文部分内容来源于网络,为了把本文主题讲得清晰透彻,也整合了很多我认为不错的技术博客内容,引用其中了一些比较好的博客文章,如有侵权,请联系作者。
2189 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
16699 0
+关注
云栖大讲堂
擅长前端领域,欢迎各位热爱前端的朋友加入我们( 钉钉群号:23351485)关注【前端那些事儿】云栖号,更多好文持续更新中!
3892
文章
1754
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载