1月30日消息,尽管手机终端上各种语音助手的混战正如火如荼,但对于一些有着浓重口音的用户而言,语音助手的体验似乎远没有宣传的那么好:语音助手听不懂自己的话,这才是最大的问题。事实上,对于普通话语音识别而言,南腔北调的口音确实是一个巨大的挑战。随着语音数据的积累和语言模型的丰富,语音识别已经逐渐由象牙塔走进人们的生活,而口音则是语音识别进门之前的最后一个堡垒。这个堡垒可能会随着最近几年在语音识别领域的一项重大进展而被攻陷。
自20世纪50年代以来,一种用来模拟人脑运算机理的技术,也就是人工神经网络(ANN)就已经为人们所熟知,而且在上世纪80年代开始ANN就被尝试应用到语音识别的研究领域之中。但从语音识别性能的角度来讲,人们还是更喜欢使用基于统计概率的语音模型,尽管后者在不同声学单元之间的区分性总是为人们所诟病,但统计概率模型的优势在于其简单、高效,因此被广泛用于几乎所有的商务系统。但进入21世纪之后,人工神经网络领域接连发生了一些关键性的技术突破,深度神经网络(Deep Neural Network, DNN)就是这样一种对传统人工神经网络的重大改进。那么,DNN到底是什么?它对于语音识别的意义在哪里?
按照科学家的看法,人脑的认知过程是一个深度多层复杂的过程,每深入一层就多一层抽象。而人类大脑处理语音的过程,则毫无疑问是最为复杂的认知过程之一。神经网络中的多层感知机就试图模拟人类大脑神经多层传递处理问题的过程,但通常多层感知机一般也不过3层而已。2006年,Hinton提出了神经网络的深度学习算法,使得至少具有7层的神经网络的训练成为可能,这就是所谓的DNN。DNN正是由于能够比较好地模拟人脑神经元多层深度传递的过程,因而它在解决一些复杂问题的时候有着非常明显的突破性的表现。尤其是图形计算器(GPU)能力的突飞猛进使得DNN令人生畏的计算复杂度不再成为问题,所以一些走的比较快的语音厂商已经急不可待将DNN作为其提高语音服务质量的杀手锏了。
2011年8月份,微软亚洲研究院在其学术论文中强调,他们在基于人工神经网络的大词汇量语音识别研究中取得了重大突破(详见这里)。微软宣称,他们的研究人员通过引入DNN使得在特定语料库上的语音识别准确率得到了大幅提高,性能的相对改善约为30%。如果说但微软关于DNN的技术突破还只是停留在实验室里和学术论文上,那么接下来的突破则已经直接发生在商业系统中了。2012年的12月底,百度发布了以公司名字命名的百度语音助手,与此同时百度声称,其已经将DNN应用到其语音助手背后的语音识别服务中了。这是国内第一个宣称将DNN应用于在线语音识别服务的案例。由于百度的语音服务一推出就带了DNN,缺乏纵向比较,因此无从得知DNN为其语音服务带来的性能提升到底有多少。但仅仅在百度发布语音助手两周之后,国内另一家新成立的语音公司云知声的公有语音云服务后台也进行了升级,这次他们用基于DNN的模型替代了原有的基于高斯混合(GMM)的模型。据云知声官方声称,在本次升级后,语音识别错误率降低了30%之多,而且识别速度也得到大幅提高。由于搜狗语音助手的后台语音识别服务正是云知声所提供的,所以搜狗语音助手的重口音(非重口味)用户可能会发现,最近一段时间语音助手仿佛听得更准了,而且反应似乎更快了。笔者与搜狗的技术人员联络后也证实了新版本的发布大幅改善了用户体验,这从侧面也印证了DNN技术对语音识别性能提升的确有很大作用。
DNN对于语音识别性能的贡献既然已从多家公布的数字中得到了印证,那么我们再来细致分析一下这些数字对用户意味着什么。一般而言,在线语音识别的速度在1倍速的量级上下,假如用户提供了5秒钟的语音,1倍速是指服务器处理完这些语音需要5x1=5秒钟的时间,而0.2倍速则意味着在不考虑网络延时的情况下,用户只需要等待1秒钟即可获得识别结果。其实由于语音识别一般都采用了帧同步的解码方式,用户真正需要等待的时间可能基本只跟最后一帧的长度有关,大概100毫秒。如果识别速度的提升可能会被网络延迟所淹没而不太容易被用户感觉到的话,那么30%的性能提升所带来的用户体验则可能会更为明显:假如以前100个字能可能错10个字左右,那么现在基本在4-5个字左右了。对于口音比较重的用户而言这意味着以前机器可能听不太懂他说话,但现在基本上可以跟机器进行无障碍的对话了。
百度和云知声几乎同时推出DNN绝对不是巧合,是语音技术发展的必然。不知国内语音技术的老玩家讯飞何时会拾起DNN这个大杀器来进一步巩固自身在语音识别业界的老大地位,不过相信这个时间不会太久。相信大家在使用以上产品后,也不难感觉到,语音识别技术最近突飞猛进的发展,针对普通用户真正可用的语音产品就在眼前了,语音时代也许就要来临!