一种结合I-vector和PLDA的声纹识别方法与流程
本发明涉及声纹识别的技术领域,尤其涉及一种结合i-vector和plda的声纹识别方法。
背景技术:
随着声纹识别技术不断向前发展,声纹识别在近年来出现了一个快速发展的新局面,声纹识别以其便捷性、稳定性和低成本性等特点在军事安全、医疗健康和司法鉴定等多个领域得到广泛应用,并逐渐成为生物识别技术中的主流之一。虽然在无噪环境中,声纹识别已经取得非常好的效果,但是在实际应用过程中,因为各种背景噪声的影响,声纹识别往往达不到理想的效果。
现有声纹特征提取技术主要为mfcc提取算法,该算法具有计算过程简单,易于实现的优点,但是该算法采用傅里叶变换分析语音信号,其中傅里叶变换采用固定分辨率分析信号,无法准确地分析非平稳的信号,导致mfcc对非平稳的语音的表达能力较弱,另外,傅里叶变换的全局性特性也使得mfcc对噪音较为敏感。
鉴于此,在考虑声纹识别准确率的基础上,如何对现有声纹特征提取算法进行改进,减少噪音对声纹的影响,成为本领域技术人员亟待解决的问题。
技术实现要素:
本发明提供一种结合i-vector和plda(概率线性判别分析,probabilisticlineardiscriminantanalysis)的声纹识别方法,通过对现有声纹特征提取算法进行改进,并利用plda方法来补偿包含说话人特性信息和信道信息的i-vector特征,来达到消除信道不一致的干扰,实现声纹的识别。
为实现上述目的,本发明提供的一种结合i-vector和plda的声纹识别方法,包括:
获取待识别声纹信号,利用谱减法对其进行降噪处理;
对降噪后的待识别声纹信号进行预加重和加窗处理;
基于声纹信号能量对待识别声纹信号进行分帧处理;
利用ws语音特征提取算法提取有效声纹信号帧中的声纹信号特征;
根据所提取出的声纹信号特征,利用i-vector模型提取i-vector特征;
利用plda的建模方法,对i-vector特征中的信道信息进行补偿;
利用对数似然比方法进行声纹比对,根据比对结果实现声纹的识别。
可选地,所述利用谱减法对待识别声纹信号进行降噪处理,包括:
1)在时域对含噪声纹信号y(t)、待求解的干净声纹信号s(t)以及静音段的声纹信号n(t)进行关系表征:
y(t)=s(t)+n(t)
2)分别对上述三种信号进行傅里叶变换,其对应的短时频谱分别为y(w),s(w)和n(w),根据语音的特征分布,它们服从均值为0的高斯分布,因此从概率统计学分析可知,它们之间存在如下的平方关系:
|y(w)|2=|s(w)|2+|n(w)|2+2re[s(w)n(w)]
3)由于噪声和语音信号之间是没有直接关联的,即噪声不会随着语音信号的改变而改变,也就是s(w)和n(w)是相互独立的,所以re[s(w)n(w)]=0;
4)s(w)的平方就是语音的功率谱,所以待求解的纯净语音功率谱见下式:
|s(w)|2=|y(w)|2-|n(w)|2
其中:
y(w)为含噪声纹信号的短时频谱;
n(w)为静音段声纹信号的短时频谱;
s(w)为纯净声纹信号的短时频谱。
可选地,所述对待识别声纹信号进行预加重和加窗处理,包括:
1)利用预加重的函数式提高声纹信号:
h(z)=1-az-1
其中:
z为待识别的声纹信号;
a为预加重系数,本发明将其设为0.912;
2)利用汉明窗对所述声纹信号进行加窗处理,所述汉明窗的时域表达式为:
其中:
n为待识别声纹信号的帧数;
n为待识别声纹信号的总帧数。
可选地,所述基于声纹信号能量的声纹信号分帧处理过程为:
针对待识别声纹信号中的若干帧,利用下式计算每一帧的能量:
其中:
x(n)为待识别声纹信号;
n为待识别声纹信号的总帧数;
m表示待识别声纹信号的第m帧;
通过设定不同的能量阈值,依据每一帧的能量将声纹信号分割成重叠帧,其中能量较高的帧部分即为声纹信号中的有效部分。
可选地,所述以最佳云服务器资源平衡为目标的目标函数为:
f(ai,xi,j)=std{ai,xi,j}
其中:
ai表示当前云服务器的资源占用情况;
xi,j表示当前迁移进入或者迁移出去该云服务器的虚拟机的资源占用情况;
当前面的符号为+时表示虚拟机迁入到当前云服务器,当符号为-时表示该虚拟机从当前服务器迁移出去,最终的目标是让迁移调整后的服务器占用资源情况方差最小。
可选地,所述利用ws语音特征提取算法提取声纹信号特征,包括:
1)对每个有效帧进行规整处理,使得有效帧包含的采样点服从n(0,1)并消除语音音量干扰,其中规整过程定义为:
其中:
f[n]为有效帧f的第n个采样点;
μ为有效帧的均值;
σ为有效帧的标准差;
2)利用一个二叉树将
3)将子帧d1~d7和a7重新标示为w1~w8,并进行降噪处理,所述降噪过程为:
其中:
ni[s]为降噪后的子帧;
s=1,2,...,si,si为wi的长度;
λi为噪音阈值,本发明采用自适应阈值,即
4)基于ni[s],第i个小波子带的对数功率谱为:
其中:
ni[s]为降噪后的子帧;
s=1,2,...,si,si为wi的长度;
5)基于pi[s],第i个小波子带的第l个倒谱系数为:
其中:
d为第i个小波子带上提取到的倒谱系数个数;
最终得到的ws特征为:
其中:
vws为所提取到的声纹信号ws特征;
可选地,所述利用i-vector模型提取i-vector特征,包括:
通过在超矢量空间上训练包括说话人信息和信道差异的全差异空间,将每个说话人的声纹信号ws特征s进行如下分解:
s=m+t*w
其中:
m是通用背景模型的高斯均值超矢量,其与目标说话人和信道不相关;
t为全差异空间;
w为低维度的变化因子矢量;
将维数较高的说话人的声纹信号ws特征进行投影,可以得到低维度的变化因子矢量w,w是包含整个训练语音数据集中不同说话人特性和信道信息的全差异因子,即i-vector特征。
可选地,所述利用plda对i-vector特征中的信道信息进行补偿,包括:
建立plda生成模型:
xij=u+fhi+gwij+eij
其中:
xij为训练语音集中第i个说话人的第j条语音;
u为数据均值;
f和g都是空间特征矩阵;
eij是噪音协方差;
wij为g中的位置参数;
hi为不同说话者空间;
所述plda模型的公式可以看作是由两个部分构成,公式右边的前两个变量是一个部分,代表只与说话者有关,而与说话人哪一条具体语音数据没有关系,这个部分代表plda模型的信号部分,描述了说话人类间的距离;等号右边的后两个变量为一部分,描述了同一个说话人不同语音之间的差异,这样,就可以用模型的信号部分和噪音部分来对一条语音数据的组成来建模;f中的每一列就可以被视为是不同类空间的向量,g中的每列可以被视为相同类空间的向量,这两个向量分别等同于各自空间的表示;
利用em算法进行plda模型的迭代求解,得到说话人在身份空间中的位置参数hi,并根据所得说话人在身份空间中的位置参数,并利用所述谱减法对当前位置参数的i-vector特征信息进行语音信号信息增强处理,从而使得所提取的i-vector特征信息更好的集中在目标说话人的声纹信号中。
可选地,所述利用对数似然比方法进行声纹比对,包括:
使用对数似然比方法将得到的语音特征与系统数据存储中说话人的语音特征进行相似度的计算,所述语音的相似度计算公式为:
其中:
yi为语音声纹的第i个特征;
hs,hd分别为本发明计算得到的语音特征,以及系统数据存储的说话人的语音特征;
将得到的语音特征与系统数据存储中说话人的语音特征进行相似度的计算,选择相似度最高说话人信息的作为返回的结果,最后如果相似度小于预设的预定值,那么就判定此人的语音不在事先存储的数据中。
相对于现有技术,本发明提出一种结合i-vector和plda的声纹识别方法,该技术具有以下优势:
首先,现有声纹特征提取技术主要为mfcc提取算法,该算法具有计算过程简单,易于实现的优点,但是该算法采用傅里叶变换分析语音信号,其中傅里叶变换采用固定分辨率分析信号,无法准确地分析非平稳的信号,导致mfcc对非平稳的语音的表达能力较弱,另外,傅里叶变换的全局性特性也使得mfcc对噪音较为敏感。因此本发明提出一种ws特征提取算法,该算法首先对语音中的有效帧进行规整处理,使得有效帧中所包含的采样点服从n(0,1)从而消除了语音音量的干扰,并利用一个二叉树将有效帧分解为8个子帧,通过设定自适应阈值
同时,在现有i-vector模型中,在提取到i-vector特征信息之后,则通过一些相似度的方式来计算说话人之间i-vector,来判断识别说话人,但是由于i-vector向量中含有说话人的特性和信道信息,为使得到说话人特征信息更加纯净,就需要对特征中的信道信息进行补偿。因此本发明对现有plda方法进行改进,使其应用在i-vector模型中,本申请改进后的plda模型的公式为xij=u+fhi+gwij+eij,该公式可以看作是由两个部分构成,公式右边的前两个变量是一个部分,代表只与说话者有关,而与说话人哪一条具体语音数据没有关系,这个部分代表plda模型的信号部分,描述了说话人类间的距离;等号右边的后两个变量为一部分,描述了同一个说话人不同语音之间的差异,这样,就可以用模型的信号部分和噪音部分来对一条语音数据的组成进行建模;同时根据所建立的plda模型,本申请利用em算法进行模型的迭代求解,得到说话人在身份空间中的位置参数hi,并根据所得说话人在身份空间中的位置参数,本申请利用谱减法对当前位置参数的i-vector特征信息进行语音信号信息增强处理,从而使得所提取的i-vector特征信息更好的集中在目标说话人的声纹信号中,由于本申请所提出算法通过得到目标说话人的位置信息,并对该位置的声纹信号进行增强,使得该算法能更有效地对目标说话人的声纹信号进行判定,从而根据所判定的目标声纹信号i-vector特征信息,使用对数似然比方法将其与系统数据存储中说话人的语音特征进行相似度的计算,根据相似度的计算结果进行声纹的识别。
附图说明
图1为本发明一实施例提供的一种结合i-vector和plda的声纹识别方法的流程示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
通过对现有声纹特征提取算法进行改进,并利用plda方法来补偿包含说话人特性信息和信道信息的i-vector特征,来达到消除信道不一致的干扰,实现声纹的识别。参照图1所示,为本发明一实施例提供的结合i-vector和plda的声纹识别方法的流程示意图。
在本实施例中,结合i-vector和plda的声纹识别方法包括:
s1、获取待识别声纹信号,利用谱减法对其进行降噪处理。
首先,本发明获取待识别声纹信号,并利用谱减法对所述待识别的声纹信号进行降噪处理,所述基于谱减法的声纹信号降噪过程为:
1)在时域对含噪声纹信号y(t)、待求解的干净声纹信号s(t)以及静音段的声纹信号n(t)进行关系表征:
y(t)=s(t)+n(t)
2)分别对上述三种信号进行傅里叶变换,其对应的短时频谱分别为y(w),s(w)和n(w),根据语音的特征分布,它们服从均值为0的高斯分布,因此从概率统计学分析可知,它们之间存在如下的平方关系:
|y(w)|2=|s(w)|2+|n(w)|2+2re[s(w)n(w)]
3)由于噪声和语音信号之间是没有直接关联的,即噪声不会随着语音信号的改变而改变,也就是s(w)和n(w)是相互独立的,所以re[s(w)n(w)]=0;
4)s(w)的平方就是语音的功率谱,所以待求解的纯净语音功率谱见下式:
|s(w)|2=|y(w)|2-|n(w)|2
其中:
y(w)为含噪声纹信号的短时频谱;
n(w)为静音段声纹信号的短时频谱;
s(w)为纯净声纹信号的短时频谱。
s2、对降噪后的待识别声纹信号进行预加重和加窗处理,并基于声纹信号能量进行分帧处理。
进一步地,本发明对降噪后的待识别声纹信号进行预加重和加窗处理,所述预加重和加窗处理的过程为:
1)利用预加重的函数式提高声纹信号:
h(z)=1-az-1
其中:
z为待识别的声纹信号;
a为预加重系数,本发明将其设为0.912;
2)利用汉明窗对所述声纹信号进行加窗处理,所述汉明窗的时域表达式为:
其中:
n为待识别声纹信号的帧数;
n为待识别声纹信号的总帧数;
进一步地,针对待识别声纹信号中的若干帧,本发明利用下式计算每一帧的能量:
其中:
x(n)为待识别声纹信号;
n为待识别声纹信号的总帧数;
m表示待识别声纹信号的第m帧;
通过设定不同的能量阈值,本发明依据每一帧的能量将声纹信号分割成重叠帧,其中能量较高的帧部分即为声纹信号中的有效部分。
s3、利用ws语音特征提取算法提取有效声纹信号帧中的声纹信号特征。
进一步地,根据所述有效声纹信号帧,本发明提出一种ws语音特征提取算法用来提取其中的声纹信号特征,所述利用ws语音特征提取算法提取声纹信号特征的过程为:
1)对每个有效帧进行规整处理,使得有效帧包含的采样点服从n(0,1)并消除语音音量干扰,其中规整过程定义为:
其中:
f[n]为有效帧f的第n个采样点;
μ为有效帧的均值;
σ为有效帧的标准差;
2)利用一个二叉树将
3)将子帧d1~d7和a7重新标示为w1~w8,并进行降噪处理,所述降噪过程为:
其中:
ni[s]为降噪后的子帧;
s=1,2,...,si,si为wi的长度;
λi为噪音阈值,本发明采用自适应阈值,即
4)基于ni[s],第i个小波子带的对数功率谱为:
其中:
ni[s]为降噪后的子帧;
s=1,2,...,si,si为wi的长度;
5)基于pi[s],第i个小波子带的第l个倒谱系数为:
其中:
d为第i个小波子带上提取到的倒谱系数个数;
最终得到的ws特征为:
其中:
vws为所提取到的声纹信号ws特征;
s4、根据所提取出的声纹信号特征,利用i-vector模型提取i-vector特征。
进一步地,根据所提取出的声纹信号ws特征,本发明利用i-vector模型提取i-vector特征,所述i-vector特征的特征提取过程为:
通过在超矢量空间上训练包括说话人信息和信道差异的全差异空间,将每个说话人的声纹信号ws特征s进行如下分解:
s=m+t*w
其中:
m是通用背景模型的高斯均值超矢量,其与目标说话人和信道不相关;
t为全差异空间;
w为低维度的变化因子矢量;
将维数较高的说话人的声纹信号ws特征进行投影,可以得到低维度的变化因子矢量w,w是包含整个训练语音数据集中不同说话人特性和信道信息的全差异因子,即i-vector特征。
s5、利用plda的建模方法,对i-vector特征中的信道信息进行补偿,并利用对数似然比方法进行声纹比对,实现声纹的识别。
进一步地,在提取到i-vector特征信息之后,就可以通过一些相似度的方式来计算说话人之间i-vector,来判断识别说话人,但是由于i-vector向量中含有说话人的特性和信道信息,为使得到说话人特征信息更加纯净,就需要对特征中的信道信息进行补偿。
因此本发明利用plda的建模方法,对i-vector特征中的信道信息进行补偿,其中补偿过程为:
首先本发明建立plda生成模型:
xij=u+fhi+gwij+eij
其中:
xij为训练语音集中第i个说话人的第j条语音;
u为数据均值;
f和g都是空间特征矩阵;
wij为g中的位置参数;
eij是噪音协方差;
hi为不同说话者空间;
所述plda模型的公式可以看作是由两个部分构成,公式右边的前两个变量是一个部分,代表只与说话者有关,而与说话人哪一条具体语音数据没有关系,这个部分代表plda模型的信号部分,描述了说话人类间的距离;等号右边的后两个变量为一部分,描述了同一个说话人不同语音之间的差异,这样,就可以用模型的信号部分和噪音部分来对一条语音数据的组成来建模;f中的每一列就可以被视为是不同类空间的向量,g中的每列可以被视为相同类空间的向量,这两个向量分别等同于各自空间的表示。
进一步地,在本发明一个具体实施例中,本发明利用em算法进行plda模型的迭代求解,得到说话人在身份空间中的位置参数hi,并根据所得说话人在身份空间中的位置参数,本发明利用所述谱减法对当前位置参数的i-vector特征信息进行语音信号信息增强处理,从而使得所提取的i-vector特征信息更好的集中在目标说话人的声纹信号中。
进一步地,本发明使用对数似然比方法将得到的语音特征与系统数据存储中说话人的语音特征进行相似度的计算,所述语音的相似度计算公式为:
其中:
yi为语音声纹的第i个特征;
hs,hd分别为本发明计算得到的语音特征,以及系统数据存储的说话人的语音特征;
因此本发明将得到的语音特征与系统数据存储中说话人的语音特征进行相似度的计算,选择相似度最高说话人信息的作为返回的结果,最后如果相似度小于预设的预定值,那么就判定此人的语音不在事先存储的数据中。
下面通过一个仿真实验来说明本发明的具体实施方式,并对发明的算法进行测试。本发明实验的硬件环境为centos6.5操作系统,32gb内存,python版本为2.7,bob.bio.gmm版本:2.5,scikits.talkbox版本:0.2.5。对比算法模型为gmm-hmm算法,lstm算法以及cnn算法。
在本发明所述算法实验中,数据集为7200条语音数据集,训练集、验证集、测试集所占比例为4∶1∶1,全部语音为16位编码,采样率为16khz,非压缩的pcm编码格式。本发明将数据集中的语音分别输入gmm-hmm算法,lstm算法,cnn算法以及本发明所述声纹识别算法中进行算法的训练以及测试,并将识别结果与语音文本进行基于欧式距离的文本向量相似度匹配,所述相似度匹配结果即为声纹识别结果的正确率。
根据实验结果,gmm-hmm算法的声纹识别结果正确率为86.24%,lstm算法的声纹识别结果正确率为85.71%,dfcnn算法的声纹识别结果正确率为91.13%,本发明所述算法的声纹识别结果正确率为94.26%,相较于对比算法,本发明所提出的语音识别方法具有更高的语音识别正确率。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除