基于自相关法的语音基音周期估计
- 格式:doc
- 大小:651.50 KB
- 文档页数:11
function nmax=find_maxn(r)%maxn,为峰值最大的nzer=find(r==0); %找第一个零点如果存在jiaocha=0; %找第一近零点ii=1;while (jiaocha<=0)if(r(ii)>0 && r(ii+1)<0 && (ii+1)<length(r))jiaocha=ii;endii=ii+1;if ii==length(r) %没有找到符合要求的点jiaocha=1;endendif length(zer)>0 %检查是否存在零点if zer(1)<jiaocha %存在,则和jiaocha比较大小,用于祛除前点的对基音周期的查找带来的影响jiaocha=zer(1);endendr(1:jiaocha)=0; %祛除影响maxn=max(r); %找最大值temp=find(r==maxn);%返回第一个最大值nmax=temp(1);function jiyinzhouqi(filename,shift)%短时自相关分析%filename语音文件*.wav%zhouqi基音周期shift=10;[signal,fs]=wavread('f:/mywork/1.wav');shift=round(fs*shift); %帧移n1=fix(fs*0.97)+1; %分析起点970ms,帧长30msn2=fix(fs*1)+1;ii=1;for ii=1:(length(signal)-n1)/shift %分析次数if n2<length(signal)data=signal(n1:n2);N=n2-n1+1;R=zeros(1,N); %基音周期(n)多次分析数组for k=1:N-1for jj=1:N-kR(k)=R(k)+data(jj)*data(jj+k);endendvalue(ii)=find_maxn(R); %调用基音周期(n)分析函数n1=n1+shift; %移动帧n2=n2+shift;endend%figure(3)%plot(R);%axis([0,1000 -300 300])figure(1)stem(value);axis([0 length(value) 0 1000])len =length(value); %基音周期(n)多次分析数组长度aver=mean(value);index=find(abs((value-aver))>aver/5);value(index)=0; %去除大野点的影响len=len-length(index);for jj=1:3:len/3 %中值平滑,滑动窗口宽度3,精度为中值1/4(剔除野点)average=(value(jj)+value(jj+1)+value(jj+2))/3;for kk=1:3if abs((value(jj-1+kk))-average)>average/4value(jj-1+kk)=0; %将野点置零,同时数组长度减一len=len-1;endendendfigure(2)stem(value);axis([0 length(value) 0 max(value)])Tp=sum(value)/len/fs %求基音周期(Tp)。
语音信号的自相关基音周期检测语音信号是一种人类最基本的交流方式,它包含人声的频率、强度和时间三个方面的信息。
语音信号的自相关和基音周期是语音信号分析中的重要技术,对于语音信号分析、识别、合成等应用有着积极的作用。
一、语音信号的自相关语音信号的自相关是指语音信号的样本与样本之间的相关性。
在语音信号中,相邻的样本之间一般都具有相关性,该相关性可以通过计算信号的自相关函数获得。
自相关函数描述了语音信号在不同延迟情况下的相似程度,也就是说,自相关函数可以反映语音信号的周期特征和基音周期。
二、语音信号的基音周期检测语音信号的基音周期是指人语中相邻两个基音周期之间的时间长度。
基音周期检测是一项关键的语音信号分析技术,在音素识别、语音合成、语音编码等领域应用广泛。
基音周期检测方法主要有三种:自相关法、FFT法和LP法。
自相关法是指通过计算信号与自身在不同延迟下的相似度,判断语音信号的基音周期。
具体来说,自相关法首先将语音信号进行预加重和分帧处理,然后计算每一帧的自相关函数,最后采用模板匹配的方法找到最强的周期峰值,从而得到基音周期。
FFT法则是将分帧后的语音信号进行傅里叶变换,提取频谱信息,并通过在频域滑动一个窗口,检测周期性的能量最大值,确定基音周期数。
LP法是通过线性预测,将语音信号分解成具有不同频率的谐波分量,然后利用实验数据验证模型,得到基音周期。
总的来说,不同的基音周期检测方法有其各自的优缺点。
自相关法较为简单但在噪声环境下准确度不高,FFT法可以检测到非周期性的基音,但精度不如自相关法,LP法精度较高但计算复杂度较大。
作为一门复杂的反演问题,语音信号的自相关和基音周期检测一直是语音处理研究中的重要问题,目前的研究主要集中在解决语音信号分析和识别中的实际问题和应用,为提高语音合成、语音编码等方面的应用水平提供技术支持。
一种基于简单自相关的基音周期搜索算法王孝欣;高守玮;袁舰;余盈宽;崔徐佳【期刊名称】《工业控制计算机》【年(卷),期】2015(0)5【摘要】This paper proposes a simple autocorrelation algorithm based on the pitch search in efficient speech codec algorithm. The algorithm select the original signal by setting a threshold which makes the sample number lower 60%,lowers the com-plexity and guarantees the quality of synthetic speech.%高效语音编解码算法在各方面表现优异,但算法复杂度较高,应用到处理能力差的系统上遇到较大问题,故在保证合成语音质量的基础上减低算法预算量具有较大意义。
针对高效语音编解码算法中运算量较大的的基音周期搜索算法提出一种简单自相关算法。
该算法通过设置一个合适的门限值,对原始语音信号进行筛选,使得参与自相关运算的样本点数降低60%,从而大大降低自相关运算量,并较大程度上保证了合成语音质量。
通过对语音编解码仿真证明,应用我们的简单基音周期搜索算法,合成语音信号清晰可懂,编解码运算量大大降低。
【总页数】4页(P71-73,76)【作者】王孝欣;高守玮;袁舰;余盈宽;崔徐佳【作者单位】上海大学机电工程与自动化学院,上海 200072;上海大学机电工程与自动化学院,上海 200072;上海大学机电工程与自动化学院,上海 200072;上海大学机电工程与自动化学院,上海 200072;上海大学机电工程与自动化学院,上海 200072【正文语种】中文【相关文献】1.一种基于倒谱法的基音周期检测改进算法 [J], 张景扩;彭龑2.一种基于线性预测与自相关函数法的语音基音周期检测新算法 [J], 柏静;韦岗3.一种小波变换与自相关结合的基音周期检测法 [J], 赵知劲;吴杰4.基于Matlab的一种基音周期检测算法 [J], 宋建华;朱勇;徐军;张圣贤5.一种改进的基于小波变换的基音周期提取算法 [J], 曹清华;王亮因版权原因,仅展示原文概要,查看原文内容请购买。
语音信号处理课程实验报告专业班级通信学号姓名指导教师实验名称 用修正的短时自相关检测语音的基音周期 同组人 专业班级通信 学号 姓名 成绩 一、实验目的 1.熟悉前一个实验程序以及中心削波的意义 2.用Matlab 实现用修正的短时自相关检测语音的基音周期。
3.分析修正的短时自相关在基音周期检测中的应用。
4.能够对程序进行重新编制。
二、实验原理 如果x(n)是一个周期为P 的信号,则其自相关函数也是周期为P 的信号,且在信号周期的整数倍处,自相关函数取最大值。
语音的浊音信号具有准周期性,其自相关函数在基音周期的整数倍处取最大值。
计算两相邻最大峰值间的距离,就可以估计出基音周期。
观察浊音信号的自相关函数图,其中真正反映基音周期的只是其中少数几个峰,而其余大多数峰都是由于声道的共振特性引起的。
因此为了突出反映基音周期的信息,同时压缩其他无关信息,减小运算量,有必要对语音信号进行适当预处理后再进行自相关计算以获得基音周期。
第一种方法是先对语音信号进行低通滤波,再进行自相关计算。
因为语音信号包含十分丰富的谐波分量,基音频率的范围分布在50~500Hz 左右,即使女高音升c 调最高也不会超过1kHz ,所以采用1kHz 的低通滤波器先对语音信号进行滤波,保留基音频率;再用2kHz 采样频率进行采样;最后用2~20ms 的滞后时间计算短时自相关,帧长取10~20ms ,即可估计出基音周期。
第二种方法是先对语音信号进行中心削波处理,再进行自相关计算。
本实验采用第二种方法。
且中心削波函数如式(3-1)所示: ……………………………………装………………………………………订…………………………………………线………………………………………()()0()()L L L L L L x x x x f x x x x x x x x ->⎧⎪=-≤≤⎨⎪+<⎩一般削波电平L x 取本帧语音最大幅度的60%~70%。
华南理工大学《语音信号处理》实验报告实验名称:基音周期估计姓名:学号:班级:10级电信5班日期:2013年5 月15日1.实验目的本次试验的目的是通过matlab编程,验证课本中基音周期估计的方法,本实验采用的方法是自相关法。
2. 实验原理1、基音周期基音是发浊音时声带震动所引起的周期性,而基音周期是指声带震动频率的倒数。
基音周期是语音信号的重要的参数之一,它描述语音激励源的一个重要特征,基音周期信息在多个领域有着广泛的应用,如语音识别、说话人识别、语音分析与综合以及低码率语音编码,发音系统疾病诊断、听觉残障者的语音指导等。
因为汉语是一种有调语言,基音的变化模式称为声调,它携带着非常重要的具有辨意作用的信息,有区别意义的功能,所以,基音的提取和估计对汉语更是一个十分重要的问题。
由于人的声道的易变性及其声道持征的因人而异,而基音周期的范围又很宽,而同—个人在不同情态下发音的基音周期也不同,加之基音周期还受到单词发音音调的影响,因而基音周期的精确检测实际上是一件比较困难的事情。
基音提取的主要困难反映在:①声门激励信号并不是一个完全周期的序列,在语音的头、尾部并不具有声带振动那样的周期性,有些清音和浊音的过渡帧是很难准确地判断是周期性还是非周期性的。
②声道共振峰有时会严重影响激励信号的谐波结构,所以,从语音信号中直接取出仅和声带振动有关的激励信号的信息并不容易。
③语音信号本身是准周期性的(即音调是有变化的),而且其波形的峰值点或过零点受共振峰的结构、噪声等的影响。
④基音周期变化范围大,从老年男性的50Hz到儿童和女性的450Hz,接近三个倍频程,给基音检测带来了一定的困难。
由于这些困难,所以迄今为止尚未找到一个完善的方法可以对于各类人群(包括男、女、儿童及不向语种)、各类应用领域和各种环境条件情况下都能获得满意的检测结果。
尽管基音检测有许多困难,但因为它的重要性,基音的检测提取一直是一个研究的课题,为此提出了各种各样的基音检测算法,如自相关函数(ACF)法、峰值提取算法(PPA)、平均幅度差函数(AMDF)法、并行处理技术、倒谱法、SIFT、谱图法、小波法等等。
基于自相关函数法的语音基音周期的检测
方臻成
【期刊名称】《科学与财富》
【年(卷),期】2014(000)009
【摘要】语音的基音周期是指人说话时声带振动的周期,它是语音信号的一个重
要参数,广泛运用在语音识别、说话人识别、发音系统诊断、语言指导等多个领域。
因此,准确的提取语音信号的基音周期显得尤为重要。
本文针对基音周期检测,介绍了一种较为简单的方法---自相关函数法。
【总页数】1页(P203-203)
【作者】方臻成
【作者单位】华南理工大学电子与信息学院,广州市,510641
【正文语种】中文
【相关文献】
1.基于改进小波变换的语音基音周期检测 [J], 吴兴铨;周金治
2.一种基于线性预测与自相关函数法的语音基音周期检测新算法 [J], 柏静;韦岗
3.基于LPC的藏语语音基音周期的检测分析 [J], 马英;陈超;贾国庆
4.基于自相关函数的藏语语音基音周期检测 [J], 李积逊;余玲梅
5.基于倒谱分析法的藏语语音基音周期检测 [J], 李积逊;范武英
因版权原因,仅展示原文概要,查看原文内容请购买。
自相关函数法基音周期提取(matlab版)function nmax=find_maxn(r)%maxn,为峰值最大的nzer=find(r==0); %找第一个零点如果存在jiaocha=0; %找第一近零点ii=1;while (jiaocha<=0)if(r(ii)>0 && r(ii+1)<0 && (ii+1)<length(r))< p=""> jiaocha=ii;endii=ii+1;if ii==length(r) %没有找到符合要求的点jiaocha=1;endendif length(zer)>0 %检查是否存在零点if zer(1)endendr(1:jiaocha)=0; %祛除影响maxn=max(r); %找最大值temp=find(r==maxn);%返回第一个最大值nmax=temp(1);function jiyinzhouqi(filename,shift)%短时自相关分析%filename语音文件*.wav%zhouqi基音周期shift=10;[signal,fs]=wavread('f:/mywork/1.wav');shift=round(fs*shift); %帧移n1=fix(fs*0.97)+1; %分析起点970ms,帧长30msn2=fix(fs*1)+1;ii=1;for ii=1:(length(signal)-n1)/shift %分析次数if n2<length(signal)< p="">data=signal(n1:n2);N=n2-n1+1;R=zeros(1,N); %基音周期(n)多次分析数组for k=1:N-1for jj=1:N-kR(k)=R(k)+data(jj)*data(jj+k);endendvalue(ii)=find_maxn(R); %调用基音周期(n)分析函数n1=n1+shift; %移动帧n2=n2+shift;endend%figure(3)%plot(R);%axis([0,1000 -300 300])figure(1)stem(value);axis([0 length(value) 0 1000])len =length(value); %基音周期(n)多次分析数组长度aver=mean(value);index=find(abs((value-aver))>aver/5);value(index)=0; %去除大野点的影响len=len-length(index);for jj=1:3:len/3 %中值平滑,滑动窗口宽度3,精度为中值1/4(剔除野点)average=(value(jj)+value(jj+1)+value(jj+2))/3;for kk=1:3if abs((value(jj-1+kk))-average)>average/4value(jj-1+kk)=0; %将野点置零,同时数组长度减一len=len-1;endendendfigure(2)stem(value);axis([0 length(value) 0 max(value)])Tp=sum(value)/len/fs %求基音周期(Tp)</length(signal)<></length(r))<>。
一种语音信号基音周期时域估计算法作者:吴树兴来源:《电脑知识与技术》2019年第22期摘要:在语音识别和语音合成中,基频周期的准确估计是一项重要的语音处理环节。
自相关函数法是一种适用于低信噪比下的非常有效的基音周期估计算法,这种算法需要对信号相关后的峰值位置进行准确估计。
本文提出了一种峰值点位置判别方法,它可以对时域语音信号相关后的峰值点位置进行准确判断,从而比较准确地估计出语音信号的基频周期,并且复杂性不高,易于实现。
关键词:语音合成;基频周期;时域;自相关函数法;峰值估计中图分类号:TP247; ; ;文献标识码:A文章编号:1009-3044(2019)22-0214-03开放科学(资源服务)标识码(OSID): <E:\知网文件\电脑\电脑22-24\22\6xs201922\Image\image1_2.jpeg>A Time Domain Estimation Algorithm for Speech Signal Pitch PeriodWU Shu-xing(Beijing Information Technology College, Beijing 100015, China)Abstract: In speech recognition and speech synthesis, accurate estimation of the fundamental frequency period is an important part of speech processing. The autocorrelation function method is a very effective pitch period estimation algorithm suitable for low SNR. This algorithm needs to accurately estimate the peak position after signal correlation. In this paper, a method for judging the peak position is proposed, which can accurately judge the position of the peak point after the correlation of the time domain speech signal, so as to estimate the fundamental frequency period of the speech signal more accurately, and the complexity is not high and easy to implement.Key words: speech synthesis; fundamental frequency; period time domain; autocorrelation function method; peak estimation在語音信号处理技术中,基频周期的估计是一个非常重要的环节[1-2]。
基音周期检测——自相关函数法一、基音周期相关知识简介人在发音时,根据声带是否震动可以将语音信号分为清音跟浊音两种。
浊音又称有声语言,携带着语言中大部分的能量,浊音在时域上呈现出明显的周期性;而清音类似于白噪声,没有明显的周期性。
发浊音时,气流通过声门使声带产生张弛震荡式振动,产生准周期的激励脉冲串。
这种声带振动的频率称为基音频率,相应的周期就成为基音周期[4]。
通常,基音频率与个人声带的长短、薄厚、韧性、劲度和发音习惯等有关系,在很大程度上反应了个人的特征。
此外,基音频率还跟随着人的性别、年龄不同而有所不同。
一般来说,男性说话者的基音频率较低,大部分在70~200Hz 的范围内,而女性说话者和小孩的基音频率相对较高,在200~450Hz 之间。
基音周期的估计称谓基音检测,基音检测的最终目的是为了找出和声带振动频率完全一致或尽可能相吻合的轨迹曲线。
基因周期作为语音信号处理中描述激励源的重要参数之一,在语音合成、语音压缩编码、语音识别和说话人确认等领域都有着广泛而重要的问题,尤其对汉语更是如此。
汉语是一种有调语言,而基因周期的变化称为声调,声调对于汉语语音的理解极为重要。
因为在汉语的相互交谈中,不但要凭借不同的元音、辅音来辨别这些字词的意义,还需要从不同的声调来区别它,也就是说声调具有辨义作用;另外,汉语中存在着多音字现象,同一个字的不同的语气或不同的词义下具有不同的声调。
因此准确可靠地进行基音检测对汉语语音信号的处理显得尤为重要。
二、自相关函数法原理能量有限的语音信号}{()s n 的短时自相关函数[10][11]定义为:10()[()()][()()]N n m R s n m w m s n m w m ττττ--==++++∑(2.1)其中,τ为移位距离,()w m 是偶对称的窗函数。
短时自相关函数有以下重要性质:①如果}{()s n 是周期信号,周期是P ,则()R τ也是周期信号,且周期相同,即()()R R P ττ=+。
基于小波变换和自相关函数的基音频率检测算法0 引言基音周期(Pitch)是指发浊音时声带振动所引起的周期运动的时间间隔,而基音频率是基音周期的倒数。
由于基音周期只具有准周期性,所有只能采用短时平均方法估计该周期,这个过程也称为基音检测(Pitch De—tection)。
在对说话人确认和辨认研究中,基音频率是一个重要的参数,因此准确检测基音频率有着十分重要的意义。
到目前为止,基音检测的方法主要有短时自相关函数法、平均幅度差函数法、倒谱解卷积法、Hil—be;t—Huang变换法等。
但尚未找到一个完善的可以适用于不同语音状况和环境的基音检测算法。
近几年,小波分析理论发展迅速。
它已经被广泛地应用到信号处理中。
这里利用小波变换的滤波特性对信号进行预处理,然后利用自相关函数法检测语音的基音频率,该方法利用小波滤波特性有效剔除了高频共振峰和噪音的影响,估计基音频率准确性高,稳定性好,运算速度较快。
实验结果表明,此方法是一种有效的基音频率检测算法。
1 小波变换及其滤波特征在多分辨分析中,塔式正交分解L。
(R)空间:对ν f∈L(R),设f在Vj上的投影系数为Cj,k,在wj上的投影系数为Dj,k(j=J,J一1,…,一J),于是,f有以下分解式:在式(2)中,第一和式在小波空间中,它表示信号的细节部分(即高频部分),Dj,k就是对应于小波函数φj,k的小波系数;第二和式在尺度空间中(即低频部分),它反映了信号的本征部分,C-j,k就是对应于尺度函数φ-j,k的尺度系数。
这里语音信号使用的采样频率是11 025 Hz,因此原始语音信号频带为0~5 512.5 Hz,如图1所示,原始语音信号s2d0f占据频带为0~5 512.5 Hz,经小波滤波器组滤波后,Sd23f占据频带0~689 Hz,S争f就是需要的低频信号,因为语音基音频率变化范围从老年男性的50 Hz到儿童和女性的450 Hz,所以这部分的信号将用于估计语音的基音频率。
基于自相关函数的基音检测代码基音检测是语音信号处理中的一个关键任务,它涉及到声音的频率和时间特性。
在语音信号中,基音通常被定义为频率最低的周期性模式,其表现为声音的基础音调高低。
基于自相关函数的基音检测是一种常用的方法,通过计算语音信号的自相关函数,可以确定基音周期。
具体地,自相关函数是将原始信号延迟一定时间后和自身进行乘积和的结果。
直观地理解,延迟越长,两个信号重叠的区域就越少,乘积和也就越小,在周期性信号中,当延迟达到一个周期时,两个信号完全重叠,此时自相关函数取得最大值。
使用自相关函数进行基音检测的代码实现具有如下的步骤:1. 读取音频数据使用语音信号的处理工具库,例如MATLAB或Python,读取音频数据以进行后续的基音检测。
在读取音频数据时,需要注意采样率、位深度和声道数等参数,确保正确识别音频文件。
2. 信号预处理在自相关函数计算前,需要对信号进行预处理,以减少干扰和噪声的影响。
具体预处理方式包括高通滤波和去噪等。
3. 自相关函数计算使用公式计算自相关函数。
$R[m] = \sum_{n=1}^{N - m} x[n]x[n+m]$其中,$x[n]$是原始语音信号的采样值,$m$表示延迟时间,$N$是语音信号的采样时间。
$R[m]$则表示与原始信号的延迟时间之间的自相关值。
4. 基音周期确定基于自相关函数的基音周期确定方式是寻找自相关函数的极大值点。
因为自相关函数在周期性信号中达到最大值,因此基音周期应与最大值点的位置相对应。
具体算法如下:a. 找到自相关函数的第一个极大值点,该点被认为是周期性信号的第一个峰值。
b. 找到第一个峰值右侧的最小值,该点被认为是基音周期的一半。
c. 根据基音周期的一半,在左侧寻找一个最大值,作为基音周期。
d. 根据基音周期从长至短逐步寻找其他符合条件的峰值,确定基音的位置。
5. 基音频率计算基音频率是基音周期的倒数,通过求解频率,可以计算出基音的音高。
基音周期中两种算法常用的基音周期检测方法-自相关函数法、倒谱法、平均幅度差函数法都属于非基于事件基音检测方法,都先将语音信号分为长度一定的语音帧,然后对每一帧语音求平均基音周期,它们的优点是比较简单,主要应用于只需要平均基音周期作为参数的语音编解码,语音识别等。
自相关函数具有很好的抗噪性,但易受半频、倍频错误影响。
平均幅度差函数只需加法、减法和取绝对值等计算,算法简单;它们在无背景噪声情况下可以精确地提取的语音基音周期,但在语音环境较恶劣、信噪比较低时,检测的结果很差,难以让人满意。
2.1 基于短时自相关函数的方法能量有限的语音信号}{()s n 的短时自相关函数[10][11]定义为:10()[()()][()()]N n m R s n m w m s n m w m ττττ--==++++∑ (2.1)其中,τ为移位距离,()w m 是偶对称的窗函数。
短时自相关函数有以下重要性质:①如果}{()s n 是周期信号,周期是P ,则()R τ也是周期信号,且周期相同,即()()R R P ττ=+。
②当τ=0时,自相关函数具有最大值;当0,,2,3P P P τ=+++…处周期信号的自相关函数达到极大值。
③自相关函数是偶函数,即()()R R ττ=-。
短时自相关函数法基音检测的主要原理是利用短时自相关函数的第二条性质,通过比较原始信号和它移位后的信号之间的类似性来确定基音周期,如果移位距离等于基音周期,那么,两个信号具有最大类似性。
在实际采用短时自相关函数法进行基音检测时,使用一个窗函数,窗不动,语音信号移动,这是经典的短时自相关函数法。
窗口长度N 的选择至少要大于基音周期的两倍,N 越大,短时自相关函数波形的细节就越清楚,更有利于基音检测,但计算量较大,近年来由于高速数字信号处理器(DSP )的使用,从而使得这一算法简单有效,而不再采用结构复杂的快速傅里叶变换法、递归计算法等;N越小,误差越大,但计算量较小。
综合实验报告
自相关法及其变种
学院电子与信息学院专业信息与信号处理学生姓名
学生学号
提交日期2013年7月10日
一、实验目标
1.1 了解语音基音周期估计方法,掌握自相关法估计基音周期的原理,分析其变种。
二、实验基础知识
2.1 基音与基音周期估计
人在发音时,根据声带是否震动可以将语音信号分为清音跟浊音两种。
浊音又称有声语言,携带者语言中大部分的能量,浊音在时域上呈现出明显的周期性;而清音类似于白噪声,没有明显的周期性。
发浊音时,气流通过声门使声带产生张弛震荡式振动,产生准周期的激励脉冲串。
这种声带振动的频率称为基音频率,相应的周期就成为基音周期。
基音周期的估计称谓基音检测,基音检测的最终目的是为了找出和声带振动频率完全一致或尽可能相吻合的轨迹曲线。
基因周期作为语音信号处理中描述激励源的重要参数之一,在语音合成、语音压缩编码、语音识别和说话人确认等领域都有着广泛而重要的问题,尤其对汉语更是如此。
汉语是一种有调语言,而基因周期的变化称为声调,声调对于汉语语音的理解极为重要。
因为在汉语的相互交谈中,不但要凭借不同的元音、辅音来辨别这些字词的意义,还需要从不同的声调来区别它,也就是说声调具有辨义作用;另外,汉语中存在着多音字现象,同一个字的不同的语气或不同的词义下具有不同的声调。
因此准确可靠地进行基音检测对汉语语音信号的处理显得尤为重要。
2.2 基音周期估计的现有方法
到目前为止,基音检测的方法大致上可以分为三类:
1)时域估计法,直接由语音波形来估计基音周期,常见的有:自相关法、并行处理法、平均幅度差法、数据减少法等;
2)变换法,它是一种将语音信号变换到频域或者时域来估计基音周期的方法,首先利用同态分析方法将声道的影响消除,得到属于激励部分的信息,然后求取基音周期,最常用的就是倒谱法,这种方法的缺点就是算法比较复杂,但是基音估计的效果却很好;
3)混合法,先提取信号声道模型参数,然后利用它对信号进行滤波,得到音源序列,最后再利用自相关法或者平均幅度差法求得基因音周期。
三、实验原理
3.1 自相关函数
能量有限的语音信号x(n)的短时自相关函数定义为:
此公式表示一个信号和延迟m 点后该信号本身的相似性。
如果信号x(n)具有周期性,
那么它的自相关函数也具有周期性,而且周期与信号x(n)的周期性相同。
自相关函数提供了一种获取周期信号周期的方法。
在周期信号周期的整数倍上,它的自相关函数可以达到最大值,因此可以不考虑起始时间,而从自相关函数的第一个最大值的位置估计出信号的基音周期,这使自相关函数成为信号基音周期估计的一种工具。
3.2 短时自相关函数法
语音信号是非稳态信号它的特征是随时间变化的,但在一个很短的时间段内可以认为具
有相对稳定的特征即 短时平稳性。
因此语音具有短时自相关性。
这个时间段约5ms-50ms 。
为其统计特性和频谱特性都是对短时段而言的。
这使得要对语音信号作数字处理必须先按短时段对语音信号分帧。
这样每一帧信号都具有短时平稳性从而进行短时相关分析。
能量有限的语音信号s(n)的短时自相关函数定义为:
()()()
n n R m x n x n m =+∞=-∞=+∑10()[()()][()()]N n m R s n m w m s n m w m τ
τττ--==
++++∑
一般要求一帧至少包含2个以上的周期。
而且相邻帧之间要有足够的重叠。
3.3 自相关方法变种
3.3.1 中心削波
由于语音信号与声道特性影响有关,有的情况下即使窗长已选得足够长,第一最大峰值点与基音仍不一致,这就是声道特性的共振峰特性造成的“干扰”。
实际上影响从自相关函数中正确提取基音周期的最主要的因素就是声道响应部分。
当基音的周期性和共振峰的周期性混叠在一起时,被检测出来的峰值就会偏离原来峰值的真实位置。
另外,某些浊音中,第一共振峰频率可能会等于或低于基音频率。
此时,如果其幅度很高,它就可能在自相关函数中产生一个峰值,而该峰值又可以同基音频率的峰值相比拟,从而给基音检测带来误差。
为了提高基音周期检测的可靠性,采用中心削波法对原始信号进行预处理。
其中削波电平C L 一般取最大信号幅度的60%~70%。
图1给出了中心削波处理后的结果。
中心削波后,再用自相关检测出基音频率,错判为倍频或分频的情况就可以大大减少了。
中心削波法实质上是对信号做非线性处理,它消除语音信号的低幅值部分,而保留高振幅的峰值,从而能有利于信号的基音周期估计。
图1 中心削波处理
经过中心削波后的信号,削去了大部分与声道响应有关的波动,只保留了超过削波电平的部分。
对中心削波后的语音信号计算自相关函数,这样在基音周期位置呈现大而尖的峰值,而其余的次要峰值幅度都很小。
3.3.2 三电平削波
由自相关函数表达式可知,自相关需要大量的乘法运算,算法的运行效率低。
结合自相关函数法和中心削波法对信号做基音周期估计,并在不影响基音周期估计准确性的前提下,用两个信号的互相关序列代替自相关序列而避免了大量的乘法运算,有效地提高了算法的运行效率。
图2 显示的是经过三电平削波后的信号。
原始输入的语音信号经过三电平削波后的信号
图2 经过三电平削波后的信号
显然x(n)只有-1,0,1 三种可能的取值。
自相关中的乘法运算都变成了加减运算,使得算法的效率得到大幅度的提高。
3.3.3 基于时域自相关平方函数
第一峰值点的位置非常重要,峰值越尖锐则确定的位置就越准确。
求短时自相关函数的平方:
它们周期一致,但平方后在峰值处波形尖锐尤为明显。
图3示为某女性发元音[a]的波形/短时自相关函数及短时自相关平方函数波形.
图3 某女性发元音[a]的波形/短时自相关函数及短时自相关平方函数波形
3.4 短时能量分析
语音信号{x(n)}的某帧信号的短时平均能量En的定义为:
式中,w(n)为窗函数,N为窗长,h(n)= w2(n),则有
根据E由高到低的跳变可定出浊音变为清音语音的时刻,E由低向高的跳变可定出清音变为
浊音语音的时刻,又由于只有浊音才有基音周期,清音的基音周期为零,这样就可判别出清、浊音。
图4 男声“确定”的语音波形及其局部短时能量
四、结果与分析
检测流程如下:我们先通过Matlab实现,然后再通过C++实现。
图5 基于自相关函数的基因周期检测流程
实验采用一段男声读“播放”两个字的声音wav文件,其为16KHz采样率,16bit量化。
整段语音长656.7ms,节点共10508个。
图6 男声读“播放”两个字的声音文件
4.1 滤波
将滤波器低端截止频率设为60Hz,这是因为可以抑制50Hz电源工频的干扰;高端截止频率设为900Hz既可除去大部分共振峰影响,又可以当基音最高频率为450Hz时仍能保留其一二次谐波。
图7 经过滤波器后的语音信号
4.2 不同帧长
窗口长度至少要大于基音周期的两倍。
一般,基频最低50Hz,故周期最长为20ms,再根据采样率确定帧长。
图8 截取不同帧长的语音信号
4.3 清浊音区分
这里我们通过计算短时能量来区分清浊音,结果如图9所示。
图9 清、浊音短时能量图
4.4 平滑
去除野点。
图10 平滑后的结果
五、总结
.
通过本次课程实验设计,我们从中学习了语音信号处理的一些基本知识,了解了基音周期的相关概念和现有的基因周期估计方法,重点掌握了自相关法估计基音周期的原理以及其变种。
尤其是在基因周期估计后,利用平滑处理的方法对实验结果中存在的“野点”进行处理,是在以后的学习中应特别注意的地方。
本次实验设计得益于贺老师课堂耐心细致的授课辅导和助理师兄何伟俊的悉心帮助以及邹晓艺同学的热心帮助,在此表示特别感谢!
--。