人工智能产业链由基础层、技术层与应用层构成。同样,智能语音识别亦由这三层组成,本文从语音识别的商业化应用出发,并探讨驱动语音识别发展的算法及硬件计算能力,三位一体浅析语音识别现状、发展趋势及仍然面临的难点。
基础层的核心处理芯片是支持海量训练数据、复杂的深度网络建模方式以及实时推断的关键要素。语音识别包括训练与识别(给定训练好的模型,对输入语音进行识别)两部分。
在训练阶段,由于数据量及计算量巨大,传统的CPU或者单一处理器几乎无法单独地完成一个模型训练过程(初始阶段,谷歌大脑语音识别项目是基于16000个CPU,用了75天,完成一个有156M参数的深度神经网络模型训练工作)。原因在于CPU芯片架构中只有少量的逻辑运算单元,且指令执行是一条接一条的串行过程,其算力不足。研发具有高计算能力的芯片成为语音识别乃至整个人工智能硬件的发展趋势。
与CPU不同的是,GPU具有大量的计算单元,因而特别适合大规模并行计算。另外,FPGA、TPU、ASIC这些延续传统架构的芯片亦在大规模并行计算中得到广泛的应用。需要注意的是,从本质上讲,这些芯片都是计算性能与灵活性/通用性trade-off的结果,即,如图3所示。CPU,GPU是通用处理器,DSP归为ASP,TPU是ASIC这一类,FPGA则是一种Configurable Hardware。
图3.来源:RIT的Shaaban教授的计算机体系结构课程
另外,基于实时性、低功耗、高计算力的需求,使用专属语音识别AI芯片处理识别阶段大量的矩阵运算,进行运算加速是今后终端语音识别芯片市场的主流方向。
1、云端场景
由于计算量、训练数据量极大,且需要大量的并行运算,目前语音识别的模型训练部分基本都放在云端进行。在云端训练中,英伟达的GPU占主导市场,多GPU并行架构是终端训练常用的基础架构方案。另外,Google在自己的人工智能生态中,使用TPU做训练与识别。
目前阶段,语音识别公司的识别部分也大多放在云端,比如Google home、亚马逊Echo,国内的科大讯飞、云知声等。在云端识别中,虽然也有使用GPU,但是GPU并不是最优方案,更多的是利用CPU、GPU、FPGA各自优势,采用异构计算方案(CPU+GPU+FPGA/ASIC)。
2、终端场景
在智能家居等行业应用中,对实时性、稳定性及隐私性有极高的要求。出于对云端数据处理能力、网络延迟及数据安全性的考虑,把计算下放到终端硬件中的边缘计算得到了快速的发展。终端离线的语音识别即是一种基于边缘计算的边缘智能,我们认为离线与在线是语音识别共存的发展路线。在终端离线识别中,需要把训练好的模型存储到芯片。给定语音输入时,引擎会调用模型,完成识别。终端语音识别两个关键因素是实时性与成本,其中实时性影响用户体验,成本影响语音识别应用范围。
由于深度神经网络在语音识别中取得明显的性能优势,其是目前主流的语音识别建模方式。但是神经网络的模型参数量一般非常大,且识别过程中有大量的矩阵计算,常用的DSP或者CPU处理该问题时需要大量的时间,从而无法满足语音识别的实时性需求。GPU、FPGA的价格又是阻碍其在终端语音识别中大规模应用的主要障碍。考虑到终端应用中,场景相对比较固定,且需要很高的计算性能,研发语音识别专属芯片是终端语音识别硬件发展趋势。
- 启英泰伦(ChipIntelli):2015年11月在成都成立。2016年6月推出了全球首款基于人工智能的语音识别芯片CI1006,该芯片集成了神经网络加速硬件,可实现单芯片、本地离线、大词汇量识别,且识别率明显高于传统终端语音识别方案。另外,启英泰伦能够提供廉价的单麦远场语音识别模组,其实际识别效果能够媲美使用了科胜讯降噪模块的双麦模组,大幅度降低远场语音识别模组成本。启英泰伦在终端语音识别专用芯片发展上取得了明显的技术及先发优势。
- MIT项目:MIT黑科技,即,MIT在ISSCC2017上发表的paper里的芯片,该芯片能够支持DNN运算架构,进行高性能的数据并行计算,可以实现单芯片离线识别上千单词。
- 云知声:云知声致力于打造“云端芯”语音生态服务系统,其刚获取3亿人民币的投资,将把部分资金投入到终端语音识别芯片“UniOne”的研发中,据报道,该芯片将会内置DNN处理单元,兼容多麦克风阵列。
过去几十年,尤其是最近几年,语音识别技术不断取得突破。但是,在大多数场景下,语音识别远没有达到完美。解决远场复杂环境下的语音识别问题仍然是当前研究热点。另外,通常情况下,语音识别都是针对特定的任务,训练专用的模型,因而,模型的可移植性比较差。
人类在对话过程中,可以很高效的利用先验知识,但是目前的语音识别系统都还无法有效利用先验知识。因此,语音识别还有很多问题待解决。令人兴奋的是,随着高质量数据的不断积累、技术的不断突破及硬件平台算力的提升,语音识别正在向我们期待的方向快速发展。