本公开的实施方式涉及语音识别技术领域,更具体地,本公开的实施方式涉及基于多模型的语音识别方法、介质、装置和计算设备。
背景技术:
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是相关技术。
目前,中文语音识别模型在一些特定场景下经常出现识别不准确的问题,包括待识别语音片段中包含多同音字、生僻汉字以及训练数据分布不均衡等场景。例如,语音数据“我这一身汗澡白洗了”,容易被误识别为“我这一身汗早白洗了”。其中,“澡”与“早”属于同音字,而且在训练数据中“早”出现的频率远远高于“澡”出现的频率,存在分布不均衡的情况,从而导致识别结果不够准确。
相关技术有两种方式来解决上述问题,第一种方式是数据增广,第二种方式是多模型二次打分。数据增广是指对容易识别出错的语音数据执行一些操作,如音量扰动、语速调节和频谱掩蔽等,从而增加数据的多样性。多模型二次打分是指使用两个模型以多任务学习的方式同时训练,在识别阶段,利用一个模型生成若干个最有可能的候选文本序列,再用另一个模型对该若干个候选文本序列进行二次打分,从而筛选出最有可能的文本序列作为识别结果。
但是,第一种方式只是对原音频数据做了轻微的调节,其对应的文本标注并未改变,也没有引入新的数据标注信息,所以能够带来的上述场景的识别率提升有限,此外,对于语音数据集里原本就不存在的生僻字情况,也无法解决。第二种方式对生成候选文本序列的模型准确度要求较高,若该模型生成的候选文本序列中无正确结果,则二次打分也不能提高识别的准确率;而且,当两个模型采用不同的建模单元时,如汉字建模单元和拼音建模单元,则二次打分中不同建模单元之间的映射空间会爆炸式增长,计算量巨大,在实际生产环境中不易实现。
技术实现要素:
本公开期望提供一种语音识别方法和装置。
在本公开实施方式的第一方面中,提供了一种语音识别方法,包括:
对待识别的音频数据进行特征提取以获得对应于所述音频数据的声学特征;
将所述声学特征输入预先训练的多个语音识别模型,以分别获得对应于各个语音识别模型的多个目标概率分布,所述多个目标概率分布对应于多个级别的声学标签体系,相应的目标概率分布表征在该级别的声学标签体系下,各声学标签与所述声学特征之间的匹配程度;
对所述多个目标概率分布进行融合解码,以得到所述音频数据的识别结果。
在本公开的一个实施例中,所述多个级别的声学标签体系包括以下至少两种:文字级别的声学标签体系,音节级别的声学标签体系,音素级别的声学标签体系,以及带有上下文背景信息的音素级别的标签体系。
在本公开的一个实施例中,所述对所述多个目标概率分布进行融合解码,以得到所述音频数据的识别结果,包括:
根据所述多个目标概率分布构造各个语音识别模型的解码路径,所述解码路径表征对应语音识别模型对声学特征的识别过程,识别结束时得到的解码路径表征针对该声学特征识别到的声学标签;
基于所述各个语音识别模型的解码路径计算解码目标函数,找到使所述解码目标函数最大的解码路径,将该解码路径作为所述音频数据的识别结果。
在本公开的一个实施例中,所述根据所述多个目标概率分布构造各个语音识别模型的解码路径,包括:
确定每个语音识别模型对应声学标签体系内的元素,以元素为前缀并基于该语音识别模型对应的目标概率分布,构造该语音识别模型的解码路径。
在本公开的一个实施例中,所述以元素为前缀并基于该语音识别模型对应的目标概率分布,构造该语音识别模型的解码路径,包括:
以所述语音识别模型对应声学标签体系内的首个元素为前缀,根据下一个元素的目标概率分布选出该下一个元素的候选结果,由所述前缀与候选结果构造出当前的解码路径进行解码;
以此类推,每一次解码将上一次的解码路径作为当前的前缀,结合下一个元素构造出当前的解码路径,直至得到完整的解码路径。
在本公开的一个实施例中,所述根据下一个元素的目标概率分布选出该下一个元素的候选结果,包括:
对所述下一个元素的识别结果按照目标概率分布从高到低进行排序,选出排序在前的指定个数的目标概率分布;
将选出的目标概率分布对应的识别结果作为该下一个元素的候选结果。
在本公开的一个实施例中,所述基于所述各个语音识别模型的解码路径计算解码目标函数,包括:
基于所述各个语音识别模型的解码路径计算对应于所述各个语音识别模型的前缀得分;
将所述各个语音识别模型的前缀得分与设置的对应权重相乘,然后对得到的所有乘积求和,得到解码目标函数。
在本公开的一个实施例中,所述基于所述各个语音识别模型的解码路径计算对应于所述各个语音识别模型的前缀得分,包括:
对每个语音识别模型,计算该语音识别模型的解码路径的选中率,对得到的所有解码路径的选中率求和然后取对数,得到该语音识别模型的前缀得分。
在本公开的一个实施例中,所述找到使所述解码目标函数最大的解码路径,将该解码路径作为所述音频数据的识别结果,包括:
采用预设的稀疏矩阵,将所述解码目标函数内各个语音识别模型的解码路径统一转换为指定级别的解码路径,所述稀疏矩阵为不同级别的声学标签体系元素之间的映射关系,用于将一个级别的声学标签体系元素转换至另一个级别的声学标签体系元素;
找到使所述解码目标函数最大的解码路径,将该解码路径作为所述指定级别下的所述音频数据的识别结果。
在本公开的一个实施例中,所述指定级别为文字级别、音节级别、音素级别或带有上下文背景信息的音素级别。
在本公开的一个实施例中,所述方法还包括以下至少之一:
解码时若检测到语句结束标志,则结束解码;
解码时若检测到静音标志后超过指定时长,则结束解码;
解码时若当前状态符合指定的结束状态,则结束解码。
在本公开的一个实施例中,所述对待识别的音频数据进行特征提取以获得对应于所述音频数据的声学特征,包括:
按照指定时长的窗口和间隔对待识别的音频数据进行采样;
对每个窗口内的采样点进行离散傅里叶变换;
根据所述离散傅里叶变换的结果计算得到梅尔空间的能量;
对所述梅尔空间的能量滤波后进行离散余弦变换,得到梅尔频率倒谱系数,将所述梅尔频率倒谱系数作为对应于所述音频数据的声学特征。
在本公开的一个实施例中,所述方法还包括:
使用语音训练数据和初始标签,对所述多个语音识别模型进行训练,所述初始标签为所述语音训练数据对应的最粗级别的文本。
在本公开的一个实施例中,所述使用语音训练数据和初始标签,对所述多个语音识别模型进行训练,包括:
输入语音训练数据至所述多个语音识别模型中分别得到对应的声学标签;
为得到的每个声学标签计算代价函数并设置对应的权重,将各个声学标签的代价函数与对应的权重乘积后求和得到总代价函数;
根据初始标签以所述总代价函数最小为目标对所述多个语音识别模型进行训练。
在本公开实施方式的第二方面中,提供了一种语音识别装置,包括:
提取模块,用于对待识别的音频数据进行特征提取以获得对应于所述音频数据的声学特征;
识别模块,用于将所述声学特征输入预先训练的多个语音识别模型,以分别获得对应于各个语音识别模型的多个目标概率分布,所述多个目标概率分布对应于多个级别的声学标签体系,相应的目标概率分布表征在该级别的声学标签体系下,各声学标签与所述声学特征之间的匹配程度;
融合模块,用于对所述多个目标概率分布进行融合解码,以得到所述音频数据的识别结果。
在本公开的一个实施例中,所述多个级别的声学标签体系包括以下至少两种:文字级别的声学标签体系,音节级别的声学标签体系,音素级别的声学标签体系,以及带有上下文背景信息的音素级别的标签体系。
在本公开的一个实施例中,所述融合模块包括:
构造子模块,用于根据所述多个目标概率分布构造各个语音识别模型的解码路径,所述解码路径表征对应语音识别模型对声学特征的识别过程,识别结束时得到的解码路径表征针对该声学特征识别到的声学标签;
计算子模块,用于基于所述各个语音识别模型的解码路径计算解码目标函数,找到使所述解码目标函数最大的解码路径,将该解码路径作为所述音频数据的识别结果。
在本公开的一个实施例中,所述构造子模块包括:
确定单元,用于确定每个语音识别模型对应声学标签体系内的元素;
构造单元,用于以元素为前缀并基于该语音识别模型对应的目标概率分布,构造该语音识别模型的解码路径。
在本公开的一个实施例中,所述构造单元用于:
以所述语音识别模型对应声学标签体系内的首个元素为前缀,根据下一个元素的目标概率分布选出该下一个元素的候选结果,由所述前缀与候选结果构造出当前的解码路径进行解码;
以此类推,每一次解码将上一次的解码路径作为当前的前缀,结合下一个元素构造出当前的解码路径,直至得到完整的解码路径。
在本公开的一个实施例中,所述构造单元具体用于按照如下方式选出该下一个元素的候选结果:
对所述下一个元素的识别结果按照目标概率分布从高到低进行排序,选出排序在前的指定个数的目标概率分布;
将选出的目标概率分布对应的识别结果作为该下一个元素的候选结果。
在本公开的一个实施例中,所述计算子模块包括:
第一计算单元,用于基于所述各个语音识别模型的解码路径计算对应于所述各个语音识别模型的前缀得分;
第二计算单元,用于将所述各个语音识别模型的前缀得分与设置的对应权重相乘,然后对得到的所有乘积求和,得到解码目标函数。
在本公开的一个实施例中,所述第一计算单元用于:
对每个语音识别模型,计算该语音识别模型的解码路径的选中率,对得到的所有解码路径的选中率求和然后取对数,得到该语音识别模型的前缀得分。
在本公开的一个实施例中,所述计算子模块用于:
采用预设的稀疏矩阵,将所述解码目标函数内各个语音识别模型的解码路径统一转换为指定级别的解码路径,所述稀疏矩阵为不同级别的声学标签体系元素之间的映射关系,用于将一个级别的声学标签体系元素转换至另一个级别的声学标签体系元素;
找到使所述解码目标函数最大的解码路径,将该解码路径作为所述指定级别下的所述音频数据的识别结果。
在本公开的一个实施例中,所述指定级别为文字级别、音节级别、音素级别或带有上下文背景信息的音素级别。
在本公开的一个实施例中,所述装置还包括以下至少之一:
第一结束模块,用于解码时若检测到语句结束标志,则结束解码;
第二结束模块,用于解码时若检测到静音标志后超过指定时长,则结束解码;
第三结束模块,用于解码时若当前状态符合指定的结束状态,则结束解码。
在本公开的一个实施例中,所述提取模块用于:
按照指定时长的窗口和间隔对待识别的音频数据进行采样;
对每个窗口内的采样点进行离散傅里叶变换;
根据所述离散傅里叶变换的结果计算得到梅尔空间的能量;
对所述梅尔空间的能量滤波后进行离散余弦变换,得到梅尔频率倒谱系数,将所述梅尔频率倒谱系数作为对应于所述音频数据的声学特征。
在本公开的一个实施例中,所述装置还包括:
训练模块,用于使用语音训练数据和初始标签,对所述多个语音识别模型进行训练,所述初始标签为所述语音训练数据对应的最粗级别的文本。
在本公开的一个实施例中,所述训练模块用于:
输入语音训练数据至所述多个语音识别模型中分别得到对应的声学标签;
为得到的每个声学标签计算代价函数并设置对应的权重,将各个声学标签的代价函数与对应的权重乘积后求和得到总代价函数;
根据初始标签以所述总代价函数最小为目标对所述多个语音识别模型进行训练。
在本公开实施方式的第三方面中,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现上述语音识别方法的步骤。
在本公开实施方式的第四方面中,提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现语音识别方法的步骤。
根据本公开实施方式的语音识别方法和装置,通过将待识别的音频数据进行特征提取后输入预先训练的多个语音识别模型,得到对应的多个目标概率分布并进行融合解码,从而得到识别结果。由于识别结果是在多个语音识别模型识别的基础上融合解码得出的,而该多个语音识别模型对应于多个级别的声学标签体系,能够在该多个级别的声学标签体系下对音频数据进行识别,因此,可以覆盖更多的应用场景,如生僻字、多同音字等数据分布不均匀的场景,并且基于融合解码进一步提高了中文语音识别的准确度以及模型的鲁棒性。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示意性地示出了根据本公开一实施方式的语音识别方法实现流程图一;
图2示意性地示出了根据本公开一实施方式的语音识别方法实现流程图二;
图3示意性地示出了根据本公开一实施方式的稀疏矩阵示意图;
图4示意性地示出了根据本公开一实施方式的测试流程示意图;
图5示意性地示出了根据本公开一实施方式的模型训练实现流程图;
图6示意性地示出了根据本公开一实施方式的训练流程示意图;
图7示意性地示出了根据本公开一实施方式的训练和测试的流程示意图;
图8示意性地示出了根据本公开一实施方式的用于语音识别方法的介质示意图;
图9示意性地示出了根据本公开一实施方式的语音识别装置结构示意图;
图10示意性地示出了根据本公开一实施方式的计算设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提出了一种语音识别方法、介质、装置和计算设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
本公开人发现,现有的中文语音识别技术中,数据增广方式受限于语音数据集不够全面可能会出现无法识别的问题,多模型二次打分方式在两个模型采用不同的建模单元时,可能会出现映射空间爆炸式增长的情况,在实际生产环境中不易实现。
有鉴于此,本公开提供一种语音识别方法和装置,通过对待识别的音频数据进行特征提取以获得对应于音频数据的声学特征,将声学特征输入预先训练的多个语音识别模型,以分别获得对应于各个语音识别模型的多个目标概率分布,对该多个目标概率分布进行融合解码,以得到音频数据的识别结果。由于识别结果是在多个语音识别模型识别的基础上融合解码得出的,而该多个语音识别模型对应于多个级别的声学标签体系,能够在该多个级别的声学标签体系下对音频数据进行识别,因此,可以覆盖更多的应用场景,如生僻字、多同音字等数据分布不均匀的场景,并且基于融合解码进一步提高了中文语音识别的准确度以及模型的鲁棒性。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
本公开提供的语音识别方法和装置,可以应用于中文语音识别的场景。中文语音识别的应用场景很广泛,包括实时语音输入、智能语音客服、机器人对话、实时会议记录、演讲字幕同屏、课堂音频识别等多种多样的场景。在上述各种应用场景中都可能会出现生僻字或同音字等特殊音频数据的识别,本公开提供的技术方案,通过多个语音识别模型在多个级别的声学标签体系下对音频数据进行识别,能够覆盖更多的应用场景,包括上述生僻字或同音字等特殊音频数据的识别场景,并且基于融合解码进一步提高了中文语音识别的准确度以及模型的鲁棒性。
示例性方法
下面参考图1来描述根据本公开示例性实施方式的语音识别方法。如图1所示,本公开实施例的语音识别方法包括以下步骤:
s11:对待识别的音频数据进行特征提取以获得对应于音频数据的声学特征;
s12:将声学特征输入预先训练的多个语音识别模型,以分别获得对应于各个语音识别模型的多个目标概率分布;
其中,该多个目标概率分布对应于多个级别的声学标签体系,相应的目标概率分布表征在该级别的声学标签体系下,各声学标签与声学特征之间的匹配程度;
s13:对该多个目标概率分布进行融合解码,以得到音频数据的识别结果。
通过上述过程,本公开实施例可以通过多个语音识别模型在多个级别的声学标签体系下对音频数据进行识别,能够覆盖更多的应用场景,包括生僻字或同音字等数据分布不均匀的识别场景,并且基于融合解码进一步提高了中文语音识别的准确度以及模型的鲁棒性。
本公开实施例涉及的多个级别的声学标签体系可以包括以下至少两种:文字(word)级别的声学标签体系,音节(syllable)级别的声学标签体系,音素(phone)级别的声学标签体系,以及带有上下文背景信息的音素(context-dependentphone)级别的标签体系。
其中,文字级别的声学标签同时包含了声学信息和语言学信息,可以表现为相同的发音在不同的上下文中对应不同的汉字。音节级别的声学标签包含了纯声学信息,可以表现为相同的发音对应的音节级别的声学标签完全一致,如音频数据中的“是”和“市”都对应音节级别的声学标签“shi4”。音素级别的声学标签则包含了更小粒度的声学信息,对应于持续时间更短的声学特征序列,如声母或韵母等。带有上下文背景信息的音素级别的声学标签除了包含音素信息,还包含了音素上下文背景信息,粒度更细,能够更详细地反映音频数据的声学特征。
例如,音频数据为“同学们上课了”,在文字级别的声学标签体系下标注的声学标签为文字“同学们上课了”,在音节级别的声学标签体系下标注的声学标签为音节“tong2xue2men5shang4ke4le5”,在音素级别的声学标签体系下标注的声学标签为因素“tong2xue2men5shang4ke4le5”,因此,通过多个语音识别模型能够学习到音频数据对应于不同级别声学标签的映射关系。当在音频数据中检测到发音“同”时,上述三个语音识别模型分别输出“同”、“tong2”和“tong2”的目标概率分布,进而可以根据这三个目标概率分布进行融合解码,得到音频数据的识别结果。
在一种可能的实施方式中,s11可以包括:
按照指定时长的窗口和间隔对待识别的音频数据进行采样;
对每个窗口内的采样点进行离散傅里叶变换;
根据离散傅里叶变换的结果计算得到梅尔空间的能量;
对梅尔空间的能量滤波后进行离散余弦变换,得到梅尔频率倒谱系数,将梅尔频率倒谱系数(mfcc)作为对应于音频数据的声学特征。
下面以一个具体的示例来说明特征提取的过程。例如,指定时长为25ms的窗口,间隔为10ms,对待识别的音频数据进行特征提取过程如下:
1)将待识别的音频数据按时间切割成25ms的窗口片段,以16000采样率的音频为例,该窗口片段中包含0.025×16000=400个采样点;窗口与窗口之间的间隔为10ms,允许窗口之间有重叠;
2)对于每个窗口内的采样点进行离散傅里叶变换(dft),具体公式如下:
其中si(k)为dft结果,h(n)是长度为n的汉明窗,k是dft的长度。
3)根据离散傅里叶变换的结果计算得到梅尔mel空间的能量,公式如下:
其中,si(k)为dft结果,pi(k)为梅尔空间的能量;
4)对梅尔空间的能量滤波后进行离散余弦变换(dct),得到梅尔频率倒谱系数(mfcc),将mfcc作为对应于音频数据的声学特征。
上述mfcc声学特征的提取方式,基于汉明窗采样以及dct计算,有效地实现了声学特征提取,且提高了提取的准确性,为语音识别提供了有力的数据支持。
在一种可能的实施方式下,上述方法还包括以下至少之一:
解码时若检测到语句结束标志,则结束解码;
解码时若检测到静音标志后超过指定时长,则结束解码;
解码时若当前状态符合指定的结束状态,则结束解码。
上述多种结束解码的方式,丰富了控制解码结束的手段,实际应用中可以根据需要灵活设置具体的实施方式,方便且快捷。
在一种可能的实施方式下,上述方法还可以包括:
使用语音训练数据和初始标签,对多个语音识别模型进行训练,该初始标签为语音训练数据对应的最粗级别的文本。
上述基于语音训练数据和初始标签对多个语音识别模型进行训练的方式,可以在最粗级别文本对应的语音训练数据的基础上进行训练,使得语音识别模型更容易学习到音频数据与声学标签的映射关系,加速了模型训练的收敛,提高了训练的速度。
本公开实施例中,文字级别、音节级别、音素级别以及带有上下文背景信息的音素级别,这四个级别中最粗的级别为文字级别,最细的级别为带有上下文背景信息的音素级别。例如,音频训练数据为“同学们上课了”,对应的初始标签就是最粗级别的文本“同学们上课了”。
图2示意性地示出了根据本公开一实施方式的语音识别方法实现流程图。如图2所示,本公开实施例的语音识别方法包括以下步骤:
s21:对待识别的音频数据进行特征提取以获得对应于音频数据的声学特征;
s22:将声学特征输入预先训练的多个语音识别模型,以分别获得对应于各个语音识别模型的多个目标概率分布;
其中,上述多个目标概率分布对应于多个级别的声学标签体系,相应的目标概率分布表征在该级别的声学标签体系下,各声学标签与声学特征之间的匹配程度;
本公开实施例中,上述多个语音识别模型可以使用多种结构来实现,如使用hmm-gmm(hiddenmarkovmodel-gaussianmixedmodel,隐马尔科夫模型-高斯混合模型)结构。使用该结构可以通过hmm的前向后向算法,动态地得到最有可能的隐状态序列,从而得到音频数据对应的声学标签。例如,音频数据为“上海是国际大都市”,通过上述结构的语音识别模型可以得到音节级别的声学标签“shang4hai3shi4guo2ji4da4du1shi4”,以及音素级别的声学标签“shang4hai3shi4guo2ji4da4du1shi4”。
s23:确定每个语音识别模型对应声学标签体系内的元素,以语音识别模型对应声学标签体系内的首个元素为前缀,根据下一个元素的目标概率分布选出该下一个元素的候选结果,由前缀与候选结果构造出当前的解码路径进行解码;以此类推,每一次解码将上一次的解码路径作为当前的前缀,结合下一个元素构造出当前的解码路径,直至得到完整的解码路径;
在一种可能的实施方式中,上述根据下一个元素的目标概率分布选出该下一个元素的候选结果,可以包括:
对下一个元素的识别结果按照目标概率分布从高到低进行排序,选出排序在前的指定个数的目标概率分布;将选出的目标概率分布对应的识别结果作为该下一个元素的候选结果。
本公开实施例中,上述解码路径表征对应语音识别模型对声学特征的识别过程,识别结束时得到的解码路径表征针对该声学特征识别到的声学标签。
s24:基于各个语音识别模型的解码路径计算对应于各个语音识别模型的前缀得分;
在一种可能的实施方式中,s24可以具体包括:
对每个语音识别模型,计算该语音识别模型的解码路径的选中率,对得到的所有解码路径的选中率求和然后取对数,得到该语音识别模型的前缀得分。
上述语音识别模型的前缀得分可以用如下公式来表示:
其中,
s25:将各个语音识别模型的前缀得分与设置的对应权重相乘,然后对得到的所有乘积求和,得到解码目标函数;
上述解码目标函数用于在多个解码路径中求取最优的解码路径,实现方式为找到使解码目标函数最大的解码路径就视为最优的解码路径,进而可以将其作为音频数据的识别结果。具体可以用如下公式来表示:
其中,
s26:采用预设的稀疏矩阵,将解码目标函数内各个语音识别模型的解码路径统一转换为指定级别的解码路径;
其中,上述稀疏矩阵为不同级别的声学标签体系元素之间的映射关系,用于将一个级别的声学标签体系元素转换至另一个级别的声学标签体系元素。具体应用中,可以设置任意两个级别的声学标签体系元素之间的稀疏矩阵,从而方便进行不同级别的声学标签体系元素转换。通过这种转换可以实现将不同级别的解码路径都统一为指定级别的解码路径,从而可以在级别统一的基础上找到使解码目标函数最大的解码路径,得到音频数据的识别结果,提高了运算效率且实现了指定级别的识别结果输出。
上述指定级别可以为文字级别、音节级别、音素级别或带有上下文背景信息的音素级别。通常,指定级别为语音识别输出需要的级别,可以根据实际需要来设置,如将指定级别设置为文字级别等。如果上述多个语音识别模型中有对应指定级别的语音识别模型,则对该模型无需进行到指定级别的解码路径的转换,对其他级别的模型则进行到指定级别的解码路径的转换。为了方便实现,也可以引入单位矩阵作为稀疏矩阵,该稀疏矩阵的行与列元素相同,矩阵内只有对角线的值为1,其余值为0,从而可以完成同一级别的声学标签体系元素转换。如文字级别到文字级别的转换,音节级别到音节级别的转换等等。
通过上述过程,本公开实施例可以提高中文语音识别的准确度,能够适用于各种场景,包括数据分布不均匀的场景,如生僻字、多同音字等场景,且融合解码的方式显式地考虑了多个级别的语音识别模型的输出结果,可以在很大程度上解决数据分布不均匀的场景下识别不够准确的问题。引入多个语音识别模型,可以弥补单一语音识别模型识别不准确的缺陷,从而极大地提高了语音识别的效果,并且极大地提高了模型的鲁棒性。例如,在文字级别的语音识别模型的基础上,增加音节级别和音素级别的语音识别模型,可以极大地提升生僻字及多同音字等场景下的识别准确度。另外,基于稀疏矩阵进行解码路径的转换,能够在解码时快速地实现不同级别信息的融合,进一步提高语音识别的效率。
图3示意性地示出了根据本公开一实施方式的稀疏矩阵示意图。参见图3,稀疏矩阵为音节级别的声学标签体系元素和文字级别的声学标签体系元素的映射关系。其中,稀疏矩阵的行代表音节,列代表文字,矩阵中的值为0或1,0表示对应行和列的两个元素无映射关系,1表示对应行和列的两个元素有映射关系。例如,在第一行第一列的值为1,对应文字“大”与音节“da4”具有映射关系。其中,多音字“都”在稀疏矩阵中有两个值“1”,分别对应着其两个发音“du1”和“dou1”。
本公开实施例中,上述多个语音识别模型可以作为一个整体视为用于语音识别的网络,上述稀疏矩阵也可以视为该网络的最后一层,通过该稀疏矩阵进行线性矩阵运算,就可以完成不同级别的声学标签体系元素之间的转换,提高了实际使用中的运算效率。
s27:找到使解码目标函数最大的解码路径,将该解码路径作为指定级别下的音频数据的识别结果。
图4示意性地示出了根据本公开一实施方式的测试流程示意图。参见图4,对待识别的音频数据进行特征提取,获得声学特征,并分别输入至3个不同级别的语音识别模型1、语音识别模型2和语音识别模型3,得到各自对应的目标概率分布1、目标概率分布2和目标概率分布3。其中,三个语音识别模型的目标概率分布分别对应于不同级别的声学标签体系,分别表征在对应的声学标签体系下声学标签与声学特征之间的匹配程度。该不同级别可以根据需要设置为文字级别、音节级别、音素级别或带有上下文背景信息的音素级别中的任意三个级别。最后,对这三个不同级别的目标概率分布进行融合解码,得到该音频数据的识别结果,从而实现了基于多个语音识别模型的中文语音识别,能够覆盖更多的应用场景,包括生僻字或同音字等数据分布不均匀的识别场景,并且基于融合解码进一步提高了中文语音识别的准确度以及模型的鲁棒性。
图5示意性地示出了根据本公开一实施方式的模型训练实现流程图。如图5所示,本公开实施例的语音识别方法还包括以下步骤:
s51:输入语音训练数据至多个语音识别模型中分别得到对应的声学标签;
s52:为得到的每个声学标签计算代价函数并设置对应的权重;
s53:将各个声学标签的代价函数与对应的权重乘积后求和得到总代价函数;
上述总代价函数可以采用如下公式表示:
l=α1l1 α2l2 α3l3 …;
其中,l1,l2,l3,...分别为各个声学标签的代价函数,α1,α2,α3,...分别为对应各代价函数的权重,可以根据需要设置具体的数值,满足α1 α2 α3 …=1。
s54:根据初始标签以总代价函数最小为目标对多个语音识别模型进行训练。
其中,该初始标签为语音训练数据对应的最粗级别的文本。
通过上述过程,本公开实施例可以提高中文语音识别的准确度,能够适用于各种场景,包括数据分布不均匀的场景,如生僻字、多同音字等场景,而且基于多个语音识别模型进行多任务模式训练,能够学习到声学特征与声学标签之间的不同级别的对应关系,极大地提高了模型对于不同场景的鲁棒性,生僻字、多同音字等在字级别的声学标签无法区分和覆盖到的情况会得到很大程度的缓解。
图6示意性地示出了根据本公开一实施方式的训练流程示意图。参见图6,对待训练的音频数据进行特征提取,获得声学特征,并分别输入至不同级别的语音识别模型1、语音识别模型2等多个语音识别模型,得到各自对应的声学标签1、声学标签2等多个声学标签。其中,每个语音识别模型对应一个级别的声学标签体系,得到声学标签为相应级别的声学标签体系下的声学标签,从而可以得到多个级别的声学标签。然后使用初始标签和这些多个级别的声学标签对该多个语音识别模型进行训练,从而能够学习到声学特征与多个级别的声学标签之间的对应关系。这种训练方式丰富了模型的学习内容,增强了模型的学习能力,使得训练后的模型适用于更广泛的应用场景。
图7示意性地示出了根据本公开一实施方式的训练和测试的流程示意图。参见图7,本公开实施例提供的语音识别方法包括两个阶段:训练阶段和测试阶段。其中,在训练阶段,将语音训练数据输入多个语音识别模型得到各自对应的声学标签,该多个语音识别模型分别对应不同级别的声学标签体系。基于得到的多个声学标签对该多个语音识别模型进行训练,从而学习到声学特征与不同级别的声学标签之间的对应关系。在测试阶段,将待识别的音频数据输入训练好的各个语音识别模型,得到各自对应的目标概率分布。得到的多个目标概率分布分别对应于不同级别的声学标签体系,分别表征在对应的声学标签体系下声学标签与声学特征之间的匹配程度。最后,对这些不同级别的目标概率分布进行融合解码,得到该音频数据的识别结果,从而实现了基于多个语音识别模型的中文语音识别,能够覆盖更多的应用场景,且基于融合解码进一步提高了中文语音识别的准确度以及模型的鲁棒性。
本公开实施例提供的上述方法,与现有技术中的语音识别方法进行对比,结果可以如下表1所示。可以看出现有技术语音识别准确度较低,存在较多识别错误的情况,而本公开实施例的识别准确率非常高。由此可见,本公开实施例能够很好地提升同音字等数据分布不均匀场景下的语音识别准确率。
表1
示例性介质
在介绍了本公开示例性实施方式的方法之后,接下来,参考图8对本公开示例性实施方式的介质进行说明。
在一些可能的实施方式中,本公开的各个方面还可以实现为一种计算机可读介质,其上存储有程序,当所述程序被处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的语音识别方法中的步骤。
具体地,上述处理器执行上述程序时用于实现如下步骤:
对待识别的音频数据进行特征提取以获得对应于所述音频数据的声学特征;将所述声学特征输入预先训练的多个语音识别模型,以分别获得对应于各个语音识别模型的多个目标概率分布,所述多个目标概率分布对应于多个级别的声学标签体系,相应的目标概率分布表征在该级别的声学标签体系下,各声学标签与所述声学特征之间的匹配程度;对所述多个目标概率分布进行融合解码,以得到所述音频数据的识别结果。
需要说明的是:上述的介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图8所示,描述了根据本公开的实施方式的介质80,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序,并可以在设备上运行。然而,本公开不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算设备。
示例性装置
在介绍了本公开示例性实施方式的介质之后,接下来,参考图9对本公开示例性实施方式的装置进行说明。
如图9所示,本公开实施例的语音识别装置可以包括:
提取模块901,用于对待识别的音频数据进行特征提取以获得对应于音频数据的声学特征;
识别模块902,用于将声学特征输入预先训练的多个语音识别模型,以分别获得对应于各个语音识别模型的多个目标概率分布,多个目标概率分布对应于多个级别的声学标签体系,相应的目标概率分布表征在该级别的声学标签体系下,各声学标签与声学特征之间的匹配程度;
融合模块903,用于对多个目标概率分布进行融合解码,以得到音频数据的识别结果。
在一种可能的实施方式中,上述多个级别的声学标签体系包括以下至少两种:文字级别的声学标签体系,音节级别的声学标签体系,音素级别的声学标签体系,以及带有上下文背景信息的音素级别的标签体系。
在一种可能的实施方式中,上述融合模块包括:
构造子模块,用于根据多个目标概率分布构造各个语音识别模型的解码路径,解码路径表征对应语音识别模型对声学特征的识别过程,识别结束时得到的解码路径表征针对该声学特征识别到的声学标签;
计算子模块,用于基于各个语音识别模型的解码路径计算解码目标函数,找到使解码目标函数最大的解码路径,将该解码路径作为音频数据的识别结果。
在一种可能的实施方式中,上述构造子模块包括:
确定单元,用于确定每个语音识别模型对应声学标签体系内的元素;
构造单元,用于以元素为前缀并基于该语音识别模型对应的目标概率分布,构造该语音识别模型的解码路径。
在一种可能的实施方式中,上述构造单元用于:
以语音识别模型对应声学标签体系内的首个元素为前缀,根据下一个元素的目标概率分布选出该下一个元素的候选结果,由前缀与候选结果构造出当前的解码路径进行解码;
以此类推,每一次解码将上一次的解码路径作为当前的前缀,结合下一个元素构造出当前的解码路径,直至得到完整的解码路径。
在一种可能的实施方式中,上述构造单元具体用于按照如下方式选出该下一个元素的候选结果:
对下一个元素的识别结果按照目标概率分布从高到低进行排序,选出排序在前的指定个数的目标概率分布;
将选出的目标概率分布对应的识别结果作为该下一个元素的候选结果。
在一种可能的实施方式中,上述计算子模块包括:
第一计算单元,用于基于各个语音识别模型的解码路径计算对应于各个语音识别模型的前缀得分;
第二计算单元,用于将各个语音识别模型的前缀得分与设置的对应权重相乘,然后对得到的所有乘积求和,得到解码目标函数。
在一种可能的实施方式中,上述第一计算单元用于:
对每个语音识别模型,计算该语音识别模型的解码路径的选中率,对得到的所有解码路径的选中率求和然后取对数,得到该语音识别模型的前缀得分。
在一种可能的实施方式中,上述计算子模块用于:
采用预设的稀疏矩阵,将解码目标函数内各个语音识别模型的解码路径统一转换为指定级别的解码路径,稀疏矩阵为不同级别的声学标签体系元素之间的映射关系,用于将一个级别的声学标签体系元素转换至另一个级别的声学标签体系元素;
找到使解码目标函数最大的解码路径,将该解码路径作为指定级别下的音频数据的识别结果。
在一种可能的实施方式中,上述指定级别为文字级别、音节级别、音素级别或带有上下文背景信息的音素级别。
在一种可能的实施方式中,上述装置还包括以下至少之一:
第一结束模块,用于解码时若检测到语句结束标志,则结束解码;
第二结束模块,用于解码时若检测到静音标志后超过指定时长,则结束解码;
第三结束模块,用于解码时若当前状态符合指定的结束状态,则结束解码。
在一种可能的实施方式中,上述提取模块用于:
按照指定时长的窗口和间隔对待识别的音频数据进行采样;
对每个窗口内的采样点进行离散傅里叶变换;
根据离散傅里叶变换的结果计算得到梅尔空间的能量;
对梅尔空间的能量滤波后进行离散余弦变换,得到梅尔频率倒谱系数,将梅尔频率倒谱系数作为对应于音频数据的声学特征。
在一种可能的实施方式中,上述装置还包括:
训练模块,用于使用语音训练数据和初始标签,对多个语音识别模型进行训练,初始标签为语音训练数据对应的最粗级别的文本。
在一种可能的实施方式中,上述训练模块用于:
输入语音训练数据至多个语音识别模型中分别得到对应的声学标签;
为得到的每个声学标签计算代价函数并设置对应的权重,将各个声学标签的代价函数与对应的权重乘积后求和得到总代价函数;
根据初始标签以总代价函数最小为目标对多个语音识别模型进行训练。
本公开实施例提供的上述装置,通过将待识别的音频数据进行特征提取后输入预先训练的多个语音识别模型,得到对应的多个目标概率分布并进行融合解码,从而得到识别结果。由于识别结果是在多个语音识别模型识别的基础上融合解码得出的,而该多个语音识别模型对应于多个级别的声学标签体系,能够在该多个级别的声学标签体系下对音频数据进行识别,因此,可以覆盖更多的应用场景,如生僻字、多同音字等数据分布不均匀的场景,并且基于融合解码进一步提高了中文语音识别的准确度以及模型的鲁棒性。
示例性计算设备
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图10对本公开示例性实施方式的计算设备进行说明。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本公开实施方式的计算设备可以至少包括至少一个处理单元以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本公开的各种示例性实施方式的语音识别方法中的步骤。
下面参照图10来描述根据本公开的这种实施方式的计算设备100。图10显示的计算设备100仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,计算设备100以通用计算设备的形式表现。计算设备100的组件可以包括但不限于:上述至少一个处理单元1001、上述至少一个存储单元1002,连接不同系统组件(包括处理单元1001和存储单元1002)的总线1003。
总线1003包括数据总线、控制总线和地址总线。
存储单元1002可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)10021和/或高速缓存存储器10022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(rom)10023。
存储单元1002还可以包括具有一组(至少一个)程序模块10024的程序/实用工具10025,这样的程序模块10024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备100也可以与一个或多个外部设备1004(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口1005进行。并且,计算设备100还可以通过网络适配器1006与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图10所示,网络适配器1006通过总线1003与计算设备100的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了语音识别装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
本文用于企业家、创业者技术爱好者查询,结果仅供参考。