标题 | 基于Matlab的藏语语音基音检测算法研究 |
范文 | 卓嘎+边巴旺堆 摘 要: 目前藏语语音基音检测算法相关研究较少,藏语语音基音检测是藏语语音处理过程中的重要环节,其准确性直接影响到系统的性能。介绍中心消波和自相关函数的算法原理及基音检测算法,设计藏语语音基音检测流程,利用Matlab进行编程和仿真。通过实验表明该算法结构简单、运算量小,结果较准确,可用于信噪比较低环境下藏语语音辅音的基音估值检测。 关键词:基音检测; 藏语语音; 自相关算法; Matlab 中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2015)10?0020?03 0 引 言 语音信号处理是一门交叉学科,研究内容涉及到各种语言的语音与计算机处理技术、数字信号处理等很多知识,是目前很热门的研究领域。这门技术对藏语言的语音合成、语音识别、语音压缩编码和语音分析具有重要意义。基音检测作为藏语语音处理的关键环节直接影响整个语音处理系统的性能[1]。 基音检测是根据浊音语音的周期性进行周期或频率的估算,目前基音频率算法有很多种,但是还没有一种适合各种语音环境的统一算法[2?5]。本文采用中心消波和自相关函数相结合的算法,通过Matlab编程实现了藏语语音基音的估算。自相关函数算法是利用浊音语音信号的准周期性和出现的最大值,提取自相关函数的第一个峰值点的位置进行频率估算[6]。 1 中心消波自相关函数算法 1.1 语音短时自相关函数 语音信号中,浊音波形具有一定的周期性,通过自相关函数计算,其波形在时域上具有较好的相似性[7?8],周期信号的特点是:对于确定的信号,具有对称性和最大值,在某个周期内对应周期值取样点上的自相关函数值最大,相邻最大值间的距离为估算的基音周期,以此来估计周期信号的周期值。因此,可以根据语音信号短时稳定性的特点,采用短时自相关函数进行语音基音频率估值计算,其计算公式如下: [Rnk=m=-∞+∞xmxm-khkn-m] 式中:x为离散语音序列,序列x(m)x(m-k)经过一个冲激响应为hk(n-m)的数字滤波器滤波得到短时自相关函数Rn(k)。 1.2 中心消波 根据自相关函数的特点,语音的短时自相关波形是周期性的波形图,但是只有少数的波峰反映了基音周期,因此,在进行基音频率估算前可以采用中心消波算法进行适当的信息压缩,突出基音周期信息。中心消波法[9?10]就是将语音信号的序列电平先进行60%~70%的消波,在进行自相关计算,其公式如下: [fx=x-xL, x>xL0, -xL≤x≤xLx+xL, x 2 Matlab算法设计 中心消波自相关函数基音频率估值流程图如图1所示,由7大部分组成: (1) 原始语音:提取一段藏语语音。 (2) 提取合适的浊音语音段:语音信号中只有浊音具有周期性,因此对提取的语音段要进行浊音提取,本程序中用人工方式将一段藏语语音段的浊音部分用wavread函数提取出来。 (3) 预处理:为选取的语音进行预加重处理,加重高频部分,去除辐射影响,用x1=filter([1-0.937 5],1,x1)实现,提高语音的高频分辨率。 (4) 分帧加窗:根据语音的短时稳定性对预处理后的语音进行分帧加窗,在Matlab中用Enframe函数可以实现不同窗函数的分帧。 (5) 中心消波:本流程里设定的中心消波电平为语音最大幅值的70%。 (6) 自相关函数计算:对中心消波后的语音序列进行自相关计算。 (7) 基音频率估值:根据语音自相关函数波形的周期性,提取其最大值的位置n,计算[nfs]获得基音周期或频率[11?12]。在实际的仿真中发现由于第一个峰值点滞后,对n值进行一定的处理。 图1 中心消波自相关函数基音检测流程图 3 基音检测及Matlab仿真 Matlab仿真程序包括两个部分,首先在主程序里读取藏语语音信号,提取浊音信号,然后进行预处理和分帧,其代码如下: clear all; [x1,fs,nbits]=wavread(′d:\waves\tb1?4.wav′,[26800 40000]); x1=filter([1?0.9375],1,x1); N=1764;step=110; x2=enframe(x1,boxcar(N),step); x=x2(1,:); xwin_one(x,1,fs); 其次,调用一个自定义的xwin_one.m函数,其功能是对上述处理过的语音信号进行中心消波、自相关函数计算、基音频率估算和仿真绘图,代码内容如下: function y=xwin_one(x,a,fs) L=length(x); m1=max(x);n1=min(x); m=m1(1);n=n1(1); for i=1:L %归一化取出的x样点 x(i)=x(i)/m; end figure(1); subplot(2,1,a);plot(x,′k′);title(′矩形窗语音波形′);xlabel(′样点数′);ylabel(′幅度′); %进行x的中心消波和绘图 coeff=0.7; th0=m*coeff; for k=1:L if x(k)> th0 x(k)=x(k)?th0; elseif x(k)<=(?th0) x(k)=x(k)+th0; else x(k)=0; end end mm=max(x); m=mm(1); for i=1:L x(i)=x(i)/m; end %计算和绘制中心消波之后的自相关函数计算 for k=1:L summ=0; for m=1:L?k+1 summ=summ+x(m)*x(m+k?1); end W(k)=summ; end p=W(10:L); [Rmax Rn]=max(p) Rn=Rn+10 Tc=Rn/fs %中心消波之后基音周期 Fc=1/Tc figure(1); subplot(2,1,a+1);plot(W);title(′矩形窗中心消波自相关函数′);xlabel(′延时k′);ylabel(′R(k)′) 仿真结果如图2所示,实验中提取了藏语辅音“ 图2 中心消波自相关函数基音频率估算仿真图 4 结 语 基音频率是藏语语音处理技术中重要的表征参数,精确估算基音频率对分析藏语语音信息具有重要意义。本文用中心消波自相关函数算法进行藏语语音的基音检测,结果表明该算法结构简单、运算量小,结果较准确,可用于藏语语音辅音的基音估值检测。但是对于藏语单音节、双音节、多音节的基音检测是否可用该算法有待进一步研究。 参考文献 [1] 李积逊.藏语语音基音周期检测[J].青海师范大学学报:自然科学版,2008(4):42?44. [2] 赵祎,张盛,林孝康.一种改进的基音周期提取算法[J].数据采集与处理,2014(2):304?308. [3] 马莎莎,戴曙光,穆平安.基于短时能量的循环AMDF基音检测算法[J].计算机仿真,2014,31(7):278?282. [4] 骆娇艳,孙祥娥.基于Matlab的基音检测分析[J].电脑知识与技术,2014(18):4293?4295. [5] 焦蓓.语音信号的基音检测法研究[D].湘潭:湘潭大学,2013. [6] 沈瑜,党建武,王阳萍,等.加权短时自相关函数的基音周期估计算法[J].计算机工程与应用,2012,48(35):1?6. [7] 马效敏,郑文思,陈琪.自相关基频提取算法的Matlab实现[J].西北民族大学学报:自然科学版,2010,31(4):54?58. [8] 蔡萍.基于短时平均幅度差函数的带噪语音端点检测算法[J].河南工程学院学报:自然科学版,2014,26(3):26?29. [9] 刘何来.低信噪比下语音频率参数估计[D].荆州:长江大学,2013. [10] 孙燕,姜占才.中心消波自相关法语音基音检测[J].青海师范大学学报:自然科学版,2009(2):32?35. [11] KANG Guang?yu, GUO Shi?ze. Improving AMDF for pitch period detection [C]// Proceedings of 2009 9th International Conference on Electronic Measurement & Instruments. Beijing: IEEE Beijing Section & Chinese Institute of Electronics, 2009, 4: 283?286. [12] GUO Hai?yan, SHAO Xi. An improved phase?space voicing?state classification for co?channel speech based on pitch detection [C]// Proceedings of 2008 9th International Conference on Signal Processing. Beijing: IEEE Beijing Section, 2008: 680?683. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。