本申请涉及语音识别领域,尤其涉及一种流式和非流式混合语音识别系统。
背景技术:
目前语音识别技术已经获得了广泛的应用,语音识别根据不同的应用场景可以划分为流式语音识别系统和非流式语音识别系统,流式语音识别系统为了降低延迟和实时率,其所依赖的声学上下文大大降低,其在一定程度上也影响了模型的识别效果。非流式的语音识别系统,其应用于对于实时率没有要求的场合,其可以使用全部的声学序列进行预测,一般情况下非流式系统相较流式识别系统具有更好的识别效果。然而为了适应不同的任务需求,一般要针对流式和非流式任务来分别训练模型,而并没有一种效果好的方案可以实现一个模型应用于两种任务。本发明提出一种语音识别系统,其将流式和非流式模型整合到同一个模型中,实现了一种模型,两种解码模式,适用于两种类型的任务。
目前针对流式语音识别和非流式语音识别的方案有很多种,但是将两种识别模型统一到一个框架中的方案并不多。其中主要包含两种思路:
第一种思路是google的思路,通过编码器部分的变上下文训练来实现同一个编码器对于流式(局部上下文)和非流式(全局上下文)的适应。其在模型训练过程中,同时训练流式和非流式,当训练流式模型时候,会遮蔽掉声学下文,仅依赖声学上文。而训练非流式的时候,并不采用遮蔽操作,而对全部的声学上下文进行建模。为了消除流式模型和非流式模型之间的性能差距,模型还使用了知识萃取的思路,使用非流式模型来提升流式模型的表现。解码器可以使用一个解码器来实现两种解码模式,只需要针对不同的任务需求选择不同的编码器即可。
第二种思路是阿里巴巴提出的混合模型,其模型包含两个编码器(流式和非流式)和两个解码器。系统对对输入的语音采用不同的类别的编码器进行编码,针对流式任务则选流式编码器,然后使用流式解码器进行初步解码,使用非流式解码器对其解码结果进行重打分。进行非流式解码就是解码的时候仅依赖于非流式编码器和解码器。这种结构模型相对复杂。
申请公布号cn111402891a公开的实施例提供了语音识别方法、装置、设备和存储介质。所述方法包括获取当前待识别语音信号的语音特征序列;将所述语音特征序列输入预先训练得到的deep-fsmn模型,得到表示各个音素的概率的输出序列;将所述输出系列输入预先训练的ctc模型,得到对应的音素序列;将所述音素序列输入语言模型,转换成最终的文字序列作为识别结果。以此方式,可以提升模型性能,减少语音识别的时延;减少了运算量,提高了语音识别效果。
申请公布号cn111968629a请求保护一种结合transformer和cnn-dfsmn-ctc的中文语音识别方法,该方法包括步骤:s1,将语音信号进行预处理,提取80维的logmelfbank特征;s2,将提取到的80维fbank特征用cnn卷积网络进行卷积;s3,将特征输入到dfsmn网络结构中;s4,将ctcloss作为声学模型的损失函数,采用beamsearch算法进行预测,使用adam优化器进行优化;s5,引入强语言模型transformer迭代训练直至达到最优模型结构;s6,将transformer和声学模型cnn-dfsmn-ctc相结合进行适配,在多数据集上进行验证,最终得到最优识别结果。本发明识别准确率更高,解码速度更快,在多个数据集上验证后字符错误率达到了11.8%,其中在aidatatang数据集上最好达到了7.8%的字符错误率。
现有技术主要问题包含两方面:
(1)模型冗余,训练任务量大,分别训练;目前针对流式识别和非流式识别任务,通常要分别训练模型,其模型存在部分功能的重复,以及系统冗余的问题,并且分别训练模型,增加了模型训练的任务量。
(2)模型结构复杂;类似于阿里巴巴模型的思路,模型包含两个编码器和两个解码器,不同的编码器的组合应用于不同的任务,模型结构较为复杂,也难以训练。
技术实现要素:
有鉴于此,本发明提供一种流式和非流式混合语音识别系统,具体地,本发明是通过如下技术方案实现的:
第一方面,本发明提供一种流式和非流式混合语音识别系统,包括:流式编码器、联结时序分类解码器和注意力机制解码器;流式编码器是为了流式建模,需要摆脱对于全部声学上下文的依赖,采用基于局部自注意力机制的transformer来进行构建,输出编码状态;联结时序分类解码器包含一个线性映射层,负责将编码状态映射到预先设计好的词表空间,得到编码状态映射表示,使编码状态映射表示的维度与词表空间的维度相同,然后通过softmax计算预测到的标记,主要用于流式解码;注意力机制解码器采用transformer解码器来构建,由前端卷积层和多层重复的单向transformer编码层组成,最后一层为线性映射层,使编码状态映射表示的维度与所述词表空间的维度相同,并计算最终输出的概率;
模型在训练过程中,所述联结时序分类解码器计算ctc损失函数,注意力机制解码器计算交叉熵损失函数;将ctc损失函数和所述交叉熵损失函数进行加权求和作为识别系统的模型损失函数;
在流式推理过程中,以联结时序分类解码器作为主导,注意力机制解码器为辅助,联结时序分类解码器采用beamsearch搜索算法将编码状态生成n条流式候选声学序列和所述n条流式候选声学序列的ctc流式声学分数,由注意力机制解码器对n条流式候选声学序列进行重打分,根据每条流式候选声学序列的分数对n条流式候选声学序列重新排列,采用分数最高的流式候选声学序列作为最终的流式识别结果;
在非流式推理过程中,以注意力机制解码器作为主导,联结时序分类解码器作为辅助,注意力机制解码器采用beamsearch搜索算法在对解码过程中生成的得分最高的m条非流序列作为m条非流候选声学序列,由联结时序分类解码器对所述m条非流候选声学序列进行重打分,根据每条非流候选声学序列的分数对m条非流候选声学序列重新排列,采用分数最高的非流候选声学序列作为最终的非流识别结果。
优选地,模型损失函数的具体形式为:
模型损失函数=λ*ctc损失函数 (1-λ)*交叉熵损失函数;
其中,
λ:设置参数,0.1≤λ≤0.3。
优选地,注意力机制解码器对n条流式候选声学序列进行重打分的具体方法为:
在每条流式候选声学序列前端扩增一个句子开始标记作为输入流式候选序列;
注意力机制解码器采用n条输入流式候选序列和所述n条流式候选序列对应的编码状态作为输入,预测包含结束标记不包含开始标记的流式目标候选序列,对流式目标候选序列每个位置上的概率进行求和,计算得到流式注意力分数,流式注意力分数作为对所述n条流式候选声学序列进行重打分的分数。
优选地,重打分的分数还包括:将流式注意力分数和ctc流式声学分数进行加权求和作为对n条流式候选声学序列进行重打分的分数。
优选地,n为设置参数,10≤n≤100。
优选地,注意力机制解码器采用beamsearch搜索算法在对解码过程中生成的得分最高的m条非流序列作为m条非流候选声学序列的具体过程为:
从开始标记开始进行预测,每一步都需要输入完整的编码状态和上一步预测得到的标记,然后计算预测标记的得分;重复这一过程,直到预测到结束标记停止;然后将所述注意力机制解码器解码过程中生成的得分最高的m条非流序列作为m条非流候选声学序列和m条非流候选声学序列的非流注意力分数,剔除掉开始标记和结束标记。
优选地,由所述联结时序分类解码器对所述m条非流候选声学序列进行重打分的具体方法为:将ctc非流声学分数与所述非流注意力分数进行加权求和得到所述联结时序分类解码器对所述m条非流候选声学序列进行重打分的分数。
优选地,m为设置参数,10≤m≤100。
本发明还提供一种流式语音识别方法,包括:
(1)输入的音频流每达到一个固定长度就被计算为声学特征流输入到流式编码器中;
(2)流式的声学特征流经过流式编码器之后转变为流式编码状态输入到联结时序分类解码器中;
(3)联结时序分类解码器采用beamsearch搜索算法,对流式编码状态进行预测;
(4)重复上述(1)-(3),如果遇到句子结束,则流式编码状态结束,最终生成n条流式候选声学序列和所述n条流式候选声学序列的ctc流式声学分数;
(5)注意力机制解码器对所述n条流式候选声学序列进行重打分,在每条流式候选序列前端扩增一个句子开始标记作为输入流式候选序列;注意力机制解码器采用n条输入流式候选序列和所述n条流式候选序列对应的编码状态作为输入,预测包含结束标记不包含开始标记的流式目标候选序列,对流式目标候选序列每个位置上的概率进行求和,计算得到流式注意力分数,流式注意力分数作为对所述n条流式候选声学序列进行重打分的分数;
或者将流式注意力分数和ctc流式声学分数进行加权求和作为对n条流式候选声学序列进行重打分的分数;
(6)据每条流式候选声学序列的分数对n条流式候选声学序列重新排列,采用分数最高的流式候选声学序列作为最终的流式识别结果。通过提高流式候选声学序列的数量n来提升流式语音识别的表现,n的典型值是10,参数设置范围:10≤n≤100。
本发明还提供一种非流式语音识别方法,包括:
(1)音频输入结束后,对整段音频提取特征,并输入流式编码器中进行编码;
(2)注意力机制解码器依赖流式编码器的全部输出和起始标记作为输入,从开始标记开始进行预测,每一步都需要输入完整的编码状态和上一步预测得到的标记,然后计算预测标记的得分;
(3)重复步骤(2),直到预测到结束标记停止;然后将注意力机制解码器解码过程中生成的得分最高的m条非流序列作为m条非流候选声学序列和m条非流候选声学序列的非流注意力分数,剔除掉开始标记和结束标记;
(4)使用联结时序分类解码器对全部m条非流候选声学序列进行重打分,使用动态规划算法,计算在输入完整语音输入条件下预测得到目标非流候选声学序列的概率作为ctc非流声学分数;
(5)将ctc非流声学分数与所述非流注意力分数进行加权求和得到联结时序分类解码器对所述m条非流候选声学序列进行重打分的分数,并重新排序;
(6)最终输出所述m条非流候选声学序列进行重打分的分数最高的分支作为识别结果。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该方法,
(1)模型结构简单,本发明仅包含一个流式编码器和两个解码器(ctc解码器和attention)解码器,其模型结构相对简单。
(2)模型解码流程简单,相辅相成。模型的流式和非流式解码中,仅需要对调不同解码器的排列顺序,就能获得一定的性能提升。
(3)模型训练简单,相对于其他流式和非流式模型的训练过程,本系统本身就包含两种类型的解码器,可以进行联合训练,相互提升了不同模块的收敛速度和训练速度。
附图说明
图1为本发明实施例提供的一种流式和非流式混合语音识别系统结构框图;
图2为本发明实施例提供的流式编码器transformer自注意力机制示意图;
图3为本发明实施例提供的流式语音识别方法流程图;
图4为本发明实施例提供的非流式语音识别方法流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
如图1所示本申请实施例提供的流式和非流式混合语音识别系统,
包括:流式编码器、联结时序分类解码器和注意力机制解码器;所述流式编码器是为了流式建模,需要摆脱对于全部声学上下文的依赖,采用基于局部自注意力机制的transformer来进行构建;所述联结时序分类解码器包含一个线性映射层,负责将编码状态映射到预先设计好的词表空间,使编码状态映射表示的维度与所述词表空间的维度相同,然后通过softmax计算预测到的标记,主要用于流式解码;所述注意力机制解码器采用transformer解码器来构建,由前端卷积层和多层重复的单向transformer编码层组成,最后一层为线性映射层,使编码状态映射表示的维度与所述词表空间的维度相同,并计算最终输出的概率;
模型在训练过程中,所述联结时序分类解码器解码器计算ctc损失函数,lctc;所述注意力机制解码器计算交叉熵损失函数,lce;将所述ctc损失函数和所述交叉熵损失函数进行加权求和作为识别系统的模型损失函数lfinal;
所述模型损失函数的具体形式为:
模型损失函数=λ*ctc损失函数 (1-λ)*交叉熵损失函数;
其中,
λ:设置参数,为0.1;
在流式推理过程中,以所述联结时序分类解码器作为主导,所述注意力机制解码器为辅助,所述联结时序分类解码器采用beamsearch搜索算法将编码状态生成n条流式候选声学序列和所述n条流式候选声学序列的ctc流式声学分数,由所述注意力机制解码器对所述n条流式候选声学序列进行重打分,根据每条流式候选声学序列的分数对n条流式候选声学序列重新排列,采用分数最高的流式候选声学序列作为最终的流式识别结果;
所述注意力机制解码器对所述n条流式候选声学序列进行重打分的具体方法为:
在每条流式候选序列前端扩增一个句子开始标记作为输入流式候选序列;
所述注意力机制解码器采用n条输入流式候选序列和所述n条流式候选序列对应的编码状态作为输入,预测包含结束标记不包含开始标记的流式目标候选序列,对流式目标候选序列每个位置上的概率进行求和,计算得到流式注意力分数,所述流式注意力分数作为对所述n条流式候选声学序列进行重打分的分数;
所述重打分的分数还包括:将所述流式注意力分数和所述ctc流式声学分数进行加权求和作为对所述n条流式候选声学序列进行重打分的分数;n的典型值是10,可以扩充值50或者100;
在非流式推理过程中,以所述注意力机制解码器作为主导,所述联结时序分类解码器作为辅助,所述注意力机制解码器采用beamsearch搜索算法在对解码过程中生成的得分最高的m条非流序列作为m条非流候选声学序列,由所述联结时序分类解码器对所述m条非流候选声学序列进行重打分,根据每条非流候选声学序列的分数对m条非流候选声学序列重新排列,采用分数最高的非流候选声学序列作为最终的非流识别结果;
所述注意力机制解码器采用beamsearch搜索算法在对解码过程中生成的得分最高的m条非流序列作为m条非流候选声学序列的具体过程为:
从开始标记开始进行预测,每一步都需要输入完整的编码状态和上一步预测得到的标记,然后计算预测标记的得分;重复这一过程,直到预测到结束标记停止;然后将所述注意力机制解码器解码过程中生成的得分最高的m条非流序列作为m条非流候选声学序列和m条非流候选声学序列的非流注意力分数,剔除掉开始标记和结束标记;
所述由所述联结时序分类解码器对所述m条非流候选声学序列进行重打分的具体方法为:将ctc非流声学分数与所述非流注意力分数进行加权求和得到所述联结时序分类解码器对所述m条非流候选声学序列进行重打分的分数;
m的典型值是10,可以扩充值50或者100;
如图2所示,流式编码器采用流式transformer模型结构来构建;其由前端模块和多层重复的单向transformer编码层组成。前端模块包含两层卷积,其卷积核为3x3,步长设置为2,卷积之间使用relu激活函数作为连接,最终经过线性映射层输出为模型维度。单向transformer编码层由多头单向自注意力机制和前馈网络组成,每个多头单向自注意力机制和前馈网络都使用了残差连接和后置层归一化来帮助模型进行收敛。单向自注意机制中引入了相对位置编码。编码器的计算过程如下:
卷积前端模块:
其中relu表示激活函数,conv2d表示2d卷积层,x表示输入语音特征,oconv1表示第一层卷积的输出,ofront表示卷积前端模块的输出。
多头单向自注意力机制:
其中,wiq,wiw,wiv和wo表示可以学习的参数矩阵,q,k,v三个分别表示查询矩阵,键矩阵和值矩阵,对于自注意力机制而言,q=k=v,如果这是第一层自注意力机制,则q=k=v=ofront,如果不是第一层,这q=k=v等于前一层前馈神经网络的输出。a表示可以学习的相对位置编码矩阵。这里也可以使用transformerxl中的相对位置编码的实现方式来代替。dk表示键值矩阵最后一维的维度。每个注意力头headi都是一个独立的注意力机制,将h个注意力输出拼接起来并通过线性映射得到最终的输出oslf
前馈神经网络的计算:
其中linear表示线性映射,glu表示激活函数;
注意力机制解码器采用基于transformer的解码器来构建,其包含前端词嵌入表示模块,正弦余弦位置编码,多层重复的transformer解码层和最终的线性映射组成,每层transformer解码层均有遮蔽的自注意力机制和编码解码注意力机制以及前馈网络构成。每个多头遮蔽的自注意力机制和编码解码注意力机制以及前馈网络都使用了残差连接和后置层归一化来帮助模型进行收敛其计算过程如下:
其中pe表示正余弦位置编码,oe表示带有位置编码的词嵌入表示。
遮蔽自注意力机制:
其中wiq,wiw,wiv和wo表示可以学习的参数矩阵,q,k,v三个分别表示查询矩阵,键矩阵和值矩阵,对于自注意力机制而言,q=k=v,如果这是第一层自注意力机制,则q=k=v=oe,否则,其等于前一层前馈神经网络的输出。遮蔽自注意力机制计算过程中,需要遮蔽掉每个向量未来的帧的信息,以迫使模型能够学习到语言之间的时序依赖关系。
编码解码注意力机制:
其中wiq,wiw,wiv和wo表示可以学习的参数矩阵,q,k,v三个分别表示查询矩阵,键矩阵和值矩阵,对于自注意力机制而言,q=k=v=oslf;
前馈网络计算:
其中linear表示线性映射,glu表示激活函数。
如图3所示,一种流式语音识别方法,包括:
(1)输入的音频流每达到一个固定长度就被计算为声学特征流输入到流式编码器中;
(2)流式的声学特征流经过流式编码器之后转变为流式编码状态输入到联结时序分类解码器中;
(3)联结时序分类解码器采用beamsearch搜索算法,对流式编码状态进行预测;
(4)重复上述(1)-(3),如果遇到句子结束,则流式编码状态结束,最终生成n条流式候选声学序列和所述n条流式候选声学序列的ctc流式声学分数;
(5)注意力机制解码器对所述n条流式候选声学序列进行重打分,在每条流式候选序列前端扩增一个句子开始标记作为输入流式候选序列;所述注意力机制解码器采用n条输入流式候选序列和所述n条流式候选序列对应的编码状态作为输入,预测包含结束标记不包含开始标记的流式目标候选序列,对流式目标候选序列每个位置上的概率进行求和,计算得到流式注意力分数,所述流式注意力分数作为对所述n条流式候选声学序列进行重打分的分数;
或者将所述流式注意力分数和所述ctc流式声学分数进行加权求和作为对所述n条流式候选声学序列进行重打分的分数;
(6)据每条流式候选声学序列的分数对n条流式候选声学序列重新排列,采用分数最高的流式候选声学序列作为最终的流式识别结果。通过提高流式候选声学序列的数量n来提升流式语音识别的表现,n的典型值是10,参数设置范围:10≤n≤100。
(7)所述步骤(4)和步骤(5)为逐段进行,每识别出固定几个字,就对目前的流式候选声学序列进行一个重新排序,可以依赖排序结果对流式候选声学序列进行剪枝操作,以提高后续解码效率。
如图4所示,一种非流式语音识别方法,包括:
(1)音频输入结束后,对整段音频提取特征,并输入流式编码器中进行编码;
(2)注意力机制解码器依赖流式编码器的全部输出和起始标记作为输入,从开始标记开始进行预测,每一步都需要输入完整的编码状态和上一步预测得到的标记,然后计算预测标记的得分;
(3)重复步骤(2),直到预测到结束标记停止;然后将所述注意力机制解码器解码过程中生成的得分最高的m条非流序列作为m条非流候选声学序列和m条非流候选声学序列的非流注意力分数,剔除掉开始标记和结束标记;
(4)使用联结时序分类解码器对全部m条非流候选声学序列进行重打分,使用动态规划算法,计算在输入完整语音输入条件下预测得到目标非流候选声学序列的概率作为ctc非流声学分数;
(5)将ctc非流声学分数与所述非流注意力分数进行加权求和得到所述联结时序分类解码器对所述m条非流候选声学序列进行重打分的分数,并重新排序;
(6)最终输出所述m条非流候选声学序列进行重打分的分数最高的分支作为识别结果。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
本文用于企业家、创业者技术爱好者查询,结果仅供参考。