机器之心专栏
本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。 本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
本文将分 3 期进行连载,共介绍 17 个在语音识别任务上曾取得 SOTA 的经典模型。
- 第 1 期:NNLM、RNNLM、LSTM-RNNLM、Bi-lstm、Bi-RNN+Attention、GPT-1
- 第 2 期:Bert、Transformer-XL、EeSen、FSMN、CLDNN、highway LSTM
- 第 3 期:Attention-lvcsr、residual LSTM、CTC/Attention、Transfomer-Transducer、Conformer
您正在阅读的是其中的第 1 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
第 1 期回顾:NNLM、RNNLM、LSTM-RNNLM、Bi-lstm、GPT-1…你都掌握了吗?一文总结语音识别必备经典模型(一)
第 2 期回顾:EeSen、FSMN、CLDNN、BERT、Transformer-XL…你都掌握了吗?一文总结语音识别必备经典模型(二)
本期收录模型速览
模型 | SOTA!模型资源站收录情况 | 模型来源论文 |
Attention-lvcsr | https://sota.jiqizhixin.com/project/attention-lvcsr 收录实现数量:1 支持框架:PyTorch |
End-to-end attention-based large vocabulary speech recognition |
Residual LSTM | https://sota.jiqizhixin.com/project/residual-lstm 收录实现数量:1 支持框架:PyTorch |
Design of a deep recurrent architecture for distant speech recognition |
CTC/Attention | https://sota.jiqizhixin.com/project/ctc-attention | Hybrid CTC/Attention Architecture for End-to-End Speech Recognition |
Transfomer-Transducer | https://sota.jiqizhixin.com/project/transfomer-transducer 收录实现数量:1 支持框架:PyTorch |
Transformer Transducer: A Streamable Speech Recognition Model with Transformer Encoders and RNN-T Loss |
Conformer | https://sota.jiqizhixin.com/project/conformer-l 收录实现数量:3 支持框架:PyTorch、TensorFlow、PaddlePaddle |
Conformer: Convolution-augmented Transformer for Speech Recognition |
语音识别是指将语音信号转换为文字的过程。具体来说,输入一段语音信号,找到一个文字序列(由词或字组成),使得它与语音信号的匹配程度最高。这个匹配程度,一般是用概率表示的。语音识别系统一般由如下几个部分组成:信号处理、解码器、文本输出。信号处理模块根据人耳的听觉感知特点,抽取语音中最重要的特征,将语音信号转换为特征矢量序列。现行语音识别系统中常用的声学特征有线性预测编码(Linear Predictive Coding,LPC)、梅尔频率倒谱系数(Mel-frequency Cepstrum Coefficients,MFCC)、梅尔标度滤波器组(Mel-scale Filter Bank,FBank)等。解码器(Decoder)根据声学模型(Acoustic Model,AM)和语言模型(Language Model,LM),将输入的特征矢量序列转化为字符序列。解码器对给定的特征向量序列和若干假设词序列计算声学模型得分和语言模型得分,将总体输出分数最高的词序列作为识别结果。其中,声学模型是对声学、语音学、环境的变量,以及说话人性别、口音的差异等的知识表示,主要实现预测通过词 W 的发音生成特征 X 的概率。声学模型的训练数据是标注的声音特征(标注是对应的文本内容);语言模型则是对一组字序列构成的知识表示,主要实现预测某词或词序列的概率。语言模型的训练数据是一些合乎语法的句子(纯文本)。
从语言模型角度分析,近些年随着深度学习的发展,神经网络语言模型 (neural network language model,NLM) 由于能将词向量映射到低维连续空间,因此逐渐成为主流方法,具备较好的泛化性能。最早的神经语言模型是基于前馈神经网络 (feedforward neural network, FNN) 的,初步实现了对长文本序列在低维连续空间的建模,但这种方法能够处理的文本长度受限于网络的输入长度,而后循环神经网络 (recurrent neural network, RNN) 为代表的语言模型利用循环结构可以在理论上对无限长的文本建模,性能得到极大提升。基于长短期记忆循环神经网络 (long short-term memory recurrent neural network, LSTM-RNN) 的语言模型则解决了 RNN 在长历史序列建模时梯度消失的问题,在各种任务上都取得不错的效果。近年来,基于 Transformer 的语言模型在自注意力机制作用下对长文本具有更强的建模能力,在一系列自然语言和语音的任务上均取得了最优性能。从语言模型的发展中可以看出,研究核心在于如何提高模型对于长历史序列信息的建模能力,这也是神经语言模型在语音识别应用中需要考虑的核心问题。
从声学模型角度分析,传统的语音识别系统的声学模型普遍采用的是基于GMM-HMM的声学模型,其中,GMM用于对语音声学特征的分布进行建模,HMM则用于对语音信号的时序性进行建模。2006年深度学习兴起以后,深度神经网络(Deep Neural Networks,DNN)被应用于语音声学模型。2009年,Hinton及其学生将前馈全连接深度神经网络应用于语音识别声学建模,在TIMIT数据库上基于DNN-HMM的声学模型相比于传统的GMM-HMM声学模型可以获得显著的性能提升。DNN相比于GMM的优势在于:1)DNN对语音声学特征的后验概率进行建模不需要对特征的分布进行去分布假设;2)GMM要求对输入的特征进行去相关处理,而DNN可以采用各种形式的输入特征;3)GMM只能采用单帧语音作为输入,而DNN则可以通过拼接相邻帧的方式利用上下文的有效信息。2011年,Deng Li等提出基于CD-DNN-HMM的声学模型,在大词汇量连续语音识别任务上取得成功,相比于传统的GMM-HMM系统可以获得超过20%的相对性能提升。基于DNN-HMM的语音声学模型开始取代GMM-HMM成为主流的声学模型。此后大量的研究人员投入到基于深度神经网络的语音声学建模研究中,语音识别取得了突破性的进展。
本文分别总结了神经语音识别中神经语言模型和神经声学模型的经典TOP模型。
一、神经语言模型
1、 Attention-lvcsr
目前许多先进的大词汇量连续语音识别系统(Large Vocabulary Continuous Speech Recognition Systems,LVCSR)是神经网络和隐马尔可夫模型(HMM)的混合体。这些系统大多包含处理声学建模、语言建模和序列解码的独立组件。本文研究了一种更直接的方法,即用循环神经网络(RNN)取代HMM,直接在字符层面进行序列预测。输入特征和所需的字符序列之间的对齐是由RNN内置的注意力机制自动学习的。对于每个预测的字符,注意力机制扫描输入序列并选择相关的框架。这项工作研究了基于注意力的循环序列发生器(Attentionbased Recurrent Sequence Generator,ARSG)的应用,作为端到端低通滤波器系统的一部分。
在这项工作中,我们使用深度BiRNN作为编码器。因此,表示法是BiRNN状态向量的序列(h_1, ... , h_L)。对于一个标准的深度BiRNN网络,序列(h_1, ... , h_L)与最底层的输入一样长,在语音重构的背景下,这意味着每10ms的录音有一个h_i。因此,在BiRNN层之间增加了池化,如图1所示。
图1. 增加池化层的BiRNN:上层的运行速度比下层慢两倍。它可以对它下面一层的隐藏状态进行平均或子采样(如图所示)
系统中的解码器网络是一个基于注意力的循环序列发生器(ARSG)。虽然RNN可以处理和生成序列数据,但隐藏状态向量序列的长度总是等于输入序列的长度。人们可以以学习这两个序列之间的排列组合为目标,建立一个分布为p(y_1, ... , y_T |h_1, ... , h_L)的模型,对于这个分布,T和L之间没有明显的功能依赖关系。ARSG一次产生一个输出序列(y_1, ... , y_T),同时将每个生成的元素与编码的输入序列(h_1, ... , h_L)对齐。它由一个RNN和一个额外的子网络组成,称为 "注意力机制"。注意力选择输入序列的时间位置,这些位置被用来更新RNN的隐藏状态,并对下一个输出值进行预测。ARSG如图2所示。
图2. 基于注意力的循环序列发生器的示意图
在每个时间步长t,MLP将隐藏状态s_t-1和所有的输入向量h_l结合起来,计算出注意力权重α_tl。随后,可以计算得到新的隐藏状态s_t和输出标签y_t的预测。本工作中使用的注意力机制是一个改进版的带有卷积特征的混合注意力,它由以下公式描述
尽管从结构上看,ARSG隐式学习了一个输出符号如何依赖于先前的符号,但训练语料的转录通常不足以学习一个高质量的语言模型。出于这个原因,作者进一步研究如何将ARSG与语言模型相结合。主要的挑战是,在语音识别中使用的是基于单词的语言模型,而ARSG是对字符序列的分布建模。使用带权有限状态转录器(Weighted Finite State Transducer,WFST)框架,从一个词级的语言模型建立一个字符级的语言模型。一个WFST是一个有限自动机,其过渡有权重和输入输出标签。它定义了将输入序列转化为输出序列的成本,即考虑所有具有相应的输入和输出标签序列的路径。组合操作可用于组合定义不同层次的表示法的FST,如案例中的字符和单词。将语言模型有限状态转录器(Finite State Transducer,FST)G与简单拼出每个单词的字母的词典FST L组成。更具体地说,建立了一个FST T = min(det(L o G))来定义字符序列的对数概率。把这个FST的权重推向起始状态,以帮助在解码期间进行假设修剪。
对于解码,我们寻找一个成本最小的转录本y,它结合了编码器-解码器(encoder-decoder,ED)和语言模型(language model,LM)的输出,如下所示
在波束搜索解码中整合FST和ARSG是很容易的,因为它们的共同特性是当前状态只取决于前一个状态和输入符号。因此,我们可以使用一个简单的从左到右的波束搜索算法,来近似计算出最小化L的y值。
当前 SOTA!平台收录 Attention-lvcsr 共 1 个模型实现资源。
项目 | SOTA!平台项目详情页 |
Attention-lvcsr | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/attention-lvcsr |
2、 Residual LSTM
通过使用Highway LSTM建模发现,当从3层HLSTM增加到8层时,字错误率(wer)反而上升了。这就是所谓的Degration problem,即随着网络深度的增加训练/开发集的错误率不降反增。为了解决这个问题,提出了Residual LSTM。Residual LSTM也是借鉴了Highway LSTM的思想。具体结构如下:
图3. Residual LSTM:将先前的输出层(h_t)^l-1的shortcut添加到一个投影输出(m_t)^l。(W_h)^l是输入和输出之间的尺寸匹配矩阵
从图3中可以看出:
(1)Residual LSTM有一条空间上的shortcut(对应绿色方块的Shortcut Path)。而绿色方块表达的是l层的输入(x_t)^l是来自l-1层的输出(h_t)^l-1 。这里的空间指的是不同层的LSTM之间。当然Residual LSTM也有一条时间上的shortcut,即图中l层t时刻的细胞状态依赖于l层t-1时刻的细胞状态,因此说它也提供了一条时间上的shortcut;
(2)与Highway LSTM不同,Highway LSTM通过额外引入了carry gate来限制空间上的shortcut的畅通程度。而Residual LSTM则直接使用output gate代替carry gate来限制空间上的shortcut的畅通程度。通过这个替代,能有效超过减少10%的参数数量;
3、与Highway LSTM不同,Highway LSTM的时间shortcut和空间shortcut是应用在同一个对象上,即细胞状态。而Residual LSTM的时间shortcut是应用在细胞状态,而空间shortcut是应用在输出层。
与传统LSTM相比,Residual LSTM公式如下:
其中,Residual LSTM公式中的 (x_t)^l就是来自l-1层的输出 (h_t)^l-1。通过公式我们可以看到,Residual LSTM也有一个映射层,即 (m_t)^l。
当前 SOTA!平台收录 Residual LSTM 共 1 个模型实现资源。
项目 | SOTA!平台项目详情页 |
Residual LSTM | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/residual-lstm |