一种基于余弦相似度的语音识别方法和装置

文档序号:1429867 发布日期:2020-03-17 浏览:31次 >En<

阅读说明:本技术 一种基于余弦相似度的语音识别方法和装置 (Voice recognition method and device based on cosine similarity ) 是由 吴威 张楠赓 于 2018-09-10 设计创作,主要内容包括:本发明的实施方式提供了一种基于余弦相似度的语音识别方法和系统,方法包括:获取待测语音;对待测语音进行分帧处理;通过提取每一帧待测语音的特征向量获取待测特征向量序列;利用基于余弦值的相似度算法计算出待测特征向量序列与至少一个预设模板特征向量序列之间的余弦相似度;基于余弦相似度对待测语音进行识别。通过本发明实施方式减少了由于录制语音模板与待测语音之间声音大小差异而造成的误差,提高了识别率。(The embodiment of the invention provides a method and a system for recognizing voice based on cosine similarity, wherein the method comprises the following steps: acquiring a voice to be detected; performing framing processing on the voice to be detected; acquiring a feature vector sequence to be detected by extracting a feature vector of each frame of voice to be detected; calculating cosine similarity between the feature vector sequence to be detected and at least one preset template feature vector sequence by utilizing a similarity algorithm based on cosine values; and identifying the voice to be detected based on the cosine similarity. The embodiment of the invention reduces the error caused by the difference of the sound size between the recorded voice template and the voice to be detected, and improves the recognition rate.)

一种基于余弦相似度的语音识别方法和装置

技术领域

本发明涉及语音识别领域,具体涉及一种基于余弦相似度的语音识别方法和装置。

背景技术

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

近年来,随着人机信息交互技术的发展,语音识别技术显示出其重要性。在语音识别中,现有技术中通常采用欧氏距离作为测度计算两个时间序列之间的相似度,进一步进行识别。

例如,在语音识别系统中,动态时间规整算法(Dynamic Time Warping,简称DTW)是语音识别中的关键技术之一。DTW通过把时间序列进行延伸和缩短,来计算两个时间序列之间的相似性。传统的DTW算法是动态地计算分属待测特征向量序列和模板特征向量序列的任两个向量的欧氏距离,通过找到累加距离最小的规整路径作为最优路径。

然而,在实现本发明的过程中,发明人发现上述基于欧氏距离计算两个声音特征向量序列的相似度时(例如,利用动态时间规整算法计算时间序列相似度),会使得分属两个声音特征向量序列的向量之间的相似度由于声音大小差异产生很大的误差,进一步造成识别率降低,例如,在录制模板过程与识别过程中,针对同一个词采用不同大小的声音或者不同说话距离都会导致识别率的降低。

发明内容

针对现有技术中语音识别过程中,由于待识别语音与参考模板之间的声音大小差异而产生识别率降低的问题,本发明的实施例提出一种基于余弦相似度的语音识别方法和装置,降低了由于音量不同而造成的误差,进一步提高了识别率。

在本发明实施方式的第一方面,提出一种基于余弦相似度的语音识别方法,其特征在于,所述方法包括:

获取待测语音;

对所述待测语音进行分帧处理;

通过提取每一帧所述待测语音的特征向量获取待测特征向量序列;

利用基于余弦值的相似度算法计算出所述待测特征向量序列与至少一个预设模板特征向量序列之间的余弦相似度;

基于所述余弦相似度选择所述至少一个预设模板特征向量序列中的一个预设模板特征向量序列对所述待测语音进行识别。

在一种实施方式中,其中,所述方法还包括:

通过提取至少一个录制语音模板的特征向量序列获取所述至少一个预设模板特征向量序列。

在一种实施方式中,其中,所述特征向量为梅尔频率倒谱系数(MFCC)特征向量。

在一种实施方式中,其中,所述提取每一帧所述待测语音的特征向量进一步包括:

通过对所述每一帧待测语音依次进行预处理获取所述每一帧待测语音的对数能量谱s(m);

通过查表法对所述每一帧待测语音的对数能量谱s(m)进行离散余弦变换(DCT),获取所述每一帧待测语音的梅尔频率倒谱系数(MFCC)。

在一种实施方式中,其中,所述预处理包括快速傅里叶变换,Mel滤波以及对数运算。

在一种实施方式中,其中,所述通过查表法对所述每一帧待测语音的对数能量谱s(m)进行离散余弦变换(DCT),获取所述每一帧待测语音的梅尔频率倒谱系数(MFCC)进一步包括:

在所述提取每一帧所述待测语音的特征向量之前,根据公式(1)计算出与每一个(n,m)的取值相对应的数据X(n,m),并构建L×M的查找表;

其中,所述公式(1)为:

Figure BDA0001794065970000021

其中,n=1,2,...,L,所述L为预设的MFCC维度,以及m=1,2,...,M,所述M为预设的Mel滤波器个数。

在一种实施方式中,其中,所述基于所述每一帧待测语音的对数能量谱s(m),通过查表法获取所述每一帧待测语音的梅尔频率倒谱系数(MFCC)进一步包括:

所述获取所述每一帧待测语音的对数能量谱s(m)之后,依次对n取值计算公式(2);

将获取的L个计算结果设置为L维的MFCC;

其中,所述公式(2)具体为:

Figure BDA0001794065970000031

其中,所述s(m)为所述获取的每一帧待测语音的对数能量谱,所述X(n,m)通过所述查找表获取。

在一种实施方式中,其中,所述M取值24,以及所述L取值12。

在一种实施方式中,其中,所述相似度算法为动态时间规整算法。

在一种实施方式中,其中,所述利用基于余弦值的相似度算法计算出所述待测特征向量序列与至少一个预设模板特征向量序列之间的余弦相似度具体包括:

针对每一个所述预设模板特征向量序列,计算出所述待测特征向量序列的每一个特征向量与每一个所述预设模板特征向量序列的每一个特征向量之间的余弦值;

利用动态时间规整算法将所述余弦值构造为矩阵网格;

利用动态时间规整算法从所述矩阵网格中选取最优路径;

根据所述最优路径获取所述待测特征向量序列与每一个所述预设模板特征向量序列之间的余弦相似度;

其中,所述最优路径下的累加余弦值为所述余弦相似度。

在一种实施方式中,其中,所述待测特征向量序列的每一个特征向量与所述预设模板特征向量序列的每一个特征向量之间的余弦值具体包括:

对于任一组特征向量,采用公式(3)计算余弦值;

其中,所述公式3具体为:

Figure BDA0001794065970000032

其中,A为所述待测特征向量序列的任一个特征向量,B为所述预设模板特征向量序列的任一个特征向量,An为所述待测特征向量序列的任一个特征向量中第n维度的值,Bn为所述预设模板特征向量序列的任一个特征向量中第n维度的值,以及,L为向量总维度,n为1~L之间的整值。

在一种实施方式中,其中,所述基于所述余弦相似度选择所述至少一个预设模板特征向量序列中的一个预设模板特征向量序列对所述待测语音进行语音识别具体包括下列中的一种或多种:

根据所述余弦相似度达到预设阈值的预设模板特征向量序列对所述待测语音进行识别;

根据具有全局最大余弦相似度的预设模板特征向量序列对所述待测语音进行识别。

本发明第二方面,提出一种基于余弦相似度的语音识别装置,其特征在于,所述装置包括:

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

分帧模块,用于对所述待测语音进行分帧处理;

特征提取模块,用于通过提取每一帧所述待测语音的特征向量获取待测特征向量序列;

余弦相似度计算模块,用于利用基于余弦值的相似度算法计算出所述待测特征向量序列与至少一个预设模板特征向量序列之间的余弦相似度;

识别模块,用于基于所述余弦相似度选择所述至少一个预设模板特征向量序列中的一个预设模板特征向量序列对所述待测语音进行识别。

在一种实施方式中,其中,所述装置还包括:

模板特征向量序列获取模块,用于通过提取至少一个录制语音模板的特征向量序列获取所述至少一个预设模板特征向量序列。

在一种实施方式中,其中,所述特征向量为梅尔频率倒谱系数特征向量。

在一种实施方式中,其中,所述特征提取模块进一步用于:

通过对所述每一帧待测语音依次进行预处理获取所述每一帧待测语音的对数能量谱s(m);

通过查表法对所述每一帧待测语音的对数能量谱s(m)进行离散余弦变换(DCT),获取所述每一帧待测语音的梅尔频率倒谱系数(MFCC)。

在一种实施方式中,其中,所述预处理包括快速傅里叶变换,Mel滤波以及对数运算。

在一种实施方式中,其中,所述通过查表法对所述每一帧待测语音的对数能量谱s(m)进行离散余弦变换(DCT),获取所述每一帧待测语音的梅尔频率倒谱系数(MFCC)进一步包括:

在所述提取每一帧所述待测语音的特征向量之前,根据公式(1)计算出与每一个(n,m)的取值相对应的数据X(n,m),并构建L×M的查找表;

其中,所述公式(1)具体为:

Figure BDA0001794065970000051

其中,n=1,2,...,L,所述L为预设的梅尔频率倒谱系数维度,以及m=0,2,...,M-1,所述M为预设的Mel滤波器个数。

在一种实施方式中,其中,所述基于所述每一帧待测语音的对数能量谱s(m),通过查表法获取所述每一帧待测语音的梅尔频率倒谱系数(MFCC)进一步包括:

所述获取所述每一帧待测语音的对数能量谱s(m)之后,依次对n取值计算公式(2);

将获取的L个计算结果设置为L维的MFCC;

其中,所述公式(2)具体为:

Figure BDA0001794065970000052

其中,所述s(m)为所述获取的每一帧待测语音的对数能量谱,所述X(n,m)通过所述查找表获取。

在一种实施方式中,其中,所述M取值24,以及所述L取值12。

在一种实施方式中,其中,所述相似度算法为动态时间规整算法。

在一种实施方式中,其中,所述余弦相似度计算模块具体用于:

针对每一个所述预设模板特征向量序列,计算出所述待测特征向量序列的每一个特征向量与每一个所述预设模板特征向量序列的每一个特征向量之间的余弦值;

利用动态时间规整算法将所述余弦值构造为矩阵网格;

利用动态时间规整算法从所述矩阵网格中选取最优路径;

根据所述最优路径获取所述待测特征向量序列与每一个所述预设模板特征向量序列之间的余弦相似度;

其中,所述最优路径下的累加余弦值为所述余弦相似度。

在一种实施方式中,其中,所述余弦相似度计算模块还用于:

对于任一组特征向量,采用公式(3)计算余弦值;

其中,所述公式3具体为:

Figure BDA0001794065970000061

其中,A为所述待测特征向量序列的任一个特征向量,B为所述预设模板特征向量序列的任一个特征向量,An为所述待测特征向量序列的任一个特征向量中第n维度的值,Bn为所述预设模板特征向量序列的任一个特征向量中第n维度的值,以及,L为向量总维度,n为1~L之间的整值。

在一种实施方式中,其中,所述识别模块具体用于:

根据所述余弦相似度达到预设阈值的预设模板特征向量序列对所述待测语音进行识别;

根据具有全局最大余弦相似度的预设模板特征向量序列对所述待测语音进行识别。

正是通过本发明实施方式所提供的提出一种基于余弦相似度的语音识别方法和装置,将动态时间规整算法中的欧氏距离参数更换为向量余弦相似度参数,减少了由于录制语音模板与待测语音之间声音大小差异而造成的误差,进一步提高了识别率。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1示出了根据本发明实施例的一种基于余弦相似度的语音识别方法流程图;

图2示出了根据本发明实施例的另一种基于余弦相似度的语音识别方法流程图;

图3示出了根据本发明实施例的又一种基于余弦相似度的语音识别方法流程图;

图4示出了根据本发明实施例的一种基于余弦相似度的语音识别装置的结构示意图;

图5示出了根据本发明实施例的另一种基于余弦相似度的语音识别装置的结构示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

示例性方法

本发明实施例提出一种基于融合特征的语音端点检测的方法。

图1是根据本发明实施例的基于融合特征的语音端点检测的方法的示意性流程图。如图1所示,该方法可以包括但不限于如下步骤,可选地,所述识别为孤立词语音识别:

S110:获取待测语音;

在一些实施方式中,在获取待测语音之后,需要对声音作预处理,所述预处理可以包括:模数转换、预加重。

在一实施例中,所述模数转换就是把模拟信号转换为数字信号,也即以一定的采样率和采样位数把声音连续波形转换为离散的数据点;所述预加重可以通过高通滤波器实现,用于增加声音高频部分的能量,对于声音信号的频谱来说,通常情况下,低频部分的能量高于高频部分的能量,为使高频部分的能量和低频部分的能量具有相似的幅度,需要预先加强采集的语音的高频能量,从而提高识别准确度。

S120:对所述待测语音进行分帧处理。

S130:通过提取每一帧所述待测语音的特征向量获取待测特征向量序列。

在一实施例中,由于声音的时域波形只代表声压随时间变化的关系,不能很好的代表声音的特征,因此,必须将声音波形转换为声学特征向量。目前有许多的声音特征提取方法,例如梅尔频率倒谱系数MFCC、线性预测倒谱系数LPCC、多媒体内容描述接口MPEG7等。

在一实施例中,本实施例可以采用MFCC参数向量作为声音特征向量进行后续运算。

本领域技术人员可以理解的是,一般来说,从经过预处理的语音中提取MFCC特征可以包括以下步骤:

(1)对预处理后的每一帧语音进行离散傅里叶变换获得对应的频谱。

(2)将频谱通过Mel滤波器组得到Mel频谱。

(3)在Mel频谱上进行倒谱分析,获得该帧语音的MFCC特征向量。

本发明并不限于采用MFCC声音特征进行语音识别,也可以采用LPCC(线性预测倒谱系数)、HZCRR(高过零帧比率)等声音特征进行后续语音识别,本发明实施例仅以MFCC声音特征为例进行说明,但是并不限于此。

本发明实施例通过采用MFCC特征向量作为声音特征向量,MFCC特征向量为非线性特征,因为人耳所听到的声音的高低与声音的频率不成线性正比关系,因而采用MFCC特征向量更贴近于人耳的听觉特征,进一步提高识别率。

S140:利用基于余弦值的相似度算法计算出所述待测特征向量序列与至少一个预设模板特征向量序列之间的余弦相似度。

在一实施例中,上述预设模板特征向量序列为预先提取的模板语音MFCC待测特征向量序列,上述两个序列的长度可以不同。

在一实施例中,上述相似度算法具体为动态时间规整算法。

在一实施例中,上述相似度算法也可以是能够计算出两个声音特征向量序列之间相似度的其他算法,例如,声纹识别算法、动态时间规整算法,本发明实施例以动态时间规整算法为例,但不限于此。

本领域技术人员可以理解的是,在现有技术中,DTW算法对两个时间序列进行相似度计算时,通常是基于分属两个序列的向量之间的所有欧氏距离进行分析与计算的,而本申请实施例的基于余弦值的DTW算法则是通过对分属两个序列的向量之间的所有余弦值进行计算,进而计算出两个序列之间的相似度。

S150:基于所述余弦相似度对所述待测语音进行识别。

具体地,基于所述余弦相似度选择所述至少一个预设模板特征向量序列中的一个预设模板特征向量序列对所述待测语音进行识别。

在一实施例中,所述余弦相似度越大,预设模板特征向量序列与待测语音之间的匹配度也就越高。通过匹配到每一个预设模板特征向量序列都与预定的识别结果相对应,

例如:一般情况下,家用智能音箱在出厂时就会将一些预设语音片段与控制指令之间创建连接,比如智能音箱内置有的“打开空调”这一预设模板特征向量序列,相应地,其会对应到真实打开空调的控制指令,在此情况下,若待测语音与“打开空调”这一预设模板特征向量序列的匹配值超过一定阈值,我们就将“打开空调”这一预设模板特征向量序列作为待测语音的实际识别结果。

在一实施例中,对上述待测语音进行识别不限于上述通过设置阈值进行匹配的方式,任何可以匹配到一个或多个预设模板特征向量序列并进行语音识别的方式均可以被采用。

在一实施例中,本发明可以采用下列识别方式:

(1)根据所述余弦相似度达到预设阈值的预设模板特征向量序列对所述待测语音进行识别;

在一实施例中,对上述模板库中的模板特征向量序列进行依次匹配识别时,一旦匹配到相似度值超过预设阈值的模板特征向量序列,则判断该模板特征向量序列作为识别结果。

(2)根据具有全局最大余弦相似度的预设模板特征向量序列对所述待测语音进行识别;

在一实施例中,对上述模板库中的模板特征向量序列进行依次匹配识别时,对所有的模板特征向量序列进行匹配之后,输出具有最大相似度的模板特征向量序列作为识别结果。

上述预设规则可以单独使用,也可以组合使用,在此不做限定。

例如:对于获取的多个不同模板相对应的相似度值,先选取最大的相似度值,再判断该最大相似度值是否超过预设阈值,若超过,则输出该模板对应的语义作为识别结果,若未超过,则输出无识别结果

如图2所示,在一实施例中,上述步骤S130中,可以采用下述方法获取MFCC特征向量:

S210:通过对所述每一帧待测语音依次进行预处理获取所述每一帧待测语音的对数能量谱s(m);

在一实施例中,所述预处理具体可以包括快速傅里叶变换(FFT),Mel滤波以及对数运算。

在一实施例中,获取s(m)具体可以采用下列公式(4):

Figure BDA0001794065970000101

其中,M为滤波器数量,其中,m=0,1,2,...,M-1,M为大于1的整数。

其中,M为三角滤波器数量。L为MPCC特征的维度,通常12维就可以表示声学特征。N为频率点。

S220:通过查表法对所述每一帧待测语音的对数能量谱s(m)进行离散余弦变换(DCT),获取所述每一帧待测语音的梅尔频率倒谱系数(MFCC)。

在一实施例中,上述构建查找表的过程可以包括:

(a)根据下列公式(1)计算出与每一个(n,m)的取值相对应的数据X(n,m),并构建L×M的查找表;

其中,所述公式为:

Figure BDA0001794065970000102

其中,n=1,2,...,L,L为大于1的整数;m=0,1,2,...,M-1,M为大于1的整数。

在一实施例中,上述根据查找表和获取的每一帧待测语音的对数能量谱s(m)计算梅尔频率倒谱系数(MFCC)的过程具体可以包括:

(b)依次对n取值,计算下列公式(2),获取C(1),C(2),…,C(L)这L个计算结果;

(c)将获取的L个计算结果设置为L维的MFCC;

其中,所述公式具体为:

Figure BDA0001794065970000103

其中,n=1,2,...,L,L为大于1的整数;m=0,1,2,...,M-1,M为大于1的整数。

其中,所述s(m)为所述获取的每一帧待测语音的对数能量谱,所述X(n,m)通过所述查找表获取。

以下采用具体示例对上述计算梅尔频率倒谱系数的过程进行详解:

例如,对n取值1以计算C(1),首先,需要从查找表中找到X(1,0),将X(1,0)与

Figure BDA0001794065970000104

相乘,然后从查找表中找到X(1,1),并与获取的

Figure BDA0001794065970000105

相乘,一直重复上述步骤。对m从0到M-1进行依次取值,并将所有的计算结果累加获得C(1),上述C(1)也即MFCC的第一维系数。

采用上述方法依次计算出C(1),…,C(L),获得L维度的MFCC。

本发明实施例中,通过采用上述利用查找表对MFCC进行预存的技术方案,能够对语音提取MFCC特征信号的过程进行加速,进一步缩短了整个语音识别的时间,提高了工作效率。此外,尤其针对嵌入式硬件识别设备而言,由于设备要执行计算更加简单,节省了制造成本与设备空间。

在一实施例中,M取值24,L取值12,将n分别取值1、2、3…12,并依照上述公式提前计算好与n值相应的MFCCC(n),并将上述MFCC维度n的取值与计算出的MFCC结果预存在一个数组中,以供后续计算中直接通过查找数组获得相应的MFCC。

在这里,对上述滤通器个数M、MFCC维度L以及其他相关系数不作具体限定,其可以根据具体应用场景进行调整,例如:MFCC维度L可以设置为16维。本申请中以M取值24,L取值12为例,但是不限于此。

本发明实施例中,通过实际验证得知,采用12维就可以较为完整表述声音的特征,采用24个滤波器就可以获得较稳定的技术效果。因此采用12维MFCC以及24个滤波器是综合考虑计算量的情况下的较佳选择。

在一实施例中,上述提取MFCC特征向量的过程当然也可以根据现有技术采用倒谱分析的方法计算得到TFCC特征向量,在此不做限定。

在一实施例中,在本发明实施例中,经过上述特征提取后,得到所述待测语音的MFCC待测特征向量序列(A1,A2…,AQ),N为大于1的整数,A1~AQ呈时间顺序排列。

如图3所示,在一实施例中,本发明上述步骤S140可以包括S310~S340。

在一实施例中,所述预设模板特征向量序列的待测特征向量序列可以为(B1,B2…,BM),T为大于1的整数,B1~BM呈时间顺序排列。

S310:针对每一个所述预设模板特征向量序列,计算出所述待测特征向量序列的每一个特征向量与每一个所述预设模板特征向量序列的每一个特征向量之间的余弦值。

对于待测特征向量序列中的任一个向量Aq和预设模板特征向量序列中的任一个向量Bt,其中1≤q≤Q,1≤t≤T。可以使用下列公式(5)计算出两个向量之间的夹角余弦值:

Aq=(A1,A2,…,AL),Bt=(B1,B2,…,BL),其中L为向量维度,对于声音特征向量,一般取值12~16的整数。

Figure BDA0001794065970000121

其中,n为1至L之间的整数。

本领域技术人员可以理解的是,对于两个向量,余弦值越接近1,两个向量的夹角越接近0度,就表明两个向量越相似,也即余弦相似性。

由于余弦距离使用两个向量夹角的余弦值作为衡量两个个体间差异的大小。因此,相较于欧氏距离倾向于体现个体数值特征的绝对差异的特征,余弦距离更加注重两个向量在方向上的差异,对绝对的数值并不敏感,进一步修正了比较的时间序列间可能存在的度量标准不统一的问题。

因此,本申请通过上述利用向量余弦相似度对待测特征向量序列和模板特征向量序列的特征向量进行比较的技术方案,能够克服由于待测语音与录制模板之间信号强度不均衡所带来的识别率降低的问题,例如音量差异过大等。

S320:利用动态时间规整算法将所述余弦值构造为矩阵网格。

如下表1所示,计算出待测特征向量序列与预设模板特征向量序列中所有的向量夹角余弦值,构建矩阵网格,向量余弦值作为矩阵元素,由于上述序列均为时间序列,因此该矩阵网格从左至右、从下至上符合时间顺序。

B<sub>T</sub> cos(A<sub>1</sub>,B<sub>T</sub>) cos(A<sub>2</sub>,B<sub>T</sub>) cos(A<sub>Q</sub>,B<sub>T</sub>)
cos(A<sub>n</sub>,B<sub>t</sub>)
B<sub>2</sub> cos(A<sub>1</sub>,B<sub>2</sub>) cos(A<sub>2</sub>,B<sub>2</sub>) cos(A<sub>Q</sub>,B<sub>2</sub>)
B<sub>1</sub> cos(A<sub>1</sub>,B<sub>1</sub>) cos(A<sub>2</sub>,B<sub>1</sub>) cos(A<sub>Q</sub>,B<sub>1</sub>)
A<sub>1</sub> A<sub>2</sub> A<sub>Q</sub>

表1

S330:利用动态时间规整算法从所述矩阵网格中选取最优路径;

S340:根据所述最优路径获取所述待测特征向量序列与每一个所述预设模板特征向量序列之间的余弦相似度。

在一实施例中,与传统的DTW算法一致,选取最优路径需要至少要符合三个约束:1)边界条件:任何一种语音的发音快慢都有可能变化,但是其各部分的先后次序不可能改变,因此所选的路径必定是从左下角出发,在右上角结束。2)连续性:不能跨过某个点去匹配,只能与相邻的点对齐。3)单调性:路径随着时间单调进行的,因此不能向左或向下。

在一实施例中,本申请实施例根据矩阵网格中每个元素的代价计算一条累加余弦值最大的路径。

其中,在上述矩阵网格中,一个点的代价=这个点的余弦值+来自下、左、斜下这三个方向的值中最大的一个。下、左、斜下这三个方向的值可以依次递归求得,直到(1,1)点。

S(Aq,Bt)=cos(Aq,Bt)+tax[S(Aq-1,Bt),S(Aq,Bt-1),S(Aq-1,Bt-1)]。

当前格点累加余弦值S(Aq,Bt)为当前格点余弦值cos(Aq,Bt),也就是当前格点对应的两个向量的余弦距离(相似性)与可以到达该点的最大的邻近格点的累加余弦值之和,当上述余弦值累加结束,也即路径走到向量AN与向量BM对应的终点时,所获得的累加余弦值S(AQ,BT)即为累加余弦值,全局累加余弦值最大的路径即最优规整路径。所述最优路径下的累加余弦值为所述余弦相似度。

本发明实施例通过利用采用基于余弦相似度的动态时间规整算法,能够同时克服两个声音特征向量序列之间由于时间长短不一以及声音能量不一所带来的不利影响,有益于识别率的提升。

在这里,对上述计算累加余弦值的运算方式不作具体限定,任何满足上述边界性、连续性与单调性的最优路径求取方式均可以被采用,其可以采用现有技术中对路径边界进行二次约束的方式以减少运算量,或者将上述矩阵网格拆分为多个局部矩阵网格进行分段运算后求和。本申请仅以上述示例性实施例中采用的运算方式为例,但是不限于此。

本领域技术人员可以理解的是,本发明实施例上述利用基于余弦相似度的动态时间算法计算时间序列之间的相似度的技术方案完全可以适用于其他识别领域,例如:语义识别领域、手势识别领域、动作识别领域等任何具有时间序列属性(也即可以转换为时间序列)的识别领域。

综上,正是通过本发明实施方式所提供的提出一种基于余弦相似度的语音识别方法和装置,将动态时间规整算法中的欧氏距离参数更换为向量余弦相似度参数,减少了由于录制语音模板与待测语音之间声音大小差异而造成的误差,进一步提高了识别率。

示例性设备

本发明实施例提出一种基于融合特征的语音端点检测的装置。

图4是根据本发明实施例的基于融合特征的语音端点检测的装置的示意性框图。如图4所示,该装置400可以包括但不限于如下模块,

获取模块410,用于获取待测语音。

在一些实施方式中,在获取待测语音之后,需要对声音作预处理,所述预处理可以包括:模数转换、预加重。

在一实施例中,所述模数转换就是把模拟信号转换为数字信号,也即以一定的采样率和采样位数把声音连续波形转换为离散的数据点;所述预加重可以通过高通滤波器实现,用于增加声音高频部分的能量,对于声音信号的频谱来说,通常情况下,低频部分的能量高于高频部分的能量,为使高频部分的能量和低频部分的能量具有相似的幅度,余姚预先加强采集的语音的高频能量,从而提高识别准确度。

分帧模块420,用于对所述待测语音进行分帧处理。

特征提取模块430,用于通过提取每一帧所述待测语音的特征向量获取待测特征向量序列。

在一实施例中,由于声音的时域波形只代表声压随时间变化的关系,不能很好的代表声音的特征,因此,必须将声音波形转换为声学特征向量。目前有许多的声音特征提取装置,例如梅尔频率倒谱系数MFCC、线性预测倒谱系数LPCC、多媒体内容描述接口MPEG7等。

在一实施例中,本实施例采用MFCC参数向量作为声音特征向量进行后续语音识别。

本领域技术人员可以理解的是,一般来说,从经过预处理的语音中提取MFCC特征可以包括以下步骤:(1)对预处理后的每一帧语音进行离散傅里叶变换获得对应的频谱;(2)将频谱通过Mel滤波器组得到Mel频谱;(3)在Mel频谱上进行倒谱分析,获得该帧语音的MFCC特征向量。

本发明并不限于采用MFCC声音特征进行语音识别,也可以采用LPCC(线性预测倒谱系数)、HZCRR(高过零帧比率)等声音特征进行后续语音识别,本发明实施例仅以MFCC声音特征为例进行说明,但是并不限于此。

余弦相似度计算模块440,用于利用基于余弦值的动态时间规整算法计算出所述待测特征向量序列与至少一个预设模板特征向量序列之间的余弦相似度。

在一实施例中,上述预设模板特征向量序列为预先提取的模板语音MFCC待测特征向量序列,上述两个序列的长度可以不同。

在现有技术中,DTW算法对两个序列进行相似度计算时,通常是基于分属两个序列的向量之间的所有欧氏距离进行分析与计算的,而本申请实施例的基于余弦值的DTW算法则是通过对分属两个序列的向量之间的所有余弦值进行计算,进而计算出两个序列之间的相似度。

识别模块450,用于基于所述余弦相似度对所述待测语音进行识别。

具体地,上述识别模块450基于所述余弦相似度选择所述至少一个预设模板特征向量序列中的一个预设模板特征向量序列对所述待测语音进行识别。

在一实施例中,所述余弦相似度越大,模板特征向量序列与待测语音之间的匹配度也就越高。通过匹配到每一个预设模板特征向量序列都与预定的识别结果相对应,

例如:一般情况下,家用智能音箱在出厂时就会将一些预设语音片段与控制指令之间创建连接,比如智能音箱内置有的“打开空调”这一预设模板特征向量序列,相应地,其会对应到真实打开空调的控制指令,在此情况下,若待测语音与“打开空调”这一预设模板特征向量序列的匹配值超过一定阈值,我们就将“打开空调”这一预设模板特征向量序列作为待测语音的实际识别结果。

本发明实施例中,对上述待测语音进行识别不限于上述通过设置阈值进行匹配的方式,任何可以匹配到一个或多个预设模板特征向量序列并进行语音识别的方式均可以被采用。

在一实施例中,本发明识别模块450可以用于:

(1)根据所述余弦相似度达到预设阈值的预设模板特征向量序列对所述待测语音进行识别;

在一实施例中,对模板库中的模板特征向量序列进行依次匹配识别时,一旦匹配到相似度值超过预设阈值的模板特征向量序列,则判断该模板特征向量序列作为识别结果。

(2)根据具有全局最大余弦相似度的预设模板特征向量序列对所述待测语音进行识别;

在一实施例中,对上述模板库中的模板特征向量序列进行依次匹配识别时,对所有的模板特征向量序列进行匹配之后,输出具有最大相似度的模板特征向量序列作为识别结果。

上述预设规则可以单独使用,也可以组合使用,在此不做限定。例如:对于获取的多个不同模板相对应的相似度值,先选取最大的相似度值,再判断该最大相似度值是否超过预设阈值,若超过,则输出该模板对应的语义作为识别结果,若未超过,则输出无识别结果

在一实施例中,可以采用下述方法获取MFCC特征向量:

(1)通过对所述每一帧待测语音依次进行预处理获取所述每一帧待测语音的对数能量谱s(m);

在一实施例中,所述预处理具体可以包括快速傅里叶变换(FFT),Mel滤波以及对数运算。

在一实施例中,获取s(m)具体可以采用下列公式(4):

Figure BDA0001794065970000161

其中,M为滤波器数量,m取值0~M-1。其中,M为三角滤波器数量。L为MPCC特征的维度,通常12维就可以表示声学特征。N为频率点。

(2)通过查表法对所述每一帧待测语音的对数能量谱s(m)进行离散余弦变换(DCT),获取所述每一帧待测语音的梅尔频率倒谱系数(MFCC)。

在一实施例中,如图5所示,特征提取模块430可以包括下述子模块:

查找表模块431,用于针对每一帧待测语音,根据MFCC特征向量的维度直接读取预存的MFCC,并获取MFCC特征向量。

在一实施例中,上述查找表模块431的数据构建与数据使用过程可以包括:

(a)根据下列公式(1)计算出与每一个(n,m)的取值相对应的数据X(n,m),并构建L×M的查找表;

其中,所述公式为:

其中,n=1,2,...,L,L为大于1的整数;m=0,1,2,...,M-1,M为大于1的整数。

在一实施例中,上述根据查找表和获取的每一帧待测语音的对数能量谱s(m)计算梅尔频率倒谱系数(MFCC)的过程具体可以包括:

(b)依次对n取值,计算下列公式(2),获取C(1),C(2),…,C(L)这L个计算结果;

(c)将获取的L个计算结果设置为L维的MFCC;

其中,所述公式具体为:

其中,n=1,2,...,L,L为大于1的整数;m=0,1,2,...,M-1,M为大于1的整数。

其中,所述s(m)为所述获取的每一帧待测语音的对数能量谱,所述X(n,m)通过所述查找表获取。

以下采用具体示例对上述计算梅尔频率倒谱系数的过程进行详解:

例如,对n取值1以计算C(1),首先,需要从查找表中找到X(1,0),将X(1,0)与

Figure BDA0001794065970000172

相乘,然后从查找表中找到X(1,1),并与获取的相乘,一直重复上述步骤。对m从0到M-1进行依次取值,并将所有的计算结果累加获得C(1),上述C(1)也即MFCC的第一维系数。

采用上述方法依次计算出C(1),…,C(L),获得L维度的MFCC。

在一实施例中,M取值24,L取值12,将n分别取值1、2、3…12,并依照上述公式提前计算好与n值相应的MFCCC(n),并将上述MFCC维度n的取值与计算出的MFCC结果预存在一个数组中,以供后续计算中直接通过查找数组获得相应的MFCC。

本发明实施例中,通过采用上述对MFCC进行预存的技术方案,能够对语音提取MFCC特征信号的过程进行加速,进一步缩短了整个语音识别的时间,提高了工作效率。此外,尤其针对嵌入式硬件识别设备而言,由于设备要执行计算更加简单,节省了制造成本与设备空间。

在这里,对上述滤通器个数M、MFCC维度L以及其他相关系数不作具体限定,其可以根据具体应用场景进行调整,例如:MFCC维度L可以设置为16维。本申请中以M取值24,L取值12为例,但是不限于此。

本发明实施例中,通过实际验证得知,采用12维就可以较为完整表述声音的特征,采用24个滤波器就可以获得较稳定的技术效果。因此采用12维MFCC以及24个滤波器是综合考虑计算量的情况下的较佳选择。

在一实施例中,上述提取MFCC特征向量的过程当然也可以根据现有技术采用倒谱分析的装置,在此不做限定。

在一实施例中,在本发明实施例中,经过上述特征提取后,得到所述待测语音的MFCC待测特征向量序列(A1,A2…,AN),N为大于1的整数,A1~AN呈为时间顺序排列。

在一实施例中,本发明余弦相似度计算模块可以具体用于:

S310:针对每一个所述预设模板特征向量序列,计算出所述待测特征向量序列的每一个特征向量与每一个所述预设模板特征向量序列的每一个特征向量之间的余弦值。在一实施例中,所述预设模板特征向量序列的待测特征向量序列可以为(B1,B2…,BM),M为大于1的整数,B1~BM呈时间顺序排列。

对于待测特征向量序列中的任一个向量An和预设模板特征向量序列中的任一个向量Bm,其中1≤n≤N,1≤m≤M。使用下列公式计算出两个向量之间的夹角余弦值:

An=(A1,A2,…,AQ),Bm=(B1,B2,…,BQ),其中L为向量维度,对于声音特征向量,一般取值12~16的正整数。

Figure BDA0001794065970000181

本领域技术人员可以理解的是,对于两个向量,余弦值越接近1,两个向量的夹角越接近0度,就表明两个向量越相似,也即余弦相似性。

由于余弦距离使用两个向量夹角的余弦值作为衡量两个个体间差异的大小,因此,相较于欧氏距离倾向于体现个体数值特征的绝对差异的特征,余弦距离更加注重两个向量在方向上的差异,对绝对的数值并不敏感,进一步修正了比较的时间序列间可能存在的度量标准不统一的问题。

因此,本申请通过上述利用向量余弦相似度对待测特征向量序列和模板特征向量序列的特征向量进行比较的技术方案,能够克服由于待测语音与录制模板之间信号强度不均衡所带来的识别率降低的问题,例如音量差异过大等。

S320:利用动态时间规整算法将所述余弦值构造为矩阵网格。

如下表1所示,计算出待测特征向量序列与预设模板特征向量序列中所有的向量夹角余弦值,构建矩阵网格,向量余弦值作为矩阵元素,由于上述序列均为时间序列,因此该矩阵网格从左至右、从下至上符合时间顺序。

B<sub>T</sub> cos(A<sub>1</sub>,B<sub>T</sub>) cos(A<sub>2</sub>,B<sub>T</sub>) cos(A<sub>Q</sub>,B<sub>T</sub>)
cos(A<sub>n</sub>,B<sub>t</sub>)
B<sub>2</sub> cos(A<sub>1</sub>,B<sub>2</sub>) cos(A<sub>2</sub>,B<sub>2</sub>) cos(A<sub>Q</sub>,B<sub>2</sub>)
B<sub>1</sub> cos(A<sub>1</sub>,B<sub>1</sub>) cos(A<sub>2</sub>,B<sub>1</sub>) cos(A<sub>Q</sub>,B<sub>1</sub>)
A<sub>1</sub> A<sub>2</sub> A<sub>Q</sub>

表1

S330:利用动态时间规整算法从所述矩阵网格中选取最优路径;

S340:根据所述最优路径获取所述待测特征向量序列与每一个所述预设模板特征向量序列之间的余弦相似度。

在一实施例中,与传统的DTW算法一致,选取最优路径需要至少要符合三个约束:1)边界条件:任何一种语音的发音快慢都有可能变化,但是其各部分的先后次序不可能改变,因此所选的路径必定是从左下角出发,在右上角结束。2)连续性:不能跨过某个点去匹配,只能与相邻的点对齐。3)单调性:路径随着时间单调进行的,因此不能向左或向下。

在一实施例中,本申请实施例根据矩阵网格中每个元素的代价计算一条累加余弦值最大的路径。

其中,在上述矩阵网格中,一个点的代价=这个点的余弦值+来自下、左、斜下这三个方向的值中最大的一个。下、左、斜下这三个方向的值可以依次递归求得,直到(1,1)点。

S(Aq,Bt)=cos(Aq,Bt)+tax[S(Aq-1,Bt),S(Aq,Bt-1),S(Aq-1,Bt-1)]。

当前格点累加余弦值S(An,Bm)为当前格点余弦值cos(An,Bm),也就是当前格点对应的两个向量的余弦距离(相似性)与可以到达该点的最大的邻近格点的累加余弦值之和,当上述余弦值累加结束,也即路径走到向量AN与向量BM对应的终点时,所获得的累加余弦值S(AN,BM)即为累加余弦值,全局累加余弦值最大的路径即最优规整路径。所述最优路径下的累加余弦值为所述余弦相似度。

本发明实施例通过采用基于余弦相似度的动态时间规整算法,能够同时克服两个声音特征向量序列之间由于时间长短不一以及声音能量不一所带来的不利影响,有益于识别率的提升。

在这里,对上述计算累加余弦值的运算方式不作具体限定,任何满足上述边界性、连续性与单调性的最优路径求取方式均可以被采用,其可以采用现有技术中对路径边界进行二次约束的方式以减少运算量,或者将上述矩阵网格拆分为多个局部矩阵网格进行分段运算后求和。本申请仅以上述示例性实施例中采用的运算方式为例,但是不限于此。

本领域技术人员可以理解的是,本发明实施例上述利用基于余弦相似度的动态时间算法计算时间序列之间的相似度的技术方案完全可以适用于其他识别领域,例如:语义识别领域、手势识别领域、动作识别领域等任何具有时间序列属性(也即可以转换为时间序列)的识别领域。

综上,正是通过本发明实施方式所提供的提出一种基于余弦相似度的语音识别装置,将动态时间规整算法中的欧氏距离参数更换为向量余弦相似度参数,减少了由于录制语音模板与待测语音之间声音大小差异而造成的误差,进一步提高了识别率。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:语音信息反馈方法、装置、计算机设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!