基于预训练特征表示的语音识别方法、装置及电子设备与流程

文档序号:33528416发布日期:2023-03-22 07:34阅读:43来源:国知局
1.本发明属于语音识别
技术领域
:,具体涉及一种基于预训练特征表示的语音识别方法、装置及电子设备。
背景技术
::2.语音识别技术旨在实现从语音的音频信号到语音文字的转换问题。以语音识别结果为基础,融合自然语言理解、多模态融合等技术,以实现人机交互的目的。当前语音识别系统通常采用有监督训练方案,即基于人工对采集的特定音频数据进行标注,根据原始音频数据及特征,以文字标注为最终目标,训练得到语音识别的分类器。目前常用的语音识别技术分为两大类。一类基于隐马尔科夫深度神经网络(hmm-dnn)的混合框架,分为声学模型和语言模型两大模块,并采用解码算法在识别过程中通过维特比搜索,得到最优序列并生成解码输出。另一类语音识别算法基于端到端的神经网络设计,通过连接时序分类算法准则设计优化目标,使得神经网络直接根据原始音频特征直接输出识别文字结果。得益于深度学习的发展,终于让语音识别能够在非严格可控的环境下也能准确的识别。尽管当前取得的成绩是比较突出的,但应用过程当中也有一些不足,如强烈的噪声、强大的回声、多种口音、多样化语言、过度拥挤及大词的影响等,都可能使得语音识别的效果降低。3.目前,现有的语音识别方法中至少存在如下问题:4.对于低资源语言对,人工标注成本通常较高,耗费时间较长,且需要对标注质量进行检查,不适合超大规模语音识别的训练;基于mfcc(梅尔倒谱系数)、fbank(滤波器组特征)等特征的传统语音识别系统忽略了语音相位信息,且基于简化后的滤波器理论提取,对复杂语音特性建模能力仍有一定缺陷。同时基于端到端的语音识别模型,在生成文字的时候缺乏语言模型的指导,有可能会生成未知的单词,影响语音识别的准确率。技术实现要素:5.鉴于上述的分析,本发明旨在公开了一种基于预训练特征表示的语音识别方法、装置及电子设备,解决低资源语言语音识别在各业务领域和应用场景中的数据依赖和语音表征问题。6.本发明一方面公开了一种基于预训练特征表示的语音识别方法,包括:7.训练样本集构建步骤;构建的训练样本集包括第一、第二和第三数据集;其中,第一数据集为无标注的语音数据集,第二数据集为有标注的语音数据集,第三数据集为文本数据集;8.模型训练步骤;利用第一数据集进行语音模型的第一阶段预训练,利用第二数据集对预训练后的语音模型进行第二阶段训练;利用第三数据集训练语言模型;9.语音识别步骤;将按句切分后的语音数据输入到训练后的语音模型中,根据束搜索算法进行搜索预测,得到预测概率最高的前n个文本识别结果候选以及对应的预测概率;将前n个候选文本识别结果输入到训练后的语言模型中分别进行预测得到各自的预测概率,综合语音模型和语言模型输出的预测概率,从n个候选文本识别结果中选出一个候选文本识别结果作为语音识别的最终输出。10.本发明另一方面公开了一种基于如上所述的基于预训练特征表示的语音识别方法的语音识别装置,包括:语音模型、语言模型和识别输出模块;11.所述语音模型,用于对输入的按句切分后的语音数据,根据束搜索算法进行搜索预测,得到预测概率最高的前n个文本识别结果候选以及对应的预测概率;12.所述语言模型,用于对输入的前n个文本识别结果候选分别进行预测识别,得到对应的预测概率;13.所述识别输出模块,用于对所述语音模型的预测概率和所述语言模型的预测概率求和,得到n个文本识别结果中概率最高的识别结果作为语音识别的最终输出。14.本发明另一方面还公开了一种电子设备,所述电子设备至少包括存储器和处理器;其中,15.所述处理器用于执行如上所述的基于预训练特征表示的语音识别方法;16.所述存储器用于存储处理器执行操作所需的程序。17.本发明另一方面还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上所述的基于预训练特征表示的语音识别方法。18.本发明另一方面还公开了一种计算机程序,所述计算机程序在电子设备上运行时,执行如上所述的基于预训练特征表示的语音识别方法。19.本发明可实现以下有益效果之一:20.本发明公开的基于预训练特征表示的语音识别方法和装置,解决了低资源语言语音识别在各业务领域和应用场景中的数据依赖和语音表征问题;利用大量的无标注音频数据来提高语音的表征能力,降低人工标注成本;并利用基于字符级的语言模型降低语音识别的错误率。21.本发明通过获取待识别的目标语音信号,通过预训练模型进行特征提取,改进语音识别中的特征表示,该预训练模式是通过在大量无标注语音数据上进行预训练得到的,充分利用了无标注的语音信息。通过在少量标注数据上对语音识别模型进行微调,进一步增强了对该语种分类的适应性。但由于每一帧的输出相对独立,容易产生错误词的输出。因此本发明采用基于字符级的语言模型对语音识别结果进行优化,该字符级语言模型充分利用了无标注的文本信息,可以改进语音识别的文本输出,进而提升语音识别系统的性能。尤其是针对小语种语言来说,这种方法可以充分利用未标注信息来改进语音识别的效果。附图说明22.附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。23.图1为本发明实施例一中的基于预训练特征表示的语音识别方法流程图;24.图2为本发明实施例一中的语音编码模型结构图;25.图3为本发明实施例一中的语言模型结构图;26.图4为本发明实施例一中的语音识别过程示意图;27.图5为本发明实施例三中的电子设备示意图。具体实施方式28.下面结合附图来具体描述本发明的优选实施例,其中,附图构成本技术一部分,并与本发明的实施例一起用于阐释本发明的原理。29.实施例一30.本发明的一个实施例公开一种基于预训练特征表示的语音识别方法,如图1所示,包括以下步骤:31.步骤s1、训练样本集构建步骤;构建的训练样本集包括第一、第二和第三数据集;其中,第一数据集为无标注的语音数据集,第二数据集为有标注的语音数据集,第三数据集为文本数据集;32.步骤s2、模型训练步骤;利用第一数据集进行语音模型的第一阶段预训练,利用第二数据集对预训练后的语音模型进行第二阶段训练;利用第三数据集训练语言模型;33.步骤s3、语音识别步骤;将按句切分后的语音数据输入到训练后的语音模型中,根据束搜索算法进行搜索预测,得到预测概率最高的前n个文本识别结果候选以及对应的预测概率;将n个候选文本识别结果输入到训练后的语言模型中分别进行预测得到各自的预测概率,综合语音模型和语言模型输出的预测概率,从n个候选文本识别结果中选出一个识别结果作为语音识别的最终输出。34.具体的,在步骤s1的训练样本集构建中,35.第一数据集,为将获取单语语音数据进行预处理得到训练样本数据集;所述第一数据集中的训练样本为无标注的、单句语音的音频样本;36.第二数据集,为在第一数据集中随机选取的部分语音数据,进行人工本文标注后,形成的数据集;37.在此我们以越南语为例。38.在构建第一数据集时,首先通过视频网站上获取2000小时无文本标签的越语语音信号,并将其语音经滤波、采样,形成16k采样率的语音数据。39.其次,对获取的语音数据进行预处理,包括语音预加重、分帧等,通过人工将预处理后的语音数据按句切分,并将语音以wav文件格式存储到存储器;使用全部语音文件构建第一数据集,每个训练样本仅包括单句语音音频文件。40.在构建第二数据集时,在第一数据集中随机选取约50小时的语音数据,人工进行文本标注,标注结果存入json文件,组织语音和标签文件,形成第二数据集,每个训练样本包括单句语音音频文件、对应的文本标签。41.第三数据集,为将获取文本数据进行预处理得到训练样本数据集;42.在构建第三数据集时,首先通过新闻网站爬取约10000篇越南语文章,并将这些文本数据经清洗过滤形成规范的文本文件;43.然后对这些文本文件进行预处理,包括大小写转换、限制过长的句子等操作。通过人工预处理后,将这些文本数据按句子切分,并将这些文本数据存储到存储器中。使用全部的文本数据来构建语言模型,每个训练样本仅包含单个句子。44.具体的,在步骤s2中,训练的模型包括语音模型和语言模型;45.所述语音模型为基于预训练的语音编码模型。46.更具体的,语音编码模型结构如图2所示,包括1个卷积模块、1个量化模块、1个上下文提取模块和1个输出模块;47.其中,卷积模块,用于提取输入的语音数据的语音特征;包括7个一维卷积层(conv1dlayer)和激活函数层(gelu),其中卷积核宽度为(10,3,3,3,3,2,2),步长为(5,2,2,2,2,2,2),通道数为512,在音频采样率为16k的情况下,每20ms语音得到一个512维的向量表示。卷积模块的输出其中l=t/20ms,t为输入语音的长度。48.量化模块与卷积模块链接,用于对卷积模块输出的语音特征进行向量空间分解,并对分解得到的低维向量空间分别做量化;即,量化模块把原来的向量空间分解为若干个低维向量空间的笛卡尔积,并对分解得到的低维向量空间分别做量化,这样每个向量就能由多个低维空间的量化码组合表示。49.在量化模块中,乘积量化操作通过将无限的特征表达空间坍缩成有限的离散空间,让特征的鲁棒性更强,不会受少量扰动的影响。这个聚类过程也是一个特征提取的过程,让特征的表征能力更强了。50.上下文提取模块与量化模块连接,用于提取语音特征的上下文关系信息;由基于自注意力神经网络构成,包括n层隐含层;每层隐含层均采用transformer的encoder结构。记为:51.h1=hiddenlayer1(c)52.h2=hiddenlayer2(h1)53.……54.hn-1=hiddenlayern-1(hn-2)55.hn=hiddenlayern(hn-1)56.c∈r1×t×f,hi∈r1×t×f57.其中,c为卷积模块的输出,h为每层神经网络输出的隐层特征,hi为第i层神经网络输出的隐层特征,n为深层神经网络的总层数,t为输入语音的长度,f为隐层特征的维度,r1×t×f表示特征维度为(1,t,f)的实数集;其中,每层隐含层均采用transformer的encoder结构。58.输出模块与上下文提取模块连接,用于将上下文关系提取模块中的最后层隐含层进行堆叠进行输出;所述输出信息作为下游语音识别分类器和所有辅助任务分类器的输入,使各个分类器能够得到更多维度的可用信息,记为:59.y={hn-d+1,…,hn-1,hn},y∈rd×t×f60.其中,y为编码器的多层特征输出,输出特征由d个隐含层的输出堆叠组成,d为深层神经网络的层数,n为深层神经网络的总层数,h为每层神经网络输出的隐层特征,t为输入语音的长度,f为隐层特征的维度,r为实数集,rd×t×f表示特征维度为(d,t,f)。61.具体的,在本实施例中,所述语音模型的训练过程包括第一阶段预训练和第二阶段训练:其中,62.在第一阶段预训练中利用第一数据集进行训练;63.在训练过程中,通过自监督学习的方式进行训练,提取出第一数据集中的语音数据的共性特征;从而使语音编码模型能够学习到更好的语音特征表示,有利于提高模型的泛化能力和下游任务的准确率。64.具体的,预训练为循环迭代训练,单次循环迭代训练过程中执行步骤如下:65.1)在第一阶段预训练数据集内,选取一组无标注的、单句语音的音频样本输入到语音编码模型中,由语音编码模型的卷积模块提取训练样本的隐层特征;66.2)将卷积模块通过卷积得到的特征向量z,进行乘积量化操作,获取更好的语音表征向量q;67.3)随机对步骤2)得到的语音表征向量q进行部分掩码,再输入到上下文关系提取模块并输出;68.4)构建对比学习损失,其中负样本为输出模块的输出中每个添加过掩码的位置生成的上下文特征,正样本为上下文关系提取模块得到的量化隐层特征中相同位置的语音表征向量q;69.5)通过反向传播进行参数更新。70.在第二阶段训练利用第二数据集进行训练。在训练中,基于预训练后的语音编码模型和第二阶段训练数据集d,采用循环迭代的训练方式来训练语音识别模型,直至网络收敛;在单次循环迭代训练过程中执行以下操作:71.1)语音识别分类器的损失函数使用连接时序分类损失ctcloss;72.ctc的损失函数定义:[0073][0074]其中,p(y|x)是基于输入语音生成对应文本的条件概率;其中,x为输入的语音,y为对应的文本数据;[0075]2)从第二阶段训练数据集中随机选取一组训练样本(x,y);[0076]3)将该训练样本输入到语音识别模型中,输出语音识别的结果;[0077]4)利用语音识别模型的损失函数对相关参数进行参数调整。[0078]所述语言模型为字符级语言模型。字符级语言模型的预测同时关注词项内部的包括前缀、后缀以及词根在内的结构和词项自身的整体特征。词项和字符表达了不同层次的信息,字符级语言模型通过对字符序列编码之后提升了信息表达的层次,使其具有了词项信息的内涵。语言学上,可以通过词法规则规约词之间顺序,而字符之间的组合不存在类似规则。从字符序列到序列特征向量有一个编码过程。根据词项结构(即词根、前缀及后缀等)的层次特征,引入了擅长于抽取局部特征的卷积神经网络对字符序列进行编码,进而获得字符编码后的特征向量。[0079]具体的,字符级语言模型包括输入层、卷积和嵌入层、基于lstm的循环神经网络和输出层;[0080]其中,[0081]输入层用于将输入的词项wt传入到基于lstm的循环神经网络,将与词项wt对应的字符序列{chart1,chart2,…,chartm}传入到卷积和嵌入层;[0082]具体的,输入的信息是一个词项序列{w1,w2,…,wn};第t个步骤的输入单词用wt表示。可以使用预训练的glove词嵌入,将句子中每个词转换为词向量。[0083]每个词项都有一个对应的字符序列,例如wt对应着字符序列{ct1,ct2,…,ctm},其中n和m分别表示模型接受的词项序列和字符序列的长度,它们属于超参数的一部分,由数据集和工程实现决定。[0084]虽然,rnn在数学上可以处理任意长度的数据,但考虑到实现的效率问题,等长数据的矩阵批处理运算有速度的绝对优势,因此实现中常将变长序列通过填充法(padding)处理为等长数据。[0085]填充法是一种数据预处理方法,即首先设定一个最大长度,在不满足长度的序列后附加上特殊的填充符号(pad)。输入长度的优化依赖于数据分布情况、经验选择以及高效的底层实现。合适的填充长度可避免浪费计算资源,本发明在输入层结合实验数据集和前人经验对n和m两个超参数分别设为20和16。利用填充法使数据变为等长的序列,再对序列开始和结尾添加特殊的符号标识。[0086]输入层在t步骤将输入的词项wt传入到基于lstm的循环神经网络,将与词项wt对应的字符序列{chart1,chart2,…,chartm}传入到卷积和嵌入层;[0087]卷积和嵌入层,分别用于处理字符序列和词项;其中,卷积层用于对{chart1,chart2,…,chartm}编码,提取出字符编码的特征向量;嵌入层用于根据词项wt在词表中通过索引找到对应的词向量;[0088]具体的,嵌入层通过索引找到词向量:[0089][0090]其中,wordtable表示嵌入矩阵。[0091]卷积层的神经网络编码由一个卷积层和一个最大池化层组成,每个序列的最大长度是m,字符向量的维度大小用d表示。将一个词表示成为字符矩阵度是m,字符向量的维度大小用d表示。将一个词表示成为字符矩阵[0092]其中,卷积操作涉及一个过滤器h表示过滤器移动的窗口大小。一个过滤器卷积生成特征向量可通过如下公式计算。[0093]c=f(conv(x*wc)+b)[0094]其中,f表示非线性的激活函数,conv表示卷积过程。生成了一个特征向量b表示的是偏置向量。通常对文本的卷积可以设置多个不同大小的过滤窗口,如使h=[2,3,4]。每个长度也可以设置多个过滤器,假如对每个长度设置两个过滤器,那么整个卷积将产生6组特征向量,用[cf1,cf2,…,cfx]表示。然后对每一组特征向量做最大池化操作,卷积层生成字符序列的编码特征向量:[0095][0096]将和传入基于lstm的循环神经网络。[0097]基于lstm的循环神经网络与所述卷积层和嵌入层分别连接,用于对字符编码特征向量和词向量进行融合,并且,基于lstm的循环神经网络在lstm的基础之上加入了融合门,用于对字符编码特征向量和词向量进行融合,用门机制来决定信息保留的程度。由于和的维度不一致,先对做一个投影操作,使其维度一致:[0098][0099]其中,表示投影后的字符序列编码特征向量,然后计算融合门:[0100][0101][0102]其中,wge,wgw和bg表示参数和偏置项,是经过sigmoid运算生成的值在0和1之间,用于决定哪些信息应该融合,表示融合后的向量。然后基于lstm计算方法分别计算遗忘门、输入门和输出门,将输出门的输出结果ht传递到输出层。[0103]输出层,用于计算循环神经网络融合结果的预测概率;并将计算的预测概率输出[0104]输出层计算的预测概率:[0105]yt=softmax(w0ht+b0)[0106]其中,w0为权重值,b0为偏置项;yt是一个和词表大小维度一致的向量,每一维表示了对应词项成为预测词的概率。softmax表示对概率进行归一化,得到当前时刻的输出结果。[0107]在本实施例中,对语言模型的训练过程中,通过定义语言模型的损失函数,通过第三数据集来训练语言模型;[0108]具体的,损失函数使用交叉熵损失;[0109]-∑ip(yi)*log(yti)[0110]其中,yti为当前时刻i输出层得到的概率,p(yi)表示当前i目标词的概率。[0111]采用循环迭代训练方式对语言模型进行训练直至网络收敛;在单次循环迭代训练过程中执行以下操作:[0112]1)从第三数据集中选取一组文本数据作为训练样本;[0113]2)将该训练样本中的每个词按字符进行切分,作为卷积神经网络的输入,同时查找每个词基于glove的词向量。将卷积神经网络的输出和基于glove的词向量联合作为循环神经网络模型的输入。[0114]3)利用循环神经网络语言模型的损失函数对相关参数进行参数调整。[0115]具体的,如图4所示(n=10),步骤s3中的语音识别过程中,包括:[0116]步骤s31、将按句切分后的语音数据输入到训练后的语音模型中,根据束搜索算法得到预测概率最高的前n个文本识别结果候选以及对应的预测概率值;[0117]更具体的,步骤s31中包括:[0118]1)对待识别的语音信号进行按句切分后,经过卷积神经网络进行提取,通过上下文网络进行特征表示,最终经过ctc算法得到输出的文字;[0119]2)采用前缀束搜索方法控制语音模型的输出,得到预测概率最高的n个识别候选。[0120]所述前缀束搜索方法可参照现有技术实现。[0121]步骤s32、基于训练后的字符级语言模型,将前n个文本识别结果候选分别输入到语言模型中计算每个文本识别结果候选的预测概率;将语音模型计算的预测概率值和字符级语言模型的预测概率值求和后,将和概率最高的识别结果作为语音识别的最终输出。[0122]更具体的,解码结果定义为:[0123]y=argmax(log10pw2v(y)+log10plstm(y))[0124]式中,y为解码结果;pw2v(y)为语音模型得分;plstm(y)为语言模型的得分。[0125]综上所述,本实施例通过获取待识别的目标语音信号,通过预训练模型进行特征提取,改进语音识别中的特征表示,该预训练模式是通过在大量无标注语音数据上进行预训练得到的,充分利用了无标注的语音信息。通过在少量标注数据上对语音识别模型进行微调,进一步增强了对该语种分类的适应性。但由于每一帧的输出相对独立,容易产生错误词的输出。因此本发明采用基于字符级的语言模型对语音识别结果进行优化,该字符级语言模型充分利用了无标注的文本信息,可以改进语音识别的文本输出,进而提升语音识别系统的性能。尤其是针对小语种语言来说,这种方法可以充分利用未标注信息来改进语音识别的效果。[0126]因此,本实施例解决了低资源语言语音识别在各业务领域和应用场景中的数据依赖和语音表征问题;利用大量的无标注音频数据来提高语音的表征能力,降低人工标注成本;并利用基于字符级的语言模型降低语音识别的错误率。[0127]实施例二[0128]本发明的一个实施例公开一种基于预训练特征表示的语音识别装置,如图5所示,包括:语音模型、语言模型和识别输出模块;[0129]所述语音模型,用于对输入的按句切分后的语音数据,根据束搜索算法进行识别预测,得到预测概率最高的前n个文本识别结果候选以及对应的预测概率;[0130]所述语言模型,用于对输入的前n个文本识别结果候选分别进行预测识别,得到对应的预测概率;[0131]识别输出模块,用于根据所述语音模型的预测概率和所述语言模型的预测概率,通过对两个概率求和,得到n个文本识别结果中概率最高的识别结果作为语音识别的最终输出。[0132]本实施例中的语音模型和语言模型均为采用实施例一中基于预训练特征表示的语音识别方法中的训练方法得到,具体的模型中的神经网络的组成和训练过程与上一实施例相同,请参照上一实施例中的具体内容,在此就不一一赘述了。[0133]实施例三[0134]本发明的一个实施例公开一种电子设备,如图5所示,其示出了该电子设备的一种组成结构示意图,该电子设备可以为任意类型的电子设备,该电子设备至少包括存储器501和处理器502;其中,处理器502用于执行如上实施例中的基于预训练特征表示的语音识别方法。[0135]该存储器501用于存储处理器执行操作所需的程序。[0136]可以理解的是,该电子设备还可以包括显示单元503以及输入单元504。[0137]当然,该电子设备还可以具有比图5更多或者更少的部件,对此不加限制。[0138]另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上实施例中的基于预训练特征表示的语音识别方法。[0139]本发明的另一个实施例一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机程序在电子设备上运行时,用于执行如上实施例中的基于预训练特征表示的语音识别方法。[0140]以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1