新手语音入门(五): 端到端语音识别技术简介 | 卷积神经网络 | CTC损失函数 | 注意力机制

黄辣鸡 发表于 2021/12/27 20:05:28 2021/12/27
【摘要】 因为语音和文字之间序列不一一对应,因此我们在前面博文中并未直接使用语料去端到端训练语音识别模型,但是如果能找到一个比较合适的数学形式来表示输入输出,则可以端对端实现语音识别。本文介绍了常见的几种端对端结构的语音识别模型,包括CTC和注意力机制等。

书接上篇博文,由于语音和文本的多变性,我们开始未考虑语音和文本一步到位的映射思路,但如果输入是一整段语音,输出是对应的文本,两端都能处理成规则的数学表示形式,只要数据足够,模型合适,我们也许能训练出一个好的端对端模型。

对于输入,我们可以考虑将不同长度的数据转化为固定维度的向量序列。因此我们可以选择卷积神经网络(Convolutional Neural Network,CNN)进行转换,CNN通过控制池化层(Pooling Layer)的尺度来保证不同的输入转换后的维度相同。

如果输入分帧逐次进入模型,可以使用RNN,虽然输入时分开进入,但是累积的历史信息会在最后以固定维度一次性输出,这两个方法常常用于基于注意力(Attention)的网络结构。

对于输出,先考虑输入长度不做处理的情况,因为语音识别中,真实输出的长度远小于输入的长度,可以引入空白标签充数,这是CTC(Connectionist Temporal Classification)损失函数常用的技巧。如果输出长度长于输入长度,则常规CTC就不合适了。另一种情况是前述固定输入为一个长度的向量,然后根据这个向量解码出一个文本序列,此时输出长度需要其他机制判断是否结束输出,比如引入结束符标签。

综上所述,目前最基本的两个端对端方法即上文提到的基于CTC损失函数注意力机制的深度学习方法。接下来将介绍几种常见的端对端结构语音识别算法设计。

1. CTC损失函数

CTC是一种2006年就应用于语音识别的损失函数,输入是一个序列,输出是一个序列,该损失函数使得模型输出的序列尽可能的拟合目标序列。

给定训练集,以其中一个样本 X W (X,W) 为例,将 X X 输入模型,输出可以是任意的文本序列 W W' ,每种文本序列的概率是不同的,而我们希望该模型输出 W W 的概率尽可能大,于是CTC的目标可以粗略地理解为通过调整 P 对应参数 P对应参数 来最大化 P ( W X ) P(W|X)

CTC的使用中,常规结构是LSTM-CTC,如图1所示,使用CTC训练的模型对各个音素的可能性预测是尖峰形状,当每个音素信息累积到一定程度才会出现较高概率。而常规帧级别对齐的训练方法是尝试将每个音素对应的大部分帧都打高分,体现不出来累积效应。
image.png

图1 CTC序列训练与常规帧级别训练预测结果的对比

2. RNN-T技术

为了实现声学模型和语言模型真正的统一学习,提高系统性能,早在2012年人们就提出了RNN Transducer(RNN-T)技术,直到2019年谷歌将该技术成功应用于移动端的实时离线语音识别,RNN-T技术得到广泛使用。

RNN-T显性训练语言模型的思路是,在预测当前目标时,将之前的结果作为条件。条件概率 p ( y x ) p(y|x) 在深度学习里的表现形式比较直观,只需要将 x x 作为输入去预测 y y 即可。常规的 C T C CTC 是以语音 x x 为条件,现在需要多考虑之前的输出 y y' ,学习目标更新为 p ( y x y ) p(y|x,y') 。下图展示了RNN-T与CTC的结构差异。

image.png

图2 RNN-T与CTC的结构差异

其中RNN-T预测网络与编码器都使用LSTM,可以分别对历史输出y和历史语音特征(x,含当前时刻)进行信息累积。并通过一个全连接神经共同作用于新的输出,图中的p和h分别为预测网络和编码器的输出,形式为固定长度的向量。

3. 自注意力模型

自注意力模型需要发现原始输入的各个单元与自身各单元的关联程度。当下自注意力机制应用最广泛的当属Transformer, 如下图所示,其摆脱了循环神经网络和卷积神经网络的禁锢,以及使用了多注意力机制,加速了并行计算能力。

image.png

图3 Transformer结构
Transfomer未使用循环神经网络结构,为了凸显输入信息的时序性,需要给输入的每个单元输入未知信息。Transformer还使用了残差结构,层规层来进一步增强模型的学习能力。

4. CTC+Attention

CTC是一种损失函数,注意力机制是一种网络结构,二者可以结合应用于语音识别,比如CTC与注意力网络共享一个编码器,但各有各的编码器,如图所示,最后将各自的解码器的解码结果融合在一起。

image.png

图4 CTC+Attension结构

参考

  1. 语音识别基本法 - 清华大学语音和语言技术中心[PDF]
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。