一种语音处理方法、装置及存储介质与流程
本发明涉及语音识别技术领域,尤其涉及一种语音处理方法、装置及存储介质。
背景技术:
目前,随着人工智能技术的发展,使得语音识别越来越受到关注,应用的领域也越来越广,比如智能家居、智能车载等领域。相关技术中,对待识别语音进行语音识别的过程可以包括:基于边斜率分别为1/2和2的平行四边形区域,确定各个语音模板与待识别语音的相似度;将确定的相似度和预设阈值比较;将相对度大于预设阈值的语音模板作为与待识别语音的匹配模板;基于匹配模板对待识别语音进行识别。
上述方式中针对各个语音模板,基于边斜率相同的平行四边形区域计算相似度,由于在边斜率相同的平行四边形区域内搜索规整路径的前进节点,因而不能进一步减少参与计算相似度的前进节点的数量,从而不能提高语音识别的效率。
技术实现要素:
有鉴于此,本发明实施例提供一种语音处理方法、装置及存储介质。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供一种语音处理方法,所述方法包括:
针对语音模板集合中的每个语音模板,利用相应语音模板对应的第一语音时长以及待识别语音对应的第二语音时长,确定规整路径的平行四边形区域;并基于确定的平行四边形区域,确定相应语音模板与所述待识别语音的相似度,得到至少一个相似度;所述语音模板集合中各语音模板对应的语音的语速不同;
基于所述至少一个相似度,确定最大相似度对应的语音模板;
利用确定的语音模板,对所述待识别语音进行识别。
上述方案中,所述基于确定的平行四边形区域,确定相应语音模板与所述待识别语音的相似度,得到至少一个相似度;基于所述至少一个相似度,确定最大相似度对应的语音模板,包括:
按照第一截取比例,对所述待识别语音进行截取,得到截取的语音;基于截取的语音,以及确定的平行四边形区域,确定至少一个相似度;基于确定的至少一个相似度,将满足第一预设条件的语音模板从所述语音模板集合中排除;
按照第二截取比例,对所述待识别语音模板进行截取,得到截取的语音;基于截取的语音,以及确定的平行四边形区域,确定至少一个相似度;基于确定的至少一个相似度,将满足第二预设条件的语音模板从所述语音模板集合中排除;
依次类推,直至确定出最大相似度对应的语音模板。
上述方案中,所述基于确定的至少一个相似度,将满足相应预设条件的语音模板从所述语音模板集合中排除,包括:
对所述至少一个相似度进行排序,得到排序结果;
从所述排序结果中查找满足相应预设条件的相似度;
将满足相应预设条件的相似度对应的语音模板从所述语音模板集合中排除。
上述方案中,所述利用相应语音模板对应的第一语音时长以及待识别语音对应的第二语音时长,确定规整路径的平行四边形区域,包括:
针对语音模板集合中的每个语音模板,将相应语音模板对应的第一语音时长与所述待识别语音对应的第二语音时长求商,得到求商后的数值;
判断求商后的数值是否满足第三预设条件;
当确定求商后的数值满足第三预设条件时,利用相应语音模板对应的第一语音时长以及待识别语音对应的第二语音时长,确定规整路径的平行四边形区域。
上述方案中,所述方法还包括:
利用训练语音集合中每个训练语音对应的语音时长,确定第三语音时长;基于所述第三语音时长,将所述训练集合划分为多个第一子集合;所述第三语音时长是第一子集合对应的最大语音时长与最小语音时长的差值;所述训练集合中各训练语音对应的语音的语速不同;
针对所述多个第一子集合中的每个子集合,从相应第一子集合包含的训练语音中选取第一训练语音;判断每个第一子集合对应的第一训练语音是否满足预设收敛条件,得到判断结果;
当所述判断结果表征每个第一子集合对应的第一训练语音满足预设收敛条件时,将相应第一训练语音作为所述语音模板集合中的语音模板。
上述方案中,所述判断每个第一子集合对应的第一训练语音是否满足预设收敛条件,得到判断结果,包括:
针对所述多个第一子集合中的每个子集合,确定相应子集合对应的第一训练语音与各相应子集合包含的各训练语音的相似度,得到至少一个相似度;
将所述至少一个相似度求和,得到求和后的数值;
判断所述求和后的数值是否小于预设收敛阈值;
当确定所述求和后的数值小于预设收敛阈值时,确定每个第一子集合对应的第一训练语音满足预设收敛条件。
上述方案中,所述方法还包括:
当确定所述求和后的数值大于或等于预设收敛阈值时,针对所述训练语音集合中的每个训练语音,确定相应训练语音与各子集合对应的第一训练语音的相似度,得到至少一个相似度;利用所述至少一个相似度,将所述训练集合重新划分为多个第二子集合;
针对所述多个第二子集合中的每个子集合,从相应第二子集合包含的训练语音中选取第二训练语音;判断每个第二子集合对应的第二训练语音是否满足预设收敛条件,得到判断结果;
当所述判断结果表征每个第二子集合对应的第二训练语音满足预设收敛条件时,将相应第二训练语音作为所述语音模板集合中的语音模板;当所述判断结果表征每个第二子集合对应的第二训练语音未满足预设收敛条件时,将所述训练集合再次划分为多个子集合;
依次类推,直至确定出所述语音模板集合中的语音模板。
本发明实施例提供一种语音处理装置,所述装置包括:
区域确定单元,用于针对语音模板集合中的每个语音模板,利用相应语音模板对应的第一语音时长以及待识别语音对应的第二语音时长,确定规整路径的平行四边形区域;
模板确定单元,用于基于确定的平行四边形区域,确定相应语音模板与所述待识别语音的相似度,得到至少一个相似度;所述语音模板集合中各语音模板对应的语音的语速不同;以及基于所述至少一个相似度,确定最大相似度对应的语音模板;
识别单元,用于利用确定的语音模板,对所述待识别语音进行识别。
本发明实施例提供一种语音处理装置,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行上面所述任一项语音处理方法的步骤。
本发明实施例提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上面所述任一项语音处理方法的步骤。
本发明实施例提供的语音处理方法、装置及存储介质,针对语音模板集合中的每个语音模板,利用相应语音模板对应的第一语音时长以及待识别语音对应的第二语音时长,确定规整路径的平行四边形区域;并基于确定的平行四边形区域,确定相应语音模板与所述待识别语音的相似度,得到至少一个相似度;所述语音模板集合中各语音模板对应的语音的语速不同;基于所述至少一个相似度,确定最大相似度对应的语音模板;利用确定的语音模板,对所述待识别语音进行识别。采用本发明实施例提供的技术方案,平行四边形区域随着每个语音模板的语音时长的变化而变化,从而在确定各语音模板与待识别语音的相似度时,不是将规整路径限制在一个固定的平行四边形区域内,而是将规整路径限制在一个动态变化的平行四边形区域内,能够在动态变化的平行四边形区域内搜索规整路径的前进节点,相对与固定平行四边形区域而言,能够进一步减少参与计算相似度的前进节点的数量,如此提高语音识别的效率。
附图说明
图1为本发明实施例语音处理方法的实现流程示意图;
图2为本发明实施例对语音进行特征提取的实现流程示意图;
图3为本发明实施例对语音进行识别的实现流程示意图;
图4为本发明实施例语音处理装置的组成结构示意图一;
图5为本发明实施例语音处理装置的组成结构示意图二。
具体实施方式
下面结合附图及实施例对本发明再作进一步详细的描述。
相关技术中,随着人工智能技术的发展,使得语音识别越来越受到关注,应用的领域也越来越广,比如智能家居、智能车载等领域。目前,根据识别的对象不同,可以将语音识别分为三类,即孤立词识别、关键词识别和连续语音识别。下面对孤立词语音识别的相关概念进行介绍:孤立词识别可以是指识别事先已知的孤立的词,如“开机”、“关机”等等。孤立词语音识别的本质是让机器能够准确地接收和理解说话人的语音内容,并正确执行语音信息中人类的企图,孤立词语音识别的过程主要包括语音模板训练阶段与语音识别阶段。孤立词语音识别技术的基本原理是利用语音时域和频域分析为测试孤立词语音选取合适的特征参数,并按照一定的匹配准则与孤立词语音库的各个模板进行匹配,选择与测试语音特征参数相似度最大的孤立词模板作为语音识别的结果。
下面对与数据挖掘相关的专利进行详细描述,具体如下:在专利名称为基于动态时间规整(dtw,dynamictimewarping)的非特定人孤立词语音模板聚类的专利文件中,针对语音模板训练阶段,在语音模板训练过程中通过分裂前一次n个模板中聚合度最低的模板得到n+1个模板,并遵循聚类规则迭代使得这n+1个模板收敛,如此反复分裂迭代直至模板总数达到系统要求的模板个数n,其中模板起始个数n=1。在专利名称为增加全局路径限制的dtw的专利文件中,针对语音识别阶段,根据说话人对同一文字的发音速率相差一般不超过2倍的语音特性,将测试语音与模板的匹配路径限制在边斜率分别为1/2和2的平行四边形内,当测试语音与模板进行匹配时,匹配路径的前进节点只能选择在平行四边形范围内的点,从而一定程度上减少了测试语音与模板的匹配运算量,提高了系统的识别效率。在专利名称为增设模板阈值的dtw的专利文件中,针对语音识别阶段,首先截取1/2的测试语音与模板进行匹配,然后计算得出相应的匹配失真度,一旦匹配失真度即欧式距离大于预先设置的模板阈值,将终止该测试语音与模板继续进行匹配,并且转入测试语音与其他模板继续匹配运算。
但是,上述方式存在的技术缺陷包括:一、将规整路径限制在边斜率分别为1/2和2的固定平行四边形区域内,当计算待识别语音与语音模板的相似度时,只能在固定平行四边形区域内搜索规整路径的前进节点,无法在保证识别精度的前提下,进一步减少前进节点的数量。二、需要为每个语音模板设置一个合理的阈值,如果阈值设置不合理,将会大幅度降低语音识别的准确度。
基于此,本发明实施例中,针对语音模板集合中的每个语音模板,利用相应语音模板对应的第一语音时长以及待识别语音对应的第二语音时长,确定规整路径的平行四边形区域;并基于确定的平行四边形区域,确定相应语音模板与所述待识别语音的相似度,得到至少一个相似度;所述语音模板集合中各语音模板对应的语音的语速不同;基于所述至少一个相似度,确定最大相似度对应的语音模板;利用确定的语音模板,对所述待识别语音进行识别。
本发明实施例提供了一种语音处理方法,如图1所示,该方法包括:
步骤101:针对语音模板集合中的每个语音模板,利用相应语音模板对应的第一语音时长以及待识别语音对应的第二语音时长,确定规整路径的平行四边形区域。
其中,所述待识别语音的语速与所述语音模板集合中各语音模板的语速可以不同;所述语音模板集合中各语音模板对应的语音的语速可以不同、语音内容可以相同;所述语速可以是指语音时长。所述规整路径可以是指基于dtw算法,在平行四边形区域内确定的一条满足约束条件的路径;所述约束条件可以是指相应语音模板与待识别语音在时间上对齐。所述语音模板可以是指对语音进行特征提取得到的特征矢量,比如梅尔频率倒谱系数(mfcc,melfrequencycepstrumcoefficient)等等。
图2为对语音进行特征提取的示意图,如图2所示,对语音进行特征提取的过程可以包括:对语音进行预加重、分帧加窗、端点检测、特征提取等处理,得到特征矢量。
实际应用时,不同语音模板集合对应的语音内容可以不同,这样,当获取到所述待识别语音后,可以将所述待识别语音对应的特征矢量与语音模板集合中任意一个特征矢量进行匹配,得到匹配结果;当所述匹配结果表征二者的匹配度大于预设阈值时,将该语音模板集合作为与所述待识别语音匹配的语音模板集合。针对与所述待识别语音匹配的语音模板集合中的每个语音模板,可以按照公式(1)计算相应语音模板对应的平行四边形区域的边斜率。其中,所述边斜率可以是指平行四边形的某一条边的斜率。
其中,k表示平行四边形区域的某一条边的斜率;m表示相应语音模板的语音时长,即语音长度;n表示待识别语音的语音时长,即语音长度;a1表示加权系数,且0≤a1≤1。这里,可以使用1/k表示平行四边形区域的另一条边的斜率,如此,可以基于k和1/k确定相应语音模板对应的平行四边形区域。
这里,规整路径对应的平行四边形的边斜率由相应语音模板的第一语音时长与待识别语音的第二语音时长的比值确定,如果不同语音模板的语音时长不同,则确定的平行四边形区域也就不同。换句话说,不同语音模板的平行四边形区域不是固定的,而是随着语音模板的长度的变化而变化。
实际应用时,考虑到用户对同一个词语的发音速率具有相差一般不超过2倍的语音特性,因此,在确定规整路径的平行四边形区域之前,可以先判断该语音模板对应的语音的语速与待识别语音的语速的比值是不是在0.5和2之间;其中,0.5可以表示待识别语音的语速是相应语音模板对应的语音的语速的2倍,2可以表示相应语音模板对应的语音的语速是待识别语音的语速的2倍。
基于此,在一实施例中,所述利用相应语音模板对应的第一语音时长以及待识别语音对应的第二语音时长,确定规整路径的平行四边形区域,包括:针对语音模板集合中的每个语音模板,将相应语音模板对应的第一语音时长与所述待识别语音对应的第二语音时长求商,得到求商后的数值;判断求商后的数值是否满足第三预设条件;当确定求商后的数值满足第三预设条件时,利用相应语音模板对应的第一语音时长以及待识别语音对应的第二语音时长,确定规整路径的平行四边形区域。
其中,所述满足第三预设条件可以是指求商后的数值在0.5和2之间。
需要说明的是,本发明实施例中,通过将规整路径限制在一个动态变化的平行四边形区域内,从而在搜索规整路径的过程中可以有效减小参与运算的前进节点的数量,进而在保证语音识别精度不变的情况下,提高语音识别的效率。同时,还可以利用用户对同一个词语的发音速率相差一般不超过2倍的语音特性,将随着语音模板的长度变化而变化的平行四边形区域限制在边斜率为0.5和2的平行四边形范围内。
实际应用时,在步骤101之前,需要建立所述语音模板集合,即完成语音模板的训练过程。
针对语音模板的训练过程,可以包括以下步骤:第一,将训练语音集合划分为多个子集合,为每个子集合确定一个初始语音模板,得到多个初始语音模板。第二,判断初始语音模板,是否满足预设收敛条件;当确定满足预设收敛条件时,停止语音模板的训练过程,并将相应初始语音模板作为语音模板集合中的语音模板;当确定未满足预设收敛条件时,对所述训练语音集合进行重新划分,得到多个新的子集合,为每个新的子集合确定语音模板。第三,判断新的语音模板,是否满足预设收敛条件;当确定满足预设收敛条件时,停止语音模板的训练过程,并将相应语音模板作为语音模板集合中的语音模板;当确定未满足预设收敛条件时,对所述训练语音集合进行第三次重新划分,再次得到多个新的子集合,依次类推,直到满足预设收敛条件为止。
基于此,在一实施例中,所述方法还包括:利用训练语音集合中每个训练语音对应的语音时长,确定第三语音时长;所述第三语音时长是一个子集合对应的最大语音时长与最小语音时长的差值;基于所述第三语音时长,将所述训练集合划分为多个第一子集合;所述训练集合中各训练语音对应的语音的语速不同;针对所述多个第一子集合中的每个子集合,从相应第一子集合包含的训练语音中选取第一训练语音;判断每个第一子集合对应的第一训练语音是否满足第四预设条件,得到判断结果;当所述判断结果表征每个第一子集合对应的第一训练语音满足第四预设条件时,将相应第一训练语音作为所述语音模板集合中的语音模板。
其中,所述训练语音集合中各训练语音对应的语音的语速可以不同、对应的语音内容可以相同。
实际应用时,针对初始语音模板的选取,可以利用各训练语音对应的语音时长,先将所述训练语音集合划分为多个子集合;然后为每个子集合选取一个语音模板,将选取的语音模板作为初始语音模板。
基于此,在一实施例中,所述针对所述多个第一子集合中的每个子集合,从相应第一子集合包含的训练语音中选取第一训练语音,包括:基于训练语音集合中的各训练语音对应的语音时长,确定最大时长和最小时长;基于最大时长和最小时长,确定平均时长,将平均时长作为第三语音时长;基于所述第三语音时长,确定每个第一子集合对应的语音时长范围;基于确定的语音时长范围,确定每个第一子集合包含的训练语音;基于每个子集合对应的语音时长范围,确定对应的中心时长;将与中心时长的差值满足预设条件的语音时长对应的训练语音作为相应第一子集合的初始语音模板。
实际应用时,可以将与中心时长较接近的语音时长对应的训练语音作为相应第一子集合的初始语音模板。
举例来说,假设训练语音集合中包含训练语音1、2、3、4,对应的语音时长为10、2、3、7。如果子集合的个数为2个,则平均时长为(10-2)/2=4,第一个子集合c1对应的语音时长范围为{2,6},对应的中心时长为4,子集合c1中包含的训练语音为{2,3},对应的第一训练语音为3;第二个子集合c2对应的语音时长范围为{7,10},对应的中心时长为8,子集合c2中包含的训练语音为{7,10},对应的第一训练语音为7。
这里,按照最大时长、最小时长对所述训练语音集合进行划分,得到的第一子集合有可能是空集合。为了避免针对空集合无法选取第一训练语音,可以基于该空集合的中心时长,确定第一中心时长和第二中心时长;将所述第一中心时长对应的子集合中的训练语音以及所述第二中心时长对应的子集合中的训练语音添加至该空集合中,并将与该空集合的中心时长较接近的语音时长对应的训练语音作为第一训练语音。其中,所述第一中心时长小于该空集合的中心时长,所述第二中心时长大于该空集合的中心时长,且所述第一中心时长与该空集合的中心时长的差值等于所述平均时长,所述第二中心时长与该空集合的中心时长的差值等于所述平均时长。
需要说明的是,在初始语音模板的选取过程中,如果划分的子集合是空集合,可以通过将该子集合对应的时长范围进行拓宽,以得到该子集合包含的训练语音,从而能够选取出初始语音模板,可以保证在连续的语音长度上都能匹配到初始语音模板。其中,连续的语音长度可以是指所有子集合对应的语音长度是连续的。
实际应用时,可以设置收敛阈值,基于所述收敛阈值,确定各第一子集合对应的第一训练语音是否满足收敛条件。
基于此,在一实施例中,所述判断每个第一子集合对应的第一训练语音是否满足第四预设条件,得到判断结果,包括:针对所述多个第一子集合中的每个子集合,确定相应子集合对应的第一训练语音与各相应子集合包含的各训练语音的相似度,得到至少一个相似度;将所述至少一个相似度求和,得到求和后的数值;判断所述求和后的数值是否小于预设收敛阈值;当确定所述求和后的数值小于预设收敛阈值时,确定每个第一子集合对应的第一训练语音满足预设收敛条件。
实际应用时,如果各第一子集合对应的第一训练语音不满足预设收敛条件,则需要完成语音模板的迭代计算过程,即对所述训练语音集合进行重新划分,得到多个新的子集合,为每个新的子集合确定语音模板,并判断新的语音模板是否满足预设收敛条件。
基于此,在一实施例中,所述方法还包括:当确定所述求和后的数值大于或等于预设收敛阈值时,针对所述训练语音集合中的每个训练语音,确定相应训练语音与各子集合对应的第一训练语音的相似度,得到至少一个相似度;利用所述至少一个相似度,将所述训练集合重新划分为多个第二子集合;针对所述多个第二子集合中的每个子集合,从相应第二子集合包含的训练语音中选取第二训练语音;判断每个第二子集合对应的第二训练语音是否满足第四预设条件,得到判断结果;当所述判断结果表征每个第二子集合对应的第二训练语音满足第四预设条件时,将第二训练语音作为所述语音模板集合中的语音模板;当所述判断结果表征每个第二子集合对应的第二训练语音未满足预设收敛条件时,将所述训练集合再次划分为多个子集合;依次类推,直到确定出所述语音模板集合中的语音模板。
这里,重新划分的子集合是基于与训练语音具有最大声学相似性的第一训练语音确定的,而不是基于训练语音的语音时长确定的。
举例来说,假设训练语音集合中包含训练语音1、2、3、4,初始语音模板包括w1、w2。如果训练语音1与w2的相似度最大,则将该训练语音1划入到新的子集合c1中;如果训练语音2与w2的相似度最大,则将该训练语音2划入到新的子集合c1中;如果训练语音3与w1的相似度最大,则将该训练语音3划入到新的子集合c2中;如果训练语音4与w2的相似度最大,则将该训练语音4划入到新的子集合c2中。
实际应用时,为了避免对训练语音的迭代计算很多次以后仍不满足预设收敛条件,可以先判断迭代次数是否大于预设次数,当确定迭代次数大于预设次数时,结束语音模板的训练过程;当确定迭代次数小于或等于预设次数时,基于所述收敛阈值,确定各第一子集合对应的第一训练语音是否满足收敛条件。
需要说明的是,本发明实施例中,直接将训练语音集划分为多个子集合,并且为每个子集合选取一个初始语音模板,然后反复调整选取的语音模板直至收敛,即通过迭代算法确定最优的语音模板集合。与相关技术中通过对子集合逐次分裂得到语音模板的方式相比,能够有效降低语音模板的训练时间。
步骤102:基于确定的平行四边形区域,确定相应语音模板与所述待识别语音的相似度,得到至少一个相似度;基于所述至少一个相似度,确定最大相似度对应的语音模板。
实际应用时,由于利用所述待识别语音的全部长度,计算相应语音模板与所述待识别语音的相似度的计算量,相对于利用所述待识别语音的部分长度,计算相应语音模板与所述待识别语音的相似度的计算量要大,因此,可以截取所述待识别语音的部分长度,在确定的平行四边形区域内从起点开始搜索与相应语音模板对应的规整路径,并得到相应语音模板与截取后的待识别语音的相似度。这里,为了能够从所述语音模板集合中查找到相似度最大的语音模板,可以基于相应语音模板与截取后的待识别语音的相似度,从所述语音模板集合中排除掉相似度较小的一部分语音模板,再从剩余的语音模板中再次排除掉相似度较小的一部分语音模板,如此循环,直到查找到相似度最大的语音模板。
基于此,在一实施例中,所述基于确定的平行四边形区域,确定相应语音模板与所述待识别语音的相似度,得到至少一个相似度;基于所述至少一个相似度,确定最大相似度对应的语音模板,包括:按照第一截取比例,对所述待识别语音进行截取,得到截取后的语音;基于所述截取后的语音,以及确定的平行四边形区域,确定至少一个相似度;基于确定的至少一个相似度,将满足第一预设条件的语音模板从所述语音模板集合中排除;按照第二截取比例,对所述待识别语音模板进行截取,得到截取后的语音;基于所述截取后的语音,以及确定的平行四边形区域,确定至少一个相似度;基于确定的至少一个相似度,将满足第二预设条件的语音模板从所述语音模板集合中排除;依次类推,直至确定出最大相似度对应的语音模板。
其中,所述对所述待识别语音进行截取可以是指从所述待识别语音的起始部分进行截取。所述第一截取比例与第二截取比例可以不同,比如所述第一截取比例为20%,也就是说,从所述待识别语音的起始部分开始截取总长度的20%,第二截取比例为40%,也就是说,从所述待识别语音的起始部分开始截取总长度的40%。
实际应用时,可以设置待排除的语音模板的数量,基于所述数量,从所述语音模板集合中排除掉相似度较小的一部分语音模板。
基于此,在一实施例中,所述基于确定的至少一个相似度,将满足相应预设条件的语音模板从所述语音模板集合中排除,包括:对所述至少一个相似度进行排序,得到排序结果;从所述排序结果中查找满足相应预设条件的相似度;将满足相应预设条件的相似度对应的语音模板从所述语音模板集合中排除。
这里,从所述排序结果中查找满足相应预设条件的相似度可以是指查找满足所述待排除的语音模板的数量、相似度较小的一部分相似度。
需要说明的是,针对所述语音模板集合中的某个语音模板,可能在多次循环后才有可能被排除,虽然在该语音模板被排除之前,需要利用所述待识别语音的部分长度,计算多次相似度,但是相对于相关技术中,利用所述待识别语音的全部长度计算一次相似度而言,计算量要少。举例来说,假设针对语音模板w,利用待识别语音的总长度的20%,计算一次相似度,该语音模板w未被排除;利用待识别语音的总长度的40%,计算一次相似度,该语音模板w仍未被排除;利用待识别语音的总长度的60%,计算一次相似度,该语音模板w被排除。在这个过程中,虽然每次截取的比例在增大,由于是从待识别语音的起始部分开始截取的,因而相邻两次截取的语音中重复的部分,仅需要计算一次相似度,这样,随着截取的比例增大,截取的语音中参与计算相似度的部分是很少的,从而多次循环后,参与计算相似度的语音的长度也是小于待识别语音的总长度的,进而能够达到减小计算量的目的。
综上,本发明实施例中,通过从待识别语音的起始部分循环截取不同截取比例的语音,计算并保留与截取的语音的相似度相对较大的语音模板,直到查找到相似度最大的语音模板,与相关技术中基于待识别语音的全部长度以及每个语音模板对应的预设阈值查找相似度最大的语音模板的方式相比,能够减少语音识别的计算量。
步骤103:利用确定的语音模板,对所述待识别语音进行识别。
这里,所述利用确定的语音模板,对所述待识别语音进行识别可以是指:将确定的语音模板作为与所述待识别语音匹配度最大的语音模板,并将该语音模板对应的语音内容作为所述待识别语音的语音内容。
采用本发明实施例的技术方案,平行四边形区域随着每个语音模板的语音长度的变化而动态变化,从而在确定各语音模板与待识别语音的相似度时,每个语音模板对应的平行四边形区域不同,针对每个语音模板,能够在相应语音模板对应的平行四边形区域内搜索规整路径的前进节点,相对于相关技术中利用边斜率相同的固定平行四边形区域计算每个语音模板与待识别语音的相似度而言,能够进一步减少参与计算相似度的前进节点的数量,从而提高了语音识别的效率。
另外,通过从待识别语音的起始部分循环截取不同截取比例的语音,计算并排除与截取的语音的相似度相对较小的语音模板,如此迭代,直到查找到相似度最大的语音模板,与相关技术中基于待识别语音的全部长度以及每个语音模板对应的预设阈值查找相似度最大的语音模板的方式相比,能够减少语音识别的计算量。
下面结合具体实施例对本发明实施例的语音处理方法进行详细说明。
应用实施例一
本应用实施例的应用场景为:针对语音模板的训练阶段,首先直接将训练语音集合划分为n个子集合,为每个子集合选取一个合适的初始语音模板;然后反复调整n个语音模板直至收敛。
初始语音模板的选取过程,具体可以包括以下步骤:
第1步,令k=0,表示第0次迭代训练。
第2步,统计训练语音集合c={x1,x2,···,xl}中所有特征矢量的语音时长;并搜索出最大时长lmax和最小时长lmin。
第3步,设置子集合的个数n,且n≤l,l为预设阈值;对最小时长lmin和最大时长lmax之间的语音时长进行n等分,得到平均时长,平均时长用公式(2)中的δl表示:
第4步,将语音时长落在同一等分中的特征矢量划分为一个子集合
第5步,统计出每个子集合的容量
第6步,令j=1,表示第1个子集合。
第7步,判断每个子集合的容量是否等于0,如果
第8步,判断搜索出的特征矢量x是否是其他子集合的初始语音模板,如果是其他子集合的初始语音模板,则从第j个子集合中删除该特征矢量,且令
第9步,令j=j+1,若j≤n,则继续执行第7步;否则,对初始语音模板
需要说明的是,本应用实施例中,直接将训练语音集划分为多个子集合,如果划分的子集合是空集合,可以通过将该子集合对应的时长范围进行拓宽,以得到该子集合包含的训练语音,从而能够为每个子集合选取出初始语音模板,可以保证在连续的语音长度上都能匹配到初始语音模板。
对初始语音模板进行训练的过程,具体可以包括以下步骤:
第1步,设置迭代次数阈值,用kmax表示;设置收敛阈值,用δ表示;设置δ0=realmax;计算训练语音集合c的匹配距离矩阵δ。
第2步,令k=1,表示第1次迭代训练;令l=1,表示第一个特征矢量;
第3步,令
第4步,按照公式(4)计算各特征矢量与各初始语音模板的相似度之和。判断初始语音模板
其中,
第5步,对训练语音集合c进行重新划分。利用dtw算法,将训练语音集合c中特征矢量xl与所有的语音模板
其中
第6步,令l=l+1,若l≤l,则继续执行第3步。
第7步,在第5步对训练语音集合c重新划分得到多个子集合后,统计每个子集合的容量
第8步,令i=1,表示第1个子集合;
第9步,若
从搜索出的子集合中,找到满足公式(5)且平均内距最大的子集合
第10步,令i=i+1,若i≤n,则继续执行第9步。
第11步,按照下面的公式(7)计算训练语音集合c中所有子集合的内距总和。
第12步,若训练语音集合c的总内距变化小于预设门限值δ,即
需要说明的是,本应用实施例中,当确定语音模板不满足预设收敛条件时,基于与训练语音集合中的训练语音具有最大声学相似性的语音模板,对训练语音集合重新划分,得到多个新的子集合,并为新的子集合选取新的语音模板,判断新的语音模板是否满足预设收敛条件,如此反复调整选取的语音模板直至收敛。
将特征矢量映射到语音模板的过程,具体可以包括以下步骤:
第13步,令j=1,表示第1个子集合;
第14步,令l=1,表示第1个特征矢量;
第15步,若特征矢量xl属于子集
利用公式(8)计算出最优局部路径:
通过公式(9)将特征矢量xl的各帧参数映射到模板矢量
其中,
第16步,令l=l+1,若l≤l,则继续执行15步;
第17步,将子集
第18步,令j=j+1,若j≤n,则继续执行第14步;
第19步,令k=k+1,若k≤kmax,则继续执行第3步;否则结束迭代过程,
应用实施例二
本应用实施例的应用场景为:从待识别语音的起始部分循环截取不同截取比例的语音,计算并保留与截取的语音的相似度相对较大即失真度较小的语音模板,直到查找到相似度最大即失真度最小的语音模板。
结合图3所示的示意图,语音的识别过程,具体可以包括以下步骤:
第1步,设置截取次数m;设置各次截取的长度百分比ai,0≤i≤m,其中令a0=0;设置各次语音模板的保留百分比bi,1≤i≤m;设置公式(11)中a1的加权隙数为0.5。
第2步,统计语音模板的总数量,用p表示。
第3步,截取的语音对应的特征矢量,用x表示。
第4步,建立1×p的矩阵,矩阵中每个元素的值设置为1,即x=1,表示相应语音模板未被排除。
第5步,令i=1,表示第1个语音模板。
第6步,建立n×mi的矩阵di,计算特征矢量x与第i个语音模板yi的相似度,并记录在di中。
第7步,建立n×mi的矩阵di,初始化di=∞,且令di(1,1)=di(1,1)。
第8步,若待识别的语音的长度与相应语音模板的长度的比值不满足
第9步,利用公式(11)计算出动态全局路径限制范围即动态平行四边形的斜率k及1/k;
式中,a1为加权系数,且0≤a1≤1;待识别的语音的长度,用m表示,相应语音模板的长度,用n表示。
第10步,判断第9步计算的k是否满足公式(12),如果不满足公式(12),则令x(i)=0,表示相应语音模板被排除。
式中,k为动态平行四边形的边斜率,待识别的语音的长度,用m表示,相应语音模板的长度,用n表示。
第11步,令i=i+1,若i≤p,则继续执行第6步。
第12步,令k=1,表示对待识别语音进行第1次截取。
第13步,令i=1,表示第1个语音模板。
第14步,若x(i)=0,则
第15步,对待识别语音进行第k-1次、第k次截取,计算第k-1次和第k次截取的待识别语音的长度,分别用sk-1和sk表示;sk和sk-1的取值原则为按照四舍五入取整。
第16步,基于截取的语音,利用公式(13)所示的规整路径的二步搜索方式,反复递推计算出由斜率k和1/k构成的平行四边形内的di(n,m),其中sk-1<n≤sk;
d(n,m)=d(n,m)+min{d(n-1,m),d(n-1,m-1),d(n-1,m-2)}(13)
第17步,搜索出di(sk,m)中最大值,记为
第18步,令i=i+1,若i≤p,则继续执行第14步。
第19步,计算第k次匹配后需要保留的语音模板个数rk=bk*p,rk的取值原则为按照四舍五入取整。
第20步,搜索
第21步,令k=k+1,若k≤m,则继续执行第13步。
第22步,搜索
需要说明的是,本应用实施例中,通过从待识别语音的起始部分循环截取不同截取比例的语音,计算并保留与截取的语音的相似度相对较大的语音模板,直到查找到相似度最大的语音模板,与相关技术中基于待识别语音的全部长度以及每个语音模板对应的预设阈值查找相似度最大的语音模板的方式相比,能够减少语音识别的计算量。
为了实现本发明实施例的方法,本发明实施例还提供了一种语音处理装置,如图4所示,包括:
区域确定单元41,用于针对语音模板集合中的每个语音模板,利用相应语音模板对应的第一语音时长以及待识别语音对应的第二语音时长,确定规整路径的平行四边形区域;所述语音模板集合中各语音模板对应的语音的语速不同;
模板确定单元42,用于基于确定的平行四边形区域,确定相应语音模板与所述待识别语音的相似度,得到至少一个相似度;以及基于所述至少一个相似度,确定最大相似度对应的语音模板;
识别单元43,用于利用确定的语音模板,对所述待识别语音进行识别。
其中,所述待识别语音的语速与所述语音模板集合中各语音模板的语速可以不同;所述语音模板集合中各语音模板对应的语音的语速可以不同、语音比容可以相同。所述规整路径可以是指基于dtw算法,在平行四边形区域内确定的一条满足约束条件的路径;所述约束条件可以是指相应语音模板与待识别语音在时间上可以实现对齐。所述语音模板可以是指对语音进行特征提取处理得到的特征矢量,比如mfcc参数等等。
实际应用时,当获取到所述待识别语音后,可以基于所述待识别语音对应的特征矢量,以及语音模板集合中某个特征矢量,确定与所述待识别语音对应的语音模板集合。针对所述语音模板集合中的每个语音模板,可以按照上述公式(1)计算相应语音模板对应的平行四边形区域的边斜率。其中,所述边斜率可以是指平行四边形的某一条边的斜率。
这里,规整路径对应的平行四边形的边斜率由相应语音模板的第一语音时长与待识别语音的第二语音时长的比值确定,如果不同语音模板的语音时长不同,则确定的平行四边形区域也就不同。换句话说,不同语音模板的平行四边形区域不是固定的,而是随着语音模板的长度的变化而动态变化。
实际应用时,考虑到用户对同一个词语的发音速率具有相差一般不超过2倍的语音特性,因此,在确定规整路径的平行四边形区域之前,可以先判断该语音模板对应的语音的语速与待识别语音的语速的比值是不是在0.5和2之间;其中,0.5可以表示待识别语音的语速是相应语音模板对应的语音的语速的2倍,2可以表示相应语音模板对应的语音的语速是待识别语音的语速的2倍。
基于此,在一实施例中,区域确定单元41,具体用于:针对语音模板集合中的每个语音模板,将相应语音模板对应的第一语音时长与所述待识别语音对应的第二语音时长求商,得到求商后的数值;判断求商后的数值是否满足第三预设条件;当确定求商后的数值满足第三预设条件时,利用相应语音模板对应的第一语音时长以及待识别语音对应的第二语音时长,确定规整路径的平行四边形区域。
其中,所述满足第三预设条件可以是指求商后的数值在0.5和2之间。
需要说明的是,本发明实施例中,通过将规整路径限制在一个动态变化的平行四边形区域内,从而在搜索规整路径的过程中可以有效减小参与运算的前进节点的数量,进而在保证语音识别精度不变的情况下,提高语音识别的效率。同时,还可以利用用户对同一个词语的发音速率相差一般不超过2倍的语音特性,将随着语音模板的长度变化而动态变化的平行四边形区域限制在边斜率为0.5和2的平行四边形范围内。
实际应用时,还需要建立所述语音模板集合,即完成语音模板的训练过程。
基于此,在一实施例中,所述装置还包括:集合建立单元,用于利用训练语音集合中每个训练语音对应的语音时长,确定第三语音时长;所述第三语音时长是一个子集合对应的最大语音时长与最小语音时长的差值;基于所述第三语音时长,将所述训练集合划分为多个第一子集合;所述训练集合中各训练语音对应的语音的语速不同;针对所述多个第一子集合中的每个子集合,从相应第一子集合包含的训练语音中选取第一训练语音;判断每个第一子集合对应的第一训练语音是否满足第四预设条件,得到判断结果;当所述判断结果表征每个第一子集合对应的第一训练语音满足第四预设条件时,将相应第一训练语音作为所述语音模板集合中的语音模板。
其中,所述训练语音集合中各训练语音对应的语音的语速可以不同、对应的语音内容可以相同。
实际应用时,针对初始语音模板的选取,可以利用各训练语音对应的语音时长,先将所述训练语音集合划分为多个子集合;然后为每个子集合选取一个语音模板,将选取的语音模板作为初始语音模板。
基于此,在一实施例中,所述集合建立单元,具体用于基于训练语音集合中的各训练语音对应的语音时长,确定最大时长和最小时长;基于最大时长和最小时长,确定平均时长,将平均时长作为第三语音时长;基于所述第三语音时长,确定每个第一子集合对应的语音时长范围;基于确定的语音时长范围,确定每个第一子集合包含的训练语音;基于每个子集合对应的语音时长范围,确定对应的中心时长;将与中心时长较接近的语音时长对应的训练语音作为相应第一子集合的初始语音模板。
这里,按照最大时长、最小时长对所述训练语音集合进行划分,得到的第一子集合有可能是空集合。为了避免针对空集合无法选取第一训练语音,可以基于该空集合的中心时长,确定第一中心时长和第二中心时长;将所述第一中心时长对应的子集合中的训练语音以及所述第二中心时长对应的子集合中的训练语音添加至该空集合中,并将与该空集合的中心时长较接近的语音时长对应的训练语音作为第一训练语音。其中,所述第一中心时长小于该空集合的中心时长,所述第二中心时长大于该空集合的中心时长,且所述第一中心时长与该空集合的中心时长的差值等于所述平均时长,所述第二中心时长与该空集合的中心时长的差值等于所述平均时长。
需要说明的是,在初始语音模板的选取过程中,如果划分的子集合是空集合,可以通过将该子集合对应的时长范围进行拓宽,以得到该子集合包含的训练语音,从而能够选取出初始语音模板,可以保证在连续的语音长度上都能匹配到初始语音模板。其中,连续的语音长度可以是指所有子集合对应的语音长度是连续的。
实际应用时,可以设置收敛阈值,基于所述收敛阈值,确定各第一子集合对应的第一训练语音是否满足收敛条件。
基于此,在一实施例中,所述模板确定单元42,具体用于:针对所述多个第一子集合中的每个子集合,确定相应子集合对应的第一训练语音与各相应子集合包含的各训练语音的相似度,得到至少一个相似度;将所述至少一个相似度求和,得到求和后的数值;判断所述求和后的数值是否小于预设收敛阈值;当确定所述求和后的数值小于预设收敛阈值时,确定相应第一子集合对应的第一训练语音满足预设收敛条件。
实际应用时,如果各第一子集合对应的第一训练语音不满足预设收敛条件,则需要完成语音模板的迭代计算过程,即对所述训练语音集合进行重新划分,得到多个新的子集合,为每个新的子集合确定语音模板,并判断新的语音模板是否满足预设收敛条件。
基于此,在一实施例中,所述模板确定单元42,还用于当确定所述求和后的数值大于或等于预设收敛阈值时,针对所述训练语音集合中的每个训练语音,确定相应训练语音与各子集合对应的第一训练语音的相似度,得到至少一个相似度;利用所述至少一个相似度,将所述训练集合重新划分为多个第二子集合;针对所述多个第二子集合中的每个子集合,从相应第二子集合包含的训练语音中选取第二训练语音;判断每个第二子集合对应的第二训练语音是否满足第四预设条件,得到判断结果;当所述判断结果表征每个第二子集合对应的第二训练语音满足第四预设条件时,将第二训练语音作为所述语音模板集合中的语音模板;当所述判断结果表征每个第二子集合对应的第二训练语音未满足预设收敛条件时,将所述训练集合再次划分为多个子集合;依次类推,直到确定出所述语音模板集合中的语音模板。
这里,重新划分的子集合是基于与训练语音具有最大声学相似性的第一训练语音确定的,而不是基于训练语音的语音时长确定的。
实际应用时,为了避免对训练语音的迭代计算很多次以后仍不满足预设收敛条件,可以先判断迭代次数是否大于预设次数,当确定迭代次数大于预设次数时,结束语音模板的训练过程;当确定迭代次数小于或等于预设次数时,基于所述收敛阈值,确定各第一子集合对应的第一训练语音是否满足收敛条件。
需要说明的是,本发明实施例中,直接将训练语音集划分为多个子集合,并且为每个子集合选取一个初始语音模板,然后反复调整选取的语音模板直至收敛。与相关技术中通过对子集合逐次分裂得到语音模板的方式相比,能够有效降低语音模板的训练时间。
实际应用时,由于利用所述待识别语音的全部长度,计算相应语音模板与所述待识别语音的相似度的计算量,相对于利用所述待识别语音的部分长度,计算相应语音模板与所述待识别语音的相似度的计算量要大,因此,可以截取所述待识别语音的部分长度,在确定的平行四边形区域内从起点开始搜索与相应语音模板对应的规整路径,并得到相应语音模板与截取后的待识别语音的相似度。这里,为了能够从所述语音模板集合中查找到相似度最大的语音模板,可以基于相应语音模板与截取后的待识别语音的相似度,从所述语音模板集合中排除掉相似度较小的一部分语音模板,再从剩余的语音模板中再次排除掉相似度较小的一部分语音模板,如此循环,直到查找到相似度最大的语音模板。
基于此,在一实施例中,所述模板确定单元42,具体用于:按照第一截取比例,对所述待识别语音进行截取,得到截取后的语音;基于所述截取后的语音,以及确定的平行四边形区域,确定至少一个相似度;基于确定的至少一个相似度,将满足第一预设条件的语音模板从所述语音模板集合中排除;按照第二截取比例,对所述待识别语音模板进行截取,得到截取后的语音;基于所述截取后的语音,以及确定的平行四边形区域,确定至少一个相似度;基于确定的至少一个相似度,将满足第二预设条件的语音模板从所述语音模板集合中排除;依次类推,直至确定出最大相似度对应的语音模板。
其中,所述对所述待识别语音进行截取可以是指从所述待识别语音的起始部分进行截取。所述第一截取比例与第二截取比例可以不同,比如所述第一截取比例为20%,也就是说,从所述待识别语音的起始部分开始截取总长度的20%,第二截取比例为40%,也就是说,从所述待识别语音的起始部分开始截取总长度的40%。
实际应用时,可以设置待排除的语音模板的数量,基于所述数量,从所述语音模板集合中排除掉相似度较小的一部分语音模板。
基于此,在一实施例中,所述模板确定单元42,具体用于:对所述至少一个相似度进行排序,得到排序结果;从所述排序结果中查找满足相应预设条件的相似度;将满足相应预设条件的相似度对应的语音模板从所述语音模板集合中排除。
这里,从所述排序结果中查找满足相应预设条件的相似度可以是指查找满足所述待排除的语音模板的数量、相似度较小的一部分相似度。
本发明实施例中,通过从待识别语音的起始部分循环截取不同截取比例的语音,计算并保留与截取的语音的相似度相对较大的语音模板,直到查找到相似度最大的语音模板,与相关技术中基于待识别语音的全部长度以及每个语音模板对应的预设阈值查找相似度最大的语音模板的方式相比,能够减少语音识别的计算量。
这里,可以将确定的语音模板作为与所述待识别语音匹配度最大的语音模板,基于该语音模板对应的语音内容作为所述待识别语音的语音内容。
实际应用时,所述区域确定单元41、模板确定单元42、识别单元43、集合建立单元可由语音处理装置中的处理器实现。
本发明实施例还提供了一种语音处理装置,如图5所示,该语音处理装置50包括:通信接口51、处理器52、存储器53;其中,
通信接口51,能够与其它设备进行信息交互;
处理器52,与所述通信接口51连接,用于运行计算机程序时,执行上述智能设备侧一个或多个技术方案提供的方法。而所述计算机程序存储在存储器53上。
当然,实际应用时,语音处理装置50中的各个组件通过总线系统54耦合在一起。可理解,总线系统54用于实现这些组件之间的连接通信。总线系统54除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统54。
本申请实施例中的存储器53用于存储各种类型的数据以支持数据处理装置50的操作。这些数据的示例包括:用于在语音处理装置50上操作的任何计算机程序。
上述本申请实施例揭示的方法可以应用于所述处理器52中,或者由所述处理器52实现。所述处理器52可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述处理器52中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述处理器52可以是通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述处理器52可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器53,所述处理器52读取存储器53中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,语音处理装置50可以被一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)、通用处理器、控制器、微控制器(mcu,microcontrollerunit)、微处理器(microprocessor)、或者其他电子元件实现,用于执行前述方法。
可以理解,本申请实施例的存储器53可以是易失性存储器或者非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本申请实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除