本申请涉及语音信号处理和自然语言处理等技术领域,尤其涉及一种语音识别方法和装置。
背景技术:
语音识别(speechrecognition)是把人的语音通过机器进行信号处理和识别,转变为相应文本,再经过语义分析和理解,最终让机器像人一样听懂我们的声音。
相关技术中,语音识别方法一般使用通用语言模型和声学模型对接收的语音数据进行语音识别。语言模型用于刻画自然语言中的内在联系,能够提供字或词之间的上下文关联和语义信息,是在知道或给定了当前词的情况下,预测下一个可能出现的词的概率,是语音识别系统的重要组成部分。
通用语言模型考虑的上下文信息较少,如仅考虑语音数据对应每个词前面少量词的信息,如仅考虑每个词前面2个词的信息。由于通用语言模型考虑的上下文信息较少,就会导致采用通用语言模型的语音识别方法的识别准确度不高。
技术实现要素:
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的一个目的在于提出一种语音识别方法,该方法可以提高语音识别结果的准确度。
本申请的另一个目的在于提出一种语音识别装置。
为达到上述目的,本申请第一方面实施例提出的语音识别方法,包括:接收待识别语音数据;获取所述待识别语音数据的候选识别结果;采用已构建的篇章级语言模型,在所述候选识别结果中确定出最终的语音识别结果,其中,所述篇章级语言模型根据篇章文本数据构建。
本申请第一方面实施例提出的语音识别方法,由于篇章级语言模型是根据篇章文本数据构建的,从而篇章级语言模型可以反映篇章级信息,相对于仅考虑少量词信息的通用语言模型,可以提高语音识别结果的准确度。
为达到上述目的,本申请第二方面实施例提出的语音识别装置,包括:接收模块,用于接收待识别语音数据;获取模块,用于获取所述待识别语音数据的候选识别结果;识别模块,用于采用已构建的篇章级语言模型,在所述候选识别结果中确定出最终的语音识别结果,其中,所述篇章级语言模型根据篇章文本数据构建。
本申请第二方面实施例提出的语音识别装置,由于篇章级语言模型是根据篇章文本数据构建的,从而篇章级语言模型可以反映篇章级信息,相对于仅考虑少量词信息的通用语言模型,可以提高语音识别结果的准确度。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一个实施例提出的语音识别方法的流程示意图;
图2是本申请另一个实施例提出的语音识别方法的流程示意图;
图3是本申请实施例中篇章级语言模型的一种结构示意图;
图4是本申请实施例中采用篇章级语言模型在所述候选识别结果中确定出最终的语音识别结果的一种方式的流程示意图;
图5是本申请另一个实施例提出的语音识别方法的流程示意图;
图6是本申请一个实施例提出的语音识别装置的结构示意图;
图7是本申请另一个实施例提出的语音识别装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本申请一个实施例提出的语音识别方法的流程示意图。
如图1所示,本实施例的方法包括:
s11:接收待识别语音数据。
所述语音数据一般为长度较长的语音数据,包含大量篇章信息,如会议录音、采访录音等。
s12:获取所述待识别语音数据的候选识别结果。
在接收到待识别语音数据后,采用已有方式,如采用通用语言模型和声学模型对待识别语音数据进行解码得到候选识别结果。
例如,对接收的语音数据进行有效语音检测后,得到对应有效语音段;提取有效语音段声学特征后,利用预先训练的通用语言模型及相应声学模型对有效语音段进行解码,得到一遍解码结果。每个有效语音段会存在一或多条候选解码路径,得到一或多个候选识别结果,直接将待识别语音数据所有有效语音段的候选识别结果作为一个篇章,有效语音段有多个候选识别结果时,相应有多个候选篇章。
s13:采用已构建的篇章级语言模型,在所述候选识别结果中确定出最终的语音识别结果,其中,所述篇章级语言模型根据篇章文本数据构建。
根据篇章文本数据构建篇章级语言模型的具体内容可以参见后续描述。
本实施例中,由于篇章级语言模型是根据篇章文本数据构建的,从而篇章级语言模型可以反映篇章级信息,相对于仅考虑少量词信息的通用语言模型,可以提高语音识别结果的准确度。
图2是本申请另一个实施例提出的语音识别方法的流程示意图。
如图2所示,本实施例的方法包括:
s21:获取篇章文本数据。
例如,采用收集方式收集到大量的篇章文本数据,或者,也可以直接从日志库等存储文本数据的数据库中,直接获取到篇章文本数据。
篇章文本数据为完整的篇章内容,如可以为大量会议录音的识别文本,或者记录采访录音的识别文本,当然也可以为网络上收集的以篇章为单位的文本数据,如新闻文本、热点评论文本等。
s22:对所述篇章文本数据进行分词,得到篇章文本数据中的词,并构建所述词的词向量。
例如,可以采用条件随机场等方式对篇章文本数据进行分词,得到篇章文本数据中的词。
在得到篇章文本数据中的词后,可以构建每个词的词向量,如采用word2vec的方法构建每个词的词向量,具体方法与现有技术相同,在此不再详述。
s23:根据所述词向量对所述词进行聚类,得到所述词所在类别。
所述聚类方法如k-means方法,具体聚类时,使用每个词的词向量进行聚类,预先随机选择k个词作为k个聚类中心,将所有词划分为k个类别,计算每个词的词向量与每个聚类中心的距离,将词向量对应词聚到所述距离最小的聚类中,并更新每个聚类的中心;重复计算后,直到各聚类中心的变化较小时,聚类结束,得到每个词向量所在类别;每个类别中的词向量语义较相近,可以认为每个类别中的词属于同一个主题。
s24:根据所述词所在类别,确定所述篇章文本数据的篇章主题向量。
所述篇章主题向量用于表征篇章文本数据中词在每个类别中的词频分布,使用p表示,即p={p1,p2,...pk},其中pi表示篇章文本数据中词在第i个类别中的词频分布,k为类别总数,pi的计算方法如式(1)所示:
其中,ni表示篇章文本数据中词在第i个类别中的总数,ni表示第i个类别中的词总数;依次计算每个篇章文本数据中每个词在每个类别中的分布,得到每个篇章文本数据的篇章主题向量p;如果一个篇章文本数据中词未出现在一个类别中,该篇章文本数据中的词在该类别中的词频分布为0。
s25:根据所述篇章主题向量,构建篇章级语言模型。
其中,篇章级语言模型用于表明当前词的信息与当前词后一个词的信息之间的关系,当前词的信息包括当前词所在篇章文本数据的篇章主题向量。
如图3为篇章级语言模型的结构图,具体包括输入层、隐层、输出层,其中输入层输入当前词的词向量、当前词前一个词的隐层输出、及当前词属于篇章的篇章主题向量,隐层使用循环神经网络(rnn)的结构,输出层输出两个目标值,使用收集的大量篇章文本数据训练语言模型参数,具体训练方法如下所述:
具体训练时,由输入层输入当前词的词向量wt,当前词前一个词的隐层输出ht-1,及当前词所在篇章的篇章主题向量p,第t个词的输入特征使用xt表示,xt={wt,ht-1,p};同一篇章的词语输入特征中的篇章主题向量相同;
第t个词的输入层与隐层之间的转换矩阵使用ut表示,偏置使用ut表示,则输入特征经过隐层的变换后得到的输出特征ht的取值为ht=f(ut·xt+ut),其中f为输入层到隐层的激活函数,如sigmoid函数,ut和ut为模型参数,ut={uh,uw,up},ut={uh,uw,up},需要通过大量数据训练得到,隐层可以为一层或多层,隐层节点之间相互连接,每个隐层节点的输入特征为上一层(输入层或隐层)节点的输出及当前节点前一个节点的输出特征,具体特征变换方法与现有技术相同,在此不再详述;
第t个词向量隐层到输出层之间的特征变换为ct=f(qt·ht+qt),dt=g(zt·ht+zt),其中f和g为隐层到输出层之间的激活函数,如softmax函数,qt和zt分别为隐层到输出层输出聚类标签和词标签的转换矩阵,qt和zt分别为对应的偏置;qt、qt、zt、zt为模型参数,需要通过大量数据训练得到;
输出层有两个输出目标,即当前词后一个词属于每个聚类的概率向量和当前词后一个词为所属聚类中每个词的概率向量,当前词后一个词所属聚类可以通过预先对每个篇章中词进行聚类得到;
参数更新时,在梯度传导时,需要考虑两个目标梯度的和,以softmax函数为例,梯度传导过程为:即σ(ht)=σ(softmax(ct))+σ(softmax(dt)),其中σ(a)表示参数a的误差函数;当梯度传导回输入层时,需要对输入层输入特征进行更新,需要更新的输入特征为当前词的词向量和当前词的篇章主题向量,具体更新方法与现有技术相同,在此不再详述;
利用收集的大量文本数据及篇章中每个词所属聚类主题向量对篇章级语言模型参数进行训练,训练结束后,得到相应模型参数。
s26:接收待识别语音数据。
s27:获取待识别语音数据的候选识别结果。
s26-s27的具体内容可以参见s11-s12。
s28:采用已构建的篇章级语言模型,在所述候选识别结果中确定出最终的语音识别结果。
主要思路包括:对应每个候选识别结果,根据篇章级语言模型和通用语言模型分别对候选识别结果中每个词进行打分,得到篇章级语言模型的得分和通用语言模型的得分,再根据篇章级语言模型的得分和通用语言模型的得分,得到候选识别结果中的每个词的融合后的语言模型得分,再根据候选识别结果中每个词的融合后的语言模型得分得到候选识别结果的语言模型得分,以及,根据声学模型得到候选识别结果的声学模型得分,再根据候选识别结果的语言模型得分和声学模型得分,得到每个候选识别结果的总得分,最终将总得分最高的候选识别结果作为最终的语音识别结果。
具体流程如图4所述,包括如下步骤:
s41:对所述候选识别结果进行分词,得到候选识别结果中的词,并确定所述候选识别结果中的词的词向量。
分词和确定词向量的方式可以参见上述实施例中的相关描述,在此不再详述。
s42:根据所述候选识别结果中词的词向量,确定候选识别结果的篇章主题向量。
具体计算时,直接计算每个候选识别结果中每个词的词向量与每个聚类中心的距离,选择距离最小的聚类,作为每个词所属聚类;一个候选识别结果作为一个篇章,计算每个候选识别结果的篇章主题向量,具体计算方法与篇章语言模型构建时,计算篇章主题向量方法类似,在此不再详述。
s43:采用已构建的篇章级语言模型和所述候选识别结果的篇章主题向量,计算所述候选识别结果中词的篇章级语言模型得分s2。
具体计算时,直接将候选识别结果中每个词作为当前词,将当前词的词向量,当前词前一个词隐层输出及当前词所在候选识别结果的篇章主题向量,作为篇章级语言模型的输入,输出为当前词后一个词属于每个聚类的概率向量,作为第一得分,以及当前词后一个词为所属聚类中词的概率向量,作为第二得分,将第一得分与第二得分的乘积作为当前词后一个词的篇章级语言模型得分s2,所述当前词后一个词所属聚类根据该词与每个聚类的距离确定。
s44:根据所述候选识别结果中词的通用语言模型得分和篇章级语言模型得分,计算所述候选识别结果中词的语言模型得分。
可以先根据每个词的通用语言模型得分和篇章级语言模型得分,计算得到每个词的语言模型得分ls。
具体计算时,直接将候选识别结果中每个词的通用语言模型得分s1和篇章级语言模型得分s2的结果融合后,得到候选识别结果中每个词最终语言模型得分ls,具体计算方法如式(2)所示:
ls=αs1+(1-α)s2(2)
其中,α为篇章级语言模型的融合系数,具体取值根据应用需求确定。
s45:根据所述候选识别结果中词的语言模型得分,计算候选识别结果的语言模型得分。
再根据每个词的语言模型得分,计算相应的候选识别结果的语言模型得分lmscore。
每个候选识别结果的语言模型得分lmscore为候选识别结果中每个词的语言模型得分的乘积后的对数值,具体如式(3)所示:
其中,ls表示当前候选识别结果中的词总数,lsj表示当前候选识别结果中第j个词的语言模型得分。
s46:根据所述候选识别结果的语言模型得分和声学模型得分,计算所述候选识别结果的总得分fscore。
每个候选识别结果的总得分为每个候选识别结果的语言模型得分和声学模型得分的融合,同时考虑每个候选识别结果中词的长度;
fscore=acscore+γ*lmscore-μ*ls(4)
其中,acscore表示候选识别结果对应有效语音段的声学得分,具体可以通过预先构建的声学模型得到,μ为当前候选识别结果中词长度的惩罚因子,具体取值可以根据应用需求确定,ls为当前候选识别结果中总词数。
s47:根据所述候选识别结果的总得分,确定最终的语音识别结果。
具体确定时,选择总得分最高的候选识别结果作为每个有效语音段的最终解码结果,即待识别语音数据的最终的语音识别结果。
进一步的,另一些实施例中,还可以构建篇章小语言模型,采用篇章小语言模型对候选识别结果中词的篇章级语言模型得分进行修正,进而修正候选识别结果的总得分,进而影响最终的语音识别结果的确定。
相应的,参见图5,本实施例的方法包括:
s51:构建篇章级语言模型。
具体内容可以参见s21-s25,在此不再详述。
s52:接收待识别语音数据。
s53:获取待识别语音数据的候选识别结果。
s52-s53的具体内容可以参见s11-s12。
s54:根据候选识别结果构建篇章级小语言模型。
由于篇章级小语言模型是根据候选识别结果构建的,因此与待识别语音数据的发言人的用词习惯相关,能够更好的反映当前发言人的语言特征,进而得到更符合当前发言人的语音识别结果。
可以包括:选择得分差值大于预设差值阈值的词条,并根据选择的词条的得分差值组成语言模型差值向量;计算所述差值向量与预先收集的篇章文本向量之间的距离;或者,对所述差值向量进行降维,计算降维后的差值向量与预先收集的篇章文本向量之间的距离;选择所述距离小于预设距离阈值的篇章文本向量对应的篇章文本数据作为待扩充的篇章文本数据。
具体内容如下:
首先,直接收集候选识别结果中置信度较高的候选识别结果作为发言人用词习惯句子,所述发言人的用词习惯一般直接表现在发言人说话的文本内容上;利用收集的置信度较高的候选识别结果作为训练语料,采用上述实施例中的相关内容所示的篇章级语言模型的训练方式,构建篇章级语言模型,此时的篇章级语言模型可以称为初始篇章小语言模型。
其次,利用初始篇章小语言模型及通用语言模型扩充篇章小语言模型的训练语料。
除了体现发言人用户习惯句子外,发言人使用的词条也可以体现发言人的用词习惯,这些词条对应的篇章小语言模型得分和通用语言模型得分一般差别较大,所述词条包含词或多个词组成的词组;因此,可以将这些语言模型得分差别较大的词条从候选识别结果中挑选出来,用于挑选篇章小语言模型的训练文本数据,具体挑选方法如下所述:
首先计算候选识别结果中每个词条的篇章小语言模型得分和通用语言模型得分的差值,选择差值超过预先设定阈值的词条作为发言人用词习惯词条;然后将所述词条的语言模型得分差值组合起来,得到语言模型差值向量;最后计算所述差值向量与预先收集的篇章文本向量之间的距离,选择所述距离低于阈值的篇章文本作为篇章小语言模型的训练文本数据,对篇章小语言模型进行更新,得到更新后的篇章小语言模型;所述篇章文本向量可以通过现有方法得到,如先得到篇章文本中每个词的词向量,将篇章文本中每个词的词向量作为篇章文本向量;
进一步地,还可以对挑选出的发言人用词习惯词条的语言模型得分差值向量进行降维,利用降维后的差值向量计算与每个篇章文本向量之间的距离;所述降维方法与现有技术相同,在此不再详述。
再次,采用扩充后的训练语料进行训练,采用上述实施例中的相关内容所示的篇章级语言模型的训练方式,构建篇章级语言模型,此时的篇章级语言模型可以称为最终的篇章小语言模型。
s55:采用已构建的篇章级语言模型和篇章小语言模型,在所述候选识别结果中确定出最终的语音识别结果。
在构建得到篇章小语言模型后,可以采用篇章小语言模型计算候选识别结果中词的篇章小语言模型得分s3。
具体的,可以类似上述实施例中计算候选识别结果中词的篇章级语言模型得分s2的方式,计算得到候选识别结果中词的篇章级小语言模型得分s3。
另外,如上实施例所述,采用篇章级语言模型时,可以计算得到候选识别结果中词的语言模型得分ls。
用候选识别结果中词的篇章小语言模型得分s3对候选识别结果中词的语言模型得分ls进行修正,得到候选结果中词的修正后的语言模型得分。
计算公式如式(5)所示:
mls=βls+(1-β)s3(5)
其中,β为小语言模型得分融合系统,mls为候选结果中词的修正后的语言模型得分。
在得到候选结果中词的修正后的语言模型得分mls后,采用如式(3)所示的公式由修正后的语言模型得分计算得到每个候选识别结果的语言模型,进而计算得到候选识别结果的总得分。之后,可以将总得分最高的候选识别结果确定为最终的语音识别结果。
图6是本申请一个实施例提出的语音识别装置的结构示意图。
如图6所示,本实施例的装置60包括:接收模块61、获取模块62和识别模块63。
接收模块61,用于接收待识别语音数据;
获取模块62,用于获取所述待识别语音数据的候选识别结果;
识别模块63,用于采用已构建的篇章级语言模型,在所述候选识别结果中确定出最终的语音识别结果,其中,所述篇章级语言模型根据篇章文本数据构建。
一些实施例中,参见图7,本实施例的装置60还包括:用于构建篇章级语言模型的第一构建模块64,所述第一构建模块64具体用于:
获取篇章文本数据;
对所述篇章文本数据进行分词,得到篇章文本数据中的词,并构建所述词的词向量;
根据所述词向量对所述词进行聚类,得到所述词所在类别;
根据所述词所在类别,确定所述篇章文本数据的篇章主题向量;
根据所述篇章主题向量,构建篇章级语言模型。
相应的,识别模块63具体用于:
对所述候选识别结果进行分词,得到候选识别结果中的词,并确定所述候选识别结果中的词的词向量;
根据所述候选识别结果中词的词向量,确定候选识别结果的篇章主题向量;
采用已构建的篇章级语言模型和所述候选识别结果的篇章主题向量,计算所述候选识别结果中词的篇章级语言模型得分;
根据所述候选识别结果中词的通用语言模型得分和篇章级语言模型得分,计算所述候选识别结果中词的语言模型得分;
根据所述候选识别结果中词的语言模型得分,计算所述候选识别结果的语言模型得分;
根据所述候选识别结果的语言模型得分和声学模型得分,计算所述候选识别结果的总得分;
根据所述候选识别结果的总得分,确定最终的语音识别结果。
一些实施例中,参见图7,本实施例的装置60还包括:第二构建模块65,用于根据所述候选识别结果,构建篇章小语言模型。
相应的,所述识别模块63具体用于:
对所述候选识别结果进行分词,得到候选识别结果中的词,并确定所述候选识别结果中的词的词向量;
根据所述候选识别结果中词的词向量,确定候选识别结果的篇章主题向量;
采用已构建的篇章级语言模型和所述候选识别结果的篇章主题向量,计算所述候选识别结果中词的篇章级语言模型得分;
根据所述候选识别结果中词的通用语言模型得分和篇章级语言模型得分,计算所述候选识别结果中词的修正前的语言模型得分;
采用已构建的篇章小语言模型和所述候选识别结果的篇章主题向量,计算所述候选识别结果中词的篇章小语言模型得分;
采用所述候选识别结果中词的篇章小语言模型得分,对所述候选识别结果中词的修正前的语言模型得分进行修正,得到所述候选识别结果中词的修正后的语言模型得分;
根据所述候选识别结果中词的修正后的语言模型得分,计算所述候选识别结果的语言模型得分;
根据所述候选识别结果的语言模型得分和声学模型得分,计算所述候选识别结果的总得分;
根据所述候选识别结果的总得分,确定最终的语音识别结果。
一些实施例中,所述第二构建模块65具体用于:
根据置信度高的候选识别结果构建初始篇章小语言模型;
根据初始篇章小语言模型和通用语言模型,计算候选识别结果中词条的语言模型得分差值,并根据得分差值确定待扩充的篇章文本数据;
根据所述置信度高的候选识别结果和所述待扩充的篇章文本数据作为训练语料进行训练,构建出最终的篇章小语言模型。
一些实施例中,所述第二构建模块65用于根据得分差值确定待扩充的篇章文本数据,包括:
选择得分差值大于预设差值阈值的词条,并根据选择的词条的得分差值组成语言模型差值向量;
计算所述差值向量与预先收集的篇章文本向量之间的距离;或者,对所述差值向量进行降维,计算降维后的差值向量与预先收集的篇章文本向量之间的距离;
选择所述距离小于预设距离阈值的篇章文本向量对应的篇章文本数据作为待扩充的篇章文本数据。
可以理解的是,本实施例的装置与上述方法实施例对应,具体内容可以参见方法实施例的相关描述,在此不再详细说明。
本实施例中,由于篇章级语言模型是根据篇章文本数据构建的,从而篇章级语言模型可以反映篇章级信息,相对于仅考虑少量词信息的通用语言模型,可以提高语音识别结果的准确度。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。