一种基于CNN融合特征的说话人辨认系统的制作方法

文档序号:19145684发布日期:2019-11-15 23:29阅读:388来源:国知局
一种基于CNN融合特征的说话人辨认系统的制作方法
本发明涉及一种基于cnn融合特征的说话人辨认系统,属于语音识别
技术领域

背景技术
:在过去的近二十年里,随着人工智能的飞速发展,声纹、虹膜、指纹、人脸识别等一些生物识别技术已经引起了广泛的关注。其中语音是人们日常生活中交流和传递信息的一种重要方式,它是说话人的健康、情感、身份等信息的重要载体。当一个人的声道结构被确定后,他就会有自己独特的特征。因此,这就使得自动说话人识别变为可能。说话人识别也叫声纹识别,是根据发音人的语音片段来进行身份识别。一般来说,在说话人识别领域,它主要包含两个重要的分支:说话人辨认和说话人确认。前者主要是通过与待识别的说话人特征进行比较,从而选择出相似度最高的样本,它是一个多分类问题;后者是判决待测语音是否属于某个特定训练好的说话人,它是一个二元分类问题。说话人识别系统主要包含三部分:语音数据采集与预处理、说话人身份特征的提取以及分类识别。其中说话人特征信息的提取是最重要的部分,特征的好坏直接影响着系统的识别率。因此,这也是本发明的研究重点。目前,用于说话人系统的特征参数主要可分为传统特征和深度特征。传统特征主要包含有mfcc,lpcc,lpc,plp等,在以前研究领域中,上述特征参数都在一定范围内表现出良好的性能,但是它们反映的都是语音信号浅层的身份信息,不能很好地挖掘更深层次的特征和适应当前大数据的应用场景。随着计算机硬件处理能力的进一步提高,设计和应用深度神经网络(deepneuralnetwork,dnn)已经成为可能。它主要是模仿人大脑中神经元工作方式来达到人工智能,目前常用于语音识别领域的深度网络大致可分为:深度信念网络(deepbeliefnetwork,dbn)、卷积神经网络(convolutionalneuralnetwork,cnn)和循环神经网络(recurrentneuralnetwork,rnn)。dbn用于说话人识别主要有两个方面:一方面是作为分类器代替传统的支持矢量机(supportvectormachine,svm)在系统最后进行身份信息的分类;另一方面是对预处理后的语音信号进行特征提取。它能够很好地挖掘语音信号深层次的信息从而提高系统性能。cnn在智能图像识别领域取得了优越的性能,图像训练过程与语音训练过程具有高度相似性,因此越来越多的研究将cnn用于语音识别领域。它主要是对语谱图进行一系列卷积、池化等操作来获取与身份有关的深度个性信息,然后将这些提取到的信息与模板中的特征矢量进行匹配从而完成说话人识别。通过前期研究表明,卷积神经网络在说话人识别领域表现出了良好的性能。上述的两种网络虽然在语音识别领域相较于基于传统特征参数的系统性能有所提高,但是它们采用的都是单一的特征,即一种非融合特征。它不能很好地考虑不同特征层级之间的互补性,因此也难以全面地对说话人个性信息进行描述,系统的识别率还有待提高。发现针对上述问题,本发明提出一种基于cnn融合特征的说话人辨认系统能够很好地解决这一问题。技术实现要素:本发明主要目的在于针对现存技术的不足,提出一种基于cnn融合特征的说话人辨认系统,该方法克服了现存说话人识别系统的不足。与传统的基于单一特征说话人辨认方法相比较,它可以充分利用不同层级以及深浅层特征之间的优势,在不增加系统复杂度的前提下,有效地提高系统识别率。本发明解决上述问题所采用的技术方案为一种基于cnn融合特征的说话人辨认系统,包括以下步骤:步骤1、对输入语音信号进行预处理并获取语谱图;步骤2、利用语谱图对卷积神经网络进行训练;步骤3、寻找最优的单层特征并构建新的卷积神经网络对特征进行融合,将新的融合特征作为输入从而完成说话人识别。进一步的,步骤1的操作步骤包括:步骤1-1、输入一段.wav格式的语音信号,对每一句输入的时域连续语音信号进行采样,然后对其进行预处理,使每段语音得到m帧信号;步骤1-2、对预处理后的信号进行傅里叶变换,每帧数据按时序连接形成频谱,对频率段实施对数非线性缩放,将频率域转换成对数领域,得到每段语音的语谱图。进一步的,步骤1-1中,所述预处理包括预加重、分帧、加窗预处理技术。进一步的,步骤1-2的操作步骤为对预处理后的每帧语音信号进行短时傅里叶变换,得到信号,然后使每帧信号按照时序连接形成频谱得到周期图,公式为:其中m表示总的帧数,n表示每帧的帧长;然后根据得到的周期图进行取对数运算,得到,计算式如下:在将和根据时间和频率刻度变换为和,将画成二维图形即得到了信号的语谱图。进一步的,步骤2的操作步骤包括:步骤2-1、对caffenet网络神经元结点之间的连接权值进行初始化,并将步骤1得到的语谱图尺寸转为统一大小;步骤2-2、在卷积层,利用卷积核对步骤2-1预处理后的语谱图进行卷积操作;步骤2-3、卷积操作后,在卷积层的后面加入一个非线性的激活函数,所述非线性激活函数为relu函数;步骤2-4、在池化层,利用平均池化函数对步骤2-3得到的图形进行处理;步骤2-5、对处理后的图形,通过全连接层的前向传播,得到网络输出值y;步骤2-6、通过计算网络输出值与理想期望输出值之间的损失函数,公式为:;式中表示所要分类的目标类别数,即输出层的节点个数;分别表示网络节点间的连接权值和偏置;表示第i类输出的实际值,表示第i类的理想期望输出值;步骤2-7、比较与设定阈值的大小,若损失函数值大于设定阈值,则继续步骤2-8;若损失函数小于设定阈值,则得到的权值为目标值,训练结束进行步骤3;步骤2-8、将网络误差,即损失函数值传回网络中,依次求得全连接层、池化层、卷积层的误差,根据求得的全连接层、池化层、卷积层的误差来更新每层之间连接的权值,重新进行前向传播,继续进行步骤2-2~2-7。进一步的,步骤2-8中,获得全连接层、池化层、卷积层的误差的步骤包括:在求出网络的总损失函数值后,进行反向传播,将误差传入输出层的上一层全连接层,求出该层中产生了多少误差;找出全连接层的哪些节点与输出层连接,然后用误差乘以节点的权值,求得每个节点的误差;在池化层,根据上层传递过来的误差,若采用的是最大池化方法,则直接把误差传到上一层连接的节点中,如果采用的是平均池化,则误差平均分布在上一层中,池化层不需要进行权值更新,只是将误差传到上一层网络中;卷积层中,根据上一层池化方法,求得每个节点误差,然后对卷积层误差进行最外层全零填充,并将卷积核进行一百八十度旋转,再用旋转后的卷积核卷积填充过程的误差矩阵,得到了上一层的误差。进一步的,步骤3的操作步骤包括:步骤3-1、根据步骤2训练好的5层caffenet网络,分别提取二、三、四、五层的特征进行说话人识别,通过对比识别率选出两个最优特征,其中一个代表深层特征,一个代表浅层特征;步骤3-2、构建一个新的卷积神经网络,所述新的卷积神经网络包括一个主干、两个分支和三个全连接层;经过步骤2-1预处理后的语图谱输入后先经过主干,然后分别输入到上、下两个分支,得到两个特征图,其中上分支提取的浅层特征,下分支提取的是深层特征;步骤3-3、统一两个特征图的图形大小,每个图形都由一个个基本像素点组成,其中每个像素点的值代表该点的特征,将两个特征图对应通道上的像素点值进行相加,得到一个新的特征图;步骤3-4、将新的特征图依次输入到三个全连接层,其中最后一个全连接层的节点数量与说话人个数相同,然后输入到输出层的分类函数中完成说话人识别。进一步的,步骤3-2中,所述主干包括两个卷积层和两个池化层,上分支包括两个卷积层和一个池化层,下分支包括一个卷积层和一个池化层。本发明所采用的基于cnn融合特征的说话人辨认系统在不增加系统训练复杂度的前提下,可以明显地提高说话人识别率,克服了单一特征不能全面描述说话人身份信息的缺点,并将cnn很好迁移到语音识别领域,对语音信号进行特征提取,在实际应用和理论研究领域都具有很好的借鉴意义。与现存技术相比,本发明有益效果在于:1、本发明提供的说话人辨认系统通过将图像领域中常用的cnn迁移到语音识别领域,利用语音信号的二维特征,即语谱图,可以很好地将cnn用于对语音特征的提取。2、本发明提供的说话人辨认系统通过将cnn网络提取的深浅层特征进行融合来弥补单一特征不能全面地表示说话人信息的缺点,使系统性能得到了很大的提升,具有收敛速度快、系统训练时间短等优点。附图说明图1是本发明重构的基于cnn融合特征系统框图;图2是卷积神经网络的基本结构;图3是一般的基于cnn网络的说话人辨认系统框图;图4是不同步长下的卷积计算示意图;图5是平均池化与最大池化示意图;图6是池化层特征融合示意图;图7是两个说话人语谱图样例;图8是实施例中不同层数下的说话人识别率;图9是4层caffenet与层次融合特征模型的5次交叉实验对比结果;图10是不同数量训练语谱图下的识别率;图11是不同迭代次数下的说话人识别率。具体实施方式下面结合所给附图对本发明的创新之处以及实施方案做进一步的阐述与说明。本发明的一种基于cnn融合特征的说话人辨认系统,在不增加系统计算复杂度的前提下,实现了说话人识别率的提高,增加了实际当中的实用性。以下是对本发明具体实施方式的详细论述:步骤1:对输入语音信号进行预处理步骤1-1、语音信号预处理特征参数是说话人识别系统性能好坏的重要决定因素。在对训练语音和测试语音提取特征参数之前,往往要先进行语音样本的预处理,它可以明显提高系统的性能。输入一段.wav格式的语音信号,对每一句输入的时域连续语音信号进行采样,然后对其进行预处理。预处理主要包含:预加重,分帧,加窗。预处理后每段语音得到m帧信号。步骤1-2、获取语谱图由于cnn一般输入的训练样本为图片,因此需要将每条训练或测试语料转化为语谱图。对经过预处理后的每帧语音信号进行短时傅里叶变换,得到信号,然后每帧信号按照时序连接以形成频谱,得到周期图,上述操作可以表示如下:(1)其中分别表示帧的个数与帧长,代表周期图。然后根据所得到的进行取对数运算,得到,计算式如下:(2)最后把和根据时间和频率刻度变换为和,将画成二维图形即得到了信号的语谱图。如图7所示,展示了两个说话人的语谱图样例。步骤2:利用语谱图对卷积神经网络进行训练步骤2-1、对caffenet网络神经元结点之间的连接权值进行初始化,并将步骤1得到的语谱图进行统一规格为256*256大小。步骤2-2、结合说明书附图中的图2给出的卷积神经网络的结构,其基础组成主要有卷积层、池化层和全连接层。卷积层的前向传播过程是,通过卷积核对已获得的语谱图中每一部分进行卷积操作,输出多个卷积图。卷积主要核心思想是:将卷积核先沿图像的纵向坐标方向或者横向坐标方向滑动,再与相应的数据做卷积计算,即对应像素点值与卷积核中的值进行加权求和,滑动卷积核将会产生新二维特征激活图,并且这个激活图的值表示卷积核在图像的不同位置的对应响应。其中所滑动的长度大小称作步长,它的值与卷积核的大小共同决定了激活图的大小。说明书附图中对相关步长条件下的卷积计算做了形象的解释,其中卷积核是3*3像素,输入图像为5*5像素大小。通过卷积运算后,输入的语谱图大小与对应的输出图片尺寸之间关系可以表示为:(3)式中,stride表示步长,x表示输入图片的尺寸,k表示卷积核的尺寸大小,y表示最终的输出图片尺寸。步骤2-3、经过卷积计算后,会在卷积层的后面加入一个激活函数,其目的为了增加网络各层之间的非线性关系,提高cnn网络的表征能力。由于我们最终目的是对输入语音的说话人身份进行识别,是一个比较复杂的分类问题,是线性不可分的,因此需要采用一个非线性激活函数。常见的主要有tanh函数、sigmoid函数与relu函数,本发明中采用relu函数,其数学表达式为:(4)由于函数梯度时为零,这是将负梯度都置为零的结果,这种情况下神经元将不再有任何更新,若学习速率值设置的很大,则训练过程中很多这样的神经元不再更新权值,从而造成很大的误差,因此在训练过程中选择小的学习率,设为0.001。步骤2-4、经过卷积运算后,为了降低数据维度,避免过拟合发生,通过池化层中池化核进行处理,也就是网络在一个特定位置的输出可以用其邻近位置输出的总体统计特征表示。常用的池化方法有:最大池化、平均池化、基于中心像素的加权平均等。为了更加形象地描述最大池化和平均池化这两种方法,操作过程如附图中图5所示。其中池化核大小为2*2,步长为2。由于平均池化是以区域内像素点的平均值作为输出结果,能够很好地保存输入图像的有效背景信息,另外也可以避免由于邻域尺寸受限而产生的估计值方差,因此本发明中我们选用平均池化函数来对处理后的图形进行操作。步骤2-5、语谱图经过卷积层、池化层的特征提取后,将提取的特征输入到全连接层,然后与每个对应的权值进行加权求和运算,输入到激活函数中进行分类,得到分类模型,上述过程可以表示为:(5)式中为上层节点与输出节点之间连接的权值,为节点的偏置,为输出节点的个数。得到有关的输出矩阵,经过激励函数的激活,传入到输出层,得到网络的输出值。步骤2-6、一般常用损失函数来表示理想输出值与实际输出值之间的误差可以表示为:(6)其中分别表示理想输出与cnn实际的输出。在反向传播过程中,计算出二者之间的损失函数,然后根据mmse(minimummean-squarederror)准则对不同层之间连接的权值进行调整,损失函数可以用下式进行表示:(7)式中表示所要分类的目标类别数,即输出层的节点个数,本发明中待识别的人数为10,所以这里值为10。步骤2-7、比较与设定阈值的大小。若损失函数的值大于设定值,则继续进行步骤2-8;否则,上一步所求得权值即为目标值,训练结束。步骤2-8、将误差传回网络中,依次求得全连接层、池化层、卷积层的误差,根据误差更新每层之间连接的权值,进行前向传播,重新执行步骤,2-2~2-7的训练过程直到误差达到所设定的阈值。获得全连接层、池化层、卷积层的误差的步骤包括:在求出网络的总损失函数值后,进行反向传播,将误差传入输出层的上一层全连接层,求出该层中产生了多少误差;出全连接层的哪些节点与输出层连接,然后用误差乘以节点的权值,求得每个节点的误差;在池化层,根据上层传递过来的误差,若采用的是最大池化方法,则直接把误差传到上一层连接的节点中,如果采用的是平均池化,则误差平均分布在上一层中,池化层不需要进行权值更新,只是将误差传到上一层网络中;卷积层中,根据上一层池化方法,求得每个节点误差,然后对卷积层误差进行最外层全零填充,并将卷积核进行一百八十度旋转,再用旋转后的卷积核卷积填充过程的误差矩阵,得到了上一层的误差。步骤3:寻找最优特征后进行特征融合。步骤3-1、为了使cnn融合后的特征最佳,因此首先需要寻找在不同层数输出的最优特征。图8给出了在不同网络层数下的说话人识别率。在5层的caffenet中,分别提取第二、三、四、五层的特征进行对比,通过对比发现,当网络为4层caffenet时,系统性能最佳;在3层caffenet情况下,性能次之。因此选择这两种情况下的特征为最优特征,进行后续的融合操作。步骤3-2、在cnn训练过程中,当通过卷积层在输入到池化层后,输出特征是一张张包含像素值的二维图形,它代表着训练样本的特征。经过池化层的作用后,输出特征是一张张包含像素值的二维图形,它代表着训练样本的特征。又通过步骤3-1得到,3层caffenet和4层caffenet的说话人识别系统性能最佳。因此建立一个新的cnn网络来提取深、浅层特征。网络主要有一个主干和两个分支,其中主干部分主要包含的2个卷积层和2个池化层,后面网络主要包含两个分支,第一个分支由2个卷积层和1个池化层组成,即为步骤2中所得到的性能最佳的4层caffenet,它提取的是比较深层次的特征;而第二个分支由1个卷积层和1个池化层组成,它提取的是较浅层次的特征,在各自分支上最后都是一个池化层。由于经过池化操作后可以将图形大小进行统一规格化,因此将这两个分支的池化层输出在相应通道的特征图上加上对应像素点的值,得到新的特征图,然后输入到网络的全连接层进行后一步的处理。如图1和图6所示,分别给出了cnn融合特征的系统框图、池化层特征融合的示意图。步骤4:基于新的融合特征对说话人识别系统性能进行评估实验中采用的语料取自于国家“863”重点项目录制的中文语料库,该语音库包含说话人个数为210,其中每个说话人的语句条数为180并且每条语句的平均时长为3秒左右。另外,语音采样频率为16khz,16bit量化。实验环境为windows7下的64位操作系统,4g内存。本实验从该语料库中随机选取10个说话人,每个人包含180条语句。首先,使用matlab中的spegram函数将每条语音转换成一个频谱图,其中将采样率设为16khz,窗口长度(window)设为512,短时傅里叶点数(nfft)设为512,帧重叠(numoverlap)设为256。最终能得到1800张语谱图,其中每个说话人具有180张,130张用于训练,剩下的50张用于测试,在训练前将所有图片格式统一为256*256大小。cnn训练的实验环境基于公共平台caffe,其中初始化网络参数是使用imagenet数据集预训练caffenet而获得。网络训练参数如下表1所示。表1网络训练参数参数名称参数值baselearning_rate0.001learning_rate_policystepstepsize100momentum0.9weight_decay0.005solver_typesgd首先为了寻找网络最优层数的特征,分别将网络的层数设置为二、三、四、五层进行对比实验,实验数据记录在图8中。当网络为3层caffenet和4层caffenet时,识别率要比2层和5层时高。当网络为4层caffenet时,说话人识别率达到最大值96.52%;3层caffenet时,说话人识别率为94.27%;只有2层caffenet时,说话人识别率为91.93%;而达到5层caffenet时,识别率相较于2,3,4层较差,为89.49%。从实验结果可见,网络结构越深,并不代表系统性能越好。若想进一步提高说话人识别率,不能再集中于加深网络模型,需要通过特征融合来改变系统性能。为了验证本发明提出的cnn融合特征的有效性,重新构建新的cnn网络用于提取深浅层特征,然后进行深浅层融合用于说话人识别。cnn网络的具体结构参数记录于表2之中。表中卷积层的第一个参数表示神经元节点数,第二个参数表示卷积核尺寸,第三个参数表示步长;池化层第一个参数为池化核的尺寸,第二个参数为步长;前两个全连接层的参数“1024”表示的是节点数量,最后一个全连接层参数“10”表示输出的类别数,即本发明中待识别说话人的个数,“softmax”表示输出层的分类函数。为了说明本发明提出的融合特征的有效性,进行了5次交叉验证,即将训练数据分成5部分,然后从中随机选择4部分作为训练数据集,另外的一部分用作测试数据集。由于在上述实验中,单一特征的情况下,4层caffenet性能最好,因此将融合特征与之进行对比,实验数据记录在图9中。表2cnn网络结构参数从图9中可以看出,本发明所提出的层次融合特征模型性能在任意一次交叉验证实验中比4层caffenet更佳。其中对于4层caffenet,5次实验结果分别为96.23%,95.87%,96.45%,96.70%,96.32%,平均识别率为96.32%;对于本发明所提出的层次融合特征模型,5次实验结果分别为98.48%,98.63%,97.57%,98.83%,97.96%,平均识别率为98.29%。因此可以说明,相比于单一特征,本发明提出的融合特征可以明显提高说话人识别系统的性能。不同的训练语谱图数量和网络的迭代次数也会对系统性能产生影响。因此,通过改变这二者的参数进行了对比实验,实验数据记录在图10、11中。通过实验的数据可以看出,当训练语谱图数量为130张,迭代次数达到1600时,识别率可以达到最高值98.63%,相比于单一特征的迭代次数以及训练时间,系统训练的复杂度并没有增加,而且训练过程的收敛速度更快。以上实验结果表明:与采用单一的cnn特征系统相比较,本发明所采用的基于cnn融合特征的说话人辨认系统在不增加系统训练复杂度的前提下,可以明显地提高说话人识别率,克服了单一特征不能全面描述说话人身份信息的缺点,并将cnn很好迁移到语音识别领域,对语音信号进行特征提取,在实际应用和理论研究领域都具有很好的借鉴意义。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1