未来智讯 > 人脸语音识别论文 > 多模板优化的语音识别算法

多模板优化的语音识别算法

发布时间:2018-07-06 01:07:00 文章来源:未来智讯    
    关键词:语音识别;动态时间规整;端点检测;多模板优化
    中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2015)01-0146-04
    Multiple Templates in Speech Recognition Algorithm
    PAN Zhi-gang, YAO Min-feng, ZHANG Jing
    (Cisco Information Institute , Guangdong University of Foreign Studies , Guangzhou 5100061,China)
    Abstract:The thesis aims at realizing a speech recognition system, which can recognize single word of a specific person based on MATLAB. The thesis will introduce the system from the following aspects: preprocessing stage, voice signal extraction and speech recognition algorithm. The system uses short-time energy and zero-crossing rate as two restraints, MFCC which has a higher recognition rate as the characteristic parameter, high-efficiency DTW algorithm and multiple models to recognize speech and gains a comparatively high recognition rate.
    Key words:speech recognition; DTW; endpoint detection; multi templates optimization
    随着语音识别技术的进步,其应用越来越广泛,尤其是孤立词语音识别系统的应用前景非常广阔,如语音控制系统,为人们在手动控制以外提供了一种更安全、更方便的控制方法,特别是当系统工作在一些特定的环境或针对一些特殊用户的时候;如语音输入系统,用口述代替键盘向计算机输入文字,会给办公自动化和出版界带来革命性的变化;基于对话系统的数据库查询系统,为用户提供了更加友好便捷的数据库检索或查询,可以广泛运用在银行、交易所、民航等机构;除此之外,语音识别还可以用于口语翻译系统、计算机辅助教学、自动身份确认等领域。因此,针对特定人的孤立词语音识别系统具有广泛的实际意义。
    从目前语音识别理论发展现状来看,非特定人、大词汇量、连续语音识别是语音识别领域的三大难点。相对而言,特定人小词汇量孤立词语音识别的理论和实践都已较为成熟完善。因此研制一些有限词汇(有限命令集)识别系统对于将语音识别技术扩大应用范围、推向市场以服务于社会有着非常重大的意义。该文在研究实现了特定人孤立词小词汇量的语音识别,采用了一种多模板匹配的方法,主要是针对特定人发声可能产生的微小差异所采取的一种增加识别正确率的方法。
    1 语音信号预处理
    1.1 语音预加重
    语音信号的平均功率谱由于受声门激励和口鼻辐射的影响,高频端大约在800Hz以上按6dB/Oct(倍频程)衰减,因此,在求语音信号谱时,频率越高相应的成分越小,高频部分的频率比低频部分的难求。因此,预加重的目的是加强语音中的高频共振峰,使语音信号的短时频谱变得更为平坦,便于进行频谱分析和声道参数分析。通常的方法是使用一阶零点数字滤波器实现预加重,其形式为式(1)
    [H(z)=1-μz-1,0.90≤μ≤0.98] (1)
    其中,[μ]为预加重系数,通常取0.9~0.98之间。本系统取[μ]值为0.9375。
    1.2 语音信号分帧、加窗
    在本设计系统中,取帧长为30ms(每帧包含240个采样点),采样频率为8KHz。矩形窗,主瓣较窄,具有较高的频率分辨率,但具有较高的旁瓣,相邻谐波干扰比较严重,相邻谐波间隔内有时叠加有时抵消而产生严重泄露。与矩形窗相比,海明窗得到的频谱却要平滑得多,而且海明窗也是用最为普遍的。论文中选用海明窗对语音信号进行加窗。在求MFCC系数时对语音添加了海明窗。
    1.3 语音信号的端点检测
    本系统选取短时能量和短时过零率两个值共同作用确定语音信号的起点和终点。在开始进行端点检测前,首先为短时能量和过零率分别确定两个门限。一个是比较低的门限,其数值比较小,对信号的变化比较敏感,很容易就会被超过。另一个是比较高的门限,数值比较大,信号必须达到一定的强度,该门限才可能被超过。低门限被超过未必就是语音的开始,有可能是时间很短的噪声引起的。高门限被超过则可以基本确信是由于语音信号引起的。整个语音信号的端点检测可以分为四段:静音、过渡段、语音段、结束。程序中使用一个变量status来表示当前所处的状态。在静音段,如果能量或过零率超越了低门限,就应该开始标记起始点,进入过渡段。在过渡段中,由于参数的数值比较小,不能确信是否处于真正的语音段,因此只要两个参数的数值都回落到低门限以下,就将当前状态恢复到静音状态。而如果在过渡段中两个参数中的任何一个超过了高门限,就可以确信进入语音段了。一些突发性的噪声也可以引起短时能量或过零率的数值很高,但是往往不能维持足够长的时间,如门窗的开关、物体的碰撞等引起的噪声,这些都可以通过设定最短时间门限来判别。当前状态处于语音段时,如果两个参数的数值降低门限以下,而且总的计时长度小于最短时间门限,则认为这事一段噪音,继续扫描以后的语音数据。否则就标记好结束端点,并返回。图1为英语单词“orange”进行端点检测的有关图示。最上面的为原始语音幅度进行规整后的图形。中间的图形为短时能量图,最后一幅为过零率图。由三幅图可以清晰的得到端点检测的结果。
         2 语音特征的提取
    特征提取的实质是对经过预处理的语音信号经过某种变换,去掉冗余部分,把代表语音信号本质的特征参数抽取剥离出来.语音特征参数是分帧提取的,每帧特征参数一般构成一个矢量,形成一个矢量序列,再经过数据压缩后便成为语音的模板。特征参数提取主要包括三种方法:线形预测编码系数(LPC),以及当前流行的两种特征参数提取方法:线性预测倒谱系数(LPCC)和美尔频标倒谱系数(MFCC)。后两者都是将语音信号从时域转换到倒谱域上加以利用。论文采用MFCC特征提取算法。
    3 动态时间规整算法(DTW)
    在孤立词语音识别中,最为简单有效的方法是采用DTW(Dynamic Time Warping,动态时间归整)算法,该算法基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法。用于孤立词识别,DTW算法与HMM算法在训练阶段需要提供大量的语音数据,通过反复计算才能得到模型参数,而DTW算法的训练中几乎不需要额外的计算。所以在孤立词语音识别中,DTW算法仍然得到广泛的应用。
    3.1 改进的DTW算法
    传统的DTW算法的缺点是模板匹配的运算量太大,求累积距离时,对测试模板的各帧给予了相等的权重,当两个模板数增加较快时,训练和识别算法的运算量也快速增大。根据给定匹配路径的限定规整斜率,在矩形内许多网络点是无法达到的,可以看成平行四边形外的网格点不需计算的,如图2所示,需要运算的交点都在平行四边行内。这样减少了需要保存的匹配距离矩阵和累积距离矩阵,减少资源的消耗。改进型DTW算法大大提高了运算效率,它的方法实际是把路径分为三段,分别进行处理:三段路径为:[(1,Xa),(Xa+1,Xb),(Xb+1,N)],其中,根据坐标计算可得出:
    [Xa=13(2M-N)] (1)
    [Xb=23(2N-M)] (2)
    [Xa]和[Xb]都取最相近的整数。由此得出了对M和N长度的限制条件:
    [2M-N≥32N-M≥2] (3)
    当限制条件不满足时,不进行动态匹配,利用这一条件的判断,减少了对认为是相差条件太软的模板之间的匹配,减少了系统开支。
    在X坐标轴上的每一帧与Y坐标轴上[[ymin,ymax]]间的帧做比较,[ymin,ymax]的计算公式如(4) (5) 。
    [ymin12x 0≤x≤Xb2x+(M-2N) Xb    [ymax2x 0≤x≤Xa12x+(M-12N) Xa    同理,若出现[Xa>Xb]的情况,此时匹配的路径三段为[(1,Xb),(Xb+1,Xa),(Xa+1,N)].对于X坐标轴每前进一帧,虽然所要比较的Y坐标轴的帧数不同,但规整特性是一致的,累积距离如式(6) 所示。
    [D(x,y)=d(x,y)+minD(x-1,y),D(x-1,y-1),D(x-1,y-2)] (6)
    其中D和d分别表示累积距离和帧匹配距离。
    3.2 基于DTW算法的语音多模板匹配
    3.2.1模板优化概述
    模板优化的思想为:取两个模板为一个小组,采用动态规整的方法得到两模板的匹配路径。然后两模板根据匹配路径,让对应帧的特征参数相加之后取平均得到一个新模板。然后所有小组产生的新模板相加取平均,得到优化模板。这个优化模板与三个原始模板的都有很强的相关性,这种相关性与个人的发音本质相对应,3原始个模板与优化是一般性与特殊性的关系。这样一来,优化模板就很好地结合了多模板参与匹配的人性化思想,同时优化模板只有一个,又有了单模板匹配的简洁快速的特性。
    3.2.2寻找匹配路径
    下面以[ai]与[bi]这个模板组为例来讨论寻找匹配路径的方法。设[ai(p)]为模板a的第i个信号的第p帧特征参数,[Ni]为该信号的总帧数;[bi(p)]为模板b的第i个信 号的第q帧特征参数,[Mi]为该信号的总帧数。[Cipq]为到([ai(p),bi(p)])这个点的最小距离,[Dipq]为到([ai(p),bi(p)])这个点的前一个点的坐标的纵坐标,使得其比前一帧的其他点到点([ai(p),bi(p)])距离小。
    首先根据如下方法获得[Dipq][(1≤p≤Ni,1≤q≤Mi,1≤i≤10)] 初始化:
    [Dipq=zeros(Ni,Mi)]
    [Cipq=ones(Ni,Mi)*realmax]
    [Ci11=d(ai(1),bi(1)),Ci21=d(ai(1),bi(1))+d(ai(2),bi(1))]
    [Ci22=d(ai(1),bi(1)+d(ai(2),bi(2))]
    [Di21=Di22=1]
    迭代求值:[Cipq=d(ai(p),bi(q))+min(Ci(p-1)qCi(p-1)(q-1),CI(P-1)(Q-2))]
    [[u,g]=min(Ci(p-1)q,Ci(p-1)(q-1),Ci(p-1)(q-2))]
    [Dipq=q+1-g] [(2≤p≤Ni,3≤q≤Mi,1≤i≤10)]
    然后用如下算法将最优匹配路径表达出来:
    [n=Ni] m=[Mi]
    [mathPathi](n)=m;
    p=n-1;
    q=m
    for k=n:-1:2
    [mathPathi](p)=[Dikq];
    q=[mathPathi](p);
    p=p-1;
    end
         3.2.3优化模板
    根据匹配路径[mathPathi],对模板组内部以及模板组间进行取平均,然后生成优化模板。生成优化模板的方法如下:
    设[gi(x)]表示第i个信号的第x个模板组(共三个模板组)生成的模板,[fi]表示第i个信号的优化模板,模板组内部取平均:[gi(x)=(ai+bi(mathpathi',:))*0.5]; 模板间取平均:[fi=(gi(1)+gi(2)+gi(3))/3],即[fi]便为优化模板。
    4 基于MATLAB的界面设计与实现
    本语音识别系统的的执行界面如图3所示。界面风格简洁明了。由五个按钮以及面板和面板上的显示图片构成。该界面的实现主要应用了MATLAB 的GUI工具箱。在一个可视化界面下设计软件界面。
    界面上共有五个按钮, “开始识别”按钮主要用来现场读入特定人的语音,生成测试模板,并与参考模板进行匹配并返回识别结果。“结束识别”按钮则用来结束语音识别并关闭当前窗口。训练模块由“开始训练Z” 、“开始训练L” 、“开始训练D”三个按钮来实现。这三个按钮的主要功能通过调用按钮的Callback回调函数实现。当点击其中任意一个按钮时,屏幕会弹出如图4所示的进度条,表示此时正在训练模板。此时系统会生成一个用来存放语音特征系数的数据文件dtwSamplessZ.mat(dtwSamplessL.mat、dtwSamplessL.mat与按钮上的英文字符对应)。当训练完成时会弹出一个消息对话框如图5所示,表示此时训练已经完成。
    当点击“开始识别”按钮时,系统调用此按钮的Callback回调函数,则系统将执行run testword;语句。该语句主要用来调用testword.m文件,并执行文件中的代码。而该文件主要用来进行实时语音识别,即先通过wavrecord函数读取实时语音数据,然后调用vad端点检测函数来确定实时录入语音的起始点x1和结束点x2,接着调用mfcc函数得到实时语音的mfcc系数矩阵,系数保存在test矩阵中。最后通过调用dtw函数,计算参考模板sampless与测试模板test之间的距离,并通过比较得到与测试模板距离最小的参考模板。最后通过弹出消息对话框显示匹配结果如图6所示(以英文单词orange为例):
    5 结束语
    论文在总结和分析了现有语音识别技术的各关键阶段理论及算法后,在基于PC平台上使用MATLAB软件设计和实现特定人孤立词小词汇量的语音识别系统。针对语音预处理,特征提取和模式匹配等几个阶段各种算法的选择做了一定的研究工作,在实现系统中有一定的创新,主要的工作及相应的创新点归纳为以下几点:
    1)对传统的语音识别技术理论作了大量的研究,对语音识别各阶段算法通过分析进行比较。在语音的端点检测模块选择了能有效的维持系统鲁棒性的短时能量-短时过零率双门限的方法。使端点检测结果更为准确。
    2) 通过对特征提取中的LPCC参数和MFCC参数的深入研究,最后选择了识别效果较好的MFCC参数。通过对DTW算法的研究,使用了改进的DTW算法,并加入了多模板匹配的思想,使匹配更加快捷和精准。论文开发的系统基本达到了对于特定人的小词汇量孤立词语音识别的预期目标。但是可以考虑进行几个方面的完善:
    1) 系统使用的DTW算法虽然有其本身的优势,但也存在缺点,而且只使用于特定人中,因此若论文研究的课题往下发展应该在以词为单位的基础上对适合使用在非特定人识别的HMM算法进行研究。
    2)系统着重在语音识别的准确率上进行改进,论文的多模板匹配虽然加强了识别的准确度,但是却增加了识别的复杂度。因此本系统还可以朝着提升语音识别的效率的方向进行改进。
    参考文献:
    [1] Bourlard H. Optimizing recognition and rejection performance in wordspotting systems[M]. ICA-SSP, 199914(2):358-364.
    [2] Christoph B,Bernd P.Permutation entropy:a natural complexity measure for time series[M].Phys Rev Lett,2002,88(17):1741021-1741024.
    [3] Dave Harrold. Industry Ethernet [J]. Control Engineering, 1999.
    [4] 何强,何英.MATLAB扩展编程[M].北京:清华大学出版社,2006.
    [5] 胡航.语音信号处理[M].哈尔滨:哈尔滨工业大学出版社,2000.
    [6] 拉宾纳.语音识别的基本原理[M].北京:清华大学出版社,2002.
    [7] 罗承烈.近代语音识别[M].成都:电子科技大学出版社,1991:54-55.
    [8] 李邵梅,刘力雄,陈鸿昶.实时说话人识别系统中改进的DTW算法[J].计算机工程,2008(4):218-219.
    [9] 朴春俊.噪声环境下的语音识别性能研究[J].计算机测量与控制,2005,13(11):1276-1291.
    [10] 万春.基于DTw的语音识别应用系统研究与实现[J].集美大学学报:自然科学版,2002, 7(2):104-105.
    [11] 王亚涛,朴春俊.强噪声情况下的多种端点检测方法研究[J].信息技术,2005(2):43-45.
    [12] 徐大为,吴边,赵建伟,等.一种噪声环境下的实时语音端点检测算法.计算机工程与应用[J],2003(1):115-117.
    [13] 易克初,语音信号处理[M].北京:国防工业出版社,2000.
    [14] [日]占井贞熙.数字声音处理[M]. 朱家新,张国海,易武秀,译.北京:人民邮电出版社,1993.
    [15] 赵力.语音信号处理[M].北京:机械工业出版社,2003.
    [16] 赵彦平.孤立词小词汇量抗噪声语音识别方法的研究[D].吉林:吉林大学,2006.
    [17] 朱淑琴,裘雪红.一种精确检测语音端点的方法[J].计算机仿真,2004,22(3):214-216.
转载请注明来源。原文地址:https://www.7428.cn/page/2018/0706/21188/
 与本篇相关的热门内容: