一种语音识别方法、装置、存储介质及设备
文献发布时间:2023-06-19 11:14:36
技术领域
本申请涉及语音识别技术领域,尤其涉及一种语音识别方法、装置、存储介质及设备。
背景技术
随着人工智能技术的不断突破和各种智能终端设备的日益普及,人机交互在人们日常工作、生活中出现的频率越来越高。语音作为最方便、快捷的交互方式之一,其识别俨然已成为人机交互的重要环节。
现有的语音识别方法通常是通过强制截窗的方式来控制未来视野和识别结果的延迟,在收集或缓存到一个固定长度的短语音片段便开始启动识别模型进行识别,以达到识别结果的流式呈现效果,即,使得被识别的词语能够在用户说话时实时的呈现出识别结果。但这种识别方法为了达到流式的呈现效果,其采用的强制截窗的窗长一般小于600ms,这将直接导致模型训练和模型使用时的不匹配问题。这是因为识别模型往往具有一个较深的层级结构,且识别模型在训练时输入的是一整句完成语音(可认为是全视野训练),对于每一帧语音的识别,理论上可以看到其前后整句话的视野,而在识别模型的测试阶段,由于采用了强制截窗的识别方式,并非是全视野识别,即,只能看到当前语音帧前面的语音,看不到后面的语音,导致未来视野受限,这种模型的训练和测试阶段的不匹配将会造成识别结果的不准确。
因此,如何在降低语音识别结果的延时的同时,提高识别结果的准确率是目前亟待解决的技术问题。
发明内容
本申请实施例的主要目的在于提供一种语音识别方法、装置、存储介质及设备,能够在进行语音识别时,降低识别结果的延时并提高识别结果的准确率。
本申请实施例提供了一种语音识别方法,包括:
获取待识别的目标语音;
提取所述目标语音的声学特征;
根据所述目标语音的声学特征,按照预设字边界长度,对所述目标语音进行第一识别,得到第一识别结果;并按照预设窗长对所述目标语音进行第二识别,得到第二识别结果,其中,所述预设窗长大于所述预设字边界长度;
根据所述第一识别结果和所述第二识别结果,确定所述目标语音的最终识别结果。
一种可能的实现方式中,所述根据所述目标语音的声学特征,按照预设字边界长度,对所述目标语音进行第一识别,得到第一识别结果;并按照预设窗长对所述目标语音进行第二识别,得到第二识别结果,包括:
根据所述目标语音的声学特征,按照预设字边界长度,计算所述目标语音对应的第一目标音素;并根据所述第一目标音素,对所述目标语音进行识别,得到第一识别结果;
以及根据所述目标语音的声学特征,按照预设窗长,计算所述目标语音对应的第二目标音素;得并根据所述第二目标音素,对所述目标语音进行识别,到第二识别结果。
一种可能的实现方式中,所述根据所述第一识别结果和所述第二识别结果,确定所述目标语音的最终识别结果,包括:
计算所述第二识别结果与所述第一识别结果的距离;
当所述距离大于预设距离阈值时,将所述第二识别结果作为所述目标语音的最终识别结果;当所述距离不大于所述预设距离阈值时,将所述第一识别结果作为所述目标语音的最终识别结果。
一种可能的实现方式中,所述根据所述目标语音的声学特征,按照预设字边界长度,对所述目标语音进行第一识别,得到第一识别结果;并按照预设窗长对所述目标语音进行第二识别,得到第二识别结果,包括:
将所述目标语音的声学特征输入至预先构建的语音识别模型,对所述目标语音进行识别,得到第一识别结果和第二识别结果;
其中,所述语音识别模型包括输入层、深度卷积层、字边界预测网络和解码层。
一种可能的实现方式中,所述解码层包括实时解码层和全视野解码层;所述将所述目标语音的声学特征输入至预先构建的语音识别模型,对所述目标语音进行识别,得到第一识别结果和第二识别结果,包括:
通过所述输入层将所述目标语音的声学特征按序输入至所述深度卷积层;并利用所述深度卷积层对所述目标语音的声学特征进行编码,得到语音编码结果;
利用所述字边界预测网络对所述语音编码结果进行预测,或者,利用所述字边界预测网络对所述目标语音的声学特征进行预测,得到所述预设字边界长度;
利用所述实时解码层,按照所述预设字边界长度,对所述语音编码结果进行解码,得到所述目标语音的第一识别结果;以及利用所述全视野解码层,按照所述全视野的预设窗长,对所述语音编码结果进行解码,得到所述目标语音的第二识别结果。
一种可能的实现方式中,所述语音识别模型的构建方式如下:
获取样本语音;
提取所述样本语音的声学特征;
根据所述样本语音的声学特征以及所述样本语音对应的文本识别标签对初始语音识别模型进行训练,生成所述语音识别模型。
一种可能的实现方式中,所述方法还包括:
获取验证语音;
提取所述验证语音的声学特征;
将所述验证语音的声学特征输入所述语音识别模型,获得所述验证语音的文本识别结果;
当验证语音的文本识别结果与所述验证语音对应的文本标记结果不一致时,将所述验证语音重新作为所述样本语音,对所述语音识别模型进行更新。
本申请实施例还提供了一种语音识别装置,包括:
第一获取单元,用于获取待识别的目标语音;
第一提取单元,用于提取所述目标语音的声学特征;
识别单元,用于根据所述目标语音的声学特征,按照预设字边界长度,对所述目标语音进行第一识别,得到第一识别结果;并按照预设窗长对所述目标语音进行第二识别,得到第二识别结果,其中,所述预设窗长大于所述预设字边界长度;
确定单元,用于根据所述第一识别结果和所述第二识别结果,确定所述目标语音的最终识别结果。
一种可能的实现方式中,所述识别单元具体用于:
根据所述目标语音的声学特征,按照预设字边界长度,计算所述目标语音对应的第一目标音素;并根据所述第一目标音素,对所述目标语音进行识别,得到第一识别结果;
以及根据所述目标语音的声学特征,按照预设窗长,计算所述目标语音对应的第二目标音素;得并根据所述第二目标音素,对所述目标语音进行识别,到第二识别结果。
一种可能的实现方式中,所述确定单元包括:
计算子单元,用于计算所述第二识别结果与所述第一识别结果的距离;
确定子单元,用于当所述距离大于预设距离阈值时,将所述第二识别结果作为所述目标语音的最终识别结果;当所述距离不大于所述预设距离阈值时,将所述第一识别结果作为所述目标语音的最终识别结果。
一种可能的实现方式中,所述识别单元具体用于:
将所述目标语音的声学特征输入至预先构建的语音识别模型,对所述目标语音进行识别,得到第一识别结果和第二识别结果;
其中,所述语音识别模型包括输入层、深度卷积层、字边界预测网络和解码层。
一种可能的实现方式中,所述解码层包括实时解码层和全视野解码层;所述识别单元包括:
编码子单元,用于通过所述输入层将所述目标语音的声学特征按序输入至所述深度卷积层;并利用所述深度卷积层对所述目标语音的声学特征进行编码,得到语音编码结果;
预测子单元,用于利用所述字边界预测网络对所述语音编码结果进行预测,或者,利用所述字边界预测网络对所述目标语音的声学特征进行预测,得到所述预设字边界长度;
解码子单元,用于利用所述实时解码层,按照所述预设字边界长度,对所述语音编码结果进行解码,得到所述目标语音的第一识别结果;以及利用所述全视野解码层,按照所述全视野的预设窗长,对所述语音编码结果进行解码,得到所述目标语音的第二识别结果。
一种可能的实现方式中,所述装置还包括:
第二获取单元,用于获取样本语音;
第二提取单元,用于提取所述样本语音的声学特征;
训练单元,用于根据所述样本语音的声学特征以及所述样本语音对应的文本识别标签对初始语音识别模型进行训练,生成所述语音识别模型。
一种可能的实现方式中,所述装置还包括:
第三获取单元,用于获取验证语音;
第三提取单元,用于提取所述验证语音的声学特征;
获得单元,用于将所述验证语音的声学特征输入所述语音识别模型,获得所述验证语音的文本识别结果;
更新单元,用于当验证语音的文本识别结果与所述验证语音对应的文本标记结果不一致时,将所述验证语音重新作为所述样本语音,对所述语音识别模型进行更新。
本申请实施例还提供了一种语音识别设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述语音识别方法中的任意一种实现方式。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述语音识别方法中的任意一种实现方式。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述语音识别方法中的任意一种实现方式。
本申请实施例提供的一种语音识别方法、装置、存储介质及设备,首先获取待识别的目标语音,提取目标语音的声学特征,然后再根据目标语音的声学特征,按照预设字边界长度,对目标语音进行第一识别,得到第一识别结果;并按照预设窗长对目标语音进行第二识别,得到第二识别结果,其中,预设窗长大于预设字边界长度;接着,可以根据第一识别结果和第二识别结果,确定目标语音的最终识别结果。可见,由于本申请实施例是按照预设字边界长度和较大的预设窗长分别对目标语音进行识别,再综合得到的两个识别结果确定最终的语音识别结果,不仅考虑了识别实时性,也丰富了目标语音的识别依据,从而不仅能够降低识别结果的延时,也能够提高识别结果的准确率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种语音识别方法的流程示意图;
图2为本申请实施例提供的语音识别模型的结构示意图;
图3为本申请实施例提供的实时解码层中小延时流式支路的结构示意图;
图4为本申请实施例提供的构建语音识别模型的流程示意图;
图5为本申请实施例提供的验证语音识别模型的流程示意图;
图6为本申请实施例提供的一种语音识别装置的组成示意图。
具体实施方式
现有语音识别方法通常是采用强制截窗的方式进行语音识别,即,在收集或缓存到一个固定长度的短语音片段便开始启动现有识别模型进行识别,以达到识别结果的流式呈现效果,但这种识别方法为了达到流式的呈现效果,实际使用中采用的强制截窗的窗长一般小于600ms,这将直接导致模型训练和模型使用时的不匹配问题。这是因为识别模型往往具有一个较深的层级结构,且识别模型在训练时输入的是一整句完整语音(可认为是全视野训练),对于每一帧语音的识别,理论上可以看到其前后整句话的视野,而在识别模型的测试阶段,由于采用了强制截窗的识别方式,并非是全视野识别,即,只能看到当前语音帧前面的语音,看不到后面的语音,导致未来视野受限,这种模型的训练和测试阶段的不匹配将会造成识别结果的不准确。
目前,为了解决模型的训练和测试阶段的不匹配造成的识别结果的不准确问题,可以采用匹配训练的方式,但是模型的卷积层计算和注意力层的计算会随着网络加深,视野同步线性叠加,因此,对于网络层次较多的网络不利于在模型结构上进行匹配训练,而只能在数据层面,将一句话拆分为多个窗长的数据块分别进过网络计算,但如此训练也会使得训练计算量和训练时长成倍增加。并无法有效解决当前模型的训练和使用的不匹配所造成的识别结果不准确的问题。
为解决上述缺陷,本申请提供了一种语音识别方法,首先获取待识别的目标语音,提取目标语音的声学特征,然后再根据目标语音的声学特征,按照预设字边界长度,对目标语音进行第一识别,得到第一识别结果;并按照预设窗长对目标语音进行第二识别,得到第二识别结果,其中,预设窗长大于预设字边界长度;接着,可以根据第一识别结果和第二识别结果,确定目标语音的最终识别结果。可见,由于本申请实施例是按照预设字边界长度和较大的预设窗长分别对目标语音进行识别,再综合得到的两个识别结果确定最终的语音识别结果,不仅考虑了识别实时性,也丰富了目标语音的识别依据,从而不仅能够降低识别结果的延时,也能够提高识别结果的准确率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,为本实施例提供的一种语音识别方法的流程示意图,该方法包括以下步骤:
S101:获取待识别的目标语音。
在本实施例中,将采用本实施例进行语音识别的任一语音定义为目标语音。并且,本实施例不限制目标语音的语种类型,比如,目标语音可以是中文语音、或英文语音等;同时,本实施例也不限制目标语音的长度,比如,目标语音可以是一句话、或多句话等。
可以理解的是,目标语音可以根据实际需要,通过录音等方式获得,例如,人们日常生活中的电话通话语音、或者会议录音等均可作为目标语音,在获取到目标语音后,可以利用本实施例提供的方案实现对该目标语音的识别。
S102:提取目标语音的声学特征。
在本实施例中,通过步骤S101获取到待识别的目标语音后,为了准确识别出目标语音对应的文本信息,需要利用特征提取方法,提取出目标语音的声学特征,并将该声学特征作为识别依据,用以通过后续步骤S103-S104,实现对目标语音的有效识别。
具体来讲,在提取目标语音的声学特征时,首先需要对目标语音进行分帧处理,得到对应的语音帧序列,然后再对分帧后的语音帧序列进行预加重;进而再依次提取出每一语音帧的声学特征,其中,该声学特征指的是用于表征对应语音帧的声学信息的特征数据,比如,可以是梅尔倒谱系数(Mel-scale Frequency Cepstral Coefficients,简称MFCC)特征或感知线性预测(Perceptual Linear Predictive,简称PLP)特征等。
需要说明的是,本申请实施例并不限定目标语音的声学特征的提取方法,也不限定具体的提取过程,可根据实际情况选择适当的提取方法,以及进行相应的特征提取操作。
S103:根据目标语音的声学特征,按照预设字边界长度,对目标语音进行第一识别,得到第一识别结果;并按照预设窗长对目标语音进行第二识别,得到第二识别结果,其中,预设窗长大于预设字边界长度。
在本实施例中,通过步骤S102提取出目标语音的声学特征后,为了能够降低识别结果的延时,进一步,可以按照预先设定的最小窗长(即字边界长度,远低于目前采用的强制截窗的窗长),对目标语音的声学特征进行处理,以根据处理结果,确定目标语音的识别结果,此处将其定义为第一识别结果。这样,相比于目前采用强制截窗的窗长(如200ms,远高于用于表征一个字的长度的字边界长度)的识别方式,能够有效降低识别结果的延时。
其中,字边界长度指的是预先确定的、使得识别结果延时较小的窗长。优选方式是可以通过后续步骤中介绍的字边界预测网络来确定,以便于更加符合目标语音的长度,降低识别的延时,或者,也可以根据实际情况通过其他方式来确定,本申请实施例对此不进行限定。并且,需要说明的是,本申请设定的字边界长度不限于一个字的长度,也可以为多个字进行一次语音识别。
具体来讲,一种可选的实现方式是,在提取出目标语音的声学特征后,为了能够有效降低识别结果的延时,可以按照预设字边界长度,计算出组成目标语音的各个最小语音单位(即音素,指的是构成目标语音各个音节的最小单位或最小的语音片段),此处将其定义为第一目标音素,然后对第一目标音素进行分析处理,以根据得到的处理结果,实现对目标语音的识别,得到延时较小的第一识别结果。
其中,一种优选的实现方式是,在计算出目标语音的第一目标音素后,进一步可以利用现有或未来出现的解码方法(如维特比(Viterbi)算法),对第一目标音素进行解码,以确定出目标语音对应的解码结果,作为第一识别结果。具体解码过程与现有方法一致,在此不再赘述。
同时,为了提高目标语音的识别结果的准确性,在通过步骤S102提取出目标语音的声学特征后,还需要采用强制截窗的识别方式进行识别,即按照大于字边界长度的预设窗长(如1s),对目标语音的声学特征进行处理,以根据处理结果,确定目标语音的识别结果,此处将其定义为第二识别结果。这样,在进行识别时,充分考虑了较长窗长内上下文中语音的声学特征信息,虽然识别结果的延时较高,但能够有效提高识别结果的准确性。
其中,预设窗长指的是预先设定的、使得解码结果准确率较高的窗长。需要说明的是,为了得到更为准确的识别结果,预设窗长的长度通常设置为大于字边界长度的较大长度,比如1s,即每1s的目标语音进行一次识别,以便利用大视野中更丰富的识别依据来获取准确性更高的识别结果。
具体来讲,一种可选的实现方式是,在提取出目标语音的声学特征后,为了能够提高识别结果的准确性,可以按照大于字边界长度的预设窗长,计算出组成目标语音的各个最小语音单位(即音素),此处将其定义为第二目标音素,然后对第二目标音素进行分析处理,以根据得到的处理结果,实现对目标语音的识别,得到准确性更高的第二识别结果。
其中,一种优选的实现方式是,在计算出目标语音的第二目标音素后,进一步可以利用现有或未来出现的解码方法(如维特比(Viterbi)算法),对第二目标音素进行解码,以确定出目标语音对应的解码结果,作为第二识别结果。具体解码过程与现有方法一致,在此不再赘述。
S104:根据第一识别结果和第二识别结果,确定目标语音的最终识别结果。
在本实施例中,通过步骤S103得到目标语音对应的延时较小的第一识别结果以及准确性更高的第二识别结果后,进一步可以计算出第一识别结果和第二识别结果之间的距离,以确定出二者之间的区别程度,然后再根据二者之间的区别程度,利用第二识别结果弥补第一识别结果在准确性上的不足,通过将两个识别结果进行综合处理,确定出延时较小且准确性也更高的识别结果,作为目标语音的最终识别结果。
具体来讲,一种可选的实现方式是,本步骤S104的具体实现过程可以包括下述步骤A-B:
步骤A:计算第二识别结果与第一识别结果的距离。
在本实现方式中,通过步骤S103计算出目标语音对应的延时较小的第一识别结果以及准确性更高的第二识别结果后,进一步可以计算出二者之间距离,用以执行后续步骤B。例如,可以依据编辑距离准则,计算出第二识别结果与第一识别结果之间的编辑距离,用以执行后续步骤B。
举例说明:假设第一识别结果为“我爱唱歌”,第二识别结果为“我爱跳舞”,则可以依据编辑距离准则,计算出使得第二识别结果与第一识别结果相同时需要的编辑次数为2,即,使得“我爱跳舞”与“我爱唱歌”相同时需要的编辑次数为2。
可以理解的是,如果使得第二识别结果与第一识别结果相同时需要的编辑次数为0,那么,则表明第二识别结果与第一识别结果是完全一致的。
步骤B:当编辑距离大于预设距离阈值时,将第二识别结果作为目标语音的最终识别结果;当距离不大于预设距离阈值时,将第一识别结果作为目标语音的最终识别结果。
需要说明的是,由于第一识别结果是按照预设字边界长度对目标语音的声学特征进行处理后得到的识别结果,说明第一识别结果的实时性更强、延时更小;相应的,由于第二识别结果是按照大于字边界长度的较大长度的预设窗长(即大视野,如1s)对目标语音的声学特征进行处理后得到的识别结果,说明第二识别结果的识别依据更丰富,相比第一识别结果来说,虽然第二识别结果的延时较大,但准确性更高。
因此,为了在对目标语音进行识别时,能够在降低识别结果的延时的同时,还能够提高识别结果的准确性。在通过步骤A计算出目标语音的第二识别结果与第一识别结果的距离(如编辑距离)后,进一步可以判断该距离是否大于预设距离阈值,若是,则表明第一识别结果的识别准确率太低,无法满足用户的要求,此时,即使其延时再小,为了提高的用户体验,也不能将其作为目标语音的识别结果,而是应该将准确性更高的第二识别结果作为目标语音的最终识别结果。反之,若判断出第二识别结果与第一识别结果的距离不大于预设距离阈值,则表明虽然第一识别结果的准确率没有第二识别结果高,但是也能够满足用户的要求,且为了降低识别结果的延时,达到流式的呈现效果,可以将延时较小的第一识别结果作为目标语音的最终识别结果。
需要说明的是,预设距离阈值的具体取值可根据实际情况进行设定,本申请实施例对此不进行限制,比如,以距离为编辑距离为例,则预设距离阈值即为预设编辑距离阈值,且可以将其设定为3等。
还需要说明的是,本申请对于上述步骤S103和步骤S104的具体实现过程不做限定,可以通过后续介绍的语音识别模型来实现,也可以根据实际情况选择其他实现方式。本申请实施例后续将以利用预先构建的语音识别模型实现上述步骤S103和S104的识别过程为例进行介绍:
具体来讲,上述步骤S103中的“根据目标语音的声学特征,按照预设字边界长度,对目标语音进行第一识别,得到第一识别结果;并按照预设窗长对目标语音进行第二识别,得到第二识别结果”的实现过程可以包括:将目标语音的声学特征输入至预先构建的语音识别模型,对目标语音进行识别,得到第一识别结果和第二识别结果。其中,参见图2,语音识别模型可以包括输入层、深度卷积层、字边界预测网络和解码层(包括实时解码层和全视野解码层,如图2所示)。利用该语音识别模型对目标语音进行识别的具体实现过程可以包括下述步骤C1-C3:
步骤C1:通过输入层将目标语音的声学特征按序输入至深度卷积层;并利用深度卷积层对目标语音的声学特征进行编码,得到语音编码结果。
在本实现方式中,在提取出目标语音的声学特征(如MCFF)向量后,进一步可以通过输入层将目标语音的声学特征向量按固定的窗长和窗移切分为独立的数据块并以时间顺序先后输入至深度卷积层(如图2所示的深度卷积网络),可以将目标语音“我爱北京天安门”的声学特征按200ms的窗长和窗移进行切分,得到各个独立的数据块,并按时间顺序先后输入至深度卷积层。
进一步的,将目标语音的声学特征按序输入至深度卷积层,对每一帧目标语音进行编码,得到语音编码结果(即目标语音对应的高阶语音特征表示向量)。其中,深度卷积层是由深度卷积网络结构组成的。例如,可以是由长短期记忆网络(Long Short-TermMemory,简称LSTM))组成,其中,该网络结构可以采用3*2的卷积核,以保证识别模型的视野只看到当前目标语音的历史语音帧,不需要未来目标语音帧的信息,进而保证深度卷积层在编码中无延迟。具体卷积编码过程与现有技术相同,在此不再赘述。
步骤C2:利用字边界预测网络对语音编码结果进行预测,或者,利用字边界预测网络对目标语音的声学特征进行预测,得到预设字边界长度。
在本实现方式中,通过模型的输入层将目标语音的声学特征按序输入至深度卷积层,并利用深度卷积层对目标语音的声学特征进行编码,得到语音编码结果后,进一步,可以将语音编码结果输入至字边界预测网络,以利用字边界预测网络对该语音编码结果进行预测,得到预设字边界长度,用以确定实时解码层在解码时采用的窗长和窗移。
具体来讲,字边界预测网络可以包括两层LSTM和两层深度神经网络(Deep NeuralNetworks,简称DNN)。在获取到语音编码结果后,可以采用前后多帧拼接的方式将其逐帧输入至字边界预测网络,以包含一定的上下文信息,并得到每一帧语音是否存在字边界的概率,此处将其定义为α,α的取值在0和1之间,取值越高(越接近于1),表明该帧位置有越大的可能存在字跳转边界,进而通过划定预设概率阈值进行判定,可以确定出将两个字边界间内语音编码结果对应的语音帧,用以作为预设字边界长度,执行后续步骤C3。
例如,如图2所示,假设预设概率阈值为0.7,则将语音编码结果逐帧输入至字边界预测网络时,当输入第3帧时字边界预测网络输出概率α2为0.9,超过了预设概率阈值0.7,则可能存在“我”和“爱”的转折点,则将可以将以3帧作为预设字边界长度。
或者,也可以直接利用字边界预测网络对目标语音的声学特征进行预测,得到预设字边界长度,如图2中虚线箭头指示。进而可以利用实时解码层,按照该预设字边界长度,对语音编码结果进行解码,得到目标语音的第一解码结果,具体实现过程与上述过程类似,仅是将语音编码结果替换为目标语音的声学特征,在此不再赘述。
步骤C3:利用实时解码层,按照预设字边界长度,对语音编码结果进行解码,得到目标语音的第一识别结果;以及利用全视野解码层,按照全视野的预设窗长,对语音编码结果进行解码,得到目标语音的第二识别结果。
通过步骤C确定出预设字边界长度后,进一步可以利用实时解码层,按照预设字边界长度,对语音编码结果进行解码,得到解码结果,并将其作为目标语音的第一识别结果。例如:基于步骤C2中的举例,可以将确定出的每一数据块的语音编码结果输入实时解码层(即图2所示的小延时流式实时之路)进行音素识别,并根据识别结果进行解码,得到目标语音“我爱北京天安门”的解码结果,作为第一识别结果。
需要说明的是,若长时间未确定出字跳转边界,则为了保证目标语音识别流程的正常进行以及解码的实时性,可以预先设置一个最大字边界长度,如500ms,即,当500ms内未检测出字跳转边界,则将强制将最大500ms语音对应的语音编码结果输入实时解码层进行音素识别,并根据识别结果进行解码,得到解码结果,作为目标语音的第一解码结果,以防止因为说话人发音时,在存在噪声等复杂场景下,导致字边界预测网络失效的异常情况,造成识别结果有误。
同时,当缓存或积累的语音编码结果的长度满足大视野或全视野的预设窗长(如1s)时,可以将缓存或积累的预设窗长的语音编码结果输入全视野解码层(即图2所示的大视野/全视野支路),以利用该全视野解码层,按照全视野的预设窗长,对语音编码结果进行解码,如对每1s的语音编码结果进行一次识别,得到目标语音的解码结果,并将其作为目标语音的第二识别结果。
这样,由于利用实时解码层,按照预设字边界长度,对语音编码结果进行解码,得到的目标语音的第一解码结果的实时性更强、延时更小。而利用全视野解码层,按照全视野的预设窗长,对语音编码结果进行解码,得到目标语音的第二解码结果的准确性更高。所以,为了保证呈现出语音的流式识别效果,可以将第一解码结果作为目标语音的初步识别结果,以保证解码的实时性。但同时,会依据第二识别结果与第一识别结果之间的距离,利用第二识别结果弥补第一识别结果在准确性上的不足,以确定出延时较小且准确性也更高的识别结果,作为目标语音的最终识别结果。
例如,以第二识别结果与第一识别结果之间的编辑距离(即,使得第二识别结果与第一识别结果相同时需要的编辑次数)为例。若计算出使得第二识别结果与第一识别结果相同时需要的编辑次数为0,则说明第二识别结果与第一识别结果完全一致,那么此时可以将第一识别结果作为目标语音的最终识别结果。若计算出使得第二识别结果与第一识别结果相同时需要的编辑次数不为0,则说明第二识别结果与第一识别结果不完全一致,那么需要进一步判断该编辑次数是否超过预设次数阈值,若是,则此时需要利用准确性更高的第二识别结果替换作为初步识别结果的第一解码结果,作为目标语音的最终识别结果,以弥补此时将第一解码结果作为目标语音的初步识别结果时导致的识别结果准确性不高的问题。若否,则此时可以将第一识别结果作为目标语音的最终识别结果。
例如,如图2所示,假设预设次数阈值为2,且第一识别结果为“我挨天津”,第二识别结果为“我爱北京”,且二者的编辑距离(即使得第二识别结果“我爱北京”与第一识别结果“我挨天津”相同时需要的编辑次数)为3,超过了编辑次数阈值2,则可以采用第二识别结果“我爱北京”替换第一识别结果“我挨天津”,作为目标语音的识别结果。
此外,一种可选的实现方式是,上述语音识别模型中的全视野解码层中的大视野/全视野支路可以采用常规多头注意力结构。而为了解决模型的训练和测试阶段的不匹配会造成识别结果不准确的问题,即,为了在增加网络深度的同时控制视野的叠加效应,使得模型的训练和测试阶段均在小视野下匹配进行,上述语音识别模型中的实时解码层中的小延时流式支路采用如图3所示的结构。将未来窗拆分为独立支路进行计算。即,将第一层多头注意力层的未来窗信息缓存,并经过全连接层将其变换后作为下一层多头注意力层的未来窗的输入,以此达到未来窗视野的截断,且网络多层叠加但视野不线性递增。再通过保证网络总视野长度和第一层多头注意力层的未来窗视野保持一致的方式,以保证模型的训练和使用过程的视野是全匹配的。
具体来讲,需要说明的是,在目前常规的多头注意力结构中,第n层多头注意力神经网络层输入为X
因此,为了实现模型训练中网络加深但视野不递增,且保留未来窗,以最大限度减小效果损失,如图3所示,本申请将未来窗拆分为独立支路进行计算,即,将第一层多头注意力层的未来窗信息缓存下来,即K
Attention(Q
Attention(Q
其中,Q
还需要说明的是,对于语音识别模型的具体构建过程,可参见后续第二实施例的相关介绍。
综上,本实施例提供的一种语音识别方法,首先获取待识别的目标语音,提取目标语音的声学特征,然后再根据目标语音的声学特征,按照预设字边界长度,对目标语音进行第一识别,得到第一识别结果;并按照预设窗长对目标语音进行第二识别,得到第二识别结果,其中,预设窗长大于预设字边界长度;接着,可以根据第一识别结果和第二识别结果,确定目标语音的最终识别结果。可见,由于本申请实施例是按照预设字边界长度和较大的预设窗长分别对目标语音进行识别,再综合得到的两个识别结果确定最终的语音识别结果,不仅考虑了识别实时性,也丰富了目标语音的识别依据,从而不仅能够降低识别结果的延时,也能够提高识别结果的准确率。
本实施例将对上述实施例中提及的语音识别模型的构建过程进行介绍。
参见图4,其示出了本实施例提供的构建语音识别模型的流程示意图,该流程包括以下步骤:
S401:获取样本语音。
在本实施例中,为了构建语音识别模型,需要预先进行大量的准备工作,首先,需要收集大量用户在说话时发出的语音数据,比如,可以通过麦克风阵列拾音,拾音设备可以是平板电脑,亦或是智能硬件设备,如智能音响、电视和空调等,通常需要收集至少数千小时的语音数据,并对其进行降噪处理,这些语音数据可覆盖多种应用场景(如车载、家居等),进而可以将收集到的用户的各条语音数据分别作为样本语音,同时,预先通过人工标注出这些样本语音对应的文本信息,用以训练语音识别模型。
S402:提取样本语音的声学特征。
在本实施例中,通过步骤S401获取到样样本语音后,并不能直接用于训练生成语音识别模型,而是需要采用与第一实施例步骤S102中提取目标语音的声学特征类似的方法,将目标语音对替换为样本语音,即可提取出各条样本语音的声学特征,相关之处请参见第一实施例的介绍,在此不再赘述。
S403:根据样本语音的声学特征以及样本语音对应的文本识别标签对初始语音识别模型进行训练,生成语音识别模型。
在进行本轮训练时,可以将第一实施例中目标语音替换为本轮获取的样本语音,通过当前的初始语音识别模型,按照第一实施例中的执行过程,便可以输出该样本语音对应的识别结果。
具体地,按照上述第一实施例中的步骤C1-C3,便可以在提取出样本语音的声学特征后,通过初始语音识别模型确定出样本语音对应的识别结果。然后,可以将该识别结果与样本语音对应的人工标注的文本信息进行比较,并根据二者的差异对模型参数进行更新,直至满足预设的条件,比如达到预设训练次数,则停止模型参数的更新,完成语音识别模型的训练,生成一个训练好的语音识别模型。
通过上述实施例,可以根据样本语音训练生成语音识别模型,进一步的,还可以利用验证语音对生成的语音识别模型进行验证。具体验证过程可以包括下述步骤S501-S504:
步骤S501:获取验证语音。
在本实施例中,为了实现对语音识别模型进行验证,首先需要获取验证语音,其中,验证语音指的是可以用来进行语音识别模型验证的音频信息,在获取到这些验证语音后,可继续执行后续步骤S502。
步骤S502:提取验证语音的声学特征。
通过步骤S501获取到验证语音后,并不能直接用于验证语音识别模型,而是需要先提取出验证语音的声学特征,然后再根据该验证语音的声学特征,验证得到的语音识别模型。
步骤S503:将验证语音的声学特征输入语音识别模型,获得验证语音的文本识别结果。
通过步骤S502提取出验证语音的声学特征后,进一步的,可以将验证语音的声学特征输入语音识别模型,获得验证语音的文本识别结果,用以执行后续步骤S504。
步骤S504:当验证语音的文本识别结果与验证语音对应的文本标记结果不一致时,将验证语音重新作为样本语音,对语音识别模型进行更新。
通过步骤S503获得验证语音的文本识别结果后,若验证语音的文本识别结果与验证语音对应的人工标注的文本标记结果不一致,则可以将验证语音重新作为样本语音,对语音识别模型进行参数更新。
通过上述实施例,可以利用验证语音对语音识别模型进行有效验证,当验证语音的文本识别结果与验证语音对应的人工标注的文本标记结果不一致时,可以及时调整更新语音识别模型,进而有助于提高识别模型的识别精度和准确性。
综上,利用本实施例训练而成的语音识别模型,可以按照预设字边界长度和预设窗长,计算出目标语音对应的目标音素,作为更丰富的识别依据,识别出目标语音对应的文本信息,从而能够在对目标语音进行识别时,降低识别结果的延时并提高识别结果的准确率。
本实施例将对一种语音识别装置进行介绍,相关内容请参见上述方法实施例。
参见图6,为本实施例提供的一种语音识别装置的组成示意图,该装置600包括:
第一获取单元601,用于获取待识别的目标语音;
第一提取单元602,用于提取所述目标语音的声学特征;
识别单元603,用于根据所述目标语音的声学特征,按照预设字边界长度,对所述目标语音进行第一识别,得到第一识别结果;并按照预设窗长对所述目标语音进行第二识别,得到第二识别结果,其中,所述预设窗长大于所述预设字边界长度;
确定单元604,用于根据所述第一识别结果和所述第二识别结果,确定所述目标语音的最终识别结果。
在本实施例的一种实现方式中,所述识别单元603具体用于:
根据所述目标语音的声学特征,按照预设字边界长度,计算所述目标语音对应的第一目标音素;并根据所述第一目标音素,对所述目标语音进行识别,得到第一识别结果;
以及根据所述目标语音的声学特征,按照预设窗长,计算所述目标语音对应的第二目标音素;得并根据所述第二目标音素,对所述目标语音进行识别,到第二识别结果。
在本实施例的一种实现方式中,所述确定单元604包括:
计算子单元,用于计算所述第二识别结果与所述第一识别结果的距离;
确定子单元,用于当所述距离大于预设距离阈值时,将所述第二识别结果作为所述目标语音的最终识别结果;当所述距离不大于所述预设距离阈值时,将所述第一识别结果作为所述目标语音的最终识别结果。
在本实施例的一种实现方式中,所述识别单元603具体用于:
将所述目标语音的声学特征输入至预先构建的语音识别模型,对所述目标语音进行识别,得到第一识别结果和第二识别结果;
其中,所述语音识别模型包括输入层、深度卷积层、字边界预测网络和解码层。
在本实施例的一种实现方式中,所述解码层包括实时解码层和全视野解码层;所述识别单元603包括:
编码子单元,用于通过所述输入层将所述目标语音的声学特征按序输入至所述深度卷积层;并利用所述深度卷积层对所述目标语音的声学特征进行编码,得到语音编码结果;
预测子单元,用于利用所述字边界预测网络对所述语音编码结果进行预测,或者,利用所述字边界预测网络对所述目标语音的声学特征进行预测,得到所述预设字边界长度;
解码子单元,用于利用所述实时解码层,按照所述预设字边界长度,对所述语音编码结果进行解码,得到所述目标语音的第一识别结果;以及利用所述全视野解码层,按照所述全视野的预设窗长,对所述语音编码结果进行解码,得到所述目标语音的第二识别结果。
在本实施例的一种实现方式中,所述装置还包括:
第二获取单元,用于获取样本语音;
第二提取单元,用于提取所述样本语音的声学特征;
训练单元,用于根据所述样本语音的声学特征以及所述样本语音对应的文本识别标签对初始语音识别模型进行训练,生成所述语音识别模型。
在本实施例的一种实现方式中,所述装置还包括:
第三获取单元,用于获取验证语音;
第三提取单元,用于提取所述验证语音的声学特征;
获得单元,用于将所述验证语音的声学特征输入所述语音识别模型,获得所述验证语音的文本识别结果;
更新单元,用于当验证语音的文本识别结果与所述验证语音对应的文本标记结果不一致时,将所述验证语音重新作为所述样本语音,对所述语音识别模型进行更新。
进一步地,本申请实施例还提供了一种语音识别设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述语音识别方法的任一种实现方法。
进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述语音识别方法的任一种实现方法。
进一步地,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述语音识别方法的任一种实现方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本申请各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 语音设备的语音识别方法、语音设备及可读存储介质
- 一种语音识别方法、装置、存储介质及语音设备