语音识别模型训练方法、系统、移动终端及存储介质与流程

文档序号:20911806发布日期:2020-05-29 13:05阅读:239来源:国知局
语音识别模型训练方法、系统、移动终端及存储介质与流程

本发明属于语音识别技术领域,尤其涉及一种语音识别模型训练方法、系统、移动终端及存储介质。



背景技术:

语音识别研究已有几十年的历史,语音识别技术主要包括声学模型建模、语言模型建模、发音词典构建以及解码四个部分,每一部分都可以成为一个单独的研究方向,并且相对于图像和文本,语音数据的采集和标注难度也大大提升,因此搭建一个完整的语音识别模型训练系统是个耗时极长、难度极高的工作,这极大阻碍了语音识别技术的发展。随着人工智能技术尤其是深度学习的研究和发展,一些基于端到端的语音识别算法被提出来,相较于传统语音识别模型训练方法,端到端语音识别模型训练方法简化了语音识别的流程,将大量工作交给了深度神经网络去学习和推理,因此在近些年得到了广泛关注。

现有的语音识别模型训练过程中,首先用隐马尔科夫模型对声学建模单元进行建模,例如音素、音节等,然后用高斯混合模型对每一帧语音和隐马尔科夫模型的状态之间的对应关系进行建模,得到音素序列,通过发音词典将音素序列组合成词,最后通过语言模型将词组合成句子,但现有的语音识别模型训练过程效率低下且耗时较长。



技术实现要素:

本发明实施例的目的在于提供一种语音识别模型训练方法、系统、移动终端及存储介质,旨在解决现有的语音识别模型训练方法训练效率低下且耗时长的问题。

本发明实施例是这样实现的,一种语音识别模型训练方法,所述方法包括:

获取样本语音、与所述样本语音对应的样本文本及文本语料,并根据所述样本文本和所述文本语料构建文本字典;

对所述样本语音进行特征提取,得到语谱图特征,并对所述语谱图特征进行长度排序,根据排序结果对所述语谱图特征进行长度补齐;

将所述语谱图特征输入语音识别模型进行向量计算,以得到概率向量,并根据所述概率向量和所述文本字典进行损失计算,以得到模型总损失;

将所述模型总损失在所述语音识别模型中进行传播,直至所述语音识别模型收敛,根据所述文本语料进行语言模型的训练,并将训练后的所述语言模型集成至所述语音识别模型。

更进一步的,所述对所述样本语音进行特征提取的步骤包括:

对所述样本语音进行预加重处理,并对加重后的所述样本语音进行分帧处理,得到多帧语音信号;

对每帧所述语音信号进行加窗处理,并对加窗后的所述语音信号进行快速傅里叶变换,得到所述语谱图特征。

更进一步的,所述对所述语谱图特征进行长度排序,根据排序结果对所述语谱图特征进行长度补齐的步骤包括:

将所述语谱图特征根据时间轴长度进行排序,并所述语谱图特征进行分组;

在每组所述语谱图特征中,选取最长时间的所述语谱图特征设置为当前组的目标长度;

将所述当前组中所有所述语谱图特征沿时间轴补0补齐至所述目标长度。

更进一步的,所述将所述语谱图特征输入语音识别模型进行向量计算的步骤包括:

将所述语谱图特征输入所述语音识别模型中的cnn网络,并控制所述cnn网络对所述语谱图特征进行卷积、池化和非线性变换,得到特征向量;

将所述特征向量输入全连接网络,并根据softmax函数对所述全连接网络的输出进行概率计算,得到所述概率向量。

更进一步的,所述根据所述样本文本和所述文本语料构建文本字典的步骤包括:

对本地预存储的训练文本进行遍历,将所有不重复的字符加入到所述文本字典中,以构建字符集,且每个字符均用对应唯一的id表示;

将所述样本文本和所述文本语料中的字符根据所述字符集替换为对应的id;

将所述文本语料中未在所述字符集中的字符用第一标识表示;

将所述第一标识加入到所述字符集中,并用当前所述字符集最大id加1的数字表示;

在所述字符集中添加静音分隔符,以描述语音中字符之间短暂的停顿,并用当前所述字符集最大id加1的数字表示;

将所述字符集中所有字符组成所述文本字典,并对所述文本字典进行独热编码,以使所述文本字典中每个字符均用一个等于所述字符集大小维度的向量表示。

更进一步的,所述根据所述概率向量和所述文本字典进行损失计算的步骤包括:

根据所述概率向量查询所述文本字典中对应的目标独热编码;

将所有时间步输出的所述概率向量和对应的所述目标独热编码经过标签平滑后的向量求ctc损失函数,并求和以得到所述模型总损失。

更进一步的,所述根据所述样本文本和所述文本语料构建文本字典的步骤之前,所述方法还包括:

删除所述样本文本中的特殊字符,以保留文字、数字、逗号、句号和问号;

将所述样本文本中的感叹号转换为句号,将全角转化为半角,并将英文形式的标点符号转换为对应的中文形式。

本发明实施例的另一目的在于提供一种语音识别模型训练系统,所述系统包括:

字典构建模块,用于获取样本语音、与所述样本语音对应的样本文本及文本语料,并根据所述样本文本和所述文本语料构建文本字典;

特征提取模块,用于对所述样本语音进行特征提取,得到语谱图特征,并对所述语谱图特征进行长度排序,根据排序结果对所述语谱图特征进行长度补齐;

损失计算模块,用于将所述语谱图特征输入语音识别模型进行向量计算,以得到概率向量,并根据所述概率向量和所述文本字典进行损失计算,以得到模型总损失;

模型训练模块,用于将所述模型总损失在所述语音识别模型中进行传播,直至所述语音识别模型收敛,根据所述文本语料进行语言模型的训练,并将训练后的所述语言模型集成至所述语音识别模型。

本发明实施例的另一目的在于提供一种移动终端,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述移动终端执行上述的语音识别模型训练方法。

本发明实施例的另一目的在于提供一种存储介质,其存储有上述的移动终端中所使用的计算机程序,该计算机程序被处理器执行时实现上述的语音识别模型训练方法的步骤。

本发明实施例,无需进行发音词典的构建,降低了人力成本和模型训练的时间,提高了语音识别模型的训练效率,通过采用端到端的架构方式进行语音识别模型的训练,使得语音识别模型中所有参数同时进行更新,提高了模型训练效率和后续语音识别的效率。

附图说明

图1是本发明第一实施例提供的语音识别模型训练方法的流程图;

图2是本发明第二实施例提供的语音识别模型训练方法的流程图;

图3是本发明第三实施例提供的语音识别模型训练系统的结构示意图;

图4是本发明第四实施例提供的移动终端的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一

请参阅图1,是本发明第一实施例提供的语音识别模型训练方法的流程图,包括步骤:

步骤s10,获取样本语音、与所述样本语音对应的样本文本及文本语料,并根据所述样本文本和所述文本语料构建文本字典;

其中,该样本语音为语音识别模型种待识别的语种,例如粤语或闽南语等语种,该样本文本中采用普通话的表达方式,且该样本语音与样本文本之间采用一一对应的关系;

具体的,通过该样本语音和样本文本的获取,以对应构建数据集,并随机选取该数据集中10%作为验证集,20%作为测试集;

优选的,该步骤中,所述根据所述样本文本和所述文本语料构建文本字典的步骤之前,所述方法还包括:

删除所述样本文本中的特殊字符,以保留文字、数字、逗号、句号和问号;

将所述样本文本中的感叹号转换为句号,将全角转化为半角,并将英文形式的标点符号转换为对应的中文形式;

步骤s20,对所述样本语音进行特征提取,得到语谱图特征,并对所述语谱图特征进行长度排序,根据排序结果对所述语谱图特征进行长度补齐;

其中,通过对所述语谱图特征进行长度补齐的设计,能有效的将同一组中的语音长度设置相同为相同值,保障了该样本语音数据的批量训练,提高了语音训练效率;

优选的,该步骤中,对所述样本语音进行特征提取的步骤之前,所述方法还包括:对所述样本语音进行加噪、加混响和速度扰动处理,进而有效的对该样本语音数据起到了扩充的效果,且提高了鲁棒性;

步骤s30,将所述语谱图特征输入语音识别模型进行向量计算,以得到概率向量,并根据所述概率向量和所述文本字典进行损失计算,以得到模型总损失;

其中,该模型总损失可以采用ctc损失函数的方式进行计算;

具体的,ctc损失函数是以最大化所有输出候选的概率总和为目标函数来更新参数的,相对于交叉熵损失函数,ctc损失函数有三个优点:第一,不要求输入和输出进行严格对齐,从而可以解决输入长度比输出长度大的问题,第二,可以区分连续两个相同字符是否应该合并的情况,第三,可以允许有更粗粒度的建模单元,加速解码速度;

步骤s40,将所述模型总损失在所述语音识别模型中进行传播,直至所述语音识别模型收敛;

其中,该模型总损失可以采用随机梯度下降法进行后向传播;

步骤s50,根据所述文本语料进行语言模型的训练,并将训练后的所述语言模型集成至所述语音识别模型;

其中,通过将该语言模型集成至所述语音识别模型的设计,有效的提高了语音识别模型的识别效果;

本实施例,无需进行发音词典的构建,降低了人力成本和模型训练的时间,提高了语音识别模型的训练效率,通过采用端到端的架构方式进行语音识别模型的训练,使得语音识别模型中所有参数同时进行更新,提高了模型训练效率和后续语音识别的效率,通过对样本语音进行加噪、加混响、速度扰动,不仅扩充了数据集,同时使得模型能适应更多复杂的环境以及不同的口音。

实施例二

请参阅图2,是本发明第二实施例提供的语音识别模型训练方法的流程图,包括步骤:

步骤s11,获取样本语音、与所述样本语音对应的样本文本及文本语料,并根据所述样本文本和所述文本语料构建文本字典;

其中,所述根据所述样本文本和所述文本语料构建文本字典的步骤包括:

对本地预存储的训练文本进行遍历,将所有不重复的字符加入到所述文本字典中,以构建字符集,且每个字符均用对应唯一的id表示;

将所述样本文本和所述文本语料中的字符根据所述字符集替换为对应的id;

将所述文本语料中未在所述字符集中的字符用第一标识表示;

将所述第一标识加入到所述字符集中,并用当前所述字符集最大id加1的数字表示;

在所述字符集中添加静音分隔符,以描述语音中字符之间短暂的停顿,并用当前所述字符集最大id加1的数字表示;

将所述字符集中所有字符组成所述文本字典,并对所述文本字典进行独热编码,以使所述文本字典中每个字符均用一个等于所述字符集大小维度的向量表示;

其中,为了防止模型对训练数据过度自信(overconfidence),采用标签平滑(labelsmoothing)策略,即对于样本文本中的每一个字,设定一个接近于0的非负小数ε,独热编码中对应1的元素改用1-ε来表示,其他元素则通过ε的均匀分布来表示;

具体的,该步骤中,在字符集中添加一个静音分隔符“-”以描述人在说话时字符之间短暂的停顿,用当前字符集最大id加1的数字表示,由于语音特征相对于汉字的粒度是更细的,即多帧特征才对应一个汉字,而模型输出的是每一帧对应的字符,因此,会存在连续输出多个相同字符的情况,但是作为标签的样本文本却不存在,因此,需要对输出候选进行后处理,将相邻间相同的汉字合并成一个,进而使得可能将确实是两个连续相同的字符合并,例如“分分合合”,如果不在两个“分”和两个“合”之间输出“-”的时,后处理就会将两个“分”和两个“合”合并成“分合”。

请继续参阅图2,步骤s20,对所述样本语音进行预加重处理,并对加重后的所述样本语音进行分帧处理,得到多帧语音信号;

其中,通过对所述样本语音进行预加重处理的设计,以达到平衡频谱的作用,进而增大了所述样本语音中高频部分的幅度;

优选的,在预加重之后,需要将信号分成短时帧。做这一步的原因是:信号中的频率会随时间变化(不稳定的),一些信号处理算法(比如傅里叶变换)通常希望信号是稳定,也就是说对整个信号进行处理是没有意义的,因为信号的频率轮廓会随着时间的推移而丢失,为了避免这种情况,需要对信号进行分帧处理,一般设置帧长取20ms至40ms,相邻帧之间50%(+/-10%)的覆盖;

步骤s21,对每帧所述语音信号进行加窗处理,并对加窗后的所述语音信号进行快速傅里叶变换,得到所述语谱图特征;

其中,在分帧之后,通常需要对每帧的信号进行加窗处理,目的是让帧两端平滑地衰减,以降低后续傅里叶变换后旁瓣的强度,取得更高质量的频谱;

步骤s31,将所述语谱图特征根据时间轴长度进行排序,并所述语谱图特征进行分组;

步骤s41,在每组所述语谱图特征中,选取最长时间的所述语谱图特征设置为当前组的目标长度,并将所述当前组中所有所述语谱图特征沿时间轴补0补齐至所述目标长度;

其中,将语谱图特征根据时间轴长度进行排序,并进行分组,对于每一组特征,选取最长时间作为该组特征的长度,其余的通过沿时间轴补0补齐到同一长度,通过步骤s41以达到以下优点:第一是同一组的语音长度相同,因此可以进行批量训练,加速训练过程,第二是减轻了将所有语音长度设为同一个值造成的有些短语音补0过多的负面影响,第三,如果不进行补0进行对齐,只能按条进行训练,训练速度过慢;

步骤s51,将所述语谱图特征输入所述语音识别模型中的cnn网络,并控制所述cnn网络对所述语谱图特征进行卷积、池化和非线性变换,得到特征向量;

其中,该cnn网络为九层结构,该cnn网络中的卷积和池化操作是沿频率方向进行的,以使可以捕获细粒度的局部特征,池化操作可以减小同一说话人和不同说话人在说同一个字时的谱变化,通过采用多层的cnn网络结构可以捕获语音特征间的前后时序关系;

步骤s61,将所述特征向量输入全连接网络,并根据softmax函数对所述全连接网络的输出进行概率计算,得到所述概率向量;

步骤s71,根据所述概率向量查询所述文本字典中对应的目标独热编码;

步骤s81,将所有时间步输出的所述概率向量和对应的所述目标独热编码经过标签平滑后的向量求ctc损失函数,并求和以得到所述模型总损失;

其中,ctc损失函数是以最大化所有输出候选的概率总和为目标函数来更新参数的,相对于交叉熵损失函数,ctc损失函数有三个优点:第一,不要求输入和输出进行严格对齐,从而可以解决输入长度比输出长度大的问题,第二,可以区分连续两个相同字符是否应该合并的情况,第三,可以允许有更粗粒度的建模单元,加速解码速度;

步骤s91,将所述模型总损失在所述语音识别模型中进行传播,直至所述语音识别模型收敛;

步骤s101,根据所述文本语料进行语言模型的训练,并将训练后的所述语言模型集成至所述语音识别模型;

其中,该语音模型为lstm语音模型;

优选的,步骤s101之后,所述方法还包括:

将测试语音进行特征提取后输入至所述语音识别模型中,并控制所述语音识别模型采用前缀集束搜索的方式进行解码搜索,以得到识别结果;

其中,在所述语音识别模型进行解码搜索时,有三种搜索方式,如果采用贪婪搜索,则每次只选择概率最大的字符作为输出字符,这可能造成最终的字符序列的得分并不是最高,也即输出的字符序列并不是最优的识别结果,而如果采用常规的集束搜索(beamsearch),因为模型会输出多条转写的候选,只要“-”在不同的位置或者“-”出现的次数不同,模型都认为是不同的输出候选,但经过后处理移除掉“-”和重复的字符后,候选结果有可能是一样的,减少了搜索结果的多样性,而采用前缀集束搜索(prefixbeamsearch)的方式就可以避免这个弊端,并且前缀树集束搜索可以确保找到全局最优解。前缀集束搜索在搜索过程中会合并相同的前缀,进而能保证每一条候选尽量不同。其中beam的值选择200。因为模型后处理会将相同的连续字符进行合并,可能导致最终转写结果字符数过少,因此,在计算最终的得分时,需要将字符个数也作为得分的一部分,即字符数越多,该项得分越高,因此,对每次输出的概率向量,和语言模型的概率值以及字符数进行加权求和;

优选的,所述语音识别模型中采用的得分计算公式为:

q(y)=log(punigru(y|x))+αlog(plstmlm(y|x))+βwc(y);

其中第一项为cnn输出的字符概率,第二项为lstm语言模型得到的概率,第三项为当前时间步的转写字符数,为了防止概率值下溢,所有概率均取对数。权重系数α和β通过模型在验证集上调优得到,并通过计算所有字符序列的概率乘积,根据需要选择其中概率乘积最大的字符序列作为最终的识别结果;

此外,本实施例中,在测试时采用前缀集束搜索的方式,首先可以避免贪心搜索每次只取概率最大的字符作为输出字符所带来的弊端,其次可以避免集束搜索导致的候选重复问题,同时也能和单独训练的语言模型进行集成,而且可以确保找到全局最优解,使得模型的识别性能更好;

本实施例中,无需进行发音词典的构建,降低了人力成本和模型训练的时间,提高了语音识别模型的训练效率,通过采用端到端的架构方式进行语音识别模型的训练,使得语音识别模型中所有参数同时进行更新,提高了模型训练效率和后续语音识别的效率。

实施例三

请参阅图3,是本发明第三实施例提供的语音识别模型训练系统100的结构示意图,包括:字典构建模块10、特征提取模块11、损失计算模块12和模型训练模块13,其中:

字典构建模块10,用于获取样本语音、与所述样本语音对应的样本文本及文本语料,并根据所述样本文本和所述文本语料构建文本字典。

其中,所述字典构建模块10还用于:对本地预存储的训练文本进行遍历,将所有不重复的字符加入到所述文本字典中,以构建字符集,且每个字符均用对应唯一的id表示;

将所述样本文本和所述文本语料中的字符根据所述字符集替换为对应的id;

将所述文本语料中未在所述字符集中的字符用第一标识表示;

将所述第一标识加入到所述字符集中,并用当前所述字符集最大id加1的数字表示;

在所述字符集中添加静音分隔符,以描述语音中字符之间短暂的停顿,并用当前所述字符集最大id加1的数字表示;

将所述字符集中所有字符组成所述文本字典,并对所述文本字典进行独热编码,以使所述文本字典中每个字符均用一个等于所述字符集大小维度的向量表示。

优选的,所述字典构建模块10还用于:删除所述样本文本中的特殊字符,以保留文字、数字、逗号、句号和问号;

将所述样本文本中的感叹号转换为句号,将全角转化为半角,并将英文形式的标点符号转换为对应的中文形式。

特征提取模块11,用于对所述样本语音进行特征提取,得到语谱图特征,并对所述语谱图特征进行长度排序,根据排序结果对所述语谱图特征进行长度补齐。

其中,所述特征提取模块11还用于:对所述样本语音进行预加重处理,并对加重后的所述样本语音进行分帧处理,得到多帧语音信号;

对每帧所述语音信号进行加窗处理,并对加窗后的所述语音信号进行快速傅里叶变换,得到所述语谱图特征。

优选的,所述特征提取模块11还用于:将所述语谱图特征根据时间轴长度进行排序,并所述语谱图特征进行分组;

在每组所述语谱图特征中,选取最长时间的所述语谱图特征设置为当前组的目标长度;

将所述当前组中所有所述语谱图特征沿时间轴补0补齐至所述目标长度。

损失计算模块12,用于将所述语谱图特征输入语音识别模型进行向量计算,以得到概率向量,并根据所述概率向量和所述文本字典进行损失计算,以得到模型总损失。

其中,所述损失计算模块12还用于:将所述语谱图特征输入所述语音识别模型中的cnn网络,并控制所述cnn网络对所述语谱图特征进行卷积、池化和非线性变换,得到特征向量;

将所述特征向量输入全连接网络,并根据softmax函数对所述全连接网络的输出进行概率计算,得到所述概率向量。

优选的,所述损失计算模块12还用于:根据所述概率向量查询所述文本字典中对应的目标独热编码;

将所有时间步输出的所述概率向量和对应的所述目标独热编码经过标签平滑后的向量求ctc损失函数,并求和以得到所述模型总损失。

模型训练模块13,用于将所述模型总损失在所述语音识别模型中进行传播,直至所述语音识别模型收敛,根据所述文本语料进行语言模型的训练,并将训练后的所述语言模型集成至所述语音识别模型。

本实施例,无需进行发音词典的构建,降低了人力成本和模型训练的时间,提高了语音识别模型的训练效率,通过采用端到端的架构方式进行语音识别模型的训练,使得语音识别模型中所有参数同时进行更新,提高了模型训练效率和后续语音识别的效率。

实施例四

请参阅图4,是本发明第四实施例提供的移动终端101,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述移动终端101执行上述的语音识别模型训练方法。

本实施例还提供了一种存储介质,其上存储有上述移动终端101中所使用的计算机程序,该程序在执行时,包括如下步骤:

获取样本语音、与所述样本语音对应的样本文本及文本语料,并根据所述样本文本和所述文本语料构建文本字典;

对所述样本语音进行特征提取,得到语谱图特征,并对所述语谱图特征进行长度排序,根据排序结果对所述语谱图特征进行长度补齐;

将所述语谱图特征输入语音识别模型进行向量计算,以得到概率向量,并根据所述概率向量和所述文本字典进行损失计算,以得到模型总损失;

将所述模型总损失在所述语音识别模型中进行传播,直至所述语音识别模型收敛,根据所述文本语料进行语言模型的训练,并将训练后的所述语言模型集成至所述语音识别模型。所述的存储介质,如:rom/ram、磁碟、光盘等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元或模块完成,即将存储装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施方式中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。

本领域技术人员可以理解,图3中示出的组成结构并不构成对本发明的语音识别模型训练系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,而图1-2中的语音识别模型训练方法亦采用图3中所示的更多或更少的部件,或者组合某些部件,或者不同的部件布置来实现。本发明所称的单元、模块等是指一种能够被所述目标语音识别模型训练系统中的处理器(图未示)所执行并功能够完成特定功能的一系列计算机程序,其均可存储于所述目标语音识别模型训练系统的存储设备(图未示)内。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1