一种语音识别模板训练方法、语音识别方法及装置与流程

文档序号:17747455发布日期:2019-05-24 20:44阅读:321来源:国知局
一种语音识别模板训练方法、语音识别方法及装置与流程

本发明属于语音识别领域,具体涉及一种语音识别模板训练方法、语音识别方法及装置。



背景技术:

传统的基于动态时间规整(dynamictimewarping,简称dtw)算法的语音识别只对于特定人的识别率比较好,也即只对录入语音模板的人的识别率高,然而,在一些应用场景下,识别设备需要对不同人发出的命令都能实现识别。

现有技术中,通常采用增加模板数量的方案以解决上述问题,也就是说,针对同一个词汇,录制不同人的语音样本并训练获得多个模板参与到后续的识别中。然而,上述解决方案一方面会增加内存开销,另一方面会延长语音识别的时间,进而造成了用户使用体验的下降。



技术实现要素:

针对上述现有技术中语音识别模板只对于特定人的识别率比较好这一问题,提出了一种语音识别模板训练方法、语音识别方法及装置,利用这种方法和装置,能够解决上述问题。

本发明提供了以下方案。

根据本发明实施例的一个方面,提供一种语音识别模板训练方法,其特征在于,包括:

采集至少一个语音样本,形成语音样本集;

对至少一个语音样本进行聚类训练,以得到至少一个子模板;

从至少一个子模板中选取第一子模板作为初始的中间模板;

根据动态时间规整算法与至少一个子模板,对中间模板进行至少一次迭代更新;

将经过至少一次迭代更新之后的中间模板输出为语音识别模板。

可选地,其中,采集至少一个语音样本至少包括:

响应于多种预设触发指令中的第一指令,录入至少一个语音样本中的第一样本,并将对应于第一指令的第一标签添加给第一样本;以及

响应于多种预设触发指令中的第二指令,录入至少一个语音样本中的第二样本,并将对应于第二指令的第二标签添加给第二样本。

可选地,其中,对至少一个语音样本进行聚类训练,以得到至少一个子模板进一步包括:

根据预设分类规则对至少一个语音样本进行分类,以获得至少一类语音样本;

对至少一类语音样本执行特征提取,并通过对提取的特征进行训练以得到至少一个子模板,其中至少一个子模板与至少一类语音样本一一对应。

可选地,其中,方法还包括:根据时间长度选取第一子模板,其中,第一子模板的时间长度为至少一个子模板的至少一个时间长度中的中位值和/或次中位值。

可选地,其中,对中间模板进行至少一次迭代更新中的任意一次迭代更新进一步包括:

从至少一个子模板中选取第二子模板;

根据动态时间规整算法获得中间模板与第二子模板的最优匹配路径;

根据最优匹配路径,对第二子模板进行拉伸和/或压缩处理,以得到第三子模板,第三子模板具有与中间模板相同的时间长度;

对第三子模板与中间模板进行多维的矢量求均值运算,从而得到第四子模板;

根据第四子模板对中间模板进行更新,从而执行完毕一次迭代更新。

可选地,其中,方法还包括:

通过在任意一次迭代更新的过程中,根据动态时间规整算法计算中间模板与第二子模板的最小累积距离,从而在至少一次迭代更新中获取至少一个最小累计距离;

根据至少一个最小累计距离,获取与语音识别模板相对应的阈值。

根据本发明实施例的另一个方面,提供一种语音识别方法,其特征在于,包括:

获取待测语音;

根据动态时间规整算法,计算待测语音与至少一个语音模板之间的至少一个最小累计距离;

根据至少一个最小累计距离,从至少一个语音模板中选取目标语音模板,并根据目标语音模板对待测语音进行识别;

其中,所述至少一个语音模板中的每一个语音模板预先采用如上所述的方法进行训练。

根据本发明实施例的另一个方面,提供一种语音识别模板训练装置,其特征在于,包括:

采集模块,用于采集至少一个语音样本,形成语音样本集;

聚类模板,用于对至少一个语音样本进行聚类训练,以得到至少一个子模板;

选取模块,用于从至少一个子模板中选取第一子模板作为初始的中间模板;

更新模块,用于根据动态时间规整算法与至少一个子模板,对中间模板进行至少一次迭代更新;

输出模块,用于将经过至少一次迭代更新之后的中间模板输出为语音识别模板。

可选地,其中,采集模块进一步用于:

响应于多种预设触发指令中的第一指令,录入至少一个语音样本中的第一样本,并将对应于第一指令的第一标签添加给第一样本;以及

响应于多种预设触发指令中的第二指令,录入至少一个语音样本中的第二样本,并将对应于第二指令的第二标签添加给第二样本。

可选地,其中,聚类模块进一步用于:

根据预设分类规则对至少一个语音样本进行分类,以获得至少一类语音样本;

对至少一类语音样本执行特征提取,并通过对提取的特征进行训练以得到至少一个子模板,其中至少一个子模板与至少一类语音样本一一对应。

可选地,其中,选取模块进一步用于:根据时间长度选取第一子模板,其中,第一子模板的时间长度为至少一个子模板的至少一个时间长度中的中位值和/或次中位值。

可选地,其中,更新模块进一步用于:

从至少一个子模板中选取第二子模板;

根据动态时间规整算法获得中间模板与第二子模板的最优匹配路径;

根据最优匹配路径,对第二子模板进行拉伸和/或压缩处理,以得到第三子模板,第三子模板具有与中间模板相同的时间长度;

对第三子模板与中间模板进行多维的矢量求均值运算,从而得到第四子模板;

根据第四子模板对中间模板进行更新,从而执行完毕一次迭代更新。

可选地,其中,更新模块进一步用于:

通过在任意一次迭代更新的过程中,根据动态时间规整算法计算中间模板与第二子模板的最小累积距离,从而在至少一次迭代更新中获取至少一个最小累计距离;

根据至少一个最小累计距离,获取与语音识别模板相对应的阈值。

根据本发明实施例的另一个方面,提供一种语音识别装置,其特征在于,包括:

获取模块,用于获取待测语音;

运算模块,用于根据动态时间规整算法,计算待测语音与至少一个语音模板之间的至少一个最小累计距离;

识别模块,用于根据至少一个最小累计距离,从至少一个语音模板中选取目标语音模板,并根据目标语音模板对待测语音进行识别;

其中,所述至少一个语音模板中的每一个语音模板预先采用如上所述的方法进行训练。

根据本发明实施例的另一个方面,提供一种语音识别模板训练装置,其特征在于,包括:

一个或者多个多核处理器;

存储器,用于存储一个或多个程序;

当一个或多个程序被一个或者多个多核处理器执行时,使得一个或多个多核处理器实现:

采集至少一个语音样本,形成语音样本集;

对至少一个语音样本进行聚类训练,以得到至少一个子模板;

从至少一个子模板中选取第一子模板作为初始的中间模板;

根据动态时间规整算法与至少一个子模板,对中间模板进行至少一次迭代更新;

将经过至少一次迭代更新之后的中间模板输出为语音识别模板。

根据本发明实施例的另一个方面,提供一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被多核处理器执行时,使得多核处理器执行如上的方法。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:在本实施例利用上述技术方案,通过对语音样本集进行聚类训练后再基于dtw算法进行整合的方法,能对不同人发出的同一个命令都能识别,解决了传统的基于dtw算法的语音识别模板只对于特定人的识别率比较好的技术问题,相比传统改善做法,节省内存开销,减少匹配计算时间。

应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举说明本发明的具体实施方式。

附图说明

通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的有点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:

图1为根据本发明一实施例的语音识别模板训练方法的流程示意图;

图2为根据本发明实施例中示出的对中间模板进行迭代更新的示意图;

图3为根据本发明又一实施例的语音识别模板训练方法的流程示意图;

图4为根据本发明实施例中的基于dtw求取最优匹配路径的示意图;

图5为根据本发明又一实施例的语音识别方法的流程示意图;

图6为根据本发明一实施例的语音识别模板训练方法的结构示意图。

图7为根据本发明又一实施例的语音识别方法的结构示意图;

图8为根据本发明又一实施例的语音识别模板训练方法的结构示意图;

图9为根据本发明一实施例的计算机可读存储介质的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

在本发明中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。

另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

本发明提供了一种语音识别模板训练方法,图1示出了语音识别模板训练方法的流程示意图,如图1所示,该方法包括以下步骤:

步骤101、采集至少一个语音样本,形成语音样本集;

步骤102、对至少一个语音样本进行聚类训练,以得到至少一个子模板;

步骤103、从至少一个子模板中选取第一子模板作为初始的中间模板;

步骤104、根据动态时间规整算法与至少一个子模板,对中间模板进行至少一次迭代更新;

步骤105、将经过至少一次迭代更新之后的中间模板输出为语音识别模板。

具体地,在步骤101中,采集的至少一个语音样本具体可以是与同一孤立词相对应的若干语音样本,例如,由不同人录制的多个“开灯”语音。

进一步地,在步骤102中,聚类训练需要先按照某个特定标准(如性别)把语音样本集分割成不同的类或簇,使得同一个簇内的语音样本的相似性尽可能大,同时不在同一个簇中的语音样本之间的差异性也尽可能地大,而后对每一个类或簇中的语音样本各自进行训练,从而可以获得对应于各类或簇的子模板。

进一步地,在步骤104中与步骤105中,可以理解,动态时间规整(dynamictimewarping,简称dtw)算法是语音识别中的一种常用的匹配算法,dtw算法基于动态规划(dp)的思想,通过把时间序列进行延伸和缩短,能够有效解决进行匹配的两个语音的速度不一致的问题。本实施例中,从获取的多个子模板选取一个子模板,采用动态时间规整算法将该子模板的语音速度规整为与初始的中间模板相一致,并在语音速度一致后利用该子模板对中间模板进行更新,该更新可以是,例如将中间模板替换为该子模板与原中间模板的多维均值,一次更新完成后,可以从多个子模板中选取下一个子模板,以进行下一次的迭代更新,直至多个子模板中的每一个子模板均参与迭代后完成更新,输出最后一次更新后的中间模板作为语音识别模板。本实施例中,利用动态时间规整算法可以克服多个子模板之间的速度不一致的问题,进一步提升了语音识别模板的准确性。

以下结合具体示例进行描述,例如,参见图2,收集语音“关灯”的多个语音样本,对语音样本集进行聚类训练后,获得了四个子模板,分别为子模板①、子模板②、子模板③,子模板④,子模板⑤,其中,选取子模板①作为初始的中间模板x1;进一步输入子模板②利用dtw算法对中间模板x1进行更新,以得到更新后的中间模板x2;进一步依次输入子模板③、子模板④、子模板⑤,循环上述迭代更新过程,最终,当多个子模板全部参与完成之后,输出中间模板x5作为“关灯”的语音识别模板。

在本实施例利用上述技术方案,通过对语音样本集进行聚类训练后再基于dtw算法进行整合的方法,能对不同人发出的同一个命令都能识别,解决了传统的基于dtw算法的语音识别模板只对于特定人的识别率比较好的技术问题,相比传统改善做法,节省内存开销,减少匹配计算时间。

基于图1的语音识别模板训练方法,本申请的一些实施例还提供了该语音识别模板训练方法的一些具体实施方案,以及扩展方案,下面进行说明。

进一步地,在一实施例中,上述步骤101中的采集至少一个语音样本至少可以包括:

(1)响应于多种预设触发指令中的第一指令,录入至少一个语音样本中的第一样本,并将对应于第一指令的第一标签添加给第一样本;以及

(2)响应于多种预设触发指令中的第二指令,录入至少一个语音样本中的第二样本,并将对应于第二指令的第二标签添加给第二样本。

具体地,上述第一指令或第二指令指的是训练人员通过触发交互界面上的指定选项而预设发送的指令信息,用于控制将预设的第一标签或第二指令添加到该训练人员录入的第一样本或第二样本上。

例如,在获取语音样本之前,可以事先设定多个分类选项,比如可以按照年龄和性别进行分类,比如分类为“10岁~20岁女性”、“0岁~10岁女性”、“60岁以上男性”等,还比如可以按照声调高低与性别进行分类,比如分类为“女性高音”、“男性中音”等,又比如可以按照地域口音进行分类,比如分类为“普通话”、“川渝口音”、“东北口音”、“上海口音”;又比如,在特殊定制的语音识别装置的训练过程中,可以根据用户实际说话特征进行分类,比如分类为“用户a”、“用户b”、“用户c”。以下以地域口音为例进行描述,但不限于此。可选地,可以将该分类选项设置在语音录入装置的交互界面上,在录入语音样本时,假设训练人员d为川渝人,训练人员d先要触发交互界面上的“川渝口音”选项,触发第一指令,然后以川渝口音说出“开门”,进而后台根据第一指令向采集到的该语音样本1打上一个第一标签“川渝口音”,相应地,假设训练人员e为东北人,在录入语音样本时,先要触发交互界面上的“东北口音”选项,触发第二指令,然后以东北口音说出“开门”,进而后台根据第二指令为获取到的该语音样本2打上一个第二标签“东北口音”。

可以理解的是,本实施例中的第一标签和第二标签可以是单一特征标签比如上述的“普通话”、“川渝口音”;第一标签和第二标签也可以是多种特征的组合,比如,第一标签可以是“普通话”+“女性高音”;第二标签可以是“男性中音”+“川渝口音”。可以理解的是,本发明中用于分类的标签类型不限于“第一标签”与“第二标签”两种,而是可以包括任意种类数量的标签,本实施例仅以两种标签为例进行描述。

在本实施例中,通过在语音样本采集阶段就实现对每一个语音样本进行打标签的技术方案,为后续的聚类训练过程提供了分类基础,有利于减少训练过程中的运算量,提高训练效率。

进一步地,在一实施例中,上述步骤102中的对至少一个语音样本进行聚类训练,以得到至少一个子模板可以包括:

(1)根据预设分类规则对至少一个语音样本进行分类,以获得至少一类语音样本;具体地,若语音样本在采集阶段被添加标签,可以根据语音样本上的标签进行分类。若语音样本在采集阶段未被添加标签或标签可信度不高,可以先提取语音样本的多项特征,进而对语音样本的多项特征进行分析,从而根据某一项或多项特征进行分类。

(2)对至少一类语音样本执行特征提取,并通过对提取的特征进行训练以得到至少一个子模板,其中至少一个子模板与至少一类语音样本一一对应。具体地,上述执行特征提取中,提取的特征可以是mfcc(梅尔频率倒谱系数,melfrequencycepstralcoefficent)特征向量,进而基于dtw算法或hmm(隐马尔可夫模型,hiddenmarkovmodel)算法或对mfcc特征向量进行训练,以得到至少一个子模板。可以理解,该至少一个子模板中的每一个子模板由多维特征组成的时间序列。

进一步地,在一实施例中,该语音识别模板训练方法可以包括:根据时间长度选取第一子模板,其中,第一子模板的时间长度为至少一个子模板的至少一个时间长度中的中位值和/或次中位值。

本实施例中,通过选取时间序列长度位于中位数的子模板作为初始的中间模板,进而在后续的迭代更新过程中,无论经过多少次迭代更新,更新后的中间模板的语音速度与长度始终与初始的中间模板相一致,从而可以输出长度适中的语音识别模板,有利于提高语音模板目标的识别准确度。

进一步地,在一实施例中,图3示出了本发明提供的又一个语音识别模板训练方法的流程示意图,结合图1,本实施例进一步对如何对中间模板进行至少一次迭代更新中进行示例性说明,如图3所示,对中间模板进行至少一次迭代更新中的任意一次迭代更新进一步包括:

步骤301、从至少一个子模板中选取第二子模板;

步骤302、根据动态时间规整算法获得中间模板与第二子模板的最优匹配路径;

步骤303、根据最优匹配路径,对第二子模板进行拉伸和/或压缩处理,以得到第三子模板,第三子模板具有与中间模板相同的时间长度;

步骤304、对第三子模板与中间模板进行多维的矢量求均值运算,从而得到第四子模板;

步骤305、根据第四子模板对中间模板进行更新,从而执行完毕一次迭代更新。

具体地,在步骤301中,至少一次迭代更新中的每一次迭代都需要从至少一个子模板中选取一个第二子模板,例如,参见图2,第一次迭代更新选取子模板②作为第二子模板、第二次迭代更新中选取子模板③作为第二子模板。

进一步地,在步骤302中,首先计算中间模板中的每一个矢量特征与第二子模板中每一个矢量特征之间的欧式距离,并基于计算得到的欧式距离构建欧式距离矩阵;其次计算上述构建的矢量距离矩阵中所有可能的路径;最后在上述计算的所有路径中找出一条累加距离最小的路径。例如,参见图4,以图2中根据子模板②将中间模板x1更新为中间模板x2为例,对任意一次更新的过程进行示意性描述,子模板②和中间模板x1均为多维特征组成的时间序列,其中,图4中的横轴代表中间模板x1的时间序列,图中横轴上的(1,2,…,11)表示中间模板x1的对应帧的矢量特征,纵轴代表子模板②的时间序列,图中纵轴上的1,2,…,8表示子模板②的对应帧的矢量特征,基于上述两个时间序列构建如图所示的矩阵,在每个相交节点计算出对应帧的欧式距离,并根据动态时间规整算法从该矩阵中找到最优匹配路径,也即箭头指向的线段。

进一步地,在步骤303中,通过把子模板②的时间序列进行延伸和缩短,使其与中间模板的语音速度相一致。例如,参见图4,图中箭头指向的线段即为最优匹配路径,可以理解,该最优路径具有最小的累加距离。进一步地,根据最优路径将子模板②的部分区域进行拉伸或者压缩,最终得到一个与中间模板x1的语音速度、长度一致的第三子模板。进一步地,在步骤304中和步骤305中,将第三子模板的时间序列与中间模板x1的时间序列进行多维矢量求均值,可以将二者的多项特征整合到一起,得到第四子模板,根据第四子模板对中间模板进行更新也即将该第四子模板替换为该中间模板,以实现更新。

本实施例中,通过dtw算法将多个子模板的多项特征整合到了一起,解决传统的基于dtw算法的语音识别只对于特定人的识别率比较好的问题。

进一步地,在一实施例中,该语音识别模板训练方法可以包括:

通过在任意一次迭代更新的过程中,根据动态时间规整算法计算中间模板与第二子模板的最小累积距离,从而在至少一次迭代更新中获取至少一个最小累计距离;

根据至少一个最小累计距离,获取与语音识别模板相对应的阈值。

例如,在上述步骤302中,可以获得第二子模板与中间模板之间的最小累计距离,其中,若中间模板x1与子模板②的最小累计距离为y1,中间模板x2与子模板③的相似度为y2,中间模板x3与子模板④的相似度为y3、中间模板x4与子模板⑤的相似度为y4。由此,可以根据上述y1、y2、y3、y4求取阈值,比如阈值=150×(y1+y2+y3+y4)/4。

本实施例中,通过上述阈值求取方法,可以获取与语音识别模板相对应的阈值参数,进而在语音识别过程中可以作为一项判别标准参与到识别中,防止由于多个语音样本之间的差别过大而导致的语音识别模板的准确性不高的问题,有利于提高语音识别模板的准确度。

本发明还提供了一种语音识别方法,图5示出了本发明实施例的一种语音识别方法的流程示意图,该语音识别方法基于上述的语音识别模板训练方法中所训练获得的语音识别模板而执行,如图5所示,该方法具体包括以下步骤:

步骤501、获取待测语音;

步骤502、根据动态时间规整算法,计算待测语音与至少一个语音模板之间的至少一个最小累计距离;

步骤503、根据至少一个最小累计距离,从至少一个语音模板中选取目标语音模板,并根据目标语音模板对待测语音进行识别;

具体地,在上文中语音识别模板训练方法执行完毕后,事先将训练获得的语音识别模板以及其对应的语义存入内存,可以理解,内存中存储有对应于多个语义的多个语音识别模板,本发明中的语音识别也即从多个语音识别模板中找到与待测语音最匹配的一个语音识别模板,并将该语音识别模板的语义作为最终的识别结构。

具体,在步骤501中,通过麦克风获取待测语音之后可以包括(1)语音信号预处理,(2)特征参数提取两个子步骤,其中执行(1)语音信号预处理目的是分析处理输入的语音信号,并将其转化为语音预处理信号,其主要包括预加重、分帧加窗和端点检测3个部分内容;在执行(2)特征参数提取中,由于人耳的听觉机理,人耳对不同频率的声波有不同的听觉敏感度。对于人耳而言,一般低音容易掩蔽高音,而高音掩蔽低音较困难,在低频处的声音掩蔽的临界带宽较高频要小。为了符合人耳的听觉特性,本发明中采用的特征为梅尔倒谱系数(mfcc)。上述两个步骤可以将语音信号转化为由多维特征组成的时间序列。

进一步地,执行步骤502、步骤503,也即根据dtw算法找出待测语音与各语音识别模板之间的最小累计距离d,然后选择d最小的语音识别模板作为识别结果。

本实施例中,通过采用如图1所示方法提供的语音识别模板,能对不同人发出的同一个命令都能识别,解决了传统的语音识别过程中只对于特定人的识别率比较好的技术问题,相比传统改善做法,节省内存开销,减少匹配计算时间。

基于图5的用于语音识别的一种语音识别方法,本申请的一些实施例还提供了该语音识别方法的一些具体实施方案,以及扩展方案,下面进行说明。

进一步地,在一实施例中,方法包括:

(1)判断目标语音模板与待测语音的最小累计距离是否小于第一阈值;

(2)若目标语音模板与待测语音的最小累计距离小于与第一阈值,则根据目标语音模板对待测语音进行识别;

(3)若目标语音模板与待测语音的最小累计距离大于或等于第一阈值,则不输出识别结果;

其中,第一阈值为与目标语音模板相对应的阈值。

本实施例中,通过采用阈值参数对获取的目标模板进行二次判断的技术方案,当模板库中未存入与待测语音实际对应的语音识别模板时,本实施例可以防止输出错误的识别结果。进一步地,由于采用的阈值并非一统一参数,而是采用与语音识别模板相对应的阈值参数,使得阈值具有自适应性,进一步提升了识别准确度。

本发明还提供了一种用于执行图1所示的语音识别模板训练方法的语音识别模板训练装置,图6示出了本发明实施例的一种语音识别模板训练装置的结构示意图,如图6所示,装置60包括:

采集模块601,用于采集至少一个语音样本,形成语音样本集;

聚类模板602,用于对至少一个语音样本进行聚类训练,以得到至少一个子模板;

选取模块603,用于从至少一个子模板中选取第一子模板作为初始的中间模板;

更新模块604,用于根据动态时间规整算法与至少一个子模板,对中间模板进行至少一次迭代更新;

输出模块605,用于将经过至少一次迭代更新之后的中间模板输出为语音识别模板。

具体地,在对采集模块601的描述中,采集的至少一个语音样本具体可以是与同一孤立词相对应的若干语音样本,例如,由不同人录制的多个“开灯”语音。

进一步地,在对聚类模板602的描述中,聚类训练需要先按照某个特定标准(如性别)把语音样本集分割成不同的类或簇,使得同一个簇内的语音样本的相似性尽可能大,同时不在同一个簇中的语音样本之间的差异性也尽可能地大,而后对每一个类或簇中的语音样本各自进行训练,从而可以获得对应于各类或簇的子模板。

进一步地,在对选取模块603与对更新模块604的描述中,可以理解,动态时间规整(dynamictimewarping,简称dtw)算法是语音识别中的一种常用的匹配算法,dtw算法基于动态规划(dp)的思想,通过把时间序列进行延伸和缩短,能够有效解决进行匹配的两个语音的速度不一致的问题。本实施例中,从获取的多个子模板选取一个子模板,采用动态时间规整算法将该子模板的语音速度规整为与初始的中间模板相一致,并在语音速度一致后利用该子模板对中间模板进行更新,该更新可以是比如将中间模板替换为该子模板与原中间模板的多维均值,一次更新完成后,可以从多个子模板中选取下一个子模板,以进行下一次的迭代更新,直至多个子模板中的每一个子模板均参与迭代后完成更新,输出最后一次更新后的中间模板作为语音识别模板。本实施例中,利用动态时间规整算法可以克服多个子模板之间的速度不一致的问题,进一步提升了语音识别模板的准确性。

以下结合具体示例进行描述,例如,参见图2,收集语音“关灯”的多个语音样本,对语音样本集进行聚类训练后,获得了四个子模板,分别为子模板①、子模板②、子模板③,子模板④,子模板⑤,其中,选取子模板①作为初始的中间模板x1;进一步输入子模板②利用dtw算法对中间模板x1进行更新,以得到更新后的中间模板x2;进一步依次输入子模板③、子模板④、子模板⑤,循环上述迭代更新过程,最终,当多个子模板全部参与完成之后,输出中间模板x5作为“关灯”的语音识别模板。

在本实施例利用上述技术方案,通过对语音样本集进行聚类训练后再基于dtw算法进行整合的方法,能对不同人发出的同一个命令都能识别,解决了传统的基于dtw算法的语音识别模板只对于特定人的识别率比较好的技术问题,相比传统改善做法,节省内存开销,减少匹配计算时间。

基于图6的语音识别模板训练装置,本申请的一些实施例还提供了该语音识别模板训练装置的一些具体实施方案,以及扩展方案,下面进行说明。

进一步地,在一实施例中,采集模块601进一步用于:

响应于多种预设触发指令中的第一指令,录入至少一个语音样本中的第一样本,并将对应于第一指令的第一标签添加给第一样本;以及

响应于多种预设触发指令中的第二指令,录入至少一个语音样本中的第二样本,并将对应于第二指令的第二标签添加给第二样本。

进一步地,在一实施例中,聚类模块602进一步用于:

根据预设分类规则对至少一个语音样本进行分类,以获得至少一类语音样本;

对至少一类语音样本执行特征提取,并通过对提取的特征进行训练以得到至少一个子模板,其中至少一个子模板与至少一类语音样本一一对应。

进一步地,在一实施例中,选取模块603进一步用于:根据时间长度选取第一子模板,其中,第一子模板的时间长度为至少一个子模板的至少一个时间长度中的中位值和/或次中位值。

进一步地,在一实施例中,更新模块604进一步用于:

从至少一个子模板中选取第二子模板;

根据动态时间规整算法获得中间模板与第二子模板的最优匹配路径;

根据最优匹配路径,对第二子模板进行拉伸和/或压缩处理,以得到第三子模板,第三子模板具有与中间模板相同的时间长度;

对第三子模板与中间模板进行多维的矢量求均值运算,从而得到第四子模板;

根据第四子模板对中间模板进行更新,从而执行完毕一次迭代更新。

进一步地,在一实施例中,更新模块604进一步用于:

通过在任意一次迭代更新的过程中,根据动态时间规整算法计算中间模板与第二子模板的最小累积距离,从而在至少一次迭代更新中获取至少一个最小累计距离;

根据至少一个最小累计距离,获取与语音识别模板相对应的阈值。

本发明还提供了一种用于执行图5所示语音识别方法的语音识别装置,图7示出了本发明实施例提供的一种语音识别装置的结构示意图,如图7所示,识别装置70包括:

获取模块701,用于获取待测语音;

运算模块702,用于根据动态时间规整算法,计算待测语音与至少一个语音模板之间的至少一个最小累计距离;

识别模块703,用于根据至少一个最小累计距离,从至少一个语音模板中选取目标语音模板,并根据目标语音模板对待测语音进行识别;

其中,至少一个语音模板中的每一个语音模板基于权利要求1~6的训练装置形成。

具体地,在上文中语音识别模板训练方法执行完毕后,事先将训练获得的语音识别模板以及其对应的语义存入内存,可以理解,内存中存储有对应于多个语义的多个语音识别模板,本发明中的语音识别也即从多个语音识别模板中找到与待测语音最匹配的一个语音识别模板,并将该语音识别模板的语义作为最终的识别结构。

具体地,获取模块701通过麦克风获取待测语音之后可以包括(1)语音信号预处理,(2)特征参数提取两个子步骤,其中执行(1)语音信号预处理目的是分析处理输入的语音信号,并将其转化为语音预处理信号,其主要包括预加重、分帧加窗和端点检测3个部分内容;在执行(2)特征参数提取中,由于人耳的听觉机理,人耳对不同频率的声波有不同的听觉敏感度。对于人耳而言,一般低音容易掩蔽高音,而高音掩蔽低音较困难,在低频处的声音掩蔽的临界带宽较高频要小。为了符合人耳的听觉特性,本发明中采用的特征为梅尔倒谱系数(mfcc)。上述两个步骤可以将语音信号转化为由多维特征组成的时间序列。

进一步地,运算模块702根据dtw算法找出待测语音与各语音识别模板之间的最小累计距离d,然后识别模块703选择d最小的语音识别模板作为识别结果。

本实施例中,通过采用如图1所示方法提供的语音识别模板,能对不同人发出的同一个命令都能识别,解决了传统的语音识别过程中只对于特定人的识别率比较好的技术问题,相比传统改善做法,节省内存开销,减少匹配计算时间。

进一步地,在一实施例中,至少一个语音模板中的每一个语音模板均包含相对应的阈值,以及,装置60可以包括判断模块604,具体用于:

判断目标语音模板与待测语音的最小累计距离是否小于第一阈值;

若目标语音模板与待测语音的最小累计距离小于与第一阈值,则根据目标语音模板对待测语音进行识别;

若目标语音模板与待测语音的最小累计距离大于或等于第一阈值,则不输出识别结果;

其中,第一阈值为与目标语音模板相对应的阈值。

图8示出了又一种语音识别模板训练装置的结构示意图。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为设备、方法或计算机可读存储介质。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“设备”。

在一些可能的实施方式中,本发明的语音识别模板训练装置可以至少包括一个或多个处理器、以及至少一个存储器。其中,所述存储器存储有程序,当所述程序被所述处理器执行时,使得所述处理器执行如图1所示的步骤:

步骤101、采集至少一个语音样本,形成语音样本集;

步骤102、对至少一个语音样本进行聚类训练,以得到至少一个子模板;

步骤103、从至少一个子模板中选取第一子模板作为初始的中间模板;

步骤104、根据动态时间规整算法与至少一个子模板,对中间模板进行至少一次迭代更新;

步骤105、将经过至少一次迭代更新之后的中间模板输出为语音识别模板。

此外,尽管附图中未示出,但本发明的所述程序被所述处理器执行时,还使得所述处理器执行上述示例性方法中描述的其他操作或步骤。

下面参照图8来描述根据本发明的这种实施方式的语音识别模板训练装置8。图8显示的装置8仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,装置8可以以通用计算设备的形式表现,包括但不限于:至少一个处理器10、至少一个存储器20、连接不同设备组件的总线60。

总线60包括数据总线、地址总线和控制总线。

存储器20可以包括易失性存储器,例如随机存取存储器(ram)21和/或高速缓存存储器22,还可以进一步包括只读存储器(rom)23。

存储器20还可以包括程序模块24,这样的程序模块24包括但不限于:操作设备、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

装置8还可以与一个或多个外部设备2(例如键盘、指向设备、蓝牙设备等)通信,也可与一个或者多个其他设备进行通信。这种通信可以通过输入/输出(i/o)接口40进行,并在显示单元30上进行显示。并且,装置7还可以通过网络适配器50与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器50通过总线60与装置8中的其它模块通信。应当明白,尽管图中未示出,但可以结合装置8使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid设备、磁带驱动器以及数据备份存储设备等。

在一些可能的实施方式中,本发明的各个方面还可以实现为一种计算机可读存储介质的形式,其包括程序代码,当所述程序代码在被处理器执行时,所述程序代码用于使所述处理器执行上面描述的方法。

上面描述的方法包括了上面的附图中示出和未示出的多个操作和步骤,这里将不再赘述。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的设备、设备或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

如图9所示,描述了根据本发明的实施方式的计算机可读存储介质90,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的计算机可读存储介质不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行设备、设备或者器件使用或者与其结合使用。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1