阿里云语音识别模型端核心技术选讲

摘要: 语音识别技术做为人工智能技术中的重要组成部分,也做为影响人机交互的核心组件之一,从各类智能家用IoT设备的语音交互能力,到公共服务、智慧政务等场合的应用,语音识别技术正在影响着人们生活的方方面面。本文将挑选阿里云语音识别技术中的一些模型端技术进行简要介绍。

clipboard.png

鄢志杰,阿里云资深算法专家,人机交互首席科学家。研究领域主要包括语音识别、语音合成、说话人识别验证、OCR/手写识别、机器学习算法等。长期担任语音领域顶级学术会议及期刊的专家评审,并拥有多项美国及PCT专利。算法

如下为内容全文:数据库

语音识别技术做为人工智能技术中的重要组成部分,也做为影响人机交互的核心组件之一,从各类智能家用IoT设备的语音交互能力,到公共服务、智慧政务等场合的应用,语音识别技术正在影响着人们生活的方方面面。本文将挑选阿里云语音识别技术中的一些模型端技术进行简要介绍。网络

声学模型、语言模型和解码器能够看做是现代语音识别系统最核心的三个组成部分。虽然最近有一些研究者尝试构建End2end的语音识别系统,但包含声学模型、语言模型和解码器的现代语音识别系统依然是当前最主流和使用最普遍的系统。在这其中,声学模型主要用来构建输入语音和输出声学单元之间的几率映射关系;语言模型用来描述不一样字词之间的几率搭配关系,使得识别出的句子更像天然文本;解码器负责结合声学单元几率数值和语言模型在不一样搭配上的打分进行筛选,最终获得最可能的识别结果。机器学习

随着近几年深度学习的火热,语音识别领域也纷纷投入深度学习的大潮之中。将传统HMM-GMM声学模型替换成HMM-DNN声学模型后,能够得到超过20%的相对提高,在传统N-Gram语言模型基础上叠加NN-LM语言模型也能够得到进一步的提升。在这过程当中,声学模型因为更适合采用深度神经网络模型,从而受到研究者更多的关注。本文主要介绍阿里云语音识别技术中采用的声学模型技术和语言模型技术,包括LC-BLSTM声学模型、LFR-DFSMN声学模型和NN-LM语言模型,其中LC-BLSTM是对传统BLSTM模型的一种改进,在保持了高准确率的同时,提供了低延时的特性;而LFR-DFSMN是对RNN声学模型的一种改进,用精巧的模型设计得到更稳定的训练效果和更好的识别准确率;NN-LM语言模型是近年来在传统N-Gram语言模型基础上得到的进一步改进。工具

Latency-Controlled BLSTM模型性能

DNN(即fully connected DNN)模型的优势在于经过增长神经网络的层数和节点数,扩展了网络对于复杂数据的抽象和建模能力,但同时DNN模型也存在一些不足,例如DNN中通常采用拼帧来考虑上下文相关信息对于当前语音帧的影响,这并非反映语音序列之间相关性的最佳方法。自回归神经网络(RNN)在必定程度上解决了这个问题,它经过网络节点的自链接达到利用序列数据间相关性的目的。进一步有研究人员提出一种长短时记忆网络(LSTM-RNN),它能够有效减轻简单RNN容易出现的梯度爆炸和梯度消散问题,然后研究人员又对LSTM进行了扩展,使用双向长短时记忆网络(BLSTM-RNN)进行声学模型建模,以充分考虑上下文信息的影响。学习

BLSTM模型能够有效地提高语音识别的准确率,相比于DNN模型,相对性能提高能够达到15%-20%。但同时BLSTM模型也存在两个很是重要的问题:测试

  1. 句子级进行更新,模型的收敛速度一般较慢,而且因为存在大量的逐帧计算,没法有效发挥GPU等并行计算工具的计算能力,训练会很是耗时;
  2. 因为须要用到整句递归计算每一帧的后验几率,解码延迟和实时率没法获得有效保证,很难应用于实际服务。

对于这两个问题,学术界首先提出Context-Sensitive-Chunk BLSTM(CSC-BLSTM)的方法加以解决,而此后又提出了Latency Controlled BLSTM(LC-BLSTM)这一改进版本,更好、更高效的减轻了这两个问题。咱们在此基础上采用LC-BLSTM-DNN混合结构配合多机多卡、16bit量化等训练和优化方法进行声学模型建模,取得了相比于DNN模型约17-24%的相对识别错误率降低。优化

典型的LSTM节点结构由3个gate组成:input gate、forget gate、output gate和一个cell组成,输入、输出节点以及cell同各个门之间都存在链接;input gate、forget gate同cell之间也存在链接,cell内部还有自链接。这样经过控制不一样门的状态,能够实现更好的长短时信息保存和偏差传播。阿里云

clipboard.png

LSTM能够像DNN同样逐层堆积成为Deep LSTM,为了更好的利用上下文信息,还可使用BLSTM逐层堆积构造Deep BLSTM,其结构以下图所示,网络中沿时间轴存在正向和反向两个信息传递过程,每个时间帧的计算都依赖于前面全部时间帧和后面全部时间帧的计算结果,对于语音信号这种时序序列,该模型充分考虑了上下文对于当前语音帧的影响,可以极大的提升音素状态的分类准确率。

clipboard.png

然而因为标准的BLSTM是对整句语音数据进行建模,训练和解码过程存在收敛慢、延迟高、实时率低等问题,针对这些弊端咱们采用了Latency Controlled BLSTM进行解决,与标准的BLSTM使用整句语音进行训练和解码不一样,Latency Control BLSTM使用相似truncated BPTT的更新方式,并在cell中间状态处理和数据使用上有着本身的特色,以下图所示,训练时每次使用一小段数据进行更新,数据由中心chunk和右向附加chunk构成,其中右向附加chunk只用于cell中间状态的计算,偏差只在中心chunk上进行传播。时间轴上正向移动的网络,前一个数据段在中心chunk结束时的cell中间状态被用于下一个数据段的初始状态,时间轴上反向移动的网络,每个数据段开始时都将cell中间状态置为0。该方法能够很大程度上加快网络的收敛速度,并有助于获得更好的性能。解码阶段的数据处理与训练时基本相同,不一样之处在于中心chunk和右向附加chunk的维度能够根据需求进行调节,并没必要须与训练采用相同配置。

clipboard.png

LFR-DFSMN模型

FSMN是近期被提出的一种网络结构,经过在前馈全链接神经网络(Feedforward Fully-connected Neural Networks,FNN)的隐层添加一些可学习的记忆模块,从而能够有效的对信号的长时相关性进行建模。FSMN相比于LCBLSTM不只能够更加方便的控制时延,并且每每也能得到更好的性能,须要的计算资源也更少。可是标准的FSMN很难训练很是深层的结构,因为梯度消失问题致使训练效果很差。而深层结构的模型目前在不少领域被证实具备更强的建模能力。于是针对此咱们提出了一种改进的FSMN模型,称之为深层的FSMN(Deep FSMN, DFSMN)。进一步的咱们结合低帧率(Low Frame Rate,LFR)技术构建了一种高效的实时语音识别声学模型,相比于去年咱们上线的LFR-LCBLSTM声学模型能够得到超过20%的相对性能提高,同时能够得到2-3倍的训练以及解码的加速,能够显著的减小咱们的系统实际应用时所须要的计算资源。

clipboard.png

最先提出的FSMN的模型结构如上图(a)所示,其本质上是一个前馈全链接神经网络,经过在隐层旁添加一些记忆模块(memory block)来对周边的上下文信息进行建模,从而使得模型能够对时序信号的长时相关性进行建模。记忆模块采用如上图(b)所示的抽头延迟结构将当前时刻以及以前 N 个时刻的隐层输出经过⼀组系数编码获得⼀个固定的表达。FSMN的提出是受到数字信号处理中滤波器设计理论的启发:任何无限响应冲击(Infinite Impulse Response, IIR)滤波器能够采用高阶的有限冲击响应(Finite Impulse Response, FIR)滤波器进行近似。从滤波器的角度出发,如上图(c)所示的RNN模型的循环层就能够看做如上图(d)的一阶IIR滤波器。而FSMN采用的采用如上图(b)所示的记忆模块能够看做是一个高阶的FIR滤波器。从而FSMN也能够像RNN同样有效的对信号的长时相关性进行建模,同时因为FIR滤波器相比于IIR滤波器更加稳定,于是FSMN相比于RNN训练上会更加简单和稳定。

根据记忆模块编码系数的选择,能够分为:1)标量FSMN(sFSMN);2)矢量FSMN(vFSMN)。sFSMN 和 vFSMN 顾名思义就是分别使用标量和矢量做为记忆模块的编码系数。

以上的FSMN只考虑了历史信息对当前时刻的影响,咱们能够称之为单向的FSMN。当咱们同时考虑历史信息以及将来信息对当前时刻的影响时,咱们能够将单向的FSMN进行扩展获得双向的FSMN。

FSMN相比于FNN,须要将记忆模块的输出做为下一个隐层的额外输入,这样就会引入额外的模型参数。隐层包含的节点越多,则引入的参数越多。研究结合矩阵低秩分解(Low-rank matrix factorization)的思路,提出了一种改进的FSMN结构,称之为简洁的FSMN(Compact FSMN,cFSMN)。下图是一个第l个隐层包含记忆模块的cFSMN的结构框图。

clipboard.png

对于cFSMN,经过在网络的隐层后添加一个低维度的线性投影层,而且将记忆模块添加在这些线性投影层上。进一步的,cFSMN对记忆模块的编码公式进行了一些改变,经过将当前时刻的输出显式的添加到记忆模块的表达中,从而只须要将记忆模块的表达做为下一层的输入。这样能够有效的减小模型的参数量,加快网络的训练。

clipboard.png

上图是咱们进一步提出的Deep-FSMN(DFSMN)的网络结构框图,其中左边第一个方框表明输入层,右边最后一个方框表明输出层。咱们经过在cFSMN的记忆模块(红色框框表示)之间添加跳转链接(skip connection),从而使得低层记忆模块的输出会被直接累加到高层记忆模块里。这样在训练过程当中,高层记忆模块的梯度会直接赋值给低层的记忆模块,从而能够克服因为网络的深度形成的梯度消失问题,使得能够稳定的训练深层的网络。

相比于以前的cFSMN,DFSMN优点在于,经过跳转链接能够训练很深的网络。对于原来的cFSMN,因为每一个隐层已经经过矩阵的低秩分解拆分红了两层的结构,这样对于一个包含4层cFSMN层以及两个DNN层的网络,总共包含的层数将达到13层,从而采用更多的cFSMN层,会使得层数更多而使得训练出现梯度消失问题,致使训练的不稳定性。咱们提出的DFSMN经过跳转链接避免了深层网络的梯度消失问题,使得训练深层的网络变得稳定。须要说明的是,这里的跳转链接不只能够加到相邻层之间,也能够加到不相邻层之间。跳转链接自己能够是线性变换,也能够是非线性变换。具体的实验咱们能够实现训练包含数十层的DFSMN网络,而且相比于cFSMN能够得到显著的性能提高。

从最初的FSMN到cFSMN不只能够有效的减小模型的参数,并且能够得到更好的性能。进一步的在cFSMN的基础上,咱们提出的DFSMN,能够更加显著的提高模型的性能。以下表是在一个2000小时的英文任务上基于BLSTM,cFSMN,DFSMN的声学模型性能对比。

clipboard.png

从上表中能够看到,在2000小时这样的任务上,DFSMN模型能够得到比BLSTM声学模型相对14%的错误率下降,显著提升了声学模型的性能。

传统的声学模型,输入的是每帧语音信号提取的声学特征,每帧语音的时长一般为10ms,对于每一个输入的语音帧信号会有相对应的一个输出目标。最近有研究提出一种低帧率(Low Frame Rate,LFR)建模方案:经过将相邻时刻的语音帧进行绑定做为输入,去预测这些语音帧的目标输出获得的一个平均输出目标。具体实验中能够实现三帧(或更多帧)拼接而不损失模型的性能。从而能够将输入和输出减小到原来的三分之一甚至更多,能够极大的提高语音识别系统服务时声学得分的计算以及解码的效率。咱们结合LFR和以上提出的DFSMN,构建了基于LFR-DFSMN的语音识别声学模型,通过多组实验咱们最终肯定了采用一个包含10层cFSMN层+2层DNN的DFSMN做为声学模型,输入输出则采用LFR,将帧率下降到原来的三分之一。识别结果和去年咱们上线的最好的LCBLSTM基线比较以下表所示。

clipboard.png

经过结合LFR技术,咱们能够得到三倍的识别加速。从上表中能够看到,在实际工业规模应用上,LFR-DFSMN模型比LFR-LCBLSTM模型能够得到20%的错误率降低,展现了对大规模数据更好的建模特性。

NN-LM语言模型

语言模型,顾名思义,对语言进行建模的模型。语言表达能够看做一串字符序列,不一样的字符序列组合表明不一样的含义,字符的单位能够是字或者词。语言模型的任务,能够看做是给定字符序列,如何估计该序列的几率,或者说,如何估计该序列的合理性。

P(上海 的 工人 师傅 有 力量)>P(上海 的 工人 食腐 有 力量)

拿这句话作个例子。好比到底应该是“工人师傅有力量”,仍是“工人食腐有力量”,哪句话更“合适”。咱们容易判断左边这句的几率大一点。因而咱们但愿经过语言模型的建模,能够给出符合人类预期的几率分配。就像这句,“工人师傅”的几率,大于“工人食腐”的几率。

基于统计词频的传统N元文法模型,经过马尔可夫假设简化了模型结构和计算,经过计数的方式计算,经过查找的方式使用。拥有估计简单、性能稳定、计算快捷的优点,有超过三十年的使用历史。然而其马尔科夫假设强制截断建模长度,使得模型没法对较长的历史建模;基于词频的估计方式也使得模型不够平滑,对于低词频词汇估计不足。随着神经网络(Neural Networks,NNs)的第三次崛起,人们开始尝试经过NN来进行语言模型建模。

clipboard.png

一个典型的建模结构是递归神经网络(recurrent neural networks,RNNs),其递归的结构理论上能够对无穷长序列进行建模,弥补了N元文法对于序列长度建模的不足;同时其各层间的全向链接也保证了建模的平滑。此外为了提高模型的性能,研究者们还尝试了经过长短时记忆(Long Short-Term Memory,LSTM)结构来提高基本RNN自己建模能力的不足,进一步提高模型性能。

NN用于大规模语言建模的系统中,须要面对一些问题,例如大词表带来的存储和计算增长。实际线上系统的词表每每比较大,而随着词表的增长,基本RNN结构的存储和计算量都会几何级数爆炸式增加。为此,研究者们进行了一些尝试,压缩词典尺寸成了一个最直接的解决方案,一个经典的方法是词表聚类。该方法能够大幅压缩词表尺寸,但每每也会带来必定的性能衰减。更直接的一个想法是直接过滤掉低频词汇,这样依然会带来必定的性能衰减,据此有一个改进策略,咱们发现真正制约速度性能的主要是输出层节点,输入层节点大,借助projection层能够很好解决,因而输入层采用大辞典,而仅对输出层词表进行抑制,这样不只尽量地下降了损失,同时过滤掉太低的词频,也有利于模型节点的充分训练,性能每每还会略有提高。

词表的压缩能够提高建模性能,下降计算量和存储量,但仅限于必定的量级,不能够无限制压缩,如何继续下降计算量依然是一个问题。一些方法被提了出来。例如LightRNN,经过相似聚类的方式,利用embedding的思想,把词表映射到一个实值矩阵上,实际输出只须要矩阵的行加矩阵的列,计算量大概也能开个方。和节点数多一块儿形成计算量大的一个缘由就是softmax输出,须要计算全部的节点求个和,而后获得分母。如果这个分母能保持一个常数,实际计算的时候就只算须要的节点,在测试环节就快的多了。因而就有了正则项相关的方法,Variance Regularization,若是训练速度能够接受的话,这种方法在基本不损失模型正确性的状况下能够大幅提高前向计算速度;若是训练的时候也想提速,还能够考虑基于采样,sampling的方法,好比NCE、Importance Sampling、Black Sampling等,本质上就是说,在训练的时候不计算所有节点,只计算正样本(也就是标签为1的节点),以及部分经过某种分布采样的到的负样本,避免高输出形成的计算缓慢。速度上提高仍是很明显的。

从阿里云得到开发者模型定制能力

想象一个作智能电话客服或是智能会议系统的开发者,须要为他的系统接入语音识别(将语音转写为文字)的能力。摆在他面前的会是这样一个尴尬的局面:一个选择是本身从零开始学作语音识别,这可能要花费大量的时间和金钱。毕竟人工智能这种事情,各大互联网巨头投入大量的人力、物力、财力,也要花较长的时间才能积累下技术;第二个选择是用上述巨头们在互联网上提供的开箱即用的、one size fits all的语音识别接口,时间是省下了,但语音转文字的准确率嘛,只能碰碰运气,毕竟巨头们也很忙,没有精力为你关注的场景进行优化。那么问题来了:有没有一种手段可以以最小的投入得到业务上最佳的语音识别效果呢?答案是确定的。阿里云依托达摩院业界领先的语音交互智能,打破传统语音技术提供商的供给模式,在云计算时代让普通开发者也可以经过阿里云提供的语音识别云端自学习技术,得到定制优化本身所关心的业务场景的成套手段。阿里云让广大的开发者站在巨头的肩膀上,经过自主可控的自学习,在短期内实现对语音识别系统应用从入门到精通,并在开发者关心的场景下轻松拥有业界顶尖的语音识别准确率。这就是云计算时代的语音识别技术全新的供给模式。

与其它人工智能技术同样,语音识别技术的关键在于算法、算力和数据三个方面。阿里云依托达摩院语音交互智能,近年来持续在世界前沿进行“算法”演进,近期还将最新的研究成果DFSMN声学模型开源,供全世界的研究者复现目前最佳的结果并进行持续提高。在“算力”方面自不用说,这自己就是云计算的自然强项。基于阿里云ODPS-PAI平台,咱们构建了专为语音识别应用优化的CPU/GPU/FPGA/NPU训练和服务混布平台,天天服务于阿里云上巨量的语音识别请求。在“数据”方面,咱们提供经过海量数据训练的、开箱即用的场景模型,包括电商、客服、政务、手机输入等等。

clipboard.png
者关心的具体场景下最佳的准确率,开箱即用的模型通常还须要必定的定制优化工做才能够达到。传统上,这样的定制是经过语音技术服务提供商来完成的,在成本、周期、可控性等方面都存在明显不足。阿里云提供的语音定制“自学习”平台服务,能够提供多种手段,在很短的时间内、以较低的成本,让开发者彻底掌控模型定制优化及上线的工做。阿里云创新工具平台及服务技术,依托强大的基础设施,使得在云计算的大背景下进行大规模定制化语音服务成为可能。而开发者彻底无需关心后台的技术和服务,只须要使用阿里云提供的简单易用的“自学习”工具,利用场景知识和数据,就能够得到该特定场景下最优的效果,并按须要持续迭代提高。

阿里云的智能语音自学习平台具有如下优点:

a) 易。智能语音自学习平台颠覆性地提供一键式自助语音优化方案,极大地下降进行语音智能优化所须要的门槛,让不懂技术的业务人员也能够来显著提升自身业务识别准确率。

b) 快。自学习平台可以在数分钟以内完成业务专属定制模型的优化测试上线,更能支持业务相关热词的实时优化,一改传统定制优化长达数周甚至数月的漫长交付弊端。

c) 准。自学习平台优化效果在不少内外部合做伙伴和项目上获得了充分验证,不少项目最终经过自学习平台不光解决了效果可用性问题,还在项目中超过了竞争对手使用传统优化方式所取得的优化效果。

举例来讲,开发者可使用下述多种“自学习”手段来定制本身关心领域的模型:

a) 业务热词定制

在许多特定场所,要求快速对特定词的识别能力进行增强(注:包括两种模式,模式一为其余词易被识别成特定词;模式二为特定词易被识别成其余词),采用实时热词加载技术,能够在实时场景下,经过设置不一样的档位,可以实现热词识别能力的增强。

b) 类热词定制

不少时候,相同的发音相同的属性在不一样上下文上会须要不一样的识别效果。联系人和地名就是典型的案例,对于不一样人的好友,“张阳”和“章扬”咱们就必须能准确地识别出相应的名字。一样,相隔千里的安溪跟安西若是识别错误会给导航带来大麻烦。智能语音自学习平台相信“每一个人都值得被尊重”,提供联系人类和地名类的定制能力,“让天下没有难识的路”。

clipboard.png

c) 业务专属模型定制

用户经过输入对应领域的相关文本,如行业或公司的基本介绍、客服聊天记录、领域经常使用词汇和专有名词等,便可快速自行生成该行业下的定制模型,整个定制过程无需用户人工干预。

clipboard.png

经过这些手段,阿里云使得开发者没必要关心语音技术的算法和工程服务细节,专一于他们擅长的垂直领域的知识和数据收集,实现全新的语音技术云端供给模式,造福于广大的开发者及其业务结果。

更多干货内容尽在阿里云总监课,戳连接报名:https://yq.aliyun.com/promoti...

阿里云总监系列课重磅上线!聚焦人工智能、弹性计算、数据库等热门领域,首次集齐12位阿里云技术高管,耗时半年精心打磨,从理论到实践倾囊相授,从零开始绘制技术大牛成长路径,限时直播课程免费报名中!

clipboard.png

本文做者:云攻略小攻

阅读原文

本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索