基于Matlab GUI的说话人识别测试平台设计

时间:2022-10-11 04:27:05

基于Matlab GUI的说话人识别测试平台设计

摘 要:为了克服在Matlab中语音处理工具箱的不足,设计出基于Matlab图形用户界面(GUI)的说话人识别测试平台。系统框架设计:特征参数采用美尔倒谱系数及差分美尔倒谱系数,识别模型采用矢量量化模型;人机交互实现:设置各控件属性,通过回调函数实现系统功能;测试实例:测试人数50人,识别率为96%,表明了该测试平台的有效性。该平台的特点是:功能较为完整,可设置参数,如:人数、字数、帧长等,方便用户实验,具有良好的实用性、可交互性等。

关键词: Matlab图形用户界面; 说话人识别; 测试平台; 回调函数

中图分类号: TN911?34; TP39 文献标识码: A 文章编号: 1004?373X(2013)08?0059?02

0 引 言

说话人识别(Speaker Recognition,SR)是语音识别的一种,是通过话音区分说话人,从而进行身份鉴别与认证的技术。与其他生物认证技术如指纹识别、掌型识别、虹膜识别等相比,具有独特的方便性、经济性和准确性,并逐渐成为人们日常生活和工作中重要且普及的安全验证方式[1]。

Matlab是使用最为广泛的科学计算软件之一,在说话人识别中有着广泛应用。但在实际应用中仍存在如下不足:其语音处理工具箱仅仅提供了基本函数,并未针对一类问题给出一整套设计方案;一般Matlab控制台程序以命令形式调用语音处理工具箱函数,这种形式不像人机交互界面那样直观,也不易数据处理。正因为这些困难与不足,有必要设计基于Matlab GUI的说话人识别测试平台[2]。

1 GUI说话人识别测试平台实现

1.1 系统框架设计

说话人识别系统框图如图1所示,主要由以下模块组成:

(1)预处理模块:完成对语音信号的采样与量化、预加重处理、加窗、端点检测等;

(2)特征提取模块:测试音和训练音都必须经特征提取,提取出表征说话人个性的语音信号特征,以方便后续处理;

(3)参考模板模块:对模型参数进行估计和优化,建立说话人模型;

(4)模式匹配模块:测试音经特征提取,将提取出的特征参数和训练时产生的模型进行匹配,计算匹配距离;

(5)判决模块:根据匹配距离大小,依照某种相似性准则形成判决[3]。

对上面5个模块编写程序,在程序中调用了语音处理工具箱中的enframe,melcepst,melbankm等函数[4]。对所有程序进行优化和整合,设计出说话人识别系统测试平台。

1.2 人机交互界面设计

说话人识别测试平台主界面如图2所示。设置各控件属性,通过回调函数实现系统功能。

1.2.1 控件属性值设置

图2主界面中,包括如下控件类型:Static Text,Push Button,Pop?up menu,Radio?button,Extid text,Mpanel等。表1为各控件类型的主要属性设置情况[5]。

1.2.2 系统各部分功能的实现

主界面主要包括录音、测试及结果分析3部分。

(1)录音部分:首先设置语音采样点数,然后录音,可通过PLOT按钮观看录制的语音波形,或通过PLAY按钮听录制语音的声音[6],以保证录制语音质量。录音按钮回调函数为:

function pushbutton9_Callback(hObject, eventdata, handles)

(2)测试部分:首先选择人数、发音的字数、帧长、帧移、是否选择有端点检测,然后选择采用的语音特征参数是MFCC或MFCC+ΔMFCC,通过The Path of Train 按钮,输入训练语音路径,以输入训练语音,再按TRAIN按钮,当Edit text框中显示training has been completed表明训练已完成。再按The Path Of Test按钮,输入测试语音路径,以输入测试语音,再按TEST按钮以进行测试,其测试结果显示在Edit text框中,最后识别率显示在Identify rate窗口。训练按钮回调函数为:

function train_Callback(hObject, eventdata, handles)

(3)结果分析部分:对几个影响识别率的因素进行了分析。主要因素有:帧长、人数、字数、MFCC阶数、是否采用端点检测等,其结果和理论结论一致。

表1 控件类型的主要属性设置

2 测试实例

测试实例参数设置及测试结果如图3所示。特征参数采用MFCC+差分MFCC;识别模型为矢量量化模型;测试环境为实验室环境。人数为50人,每个人训练、测试时分别说12个汉字,中文普通话。识别率窗口显示系统识别率为96%,效果较好,表明了该测试平台的有效性。

3 结 语

本文所设计的基于Matlab GUI说话人识别测试平台,充分利用Matlab软件中的GUI技术及语音处理工具箱中内置函数,功能完善,包括录音、测试及结果分析部分。该平台提供了良好的人机交互环境,便于用户在各种参数条件下的测试实验,例如用户可方便设置采样点数、人数、字数、及帧长、帧移、MFCC的阶数等测试条件,系统识别率高,为进一步开发说话人识别系统提供一定的仿真环境及参考价值。

参考文献

[1] 吴朝晖.说话人识别模型与方法[M].北京:清华大学出版社,2009.

[2] 秦辉.基于Matlab GUI的预测控制仿真平台设计[J].系统仿真学报,2006,18(10):2778?2779.

[3] 甄斌,吴玺宏,刘志敏.语音识别和说话人识别中各倒谱分量的相对重要性[J].北京大学学报:自然科学版,2001,37(3):371?378.

[4] 陈炜杰.噪声环境下的说话人识别技术研究[D].杭州:浙江工业大学,2008.

[5] 郑阿奇.Matlab实用教程[M].北京:电子工业出版社,2005.

[6] 徐明远,刘增力.Matlab仿真在信号处理中的应用[M].西安:西安电子科技大学出版社,2007.

上一篇:这里没人察觉,谁又爱上了谁 下一篇:基于小波包和改进BP神经网络的滚动轴承故障诊...