一种面向语音识别模型的动态掩码方法
文献发布时间:2024-04-18 19:53:33
技术领域
本发明涉及一种编码方法,具体为面向语音识别模型的动态掩码方法。
背景技术
当前,语音识别技术已经应用到生活的方方面面,如语音搜索、语音助手、会议记录和智能音箱等。语音识别技术大大提高了生产生活效率。此外,语音识别技术一直是许多大型科技公司最重要的核心发展方向之一,并且语音识别领域的投资也进一步扩大。未来语音识别仍然有着巨大的市场,并能创造巨大的社会价值和经济价值。
尽管语音识别技术从理论研究到开发落地都取得了较好的成绩,但在实际应用过程中仍然存在一些问题,语音识别技术仍面临着挑战。在语音编码中,如何有效地进行语音编码是一个有待解决的问题。语音处理首先需要分辨出一段语音序列中存在的多种频率。宏观来说语音信号是不平稳的,要经过傅立叶变换,因此语音信号要分帧处理,来保证每一帧内的信号是平稳的。但是语音中信号非信息单元是非常多的,与非信息信号相对应的内容会增加声学编码中输入长度,导致占用过多计算资源。
基于Transformer的模型越来越受欢迎,在各种序列到序列研究领域取得了最先进的性能。端到端模型从音频中提取高频特征(通常每10毫秒)。平均而言,这使得所产生的输入向量序列比相应的文本长10倍,导致内在的冗余(即长而重复的)表示。Transformer在输入序列长度方面的复杂性使得它无法应用于通常由长序列表示的音频信号。Transformer中的高层无法访问潜在有用的语言信息。为了解决这个问题,当前的解决方案是基于原始音频特征的固定采样进行初始次优压缩,但是这样Transformer中的高层无法访问潜在有用的语言信息。
由于语音信号中信息传播不均匀,由此导致的信息特征提取困难。与非信息信号相对应的特征,如噪声,暂停等,增加了输入长度,并为各种声学任务带来了无法管理的噪声,增加学习难度的同时也降低了性能。因此,需要一种方法来稀疏编码器状态,将其应用于端到端系统来处理冗余和噪声语音信号。
由于Transformer的自注意力机制的计算量与Token数的平方成正比,所以如果保留完整的输入序列进行输入,则需要消耗巨大的计算资源,且会增加模型的建模复杂度。然而,在论文Adaptive Feature Selection for End-to-End Speech Translation中说明,至少85%的语音输入是与信息无关的,模型的预测结果只与语音中的少部分的Token有关。也就是说,我们可以动态去除掉一些重要性较低的Token,而不会对模型的准确率带来较大的影响。
连接时序分类(Connectionist Temporal Classification,CTC)是语音处理中一种多任务学习方法,可以将输入序列的每一位置都对应到标注文本中,学习语音和文字之间的软对齐关系。CTC是一个损失函数,通过在输出标签中增加空白符号(blank),通过最大化所有可能对应的序列概率之和,从而无需对训练数据进行划分和对齐,很好的解决了数据对齐问题,并且能够直接输出目标序列,大大简化了模型构建和训练难度。掩码是对某些值进行掩盖,使其在参数更新时不产生效果。有研究人员利用CTC的基于转录和音素的压缩来解决这个问题。然而,由于这些方法被应用于由Transformer层编码的表征,出于记忆的原因,仍然需要对输入的初始内容进行不基于理解的下采样,有可能会丢失重要信息,进而影响模型的性能。CTC的尖峰特性又可以检测到空帧,如果只是简单的掩码掉这些元素,又会影响后续CTC的计算,无法帮助模型收敛。
因此,依据CTC的特点,探究一种掩码方式是非常必要的,期望可以减少计算资源,又不影响后续的CTC计算,同时可以提升模型表现。
发明内容
针对现有技术中声学编码中输入长度过长,占用过多计算资源,CTC无法计算及存在的信息丢失问题,本发明要解决的技术问题是提供一种语音识别模型的动态掩码方法,借助CTC的尖峰特性来检测空帧,将空帧掩码掉,减少计算资源,帮助模型收敛。
为解决上述技术问题,本发明采用的技术方案是:
本发明提供一种面向语音识别模型的动态掩码方法,包括以下步骤:
1)对语音数据集中原始音频输入进行声学特征提取,将原始的不定长时序信号转换成特征向量表示,通过分帧使声学信号由快速变化的非平稳参数信号变为阈值范围内的平稳信号,得到音频对应的帧级特征序列;
2)对音频对应的帧级特征序列进行编码,使用CTC进行序列建模,编码过程中基于CTC的尖峰特性,检测到空帧,将识别为空帧所对应的特征向量掩码为0;
3)定义二分函数来避免神经网络的行为不稳定和CTC计算问题;
4)将二分函数处理后的表示传递给语音识别模块,进而完成整个建模过程,最终实现动态掩码。
步骤2)具体为:
201)将音频特征序列输入到声学模型中,通过一个间隔为2、核大小为5的卷积层对其进行序列长度压缩,使序列长度变为之前的1/2;
202)压缩后的音频特征在经过编码器计算之后,通过CTC引入空字符来进行序列扩展,从而完成输入声学特征到输出预测字符的映射,得到对齐结果;
203)将CTC预测为blank的位置所对应的特征掩码为0,以代表无意义元素;
204)把blank所对应的特征位置的值加上无穷大的负数,经过softmax函数处理后,特征位置的概率为0。
步骤3)具体为:
301)在CTC的softmax函数后面接入一个二分函数,二分函数定义为如果输入大于0则直接返回输入,否则返回0;
302)将这个二分函数设置为斜率为1的线性函数,它的反向传播梯度为1,从而实现反向传播,解决CTC计算问题。
步骤4)具体为:
401)将声学模型作为语音识别模型的编码器,Transformer仅由注意力机制和前馈神经网络组成,在自注意力机制中,其中包含查询(Query,Q),键(Key,K)和值(Value,V),其中键(Key,K)和值(Value,V)来自相同的内容,对查询矩阵、键矩阵以及值矩阵分别进行线性变换,然后进行缩放点积操作,即计算Query与Key进行点积计算,除以Key的维度
其中,Q为查询矩阵,K为键矩阵,V为值矩阵,
402)将动态编码后的表示与CTC损失进行联合训练,计算联合训练损失,使用CTC后验对解码进行重新排序,通过解码器得到一个语音识别模型。
本发明具有以下有益效果及优点:
1.本发明提出一种面向语音识别模型的动态掩码方法,借助CTC的尖峰特性来检测空帧,将其对应的空帧掩码掉,从而在编码过程中逐步减小序列的长度,减少计算资源;
2.本发明方法可以克服因掩码相应特征所导致的CTC无法计算的问题;
3.本发明方法通过与CTC在解码阶段的结合,加速Transformer模型的收敛速度。
附图说明
图1为本发明一种面向语音识别模型的动态掩码方法图解。
具体实施方式
下面结合说明书附图对本发明作进一步阐述。
本发明提供一种语音识别模型的动态掩码方法,如图1所示,本发明包括以下步骤:
1)对语音数据集中原始音频输入进行声学特征提取,将原始的不定长时序信号转换成特征向量表示,通过分帧使声学信号由快速变化的非平稳参数信号变为阈值范围内的平稳信号,得到音频对应的帧级特征序列;
2)对音频对应的帧级特征序列进行编码,使用CTC进行序列建模,编码过程中基于CTC的尖峰特性,检测到空帧,将识别为空帧(blank)所对应的特征向量掩码为0;
3)定义二分函数来避免神经网络的行为不稳定和CTC计算问题;
4)将二分函数处理后的表示传递给语音识别模块,进而完成整个建模过程,最终实现动态掩码。
步骤1)中,对语音数据集中原始音频输进行声学特征提取,将原始的不定长时序信号转换成特定的特征向量表示,通过分帧使声学信号由快速变化的非平稳参数信号近似变为平稳信号,得到音频对应的帧级特征序列。音频信号中通常包含着非常丰富的特征参数,不同的特征向量表征有着不同的声学意义,针对原始音频,通过如预加重、分帧、加窗等操作,对高频部分进行加权处理,使得待处理的语音信号更加平坦顺滑,把音频分割为多个小段,通过分帧使声学信号由快速变化的非平稳参数信号近似变为平稳信号,对每帧的信号进行加窗处理,使其幅度在两端渐变到0,最终得到音频对应的帧序列,然后通过傅立叶变换等操作,得到通常为80维的MFCC特征或FBank特征,存储在本地硬盘中。
步骤2)中对音频对应的帧级特征序列进行编码,使用声学模型对音频特征序列进行编码,编码过程中逐步压缩序列长度,网络根据概率选择跳过当前空白输入值,包括:
201)将音频特征序列输入到声学模型中,通过一个间隔为2、核大小为5的卷积层对其进行序列长度压缩,使序列长度变为之前的1/2;
202)压缩后的音频特征在经过编码器计算之后,通过CTC引入空字符(blank)来进行序列扩展,从而完成输入声学特征到输出预测字符的映射,得到对齐结果;
203)将CTC预测为blank的位置所对应的特征掩码为0,这样就代表这是无意义的元素,所以Transformer的注意力机制不应该把注意力放在这些位置上;
204)把blank所对应的特征位置的值加上无穷大的负数,经过softmax函数处理后,特征位置的概率为0。
在步骤3)中,定义二分函数来避免网络的行为不稳定和CTC计算问题,包括:
301)在CTC的softmax函数后接入一个二分函数,定义为如果输入大于0就直接返回输入,不然就返回0;
302)将这个二分函数设置为斜率为1的线性函数,它的反向传播梯度为1,从而可以实现反向传播,解决CTC计算问题。
在步骤4)中,将上述声学模型作为语音识别模型的编码器,通过一个解码器,将动态编码后的表示与CTC损失进行联合训练,计算它们的损失,使用CTC后验对解码进行重新排序,得到一个语音识别系统,包括:
401)将声学模型作为语音识别模型的编码器,Transformer仅由注意力机制和前馈神经网络组成,在自注意力机制中,其中包含查询(Query,Q),键(Key,K)和值(Value,V),其中键(Key,K)和值(Value,V)来自相同的内容,对查询矩阵、键矩阵以及值矩阵分别进行线性变换,然后进行缩放点积操作,即计算Query与Key进行点积计算,为了防止计算结果过大,会除以Key的维度
其中,Q为查询矩阵,K为键矩阵,V为值矩阵,
Transformer使用的这种self-attention机制,可以将序列中的任意两个位置之间的距离缩小为一个常量,编码器中的每个块在结构上都是相同的,由自注意力和前馈网络组成;
402)将动态编码后的表示与CTC损失进行联合训练,计算它们的损失,使用CTC后验对解码进行重新排序,通过一个解码器,解码器中的每一块由masked multi-headattention和一个编码器-解码器的attention组成,由于在生成的时候是无法知道未来的信息的,所以masked multi-head attention部分用于将未来的信息遮盖掉,得到一个语音识别系统。
在语音识别的基准数据集LibriSpeech上,该数据集是一个包含约1000小时英语语音的大型语料库。数据来源为LibriVox项目的音频书籍,词错率(Word Error Rate,WER)是一项用于评价语音识别性能的重要指标,用来评价预测文本与标准文本之间错误率,因此词错率最大的特点是越小越好,在语音识别任务中研究者常用WER衡量语音识别效果好坏。与基线模型的传统方法相比,本方法可以实现平均0.7的错误率提升及55%的解码加速,相比标准方法有了明显的提升。