基于Matlab的一种基音周期检测算法.pdf

上传人:wj 文档编号:14651072 上传时间:2023-06-25 格式:PDF 页数:5 大小:785.25KB
下载 相关 举报
基于Matlab的一种基音周期检测算法.pdf_第1页
第1页 / 共5页
基于Matlab的一种基音周期检测算法.pdf_第2页
第2页 / 共5页
基于Matlab的一种基音周期检测算法.pdf_第3页
第3页 / 共5页
基于Matlab的一种基音周期检测算法.pdf_第4页
第4页 / 共5页
基于Matlab的一种基音周期检测算法.pdf_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于Matlab的一种基音周期检测算法.pdf

《基于Matlab的一种基音周期检测算法.pdf》由会员分享,可在线阅读,更多相关《基于Matlab的一种基音周期检测算法.pdf(5页珍藏版)》请在冰点文库上搜索。

基于Matlab的一种基音周期检测算法.pdf

中图分类号:

TN912文献标识码:

A文章编号:

1009-2552(2009)01-0050-05基于Matlab的一种基音周期检测算法宋建华,朱勇,徐军,张圣贤(黑龙江大学电子工程学院,哈尔滨150080)摘要:

在对自相关基音检测算法进行分析的基础上,对此算法进行了深入探讨,针对以往研究中存在的不足加以改进,考虑到检测准确度和检测速率两方面的因素,引入了三电平削波模块,设计了基于Matlab的估计方法,然后通过对一段具体的语音进行处理,得到了比较准确的浊音语音的基音周期。

实验证明,该方法简单、有效。

关键词:

Matlab;基音检测;自相关函数;三电平削波AnalgorithmforpitchdetectionbasedonMatlabSONGJian2hua,ZHUYong,XUJun,ZHANGSheng2xian(SchoolofElectronicEngineering,HeilongjiangUniversity,Harbin150080,China)Abstract:

Inthispaper,somefurtherstudieshavebeendoneonthebasisofanalyzingtheautocorrelationalgorithm.Fortheshortcomingsoftheresearchinthepast,atri2levelclippingmoduleisadoptedtoimprovethedetectionwhichtakestheaccuracyandthedetectionrateintoaccount.ThispaperdesignedtheestimationmethodbasedonMatlab,andthenthroughprocessingaspecificvoice,obtainedmoreaccuratevoicepitchperiodofthevoicedsound.Theexperimentsshowthatthemethodissimpleandeffective.Keywords:

Matlab;pitchdetection;autocorrelationfunction;tri2levelclipping0引言基音周期检测也称为基频检测(PitchDetection),它的目标是找出和声带振动频率完全一致的基音周期变化轨迹曲线,或者是尽量相吻合的轨迹曲线。

基音周期检测在语音信号的各个处理领域中,如语音分析与合成、有调语音的辨意、低速率语音压缩编码、说话人识别等都是至关重要的,它的准确性及实时性对系统起着非常关键的作用,影响着整个系统的性能。

本文在对自相关基音检测算法基本原理进行分析的基础上,对此算法进行了深入的探讨,针对以往研究中存在的问题加以改进,给出了一种方便、快捷的检测方案。

综合考虑了检测准确度和检测速率两方面的因素,引入了三电平削波模块,然后通过对一段具体的语音信号进行滤波、采样、分帧、求短时自相关函数,较准确地得到浊音语音信号的基音周期。

1基于自相关函数的基音周期检测原理采用自相关函数基音周期检测流程如图1所示,共包括六个模块:

带通滤波、采样、分帧、短时能量分析、自相关计算、基音周期估计。

图1基于自相关函数的基音周期检测流程1.1带通滤波由于在某些浊音中,第一共振峰频率可能会等于或低于基音频率。

此时,如果其幅度很高,它就可能在自相关函数中产生一个峰值,而当该峰值又可以同基音频率的峰值相比拟时,从而会给基音值检测带来误差。

为了克服这个困难,最常用的方法是用一带宽为60900Hz的带通滤波器对语音信号进收稿日期:

2008-06-25作者简介:

宋建华(1978-),男,讲师,主要研究方向为语音信号处理、程控交换网理论。

05行滤波,并利用滤波后的自相关函数来进行基音估计。

将滤波器低端截止频率设为60Hz,这是因为可以抑制50Hz电源工频的干扰;高端截止频率设为900Hz既可除去大部分共振峰影响,又可以当基音最高频率为450Hz时仍能保留其一二次谐波。

1.2采样和分帧这里的“采样”是指从语音信号中选取一段样本,一般取样点数为帧长的整数倍。

短时分析将语音流分为一段一段来处理,每一段就被称为一“帧”。

分帧时需对语音信号进行加窗操作,窗口长度的选择非常重要,窗长过短会使得分析窗内没有包含足够的数据点来进行周期判断,且短时能量变化剧烈;窗长过长,短时能量是一段长时间的平均,不但不能反映语音信号基频的细节变化部分,而且使得计算量增大。

窗口长度至少要大于基音周期的两倍。

一般窗长选为120240点(8000Hz采样,15ms30ms),分帧模块主要完成将取样模块中获得的语音样值点分为若干个语音帧。

1.3短时能量分析语音信号x(n)的某帧信号的短时平均能量En的定义1为:

En=nm=n-N+1x(m)w(n-m)2

(1)

(1)式中,w(n)为窗函数,N为窗长,h(n)=w2(n),则有En=nm=n-N+1x2(m)h(n-m)=x2(n)3h(n)

(2)由式

(2)表明,短时平均能量En相当于将语音信号的平方通过一个单位冲激响应为h(n)的线性滤波器的输出。

实验统计发现,语音中浊音段的短时平均能量远远大于清音段的短时平均能量。

因此,短时平均能量En的计算给出了区分清音段与浊音段的依据,即En(浊)En(清)。

根据En由高到低的跳变可定出浊音变为清音语音的时刻,En由低向高的跳变可定出清音变为浊音语音的时刻,又由于只有浊音才有基音周期,清音的基音周期为零,这样就可判别出清浊音。

1.4自相关函数对于离散的语音数字信号x(n),它的自相关函数的定义为:

R(k)=-x(m)x(m+k)(3)如果信号是随机的周期的,则这时的定义为:

R(k)=limN12N+1Nm=-Nx(m)x(m+k)(4)上述公式表示,一个信号和延迟信号k点后的该信号本身的相似性。

自相关函数具有性质:

若信号x(n)具有周期性,那么它的自相关函数也具有周期性,并且周期与信号x(n)的周期相同。

由于清音信号不具有周期性,它的自相关函数也没有周期,R(k)会随着k的增大迅速衰减。

浊音信号具有准周期性,它的自相关函数R(k)具有与x(n)相同的周期。

自相关函数法基音检测正是利用的这一性质对语音信号进行基音检测的。

2改进后的基音周期检测及其实现通过对自相关基音检测原理的分析,考虑到检测准确度和检测速率两个方面的因素,提出了改进后算法具体实施方案,该方案共包含8个模块:

带通滤波、采样、分帧、短时能量分析、三电平削波、自相关计算、基音周期估计、后处理,流程框图如图2所示。

图2改进后基音周期检测流程如图3所示为原始语音信号“你好”(男音)的时域波形,图中低幅值部分是声道响应产生的谐振峰。

图4为带通滤波降噪后的波形,很明显,谐振峰的影响被削弱了,语音波形得到了改善,而且信号能量比较集中。

图3“你好”原始语音波形对滤波后信号采样,通过Matlab对语音“你好”的语音文件“nihao.wav”计算得知其语音长度为2.24秒,若采样频率为8000Hz,共计17920个采样点。

采样模块从采样频率为8000Hz的语音信号中截取0.5秒到1.5秒这一时间段,取了8000个样点数进行分15图4滤波降噪后的波形析。

本算法中取帧长25ms,即每帧为200个样点值,共分成15个帧。

2.1短时能量的Matlab计算求短时能量的主程序:

N=200;%窗长为200x=wavread(nihao.wav,4001!

12000);%将语音信号值赋给变量xt=x(:

1);h=hamming(N);%使用海明窗En=conv(h,t.3t);%做卷积运算求短时能量figureplot(En)grid运行该程序后得到各采样点的短时能量如图5所示。

图5语音短时能量从图5中可以看出En值大的对应于浊音,而En值小的对应于清音,由此可以大致判断浊音变为清音或清音变为浊音的时刻。

2.2三电平削波2.2.1中心削波法自相关函数估计基音周期,运算量很大,其原因是乘法运算非常费时。

然而从估计基音周期的角度看,短时自相关函数所包含的信息许多是多余的,真正能反映基音周期性的只是少数几个峰,而其余的大多数峰都是由于声道的谐振特性引起的。

为此,可以用中心削波法3来突现反映基音周期的信息,同时压缩与共无关的信息。

中心削波实质上是对语音信号作非线性处理,其形式为:

y(n)=Cx(n)=x(n)-CL,x(n)CL0,x(n)CLx(n)+CL,x(n)CL0,x(n)CL-1,x(n)-CL(6)三电平削波是一种谱平整法,即对输入的语音信号进行非线性变换。

实验表明,语音信号不削波、中心削波和三电平削波的信号波形及其自相关函数经详细比较,其性能方面只有微小的差别。

削波后的信号只有1,0,-1三种取值,之后的自相关计算把繁复的乘法运算变为简单的组合逻辑。

2.2.3削波电平的选取及其实现削波电平由语音信号的峰值幅度来确定,它等于语音段最大幅度的一个固定百分数。

这个门限的选择是重要的,由于在整个语音段的持续时间内,信号幅度可能有较大变化,因此,采用较高的削波电平可能会把一些有用的波形削去,然而削波电平太低,又达不到应用的效果。

所以在不损失基音信息的情况下应尽可能选得高些,以达到较好的效果。

在Matlab中用max函数获取该语音浊音段的波形最大幅值大为0.71,这里削波电平选为0.48。

经Matlab编程削波处理后的语音波形如图6所示。

2.3自相关计算经三电平削波后,自相关函数的计算极为简单。

25图6削波处理后的语音波形用y(n)表示削波器的输出,则短时自相关函数如式(7)所示:

R(k)=N-1-Km=0y(n+m)w(m)y(n+m+k)w(m+k)(7)实现自相关计算的程序如下:

R=zeros(1,200);%生成一零向量用于保存结果fork=1:

200;%延迟200次sum=0;form=1:

200-k;%自相关函数计算sum=sum+x(m)3x(m+k);endR(k)=sum;endfigure;plot(R)grid;该浊音段共分成15个帧,分别进行自相关函数的计算,其中第12帧,如图7上图两黑线之间部分,下图是该帧的波形。

图8是该帧自相关函数波形。

2.4基音周期估计从图8可以看出,第一个峰值的位置约出现在50的滞后点上。

因为浊音语音的自相关函数具有一定的周期性,在相隔一定的取样后,自相关函数达到最大值。

浊音语音的周期可用自相关函数中的第一个峰值的位置来估算。

实验表明,滤波处理后的信号只含有第一共振峰以下的基波和谐波分量,明显改善了检测效果。

由此估计出这段浊音的基音频率是800050=160Hz或(1160)s=6.25ms。

2.5后处理无论采用哪一种基音检测算法都可能产生基音检测的错误,使求得的基音周期轨迹中一个或几个图7第12帧波形图8第12帧自相关函数波形基音周期的估计值偏离了正常的轨迹(通常是偏离到正常值的两倍或12),并称这种偏离点为基音轨迹的“野点”。

此时为了去除这些野点5,可以采用各种平滑算法,其中最常用的是中值平滑算法和线性平滑算法。

2.5.1中值平滑处理中值平滑处理的基本原理是:

设x(n)为输入信号,y(n)为中值滤波器的输出,采用一个滑动窗,输出值就是将窗外的中心移到n处时窗口输入样点的中值,及n点的左右各取L个样点。

连同被平滑点中心共同构成一组信号采样点(共2L+1个样值),然后将这(2L+1)个样点按大小序列排成一排,此序列中中间者作为平滑器的输出。

L值一般为1或2,即中值平滑起的“窗口”一般套住3个或5个样点。

中值平滑的优点是既可以有效地除去少量的野点,又不会破坏基音周期轨迹中两个平滑段之间的阶跃性变化。

2.5.2线性平滑处理线性平滑使用滑动窗进行线性滤波处理,如式(8)所示:

35y(n)=Lm=-Lx(n-m)w(m)(8)其中,w(m),m=-L,-L+1,0,1,2,L为2L+1点平滑窗,满足式(9):

Lm=-Lw(m)=1(9)线性平滑在纠正输入信号中部平滑处样点值的同时,也使附近各点的值作了修改。

所以窗的长度加大虽然可以增加平滑的效果,但是也可能导致两个平滑段之间的阶跃模糊程度加重。

2.5.3仿真实现用程序:

P=R(2:

200);w,idx=max(P);求得k=0之后的峰值的位置,即基音周期的位置,根据前面的计算,15帧的基音周期分别为2041424238394043354248535558,然后即可得到该段语音的基音轨迹,如图9所示。

图9处理前的基音轨迹图可以很明显的看到在位置1,9,10处的基音周期点为野点,需要用平滑处理掉,本算法使用了函数y=medfilt1(x)进行中值滤波处理,滤波平滑后的基音轨迹如图10所示。

图10处理后的基音轨迹图3结束语本文表明利用改进后自相关函数法检测到的基音周期值与目测结果基本一致。

另外,采用了三电平削波方法,避免了自相关函数中繁杂的乘法运算,从而提高了程序的运行速度及准确度,本文为深入开展这方面的研究工作进行了有益的探索。

参考文献:

1韩纪庆,张磊,铁然.语音信号处理M.北京:

清华大学出版社,2004.2程佩青.数字信号处理教程M.北京:

清华大学出版社,2007.3段修生,孙世宇,王立冬.基音检测的一种时域方法J.军械工程学院学报,1998,10(3):

16-20.4马祥杰,孟相如,张百生.一种自相关基音检测算法J.通信技术,2003(5):

9-11.5赵力.语音信号处理M.北京:

机械工业出版社,2003.责任编辑:

肖滨信息天地“星光中国芯工程”取得丰硕成果日前,工业和信息化部、科技部、财政部和北京市政府在人民大会堂联合主办了“星光中国芯工程”十年成果与展望报告会。

工业和信息化部娄勤俭副部长、科技部杜占元副部长、财政部丁学东副部长、北京市苟仲文副市长、中国科协名誉主席周光召院士、国务院发展研究中心张玉台党组书记、中国科学院白春礼副院长、中国工程院潘云鹤副院长等出席会议。

报告会上宣读了中共中央政治局常委李长春同志的贺信。

据了解,“星光中国芯工程”的顺利实施是坚持自主创新、以市场为导向获得的成果,也是国家支持留学生回国创业、各级政府与企业努力促进产业发展的一次成功探索,在机制创新方面提供了有益的经验。

娄勤俭在发言中指出,加快集成电路产业发展,实现核心技术的突破,是实现信息产业由大变强的必然选择。

“星光中国芯工程”坚持自主创新,坚持以市场为导向、以企业为主体,是工业和信息化部组织实施的“中国芯”工程中的突出代表,为我国集成电路产业在核心技术产业化方面起了良好的示范作用。

目前产业的发展正面临着严峻的挑战,增强自主创新能力,是推动产业科学发展的突破口,也是应对经济形势变化、增强产业发展后劲的有效措施。

工业和信息化部作为行业主管部门,将在营造良好环境、突破核心技术、完善产业链条、开拓应用市场等方面继续加大力度支持集成电路产业的发展,促进信息化与工业化的融合。

在工业和信息化部、财政部、北京市政府的支持下,邓中翰、杨晓东等一批留美归国博士于1999年在北京中关村创办了中星微电子公司,启动并承担实施了“星光中国芯工程”。

实施十年来,该工程已取得8项核心技术突破,获得国内外专利授权480项,成功开发了两个系列的数字多媒体芯片产品并实现大批量生产,其多媒体芯片占领了全球60%的市场份额,取得良好的经济效益和社会效益,成为我国集成电路产业自主创新的成功范例。

国务院有关部委、北京市政府、天津市政府等单位的代表,企业界及中星微电子公司相关合作伙伴等约200余人出席了报告会。

45

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2