王现彬,杨洁,贾英茜,饶立婵(石家庄学院物理与电气信息工程学院,河北石家庄050035)
【物理学研究】
基于MATLAB的说话人识别系统设计与实现
王现彬,杨洁,贾英茜,饶立婵
(石家庄学院物理与电气信息工程学院,河北石家庄050035)
借助语音增强、基音频率分析和共振峰分析,设计了简单的说话人识别系统.在识别过程中以平均基音频率、共振峰峰值位置作为两种评价标准,交互印证,最终实现了说话人的身份辨认.
基音频率;共振峰;说话人识别;MATLAB
人类语音信号可对受众提供多重信息:首先可通过字、词来传递消息,其次可将说话人的感情、性别等信息传递出来,同时在语音信号里也暗含了说话人的身份信息[1-4].语音识别的目的在于识别说话人所表达出来的词汇,而说话人识别的功能是通过提取、表征并识别语音信号中的特征以验证说话人的身份.根据说话人说话内容可分为“与文本无关”、“与文本相关”及“文本提示型”的说话人识别;依据其应用范围又可分为说话人确认(Speaker Verification)和说话人辨认(Speaker Identification)[5].说话人确认就是要通过某种适当的判断准则以确定说话人是否是所声称的说话人,而说话人辨认不但要确认是否是所声称的说话人,还要确认到底是谁.近年来随着数字信号处理(DSP)技术的进步,说话人识别技术得到了迅猛发展,使其在身份鉴别、电话银行、电话购物、语音E-mail等互联网及通信领域得到了一定的应用.
借助基音频率(周期)分析和共振峰分析,以基音和共振峰作为说话人语音信号的特征参数,通过分析平均基音频率和共振峰矢量差,在MATLAB平台上设计了一套简单的说话人识别系统,达到了识别说话人的目的,而该说话人识别算法可以为更为复杂的说话人识别系统的实现提供基本参考.
设计过程包括语音信号时域分析、语音信号增强、基音频率(周期)分析、共振峰分析、结果识别等步骤,现分别加以说明.
在语音信号时域分析阶段,主要是借助MATLAB强大的数值计算能力及图形显示能力,观测语音信号的时域波形,图1给出了语音信号为“物电学院”的语音信号波形记为s0.该语音信号可以借助Windows自带的“录音机”软件来进行语音信号的录制.通过观测图1可以看出,在语音信号波形当中夹杂着一些噪声,这主要是由声音采集设备所引入的.
图1 带有噪声的语音信号s0
由于语音信号中含有噪声,故在识别前需对语音信号进行语音增强,以降低、抑制噪声对语音信号的影响,从而提高后续说话人识别的正确率.在该部分采用巴特沃斯(Butterworth)低通滤波器进行噪声的滤除,以达到语音信号增强的目的.所选用的Butterworth低通滤波器幅度平方函数如式(1)所示[6]:
其中Ωc为通带截止频率,N为滤波器阶数,在仿真时选取N=4.经过该滤波器滤波后,语音信号得到了有效增强.
为了进行说话人识别,必须找出说话人的语音特征,基音频率和共振峰都可作为说话人的语音特征来使用.基音频率为声带振动时的频率,相应的周期即为基音周期,基音频率与个人声带、发音习惯等特征息息相关.而共振峰也可反应出说话人的语音特征,其参数包括共振峰频率、共振峰频带宽度及共振峰幅度,一般认为共振峰包含在语音信号的频谱中,即频谱包络中的峰值为共振峰.
常用的基音周期估计方法包括时域估计法、变化法和混合法.而在时域估计法中较为常用的是采用自相关进行基音周期估计,再进行换算继而求出基音频率.式(2)为能量受限的语音信号x(n)的短时自相关函数:
其中x(n)为语音信号,u(i)为窗函数,保证语音信号为短时且能量受限.在短时自相关函数中周期位置处表现为峰值,这样相邻的两个峰值之间的距离即为基音周期,而基音周期的倒数则为基音频率.图2给出了s0的基音频率在不同时间处的表现形式,其平均基音频率为239.3 Hz,在说话人识别过程中,可用该平均值作为s0的特征进行比对,以达到识别的目的.
在进行共振峰分析时,需根据语音信号频域包络来确定共振峰,故需先对语音信号进行功率谱分析,参照其功率密度谱上的峰值来确定共振峰.为了更好地描述功率密度谱上的尖峰,应该选用具有全极点的模型进行估计,而自回归(AR)模型恰好满足此条件.描述AR全极点模型的方程如式(3)所示:
图2 语音信号中的基音频率
其中bi为系数,y(n)为输出,y(n-i)为y(n)的延时,w(n)为高斯白噪声.式(3)对应的系统函数H(z)如式(4)所示,可以看出其系统函数中只有极点,没有零点,故该模型可以更好地反映功率密度谱中的尖峰.
在计算式(3)中的功率密度谱时可借助文森递推算法迭代求解Yule-Walker方程,最终式(3)的功率密度谱可用式(5)来描述[7]:
图3给出了s0语音信号的功率密度谱包络,由图3可以看出,在功率密度谱包络上共有4个共振峰.在说话人识别阶段,依据共振峰的位置及其峰值大小,可作为s0的语音特征与其他语音信号比对,以进行说话人识别.
借助语音增强、基音频率分析和共振峰分析,即可进行简单的说话人识别.在识别过程中以平均基音频率、共振峰峰值位置作为两种评价标准,交互印证,最终实现说话人的辨认.首先自建包含20个语音信号的语音库,将待分析语音信号s0和语音库中的已有语音信号进行基音频率分析,计算各自平均基音频率.将s0的平均基音频率和语音库中的平均基音频率进行比对,计算平均基音频率差值,并选取语音库中误差最小的前10个语音信号作为s0的近似匹配信号.在此基础上计算s0和前10个语音信号的共振峰位置,以共振峰矢量差作为第2种对比参数,选取矢量差最小的语音信号作为s0的最匹配语音,最终确定该语音信号与s0为同一说话人,进而实现说话人的识别.
图3 语音信号功率密度谱及其共振峰
图4 数据库中语音与s0的基音频率差
依据前述分析,首先将待识别语音s0和自建数据库中的20个语音信号s1-s20共21个语音信号进行基音频率分析,并计算各自的平均基音频率,将待识别语音s0的平均基音频率与数据库中的20个语音信号的平均基音频率一一进行比对,对比结果如图4柱状图所示.在图4中横坐标为数据库语音信号标号,纵坐标为待识别语音信号s0与数据库中各语音信号的基音频率差值.从图4可以看出,s3与待识别语音信号s0的差值最小,其差值为7.5;s13与s0的基音频率差值最大,为136.4.由于在本部分识别过程中,只采用了一种语音特征——基音频率,并不能使识别正确率最大化,故继续进行共振峰特征识别.
将图4中基音频率差按从小到大排列前十的10个语音信号标定出来,并用第二种语音特征——共振峰来进行第2轮比对.分别计算s0和标定出来的数据库中前10个语音信号的共振峰,确定其共振峰位置及其强度,并计算共振峰矢量差,以此为参数重新进行从小到大的排列,将排序前五的结果进行绘图,如图5所示.在图5中s7与s0的共振峰矢量差最小,为0.18,而s15与s0的共振峰矢量差最大,其值为0.51.故s7与s0最为相似,由此确定s7与s0为同一说话人.
对比图4和图5可以看出,在图4中s3与s0的基音频率差值最小;但在图5中,s3与s0的共振峰矢量差却排在第3位.由此可见,采用一种语音特征参数进行识别正确识别率较低,原因是一种语音特征无法涵盖语音信号的全部信息,故在识别过程中需采用多种语音特征进行交互验证,最大程度提高识别正确率.
图5 语音信号与s0的共振峰矢量差
借助语音增强、基音频率分析和共振峰分析,在MATLAB平台上设计了简单的说话人识别系统.在识别过程中以平均基音频率、共振峰峰值位置作为两种评价标准,交互印证,最终实现了说话人的辨认.实验结果表明:若采用一种语音特征参数进行识别,正确识别率较低,原因是一种语音特征并不能涵盖语音信号的全部信息,故在识别过程中需采用多种语音特征进行交互验证,最大程度提高正确识别率.在后续试验中需进一步优化识别程序,引入更为精确的语音特征提取算法和识别方法,进而提高识别速度与识别精度.
[1]LEE C H,SOONG FK,PALIWAL K.Automatic Speech and Speaker Recognition:Advanced Topics[M].Germany:Springer Science& BusinessMedia,2012.
[2]LEI Y,FERRER L,MCLAREN M.A Novel Scheme for Speaker Recognition Using a Phonetically-aware Deep Neural Network[C]// Acoustics,Speechand SignalProcessing(ICASSP),2014 IEEEInternationalConferenceon.IEEE,2014:1695-1699.
[3]KENNYP,GUPTAV,STAFYLAKIS T,et al.Deep NeuralNetworksFor Extracting Baum-welch Statistics for SpeakerRecognition[C]// Proc.Odyssey.2014:293-298.
[4]林琳,陈虹,陈建.基于鲁棒听觉特征的说话人识别[J].电子学报,2013,41(3):619-624.
[5]吴海洋,杨飞然,周琳,等.矢量泰勒级数特征补偿的说话人识别[J].声学学报,2013,38(1):105-112.
[6]陈怀琛.数字信号处理教程:MATLAB释义与实现[M].北京:电子工业出版社,2013.
[7]宣传忠,武佩,马彦华,等.基于功率谱和共振峰的母羊发声信号识别[J].农业工程学报,2015,(24):219-224.
(责任编辑鹍钮效)
Design and Implementation of Speaker Recognition System based on MATLAB
WANG Xian-bin,YANG Jie,JIA Ying-qian,RAO Li-chan
(School of Physics&Electrical Information Engineering,Shijiazhuang University,Shijiazhuang,Hebei 050035,China)
Through the analysis of speech enhancement and pitch and formant frequency,a simple speaker recognition system is designed.In the recognition process,average pitch frequency and peak position of formant are treated as two kinds of evaluation criteria to achieve the speaker identification.
pitch frequency;formant;speaker recognition;MATLAB
TN391
A
1673-1972(2016)03-0005-04
2016-03-20
河北省科技计划项目(15210606);石家庄学院科研启动项目(16BS004)
王现彬(1981-),男,河北邢台人,讲师,博士,主要从事信号处理与光纤通信研究.