EeSen、FSMN、CLDNN、BERT、Transformer-XL…你都掌握了吗?一文总结语音识别必备经典模型(2)

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: EeSen、FSMN、CLDNN、BERT、Transformer-XL…你都掌握了吗?一文总结语音识别必备经典模型

、神经声学模型

1、EeSen

Eesen框架简化了构建最优ASR系统的流程。声学建模包括使用RNN学习预测上下文无关目标(音素或字符),为了消除对预先生成的帧标签的需求,本文采用了CTC目标函数来推断语音和标签序列之间的对齐方式。Eesen的一个显著特征是基于带权有限状态转录器(Weight finite state transducer,WFST)解码方式,该方法可将词典和语言模型有效地合并到CTC中。具体的,Eesen使用RNN作为声学模型,使用LSTM作为模型组成块,使用CTC作为目标函数,Eesen将声音建模简化为通过语音和上下文无关( context-independent ,CI)的标签序列对学习单个RNN。用这种方法,将各个组成部分(CTC标签、词典和语言模型)编码为WFST,然后组成一个全面的搜索图。WFST表示提供了一种简易方式来处理CTC空白标签,并在解码期间启用波束搜索。

Eesen中的声学模型是深度双向RNNs,用CTC目标函数训练。给定一个输入序列X = (x_1, ..., x_T),使用一个递归层计算隐藏状态的前向序列→H = (→h 1, ..., →h T),从t=1到T进行迭代:

除了输入x_t之外,也将前一个时间步长的隐性激活h_t-1输入,以影响当前时间步长的隐性输出。在双向RNNs中,一个额外的递归层计算从t=T到1的隐藏输出←H的后向序列:

RNNs的学习可以使用通过时间的反向传播(back-propagation through time,BPTT)来完成。在实践中,由于梯度消失的问题,训练RNN来学习长期的时间依赖性可能是很困难的。为了克服这个问题,引入LSTM单元作为RNNs的构建模块。LSTM包含具有自连接的记忆单元,以存储网络的时间状态。此外,还增加了乘法门控单元来控制信息流。

图3  LSTM的一个存储块

图3中蓝色曲线代表窥视孔连接,将存储单元与门控单元连接起来,以了解输出的精确时间。时间步长t的计算可以正式写成如下。省略了"→"这个箭头,以使表述不那么复杂:

这项工作中提出了一种基于WFSTs的通用解码方法。一个WFST是一个有限状态接受器( finite-state acceptor,FSA),其中每个过渡都有一个输入符号,一个输出符号和一个权重。一个通过WFST的路径需要一串输入符号,并生成一串输出符号。解码方法将CTC标签、词典和语言模型作为独立的WFST。使用高度优化的FST库,如OpenFST,可以将WFSTs有效地融合到一个单一的搜索图中。各个WFST的构建描述如下。虽然是以英语为例,但同样的程序也适用于其他语言。

语法。语法WFST对语言/领域中可允许的单词序列进行编码。图4所示的WFST代表一个玩具语言模型,它可以生成两个句子 "你怎么样 "和 "它怎么样"。WFST的符号是单词,弧形权重是语言模型的概率。有了这个WFST表示,CTC解码原则上可以利用任何可以转换为WFST的语言模型。语言模型WFST表示为G。

图4 语法(语言模型)WFST的示例

弧的权重是给定前一个词时发出下一个词的概率。节点0是起始节点,双圈的节点是结束节点

词库。词库WFST编码了从词库单元序列到单词的映射。根据RNN所建模的标签,有两种情况需要考虑。如果标签是音素,词库就是一个标准的词典,就像我们在混合方法中通常使用的那样。如果标签是字符,则词库只包含单词的拼写。这两种情况的一个关键区别是,拼写词库可以很容易地扩展以包括任何词库外(Out of Vocabulary,OOV)的词汇。相比之下,音素词库的扩展就不那么简单了。它依赖于一些字形到音素的规则/模型,并有可能出现错误。将词库WFST表示为L。两种方法如图5所示。

图5 语音词条的WFST "IH Z"。符号"<eps>"表示不消耗任何输入或不发出任何输出

对于拼写词典,还有一个复杂的问题需要处理。对于作为CTC标签的字符,我们通常会在每一对单词之间插入一个额外的空格字符,以模拟原始文本中的单词定界。在解码过程中,允许空格字符选择性地出现在一个词的开头和结尾。图6所示的WFST可以很容易地处理这个复杂的问题。

图6 WFST为 "is "字的拼写。允许该词有选择地以空格字符"<space>"开始和结束

Token。第三个WFST组件将框架级别的CTC标签序列映射到一个词库单元(音素或字符)。对于一个词库单元,将其Token WFST设计为包含其在框架级别的所有可能的标签序列。因此,这个WFST允许出现空白标签∅,以及任何非空白标签的重复。Token WFST将所有这3个序列映射到一个单子词库单元 "A"。


搜索图。在汇编了三个单独的WFSTs之后,将它们汇编成一个综合搜索图。首先生成词典和语法的WFST组合。然后,在组合中执行两个特殊的WFST操作,即确定化和最小化,以压缩搜索空间,从而加快解码速度。生成的WFST LG语言图再与Token WFST组成,最后生成搜索图。总的操作如下式所示:

在对混合DNN模型进行解码时,需要使用状态先验来扩展DNN的状态后验。这些先验值通常是从训练数据的强制排列中估计出来的。在对CTC训练的模型进行解码时,采用类似的程序。具体来说,我们在训练集上运行最终的RNN模型,进行传播处理。挑选出具有最大后验值的标签作为框架级的排列,从中估计出标签的先验值。在此基础上,作者建议从训练数据中的标签序列来估计更稳健的标签预设。

当前 SOTA!平台收录 EeSen 共 2 个模型实现资源。

项目 SOTA!平台项目详情页

EeSen

前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/eesen


2、 FSMN

LSTM是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。通过门控状态来控制传输状态,记住需要长时间记忆的,忘记不重要的信息;而不像普通的RNN那样仅有一种记忆叠加方式。但也因为引入了很多内容,导致参数变多,也使得训练难度加大了很多。因此很多时候我们往往会使用效果和LSTM相当但参数更少的GRU来构建大训练量的模型。RNN与LSTM计算复杂度较高,很难应用于较大任务,如何在不使用循环前馈的基础上更有效的对数据序列构建长依赖?受信号处理理论启发,使用高阶有限冲激响应(FIR)滤波器可以很好地逼近任何无限冲激响应(IIR)滤波器,本文提出了前馈顺序记忆网络(feedforward sequential memory networks,FSMN),在不使用循环反馈的情况下对时间序列中的长期依赖性进行建模。FSMN是一个标准的全连接前馈神经网络,在其隐藏层中配备了一些可学习的记忆模块。记忆模块使用了一个 tapped-delay line结构,将长的上下文信息编码成一个固定大小的表示,作为短期记忆机制。

(a)FSMN

   

(b)无向FSMN的记忆模块

图7. 前馈顺序记忆网络(FSMN)及其抽头延迟记忆块的图示。(每个z-1块代表一个延迟或存储单元)

观察图17(a)可以发现,在隐藏层的旁边,FSMN挂了一个记忆模块Memory Block,记忆模块的作用与LSTM门结构类似,可以用来记住t时刻输入信息的相邻时刻序列的信息。FSMN使用一组可学习的系数将回溯期(lookback window)内的past context编码为一个固定大小的表示。结果表示被计算为所有先前N个时间实例的隐藏激活的加权和,在图17(b)中显示为一个tapped-delay的结构。

根据记忆模块编码方式的区别,FSMN又可以分为sFSMN和vFSMN,前者代表以标量系数编码,后者代表以向量系数编码。对于sFSMN和vFSMN,使用与上下文无关的系数,将长的周围环境编码为固定大小的表示法。前述简单的回看式FSMN,也就是说当下的记忆模块只关注了它之前的信息,如果还要关注未来的信息,实现上下文联通,也就是所谓的双向的FSMN。在这项工作中,也尝试使用依赖于上下文的系数,称之为基于注意力的FSMN。使用以下的注意力函数来计算与上下文有关的系数:

其中,N1和N2分别代表回看和前看的阶数。因此,(a_t)^l是一组与上下文有关的系数,相对于(h_t)^l,用于编码时间实例t的长周期上下文,如下所示

与sFSMN和vFSMN相同,将(h~_t)^l送入下一个隐藏层。

项目 SOTA!平台项目详情页
FSMN 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/fsmn


3、 CLDNN

卷积神经网络(CNN)和长短期记忆(LSTM)都已在各种语音识别任务中显示出对深度神经网络(DNN)的改进。CNN、LSTM和DNN在建模能力上是互补的,CNN擅长减少频率变化,LSTM擅长时间建模,而DNN适合将要素映射到更加可分离的空间。本文通过将CNN、LSTM和DNN组合成一个统一的架构来利用它们的互补性,提出了CLDNN(CONVOLUTIONAL, LONG SHORT-TERM MEMORY, FULLY CONNECTED DEEP NEURAL NETWORKS)。具体使用到的经典网络结构包括:

  • LSTM(Long-Short-Term-Memory) ,处理与时间相关的数据;
  • CNN(Convolutional Neural Network) ,将多个时间点的数据抽象提取特征,减少无效数据;
  • DNN(Deep-Neural-Network) 将输入数据中的特征映射至更离散的空间,即将输入的数据变成神经网络中的各种参数。


图8 CLDNN模型架构

如图8所示模型架构。CLDNN网络的输入数据包括:数据的基本单位为帧(x_t ),每帧都是一个含40维度的梅尔频谱,输入的数据是由多帧组合成的向量[x_t−l,..., x_t+r] ,其中,最左侧一帧即第一帧计为l,最后一帧计为r。

CLDNN的卷积结构具体为:
(1)CNN共使用两层卷积层,第一层的卷积核为(9,9),第二层的卷积核为(4,3),两层卷积层中包含1个池化核为3的池化层。由于卷积结构的结果数据量过大,CLDNN使用线性层将数据降维处理,将数据降维至每帧256个数据。
(2)LSTM每层包含832个单元,另有一个包含500个单元的Projection Layer作降维处理。time_step设为20,使用BPTT(backpropagation through time)方法训练。
(3)全连接层:在进行频率和时间建模后,将LSTM的输出传给几个全连接的DNN层。共两层全连接层,每层1024个神经元。

项目 SOTA!平台项目详情页
CLDNN 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/cldnn
相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
7月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图 REV1
Bert Pytorch 源码分析:五、模型架构简图 REV1
103 0
|
7月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图
Bert Pytorch 源码分析:五、模型架构简图
77 0
|
2月前
|
自然语言处理 PyTorch 算法框架/工具
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
【10月更文挑战第1天】随着深度学习技术的进步,预训练模型已成为自然语言处理(NLP)领域的常见实践。这些模型通过大规模数据集训练获得通用语言表示,但需进一步微调以适应特定任务。本文通过简化流程和示例代码,介绍了如何选择预训练模型(如BERT),并利用Python库(如Transformers和PyTorch)进行微调。文章详细说明了数据准备、模型初始化、损失函数定义及训练循环等关键步骤,并提供了评估模型性能的方法。希望本文能帮助读者更好地理解和实现模型微调。
91 2
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
|
2月前
|
机器学习/深度学习 PyTorch 语音技术
语音识别模型
Whisper 是 OpenAI 推出的语音处理项目,基于深度学习,具备高度智能化和准确性的语音识别、翻译和生成能力。通过丰富的数据集和先进的注意力机制,Whisper 在多种语言环境下表现出色,支持语音识别、翻译、口语识别和语音活动检测等多种任务。用户可以通过 Python 代码或命令行轻松使用 Whisper,完成高质量的语音处理任务。官网:https://openai.com/research/whisper,GitHub:https://github.com/openai/whisper。
|
2月前
|
机器学习/深度学习 算法 语音技术
超越传统模型:探讨门控循环单元(GRU)在语音识别领域的最新进展与挑战
【10月更文挑战第7天】随着人工智能技术的不断进步,语音识别已经从一个相对小众的研究领域发展成为日常生活中的常见技术。无论是智能手机上的语音助手,还是智能家居设备,甚至是自动字幕生成系统,都离不开高质量的语音识别技术的支持。在众多用于语音识别的技术中,基于深度学习的方法尤其是递归神经网络(RNNs)及其变体如长短期记忆网络(LSTMs)和门控循环单元(GRUs)已经成为了研究和应用的热点。
114 2
|
2月前
|
机器学习/深度学习 自然语言处理 知识图谱
|
2月前
|
机器学习/深度学习 自然语言处理 算法
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
210 0
|
3月前
|
搜索推荐 算法
模型小,还高效!港大最新推荐系统EasyRec:零样本文本推荐能力超越OpenAI、Bert
【9月更文挑战第21天】香港大学研究者开发了一种名为EasyRec的新推荐系统,利用语言模型的强大文本理解和生成能力,解决了传统推荐算法在零样本学习场景中的局限。EasyRec通过文本-行为对齐框架,结合对比学习和协同语言模型调优,提升了推荐准确性。实验表明,EasyRec在多个真实世界数据集上的表现优于现有模型,但其性能依赖高质量文本数据且计算复杂度较高。论文详见:http://arxiv.org/abs/2408.08821
90 7
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
|
4月前
|
机器学习/深度学习 存储 自然语言处理
【NLP-新闻文本分类】3 Bert模型的对抗训练
详细介绍了使用BERT模型进行新闻文本分类的过程,包括数据集预处理、使用预处理数据训练BERT语料库、加载语料库和词典后用原始数据训练BERT模型,以及模型测试。
82 1

热门文章

最新文章

相关产品

  • 智能语音交互