语音信号的自相关基音周期检测
- 格式:pdf
- 大小:272.08 KB
- 文档页数:4
语音信号的自相关基音周期检测语音信号是一种人类最基本的交流方式,它包含人声的频率、强度和时间三个方面的信息。
语音信号的自相关和基音周期是语音信号分析中的重要技术,对于语音信号分析、识别、合成等应用有着积极的作用。
一、语音信号的自相关语音信号的自相关是指语音信号的样本与样本之间的相关性。
在语音信号中,相邻的样本之间一般都具有相关性,该相关性可以通过计算信号的自相关函数获得。
自相关函数描述了语音信号在不同延迟情况下的相似程度,也就是说,自相关函数可以反映语音信号的周期特征和基音周期。
二、语音信号的基音周期检测语音信号的基音周期是指人语中相邻两个基音周期之间的时间长度。
基音周期检测是一项关键的语音信号分析技术,在音素识别、语音合成、语音编码等领域应用广泛。
基音周期检测方法主要有三种:自相关法、FFT法和LP法。
自相关法是指通过计算信号与自身在不同延迟下的相似度,判断语音信号的基音周期。
具体来说,自相关法首先将语音信号进行预加重和分帧处理,然后计算每一帧的自相关函数,最后采用模板匹配的方法找到最强的周期峰值,从而得到基音周期。
FFT法则是将分帧后的语音信号进行傅里叶变换,提取频谱信息,并通过在频域滑动一个窗口,检测周期性的能量最大值,确定基音周期数。
LP法是通过线性预测,将语音信号分解成具有不同频率的谐波分量,然后利用实验数据验证模型,得到基音周期。
总的来说,不同的基音周期检测方法有其各自的优缺点。
自相关法较为简单但在噪声环境下准确度不高,FFT法可以检测到非周期性的基音,但精度不如自相关法,LP法精度较高但计算复杂度较大。
作为一门复杂的反演问题,语音信号的自相关和基音周期检测一直是语音处理研究中的重要问题,目前的研究主要集中在解决语音信号分析和识别中的实际问题和应用,为提高语音合成、语音编码等方面的应用水平提供技术支持。
Matlab在基音周期检测教学中的应用研究
基音周期检测是语音信号处理中的一个重要任务,它用于测量和分析语音信号的基频,也被称为基音周期或基频周期。
在不同的语音处理应用中都需要对语音信号进行基音周期
检测,例如语音合成、声音识别以及语音增强等。
首先是基于自相关函数的方法。
自相关函数是指语音信号自身与自身经过不同时间延
迟的信号之间的相关性。
通过计算自相关函数的峰值位置和间隔,可以获得语音信号的基
音周期。
在Matlab中,可以使用xcorr函数计算自相关函数,然后通过寻找峰值来确定基音周期。
另外还有一些更高级的基音周期检测算法,例如利用神经网络、隐马尔可夫模型等方
法进行基音周期检测。
在Matlab中,可以使用Neural Network Toolbox和Hidden Markov Model Toolbox等工具箱来实现这些算法。
除了基音周期检测算法,Matlab还提供了许多其他的语音信号处理工具,例如滤波器设计、频谱分析、语音合成等,这些功能都可以与基音周期检测结合使用,以实现更复杂
的语音处理任务。
Matlab在基音周期检测教学中的应用研究非常广泛。
通过使用Matlab提供的工具箱
和函数,可以方便地实现不同的基音周期检测算法,并应用于语音处理的各个领域。
语音信号处理课程实验报告专业班级通信学号姓名指导教师实验名称 用修正的短时自相关检测语音的基音周期 同组人 专业班级通信 学号 姓名 成绩 一、实验目的 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、谱图法、小波法等等。
Matlab在基音周期检测教学中的应用研究摘要:目前,基音周期检测是语音信号处理中的一个重要研究方向。
在基音周期检测教学中,基音周期的准确检测和测量对于语音分析和合成至关重要。
本文研究了Matlab在基音周期检测教学中的应用,通过分析语音信号的基频轮廓,探讨了基音周期检测算法的原理和方法,以及基于Matlab的应用实例。
实验结果表明,Matlab在基音周期检测的教学中具有较好的效果和实用价值,有助于学生深入理解和掌握基音周期检测的原理和方法。
关键词:Matlab;基音周期检测;教学;语音信号分析一、引言基音周期检测是语音信号处理中的一个重要研究方向,其主要任务是准确检测和测量语音信号中每个基频周期的起始位置和长度。
基音周期检测的准确性对于语音分析和合成至关重要,因为基音周期特征可以用于声码器的参数估计和语音合成。
目前,基音周期检测技术已经成熟,存在的问题主要是在复杂语音环境中基音周期检测的稳定性和准确性。
在基音周期检测的教学中,如何向学生直观地解释基音周期检测算法的原理和方法,有助于学生理解和掌握基音周期检测的技术。
Matlab是一种强大的数值计算和工程仿真软件,对于语音信号处理有着广泛的应用。
在基音周期检测教学中,Matlab可以方便地实现基音周期检测算法,分析和重构语音信号的基频轮廓,提取基音周期特征。
基音周期检测算法的原理和方法主要包括自相关法、互相关法和基频追踪法。
通过Matlab,可以直观地展示基音周期检测算法的计算流程和实现步骤。
通过Matlab的自相关函数xcorr,可以计算语音信号的自相关函数,进而实现自相关法的基音周期检测算法。
Matlab还提供了一系列的工具箱和函数,如数字信号处理工具箱和声音处理工具箱,可以方便地应用于基音周期检测算法的实现和分析。
基于Matlab的应用实例可以帮助学生深入理解和掌握基音周期检测算法。
学生可以通过Matlab实现基音周期检测算法,并对不同语音信号进行测试和比较。
function nmax=find_maxn(r)%寻找峰值最大的n值及基音周期%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-1 %求自相关序列for 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)。
基音检测技术及其在语音信号处理中的应用研究摘要:本文先对自相关函数法、平均幅度差函数法、倒谱法、小波变换法这四种经典的基音检测方法的原理进行分析;然后用MATLAB软件完成了基于短时自相关函数法、倒谱法的基音检测。
通过实验可知,这两种方法针对实验室环境下的一帧语音信号比较准确,但在噪声环境下不够理想。
为了克服这两种方法的不足,本文对它们均做了改进,对于短时自相关函数法增加了预处理,使得基音轨迹曲线更加明显。
在对基音检测的倒谱法进行分析时,提出了一种功率谱二次处理的二次谱基音检测方法,该方法克服了倒谱法基音检测的抗噪能力低的弱点,基音轨迹曲线估计的准确性也得到了改善。
关键词:基音检测;短时能量;自相关函数;倒谱函数;预处理;基音轨迹Abstract:Four typical pitch detection methods are analyzed firstly, i.e, autocorrelation function, average magnitude difference function, cepstrum, and wavelet transform. The pitch detection based on short time energy autocorrelation function and cepstrum functions are implemented with MATLAB. The experimental results show that both methods work well for the speech in the lab. But for the noised signal, the detection performance is not so good. In order to overcome these shortcomings,some improvements are presented in this article .For the short time autocorrelation, there introduce the pro-processing operations ,as a result ,the accuracy of the estimated pitch contour is improved. The cepstrum method of speech pitch detection is analyzed carefully,and also propose a secondary processing power spectrum of secondary spectrum pitch detection methods. It used the power spectrum reprocessing results of speech to extract the pitch contour. The presented method not only overcame the shortcomings of cepstrum method, but also improved the accuracy of the estimated pitch contour.Keywords:pitch detection;short time energy;autocorrelation function;cepstrum function;pro-processing;pitch contour前言基音是指发浊音时声带振动所引起的周期性,而声带振动频率的倒数就是基音周期。
基音周期检测——自相关函数法一、基音周期相关知识简介人在发音时,根据声带是否震动可以将语音信号分为清音跟浊音两种。
浊音又称有声语言,携带着语言中大部分的能量,浊音在时域上呈现出明显的周期性;而清音类似于白噪声,没有明显的周期性。
发浊音时,气流通过声门使声带产生张弛震荡式振动,产生准周期的激励脉冲串。
这种声带振动的频率称为基音频率,相应的周期就成为基音周期[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 ττ=+。
常用的基音周期检测的方法有哪些?它们的基本原理是什么?自相关法、平均幅度差函数法、并行处理法、倒谱法、简化逆滤波法自相关法的基本原理是浊音信号的自相关函数在基音周期的整数倍位置上出现峰值;而清音的自相关函数没有明显的峰值出现。
因此检测是否有峰值就可判断是清音或浊音,检测峰值的位置就可提取基音周期值。
平均幅度差函数法的基本原理是对周期性的浊音语音,Fn(k)呈现与浊音语音周期相一致的周期特性,Fn(k)在周期的各个整数倍点上具有谷值特性,因而通过Fn(k)的计算可以来确定基音周期。
而对于清音语音信号,Fn(k)却没有这种周期特性。
利用Fn(k)的这种特性,可以判定一段语音是浊音还是清音,并估计出浊音语音的基音周期。
倒谱(CEP)法利用语音信号的倒频谱特征,检测出表征声门激励周期的基音信息。
采取简单的倒滤波方法可以分离并恢复出声门脉冲激励和声道响应,根据声门脉冲激励及其倒谱的特征可以求出基音周期。
简述时域分析的技术(最少三项)及其在基因检测中的应用。
短时能量及短时平均幅度分析、短时过零率分析、短时相关分析、短时平均幅度差函数基音检测中的应用:基音检测的提取。
二、名词解释(每题3分,共15分)端点检测:就从包含语音的一段信号中,准确的确定语音的起始点和终止点,区分语音信号和非语音信号。
共振峰:当准周期脉冲激励进入声道时会引起共振特性,产生一组共振频率,称为共振峰频率或简称共振峰。
语谱图:是一种三维频谱,它是表示语音频谱随时间变化的图形,其纵轴为频率,横轴为时间,任一给定的频率成分在给定时刻的强弱用相应点的灰度或色调的浓淡来表示。
码本设计:就是从大量信号样本中训练出好的码本,从实际效果出发寻找好的失真测度定义公示,用最少的搜素和计算失真的运算量。
语音增强:语音质量的改善和提高,目的去掉语音信号中的噪声和干扰,改善它的质量。
基于自相关函数的基音检测代码基音检测是语音信号处理中的一个关键任务,它涉及到声音的频率和时间特性。
在语音信号中,基音通常被定义为频率最低的周期性模式,其表现为声音的基础音调高低。
基于自相关函数的基音检测是一种常用的方法,通过计算语音信号的自相关函数,可以确定基音周期。
具体地,自相关函数是将原始信号延迟一定时间后和自身进行乘积和的结果。
直观地理解,延迟越长,两个信号重叠的区域就越少,乘积和也就越小,在周期性信号中,当延迟达到一个周期时,两个信号完全重叠,此时自相关函数取得最大值。
使用自相关函数进行基音检测的代码实现具有如下的步骤: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越小,误差越大,但计算量较小。