0引言说话人识别(SpeakerRecognition,SR)是语音识别的一种,是通过话音区分说话人,从而进行身份鉴别与认证的技术。与其他生物认证技术如指纹识别、掌型识别、虹膜识别等相比,具有独特的方便性、经济性和准确性,并逐渐成为人们日常生活和工作中重要且普及的安全验证方式[1]。Matlab是使用最为广泛的科学计算软件之一,在说话人识别中有着广泛应用。但在实际应用中仍存在如下不足:其语音处理工具箱仅仅提供了基本函数,并未针对一类问题给出一整套设计方案;一般Matlab控制台程序以命令形式调用语音处理工具箱函数,这种形式不像人机交互界面那样直观,也不易数据处理。正因为这些困难与不足,有必要设计基于MatlabGUI的说话人识别测试平台[2]。1GUI说话人识别测试平台实现1.1系统框架设计说话人识别系统框图如图1所示,主要由以下模块组成:(1)预处理模块:完成对语音信号的采样与量化、预加重处理、加窗、端点检测等;(2)特征提取模块:测试音和训练音都必须经特征提取,提取出表征说话人个性的语音信号特征,以方便后续处理;(3)参考模板模块:对模型参数进行估计和优化,建立说话人模型;(4)模式匹配模块:测试音经特征提取,将提取出的特征参数和训练时产生的模型进行匹配,计算匹配距离;(5)判决模块:根据匹配距离大小,依照某种相似性准则形成判决[3]。图1说话人识别系统框图对上面5个模块编写程序,在程序中调用了语音处理工具箱中的enframe,melcepst,melbankm等函数[4]。对所有程序进行优化和整合,设计出说话人识别系统测试平台。1.2人机交互界面设计说话人识别测试平台主界面如图2所示。设置各控件属性,通过回调函数实现系统功能。图2说话人识别测试平台主界面1.2.1控件属性值设置图2主界面中,包括如下控件类型:StaticText,PushButton,Pop-upmenu,Radio-button,Extidtext,Mpanel等。表1为各控件类型的主要属性设置情况[5]。1.2.2系统各部分功能的实现主界面主要包括录音、测试及结果分析3部分。(1)录音部分:首先设置语音采样点数,然后录音,可通过PLOT按钮观看录制的语音波形,或通过PLAY按钮听录制语音的声音[6],以保证录制语音质量。录音按钮回调函数为:functionpushbutton9_Callback(hObject,eventdata,handles)(2)测试部分:首先选择人数、发音的字数、帧长、帧移、是否选择有端点检测,然后选择采用的语音特征参数是MFCC或MFCC+MFCC,通过ThePathofTrain按钮,输入训练语音路径,以输入训练语音,再按TRAIN按钮,当Edittext框中显示traininghasbeencompleted表明训练已完成。再按ThePathOfTest按钮,输入测试语音路径,以输入测试语音,再按TEST按钮以进行测试,其测试结果显示在Edittext框中,最后识别率显示在Identifyrate窗口。训练按钮回调函数为:functiontrain_Callback(hObject,eventdata,handles)(3)结果分析部分:对几个影响识别率的因素进行了分析。主要因素有:帧长、人数、字数、MFCC阶数、是否采用端点检测等,其结果和理论结论一致。表1控件类型的主要属性设置2测试实例测试实例参数设置及测试结果如图3所示。特征参数采用MFCC+差分MFCC;识别模型为矢量量化模型;测试环境为实验室环境。人数为50人,每个人训练、测试