HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

一种基于残差网络及融合特征的说话人年龄性别分类方法与流程

2021-01-28 16:01:17|351|起点商标网
一种基于残差网络及融合特征的说话人年龄性别分类方法与流程

本发明属于声纹识别技术领域,尤其涉及一种基于残差网络及融合特征的说话人年龄性别分类方法。



背景技术:

随着深度神经网络应用于声纹识别领域,声纹识别技术取得了较大的突破,逐步应用于实际场景,但相对于声纹识别技术,说话人性别年龄等属性分类的准确度还有待提高。当前对于说话人性别年龄分类主与声纹识别技术类似,主要是有传统的统计学方法和深度神经网络的方法,虽然在性别分类方面有较高的识别率,但由于说话人的语音特征与年龄的关系较复杂,年龄分类的准确度都不太高。

当前说话人性别年龄识别有以下几点难点:一是由于年龄预估的不确定性,当前对说话人性别年龄分类的研究为了保证性别分类的准确性,大多数是将说话人性别和年龄分开识别,这增加了系统的开销以及实际应用的难度;二是难以找到可以完全表征说话人性别和年龄的特征参数,这也增加了说话人性别年龄识别的难度;三是传统统计学方法的局限性,不能从大量的语音数据中准确地提取出说话人性别年龄的语音特征;四是语音数据集的缺失,目前想要进行说话人性别年龄识别,大部分需要自己采集语音数据,而由于采集设备的差异,也会导致识别结果有差异。



技术实现要素:

针对现有技术中的上述不足,本发明提供的一种基于残差网络及融合特征的说话人年龄性别分类方法,以实现对说话人性别年龄的识别分类。

为了达到以上目的,本发明采用的技术方案为:

本方案提供一种基于残差网络及融合特征的说话人年龄性别分类方法,包括以下步骤:

s1、对输入的语音数据进行预处理,并提取混合特征参数;

s2、利用所述混合特征参数对残差网络进行训练;

s3、利用经训练好的残差网络对说明人年龄性别进行分类。

本发明的有益效果是:本发明提出了一种端到端的说话人性别年龄分类方法,同时实现说话人的性别和年龄分类,本发明采用端到端方式,将训练、识别分类结合,直接得到最终的分类结果,端到端的学习方式避免了多个模块训练的目标不一致而导致的偏差,又减少了工程的复杂度。

进一步地,所述步骤s1包括以下步骤:

s101、对输入的语音数据进行采样,并对其进行预处理;

s102、根据所述预处理后的语音数据计算得到mfcc参数;

s103、根据所述mfcc参数利用差分运算计算得到mfcc一阶差分;

s104、提取语音数据的基频fo,并将所述mfcc参数以及mfcc一阶差分进行拼接,完成对混合特征参数的提取。

上述进一步方案的有益效果是:本发明提出了mfcc+mfcc一阶差分+f0基频的复合特征,相较于当前所采用的如mfcc特征进行识别分类,融合了对说话人性别敏感的f0基频特征,提取更能表征说话人信息的语音特征。

再进一步地,所述步骤s102包括以下步骤:

s1021、将预处理后的语音数据进行预加重处理,提高语音的高频信息;

s1022、将经预加重处理后的读音信息进行分帧处理;

s1023、将分帧后的每一帧语音进行加窗处理,增加每一帧的左端和右端的连续性;所述进行加窗处理的表达式如下:

s'(x)=s(x)*w(x,a)

其中,s'(x)表示加窗处理,s(x)表示分帧后的语音信号,w(x,a)表示窗函数,x表示帧长,x表示0到x-1的自然数,a为常数;

s1024、将经加窗处理后的每一帧进行傅里叶变换处理,使每帧的语音数据按时序连接成频谱;所述进行傅里叶变换处理的表达式如下:

其中,xa(k)表示进傅里叶变换处理,x(n)表示输入的语音数据,n表示傅里叶变换的点数,n表示0到n-1的自然数,k表示采样点的编号,j表示虚数;

s1025、利用mel滤波器组对所述频谱进行平滑处理,并将处理结果进行对数运算;

所述mel滤波器的表达式如下:

其中,hm(k)表示mel滤波器,k表示采样点编号,fm表示第m个滤波器的中心频率,m表示滤波器个数;

所述进行对数运算的表达式如下:

其中,s(m)表示对数运算,n表示傅里叶变换的点数,k为自然数,xa(k)表示傅里叶变换后的信号,hm(k)表示第m个mel滤波器,m表示滤波器个数;

s1026、将对数运算结果经离散余弦变换得到mfcc参数;

所述mfcc参数的表达式如下:

其中,c(n)表示经离散余弦变换得到的mfcc参数,m表示三角滤波器个数,n表示傅里叶变换的点数,s(m)表示经过对数运算的信号,n为0到n-1的自然数。

上述进一步方案的有益效果是:mfcc由于其优越性,被大量用于声纹识别领域,取得了较好的效果,并且在说话人年龄识别也有应用,结合其一阶差分,能够体现出语音得静态和动态特征,提高系统的识别性能,而基频f0与说话人性别有较大的区分性,本发明将mfcc参数和基频f0结合,将它们的复合特征作为说话人性别年龄分类的语音特征。

再进一步地,所述步骤s103中mfcc一阶差分的表达式如下:

其中,其中,dt表示第t个一阶差分,ct表示第t个倒谱系数,k为自然数,k表示一阶导数的时间差,ct+k表示第t+k个倒谱系数,q表示倒谱系数的阶数。

上述进一步方案的有益效果是:标准的mfcc参数反映了语音参数的静态特征,可以用mfcc的一阶差分来描述其动态特征。

再进一步地,所述步骤s104包括以下步骤:

s1041、提取语音数据的基频fo,并将每一帧语音的基频fo标记为f,并将mfcc参数标记为n1,n2,n3,...,n13,将mfcc一阶差分标记为m1,m2,m3,...,m13;

s1042、将基频fo、mfcc参数以及mfcc一阶差拼接为27维的新参数s,完成对混合特征参数的提取,其中,s={n1,n2,n3,...,n13,m1,m2,m3,...,m13,f},s表示每一帧语音的新特征。

上述进一步方案的有益效果是:基频f0与说话人性别有较大的区分性,本发明将mfcc参数和基频f0结合,将它们的复合特征作为说话人性别年龄分类的语音特征。

再进一步地,所述步骤s2包括以下步骤:

s201、构建残差网络,并初始化连接权值;

s202、将提取的混合特征参数依次输入至残差网络中的四个残差层中;

s203、利用三元组损失作为残差网络的损失函数;

s204、由残差层输入一个512维的特征向量,并利用全连接层整合四个残差层的特征信息以及利用采样层输出结果,完成对残差网络的训练。

上述进一步方案的有益效果是:本发明采用卷积残差网络训练说话人性别年龄识别模型。残差网络解决了深度神经网络中,因为网络层次的加深导致的梯度爆炸和消失,使得在训练中能够使用更深的网络,提取出更深层的语音特征,从而提高识别的准确度。

再进一步地,所述残差网络包括依次连接的第一残差层、第二残差层、第三残差层、第四残差层、全连接层以及采样层;

所述四个残差层均由一个卷积层和若干个残差块组成。

上述进一步方案的有益效果是:使用tripletloss损失函数,通过最大化类间相似度,最小化类内相似度,达到样本分类的效果,同时通过直接计算样本间的相似度进行样本分类。

再进一步地,所述第一残差层包括依次连接的1个3×3,步长为2的第一卷积层以及1个3×3,步长为1的残差块;

所述第二残差层包括依次连接的1个3×3,步长为2的第二卷积层以及2个3×3,步长为1的残差块;

所述第三残差层包括依次连接的1个3×3,步长为2的第三卷积层以及4个3×3,步长为1的残差块;

所述第四残差层包括依次连接的1个3×3,步长为2的第四卷积层以及1个3×3,步长为1的残差块。

上述进一步方案的有益效果是:经过4个残差层后,最后得以输出一个512维的特征向量,该特征向量可以表征语音的身份信息,通过tripleloss计算相似度后进行分类。

再进一步地,所述第一残差层、第二残差层、第三残差层、第四残差层中的各残差块后均设置有非线性激活函数relu。

上述进一步方案的有益效果是:非线性激活函数relu增加了神经网络各层之间的非线性关系,同时它会使部分神经元的输出变为0,增加网络的稀疏性,减少了参数的相互依赖关系,能够更好挖掘相关特征,拟合训练数据。

再进一步地,所述步骤s3中的分类结果包括:未成年男女<18、18=<成年男女<55以及老年男女>=55六个分类。

上述进一步方案的有益效果是:本发明根据说话人的性别年龄,仅仅将说话人分为(未成年男女<18)、)(18=<成年男女<55)、(老年男女>=55)共六个分类,以提高识别度。

附图说明

图1为本发明的方法流程图。

图2为本实施例中mfcc参数提取流程图。

图3为本实施例中mel滤波器组示意图。

图4为本实施例中残差网络的结构示意图。

图5为本实施例中的三元组损失函数的学习示意图。

具体实施方式

下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

实施例

本发明提出了一种端到端的说话人性别年龄分类方法,同时实现说话人的性别和年龄分类,首先对原始语音进行处理,分别获取其mfcc系数(13维)、mfcc一阶差分(13维)及基频f0,对3个参数进行拼接得到27维混合参数,作为网络的输入。网络由4个残差层、一个全连接层和一个采样层组成,由第一步提取出的混合参数首先经过4个残差层提取说话人语音信息特征。4个残差层均由一个卷积层和若干个残差块组成,经过4个卷积层后,得到512维的特征参数。对提取出的特征参数进行输出,在采样t层进行打分并输出最后的判定结果。如图1所示,其实现方法如下:

s1、对输入的语音数据进行预处理,并提取混合特征参数,其实现方法如下:

s101、对输入的语音数据进行采样,并对其进行预处理;

s102、根据所述预处理后的语音数据计算得到mfcc参数,其实现方法如下:

s1021、将预处理后的语音数据进行预加重处理,提高语音的高频信息;

s1022、将经预加重处理后的读音信息进行分帧处理;

s1023、将分帧后的每一帧语音进行加窗处理,增加每一帧的左端和右端的连续性;所述进行加窗处理的表达式如下:

s'(x)=s(x)*w(x,a)

其中,s'(n)表示加窗处理,s(n)表示分帧后的语音信号,s'(x)表示加窗处理,s(x)表示分帧后的语音信号,w(x,a)表示窗函数,x表示帧长(即一帧内的采样点数),x表示0到x-1的自然数,a为常数,不同的a值产生不同的汉明窗,其值通常取0.46;

s1024、将经加窗处理后的每一帧进行傅里叶变换处理,使每帧的语音数据按时序连接成频谱;所述进行傅里叶变换处理的表达式如下:

其中,xa(k)表示傅里叶变换处理,x(n)表示输入的语音数据,n表示傅里叶变换的点数,n为0到n-1的自然数,k表示采样点的编号,j表示虚数;

s1025、利用mel滤波器组对所述频谱进行平滑处理,并将处理结果进行对数运算;

所述mel滤波器的表达式如下:

其中,hm(k)表示mel滤波器,k表示采样点编号,fm表示第m个滤波器的中心频率,m表示滤波器个数;

所述进行对数运算的表达式如下:

其中,s(m)表示对数运算,n表示傅里叶变换的点数,k为自然数,xa(k)表示傅里叶变换后的信号,hm(k)表示第m个mel滤波器,m表示滤波器个数;

s1026、将对数运算结果经离散余弦变换得到mfcc参数;

所述mfcc参数的表达式如下:

其中,c(n)表示经离散余弦变换得到的mfcc参数,m表示三角滤波器个数,n表示傅里叶变换的点数,s(m)表示经过对数运算的信号,n为自然数,且n=1,2,3,...,l,l表示mfcc系数的阶数。

s103、根据所述mfcc参数利用差分运算计算得到mfcc一阶差分;

mfcc一阶差分的表达式如下:

其中,dt表示第t个一阶差分,ct表示第t个倒谱系数,k为自然数,k表示一阶导数的时间差,可取1或2,ct+k表示第t+k个倒谱系数,q表示倒谱系数的阶数取13。

s104、提取语音数据的基频fo,并将所述mfcc参数以及mfcc一阶差分进行拼接,完成对混合特征参数的提取,其实现方法如下:

s1041、提取语音数据的基频fo,并将每一帧语音的基频fo标记为f,并将mfcc参数标记为n1,n2,n3,...,n13,将mfcc一阶差分标记为m1,m2,m3,...,m13;

s1042、将基频fo、mfcc参数以及mfcc一阶差拼接为27维的新参数s,完成对混合特征参数的提取,其中,s={n1,n2,n3,...,n13,m1,m2,m3,...,m13,f},s表示每一帧语音的新特征。

本实施例中,混合特征提取包括:基频f0提取、mfcc参数提取和mfcc一阶差分提取。

本实施例中,语音的基频提取方法有很多,可以使用离散小波变换得到语音的基频。离散小波变换能够在连续尺度上将语音信号分解为高频和低频两个部分,从而有效提取出基频。

本实施例中,梅尔倒谱系数(mfcc)是在mel标度频率域提出的倒谱参数,描述了人耳频率的非线性特性,其与频率的关系可用下式表示:

其中,f表示语音频率,单位为hz。

本实施例中,mfcc提取的基本流程如图2所示,预加重处理将语音通过一个高通滤波器:

h(z)=1-μz-1

其中,μ的取值为(0.9,1),通常取0.97,通过预加重可以提高语音的高频部分,使语音信号的频谱变得平坦,在低频和高频整个频带中,可以使用相同的信噪比求频谱。

本实施例中,分帧的目的是将n个采样点集合成一个观测点,通常n取256或是512,涵盖的时间大约为20-30ms,同时为了防止相邻两帧的变化太大,所以会使相邻两帧有一定的重合区域,通常重合区域大约为帧长的1/3或1/2。比如以16khz的采样频率的语音信号为例,假使帧长取512个采样点,那么其对应的时间长度为512/16=32ms。

本实施例中,将每一帧乘以汉明窗,增加每一帧的左端和右端的连续性,从而防止频率泄露。

本实施例中,快速傅里叶变换的目的是将语音的变化从时域上转换到频域上来,不同的能量分布就代表了不同的语音特征。

本实施例中,语音通过傅里叶变换后得到了频域上的能量谱,将其通过一组mel尺度的三角滤波器组,对频率谱进行平滑,消除谐波的影响,突出原始语音的共振峰。三角滤波器组由m个三角滤波器组成,中心频率为f(m),m=1,2,3……,m,m通常取22-26,各f(m)之间的间隔随着m的增大而增大,如图3所示。对经过mel滤波器组的输出的频谱取对数,并经过离散余弦变换得到mfcc系数。标准的mfcc参数反映了语音参数的静态特征,可以用mfcc的一阶差分来描述其动态特征。

s2、利用所述混合特征参数对残差网络进行训练,如图4所示,残差网络包括依次连接的第一残差层、第二残差层、第三残差层、第四残差层、全连接层以及采样层;四个残差层均由一个卷积层和若干个残差块组成,第一残差层包括依次连接的1个3×3,步长为2的第一卷积层以及1个3×3,步长为1的残差块;第二残差层包括依次连接的1个3×3,步长为2的第二卷积层以及2个3×3,步长为1的残差块;第三残差层包括依次连接的1个3×3,步长为2的第三卷积层以及4个3×3,步长为1的残差块;第四残差层包括依次连接的1个3×3,步长为2的第四卷积层以及1个3×3,步长为1的残差块,第一残差层、第二残差层、第三残差层、第四残差层以及各残差块后均设置有非线性激活函数relu。

利用混合特征参数对残差网络进行训练,其实现方法如下:

s201、构建残差网络,并初始化连接权值;

s202、将提取的混合特征参数依次输入至残差网络中的四个残差层中;

s203、利用三元组损失作为残差网络的损失函数;

本实施例中,定义网络的损失函数,采用三元组损失tripletloss作为网络损失函数,三元组损失tripletloss主要是随机取训练数据集中的一个样本anchor(锚点),positive(正样本)与anchor同属一类的样本,而negative(负样本)则与anchor不同类的样本,通过tripletloss的学习后使得positive和anchor之间的距离最小,而anchor和negative之间的距离最大,如图5所示。其目标函数如下:

距离采用欧式距离,+表示[]内的值小于0的时候,损失为0,大于0的时候,其值就是损失,a是指xa与xn之间的距离和xa与xp之间的距离之间有一个最小的间隔,a需要取合适的值,以保证损失函数收敛的同时能够有效区分不同类的样本。

本实施例中,混合参数经过残差层后,最后输出为一个512维的向量,在残差层后跟一个全连接层以整合残差层的特征信息,全连接层的输出被传递给采样层进行打分。

s204、由残差层输入一个512维的特征向量,并利用全连接层整合四个残差层的特征信息以及利用采样层输出结果,完成对残差网络的训练。

s3、利用经训练好的残差网络对说明人年龄性别进行分类。

本实施例中,等到网络收敛后,使用测试语音数据作为训练好的网络的输入,实现说话人性别年龄的分类,以混淆矩阵、fpr、tpr和acc作为评估的标准。具体的定义如下:

式中,tp--真正(truepositive),将正类预测为正类的数量,tn--真负(truenegative),将负类预测为负类的数量,fp—假正(falsepositive),将负类预测为正类的数量,fn—假负(falsenegative),将正类预测为负类的数量。

如上述所说,对于日常的说话人年龄性别分类不需要过于精确化年龄区间,本专利仅仅将年龄划分为未成年(<18)、成年(<=18且<55)、老年(>=55)共3个年龄段,这足以满足在实际生活应用中的需求,并降低了识别难度,提高了系统可行性。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips