兰胜坤
(1.福州海峡职业技术学院,福州 350102;2.福建工程学院国脉信息学院,福州 350102)
说话人识别(speaker recognition)又称声纹识别,是指根据说话人所说的话来鉴定说话人身份的一种身份认证技术,属于语音信号处理4大分支(语音识别、说话人识别、语音编码以及语音合成)中的一种[1]。语音是人的自然属性之一,也是一个正常人所固有的特征。由于每个说话人发音器官的生理差异(包括声带、咽喉、口腔、鼻腔的构造不同),以及后天行为、环境等因素的影响,导致不同说话人发出的语音信号带有强烈的个人色彩,因此通过声纹识别技术对用户进行身份识别是可行的。说话人识别技术的核心是将预先录入的说话人的语音样本分为训练语音和测试语音两部分,然后把从训练语音中提取出来的表征说话人特征的参数保存到数据库中,识别时用同样的方法提取待测语音信号的特征参数并与数据库中的特征数据进行匹配,从而得出识别结果。
神经网络是由大量结构简单的处理单元(又称神经元)广泛地互联构成的复杂网络系统,又称人工神经网络(artificial neural networks,ANN)[2]。BP(back propagation)神经网络简称BP网络,又称误差反向传播神经网络[3],是一种按照误差逆传播算法训练的多层前馈神经网络。BP神经网络属于有导师学习方法,学习规则为δ学习规则[4]。这种网络的结构简单、学习效果好、泛化能力强,是目前最重要的神经网络之一[5-7]。但BP神经网络采用的是一种基于梯度下降的算法,因此不可避免地存在训练时间长、收敛速度慢、容易陷入局部最优等缺陷。
遗传算法(genetic algorithms,GA)以达尔文生物进化论“适者生存,优胜劣汰”的自然法则为基础,通过模拟生物的进化过程搜索最优解[8]。用遗传算法优化问题时,首先在可行域中随机生成一组初始解作为进化的第一代群体,群体中的每一个个体称为染色体,并按照预先设定的编码规则对各个染色体进行编码,形成字符串。编码完成后,按照一定的概率对个体进行选择、交叉和变异等遗传操作,产生下一代新的种群,完成了一次遗传过程[9]。在选择个体的时候,通过个体对环境的适应程度来评价染色体的好坏。适应程度越高,被选择的机率越高,而适应程度低的则有可能直接被淘汰。每经历一次遗传过程,都会使每一代新的种群比上一代种群更加适应环境,直到末代种群满足条件为止结束,解码后的末代种群的最优个体便可看作问题的近似最优解[10]。遗传算法是一类随机算法,但它不是简单的随机计算,而是能自动获取和指导优化的搜索空间,可以自适应地调整搜索方向,不需要确定规则[11]。另外,遗传算法还有全局寻优能力强和隐含并行性等优点,从而避免陷入局部极小。因此,将神经网络与遗传算法结合起来,充分利用BP神经网络的局部寻优和遗传算法的全局寻优,能有效提高网络的学习性能和收敛性[12]。
遗传算法与神经网络的结合[13]主要有辅助式结合和合作式结合。辅助式结合一般是通过遗传算法对数据进行预处理,然后利用神经网络求解问题,或者如模式识别利用遗传算法进行特征提取,再用神经网络进行训练识别。合作式结合是指同时用遗传算法与神经网络对问题求解,主要有3种方式:①直接用遗传算法优化神经网络的拓扑结构;②将神经网络的拓扑结构固定,利用遗传算法确定网络的权值;③ 利用遗传算法优化BP网络的学习规则。本系统主要采用第2种优化方式。利用遗传算法优化BP神经网络的权值的基本过程如下:
采用遗传算法优化BP神经网络的权值。在BP神经网络中,不同的初始权值可能产生不同的解,也可能会对训练时间、收敛性以及泛化误差造成很大的差异。传统的神经网络权值获取是通过某种确定的变化规则,利用训练结构的误差函数不断进行调整,最终得到一个较好的权值分布。BP神经网络的算法是基于梯度下降的方法,它对网络的初始权值相当敏感,在训练的过程中,相关参数选取不当就可能导致网络不能收敛或者因收敛速度慢而训练时间过长,同时又极易陷入局部极小而无法得到好的权值分布。遗传算法虽然不能寻得最优,但总能找到更优解,用它来优化神经网络的连接权可有效克服上述问题[14]。
利用遗传算法优化BP神经网络的权值和阈值,首先要确定一种编码方案。遗传算法有很多种编码方案,二进制编码是最常用的一种。这种编码方式实现简单,但有可能将神经网络的权、阈值(连续参数)离散化,也会造成编码字符串过长,且在将二进制的字符串转化为实数时可能会产生一定的误差,从而影响网络的学习精度。实数编码则不仅能将神经网络的权、阈值直观地表现出来,同时还提高了学习的精度以及计算的速度,克服了二进制编码带来的负面影响。编码方式确定之后,随机生成几十个到上百个初始个体,每一个个体代表神经网络的一个初始权值,且这些权值的初始范围为(-1,1)。
本文采用实数编码,编码的方式是将神经网络的权值和阈值按照一定的顺序级联成一个字符串。例如,图1所示的遗传算法编码方案就是按照从输入到输出、从上到下的方式排列,字符串上的每个值代表网络上的权值或阈值。
图1 遗传算法的编码方案
遗传算法利用适应度函数来评估个体的生存能力。BP神经网络用实际输出与期望输出之间的均方误差平方(mse)来评估网络的好坏,均方误差越小越好。遗传算法与神经网络结合,常使用输出误差平方和的倒数作为染色体的适应度函数:首先以训练样本集作为输入对神经网络进行训练,求出实际输出与期望输出的均方误差,找到最大误差,记为msemax。染色体的适应度函数见如式(1)。
式(1)和式(2)中:mse为实际输出与期望输出的均方误差;N为训练样本总个数;d为网络的期望输出;y为样本的实际输出;fitness为网络权阈值对应的适应度函数,当fitness与1相近时,可认为训练已达到网络的基本要求。
遗传算法优化神经网络的步骤:
1)确定一个编码方式,对BP神经网络的权值和阈值进行编码,并按照一定的顺序级联起来组成一个染色体。随机生成N个这样的染色体群体,开始训练神经网络。
2)对当前群体进行遗传操作,生成新的下一代群体,计算网络的输出,并求出每个染色体的适应度。
3)对神经网络进行性能评估,若达到一定精度,则转入步骤4),否则保留最优个体并返回步骤2)。
4)计算网络输出,对神经网络的性能进行评估,检查评估结果是否达到精度要求,若达到则保存网络的权阈值及神经网络的输出结果,训练结束,否则继续步骤5)。
5)计算网络的正向误差及反向误差,根据误差调整网络的权、阈值,并返回步骤4)。
图2 遗传算法优化神经网络流程
实验环境基于Matlab 7.0平台实现。实验采用的语音数据在实验室环境下自行录制,录制的语音内容为数字“0~9”和字母“A~Z”。每个语音分两次录音,两次录音的时间间隔为1周。选取第1次收录的数字“0”~“6”共7个语音作为训练语音样本,其余作为测试语音样本。本次语音的格式为wav格式,采样频率为8 kHz,预加重系数为0.937 5。采用采样窗长为 32 ms(256点),帧移为16 ms(128点)的汉明窗对语音分帧。用双门限检测法对语音进行端点检测,滤除静音段,仅保留有声段。对这些语音信号进行处理之后,对每个语音提取特征参数。本文采用MFCC算法对语音提取12维的特征参数,即每帧信号用12维的矢量序列表示。
大量实验结果表明:在解决一般问题时,对于一个3层的BP神经网络,当它的隐层神经元足够多时,这个网络足以逼近任意的有理函数和无理数,增加神经网络的隐藏神经元个数只会加大网络的负责度和计算量。因此,系统选择一个3层BP网络即可满足要求。隐层的神经元个数可以参考以下公式进行确定:
其中:S1为隐层神经元个数;n为输入神经元个数;l为输出神经元个数;α为1~10之间的自然数。在一定范围内改变S1,用同一训练样本集对网络进行学习,可从中确定网络误差最小时所对应的隐层神经元个数。也可以改变隐层神经元的个数,不断对系统进行训练,选择总体误差最小时所对应的个数。
BP神经网络输入层神经元与样本的维数相关,所以确定输入层神经元个数为12个。对于说话人确认系统,识别结果只有正确和错误两种,因此可以用一个神经元的输出“0”和“1”分别代表系统的“错误”和“正确”两个结果。
对说话人辨认系统进行训练。图3为神经网络的训练性能曲线,其中纵坐标表示神经网络的误差精度,横坐标表示神经网络达到误差精度时所需训练的次数,即训练步长。从图3可以看出:当网络收敛到目标误差0.000 1时,共训练了68次。图4为系统的训练过程和识别结果,可见0.194 7为系统的总体误差。
BP神经网络的参数保持不变,利用遗传算法对网络的权值和阈值进行优化。图5为GA-BP网络对说话人确认系统的网络训练性能曲线,系统所用的训练样本和测试样本与上一个系统相同。从图5可以看出:系统达到精度要求时,只训练了12次。图6为系统的训练过程和识别结果,可以看到系统的总体误差为0.149 6。
图3 神经网络训练性能曲线
图4 训练过程和识别结果
图5 GA-BP网络对说话人确认系统的网络训练性能曲线
图6 训练过程和识别结果
对比图3和图5发现:在利用遗传算法对BP神经网络的权值和阈值进行优化后,系统在达到精度要求时,训练的次数从68次减少到了12次,说明优化后的系统加快了收敛速度,减少了系统的训练时间。对比图4和图6发现:优化后系统的总体误差也有所降低。表1为几种说话人识别方法的识别率比较,提取的特征参数为 MFCC参数。
表1 几种说话人识别方法的识别率比较 %
从表1可以看出:GA-BP网络的识别率最高,说明利用遗传算法优化BP神经网络能有效地提高原有系统的识别率。
BP神经网络采用的是基于梯度下降的算法,主要存在收敛速度慢和容易陷入局部最优两个问题;而遗传算法的特点是同时使用多个搜索点进行搜索,使用概率搜索技术进行随机搜索,它不依赖于具体的问题,只需要给出问题的目标函数作为搜索信息。遗传算法的这些特点恰好能够弥补BP神经网络的缺陷,因此,利用遗传算法优化BP神经网络的权、阈值能有效克服BP网络易陷入局部极小的这一问题。在说话人识别系统中,利用遗传算法优化BP神经网络的权值和阈值后,不仅能减少网络的收敛次数,加快网络的训练时间,还能降低系统的总体误差,提高系统的识别率。
[1]刘雪燕,张娜,袁宝玲.说话人识别综述[J].电脑知识与技术,2009,5(1):169 -171.
[2]田雨波.混合神经网络技术[M].北京:科学出版社,2009:104-148.
[3]张蕾,普杰信,范庆辉.基于遗传算法和BP网络的物体识别方法[J].计算机工程与设计,2008,29(7):1785-1788.
[4]潘昊,王晓勇,陈琼,等.基于遗传算法的BP神经网络技术的应用[J].计算机应用,2005,25(12):2777-2779.
[5]李红连.BP神经网络在车辆组合导航中的应用研究[J].压电与声光,2011,33(1):45 -48.
[6]张朋,陈明,何鹏举.声表面波CO气体传感器温度误差补偿方法研究[J].压电与声光,2010,32(1):3-6,22.
[7]张银雪,贾振红,蒋海军.基于PSO和改进神经网络的图像滤波方法的研究[J].激光杂志,2009,30(4):34-36.
[8]王国超,吴庆林.基于遗传优化模糊PID高压共轨系统喷油量的控制算法[J].重庆理工大学学报:自然科学版,2012,26(11):17 -22.
[9]李建珍.基于遗传算法的人工神经网络学习算法[J].西北师范大学学报:自然科学版,2002,38(2):33-37.
[10]杨梅,卿晓霞,王波.基于改进遗传算法的神经网络优化方法[J].计算机仿真,2009,26(5):198 -201.
[11]郑卫燕.基于遗传算法的网络优化研究及其应用[D].哈尔滨:哈尔滨工程大学,2008.
[12]李享梅.改善遗传神经网络性能的研究[J].仪器仪表用户,2007(2):13-14.
[13]范巧艳,艾斯卡尔·艾木都拉.遗传算法优化RBF网络的图像杂波抑制技术研究[J].激光杂志,2010,31(2):11-13.
[14]罗键,刘军祥.一种基于遗传算法的新型神经网络设计[J].系统工程理论与实践,2001(10):42-46.