如果说在上一轮人机大战的人脸识别对决中,由于小度对阵了并不擅长人脸识别的王峰,令比赛意义打了折扣,那么昨天进行的第二轮声音识别的人机大战,虽然最终只是战平,但对于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位歌唱者是以合唱的形式进行发声,但节目组“很有心机”地为每个人都配备了高指向型的,这正是为了尽可能避免相互声音干扰的问题。
从比赛的结果来看,虽然小度前两次均识别失败,且节目组有些“鸡贼”地以合唱之名来突出辨别的难度,事实上由于每个选手都单独配备了麦克风,小度获取的语音数据也许几乎无异于单独录制。但总体看来,各个因素造成的声纹识别难度是业界有目共睹的,且抛开所谓技术理想,百度大脑“秀肌肉”的目的就已然达到。
随着人工智能的发展,未来这样的“人机大战”可能会更加频繁的上演,人类智慧天赋的极限在短时间内几乎很难上升,但机器进步的空间却依然很大。正如当年第一台蒸汽火车被发明出来时,有人驾着马车讥笑火车没有马车快一样,那些讥笑火车的人最终受到历史的讥笑。如果人们在看待人机大战之时,只关心“谁战胜了谁”,那么总有一天人机大战也会失去意义。
下周五,再次出山的“水哥”王昱珩和小度机器人据说依然会进行图像识别相关的比拼。具有顶尖观察力、脑力的人类,和世界一流的人工智能之间还会碰撞出怎样的火花?还需拭目以待。雷锋网将继续为您带来报道和技术分析,也希望更多人的关注点不再仅仅聚焦于输赢。