基于MATLAB的语音共振峰的估计.docx
《基于MATLAB的语音共振峰的估计.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的语音共振峰的估计.docx(11页珍藏版)》请在冰豆网上搜索。
![基于MATLAB的语音共振峰的估计.docx](https://file1.bdocx.com/fileroot1/2023-1/21/3fdc9466-1030-4b5b-80be-8361d15ee404/3fdc9466-1030-4b5b-80be-8361d15ee4041.gif)
基于MATLAB的语音共振峰的估计
毕业论文(设计)
题目:
基于MATLAB的语音共振峰的估计
英文题目:
MATLAB—BASEDESTIMATESOF
FORMANTS
院系:
电子工程学院
专业:
通信工程
姓名:
年级:
二零零六级
********
二零零九年十二月
摘要
语音是人类相互之间进行交流时使用最多最自然最基本也是最重要的信息载体在高信息化得今天,语音处理的一系列技术及其应用几经成为信息社会部可或缺的最重要组成部分。
语音编码算法利用语音信号的冗余信息及某些人耳不敏感的信息,可以在低比特率上获得较高质量的重建语音,压缩编码一直是通信中的关键技术。
语音信号研究者们一直在寻求一种在保持语音质量不显著下降的情况下使语音信号的编码比特率最小的方法,特别地,低比特率语音编码体制(比特率在4.8kb/s以下)因其广泛的需求而得到研究者的重视。
语音编码器的性能常常用比特率、延时、复杂度和质量4个属性来进行衡量,因此,在分析语音编码器的性能时,主要应该考虑这些属性。
值得注意的是,这些属性之间不是孤立的,而是相互紧密联系的,例如,低比特率的编码器一般比高比特率的编码器有更大的延时、更高的算法复杂度和较低的语音质量。
因此在对各种编码算法进行取舍时,应根据实际应用环境,在这些属性之间进行权衡。
共振峰参数编码算法在低码率的音频编码中应用越来越广泛。
与基于时域波形的压缩算法相比,他在传输的过程中只需要传输构造信号所用的基频和共振峰参数,因此可以大大地降低传输的码率,实现低码率下的多媒体通信。
而且,基于共振峰参数的算法无须严格限制信号的结构,他可以灵活地描述音频信号的特征。
这一灵活性决定了基于共振峰参数的算法,可以满足对音频信号进行方便访问和控制的需要。
关键字:
共振峰线性预测
ABSTRACT
Thehumanvoicetocommunicatewitheachotherusingthemostnaturalandthemostfundamentalandmostimportantinformationcarriersinhigh-informationthattoday,aseriesofvoiceprocessingtechnologyanditsapplicationseveraltimesintheinformationsocietyavailabletotheDepartmentorthelackofthemostimportantcomponentofthe.Speechcodingalgorithmusingspeechsignalsredundantinformationandsomepeople'searsarenotsensitiveinformation,youcangainatlowbit-ratereconstructionofahigh-qualityvoicecompressioncodinghasbeenthecommunicationofkeytechnologies.SpeechSignalresearchershavebeenlookingforawaytomaintainvoicequalityinasignificantdeclineinthecaseofvoicesignalsinthesmallestbitratecodingmethods,inparticular,thelowbitratespeechcodingsystem(bit-rateof4.8kb/sorless)becauseofitswiderangeofdemandstoberesearchersattention.
Theperformanceofspeechcodingdevicesoftenusebitrate,delay,complexityandqualityofthefourattributestomeasure,therefore,inanalyzingtheperformanceofspeechcoder,themainconsiderationshouldbegiventheseattributes.Itisnoteworthythatamongtheseattributesarenotisolated,butcloselyinterrelated,forexample,lowbitrateencoderingeneralthanhighbit-rateencodergreaterdelay,higheralgorithmcomplexityandthelowervoicequality.Therefore,variouscodingalgorithmstochooseshouldbebasedontheactualapplicationenvironment,inthetrade-offbetweentheseattributes.
Formantparametercodingalgorithmatlowbit-rateaudiocodingmoreandmorewidelyapplied.Time-domainwaveformbasedonthecompressionalgorithm,theprocessoftransmission,heneedonlytransmitthesignalstructureusedforthebasefrequencyandformantparameters,itcangreatlyreducethetransmissionrate,lowbit-ratemultimediacommunication.Moreover,thealgorithmbasedonformantparametersdonotstrictlylimitthesignalstructure,hehastheflexibilitytodescribetheaudiosignalcharacteristics.Thisflexibilitydeterminestheparametersofformant-basedalgorithms,tomeettheaudiosignaltofacilitateaccessandcontrolneeds.
KEYWORDS:
第一章语音信号处理基础
1.1语音信号处理概述
语音编码算法利用语音信号的冗余信息及某些人耳不敏感的信息,可以在低比特率上获得较高质量的重建语音,压缩编码一直是通信中的关键技术。
语音信号研究者们一直在寻求一种在保持语音质量不显著下降的情况下使语音信号的编码比特率最小的方法,特别地,低比特率语音编码体制(比特率在4.8kb/s以下)因其广泛的需求而得到研究者的重视。
语音编码器的性能常常用比特率、延时、复杂度和质量4个属性来进行衡量,因此,在分析语音编码器的性能时,主要应该考虑这些属性。
值得注意的是,这些属性之间不是孤立的,而是相互紧密联系的,例如,低比特率的编码器一般比高比特率的编码器有更大的延时、更高的算法复杂度和较低的语音质量。
因此在对各种编码算法进行取舍时,应根据实际应用环境,在这些属性之间进行权衡。
共振峰参数编码算法在低码率的音频编码中应用越来越广泛。
与基于时域波形的压缩算法相比,他在传输的过程中只需要传输构造信号所用的基频和共振峰参数,因此可以大大地降低传输的码率,实现低码率下的多媒体通信。
而且,基于共振峰参数的算法无须严格限制信号的结构,他可以灵活地描述音频信号的特征。
这一灵活性决定了基于共振峰参数的算法,可以满足对音频信号进行方便访问和控制的需要。
1.2语音信号处理的发展及应用
1.3语音与常用的语音分析方法
1.3.1语音的基本特性
1.3.2常用语音信号分析方法
1.4语音共振峰估计的现状
第二章.语音共振峰估计技术
2.1基础知识
在语音信号分析技术中,表征语音信号主要特征的是两个最基本的语音参数,即共振峰和基频。
通常,共振峰定义为声道脉冲响应的衰减正弦分量,在经典的语音信号模型中,共振峰等效为声道传输函数的复数极点对。
对平均长度约为17cm声道(男性),在3kHz范围内大致包含三个或四个共振峰,而在5kHz范围内包含四个或五个共振峰。
高于5kHz的语音信号,能量很小。
根据语音信号合成的研究表明,表示浊音信号最主要的是前三个共振峰。
一个语音信号的共振峰模型,只用前三个时变共振峰频率就可以得到可懂度很好的合成浊音。
共振峰信息包含在语音信号的频谱包络中,谱包络的峰值基本上对应与共振峰频率。
因此一切共振峰估计都是直接或间接地对频谱包络进行考察,关键是估计语音频谱包络,并认为谱包络中的最大值就是共振峰。
与基音提取,共振峰估计也是表面看很容易但实际上又为许多问题所困扰。
包括:
虚假峰值、共振峰合并、高基音语音。
语音信号共振峰估计,在语音信号合成、语音信号自动识别和低比特律语音信号传输等方面都起着重要作用。
由于实际的语音是准周期信号和实际上是短时间信号的频率分析,其频谱序列不是周期性冲激函数序列的采样,而是近似三角脉冲的采样,所以其傅里叶变换的幅度谱呈现高频衰减性质。
从图3中可以观察到频谱序列的幅度谱是周期信号和高频衰减信号的乘积。
实际语音分析过程中各时刻频谱序列的傅里叶变换后衰减幅度差异很大,低频部分有时会出现分支脉冲的幅值大于下一个周期主脉冲的幅值,这对信号周期地分辨产生一定的干扰,而无法准确估计基频值。
所以本文在确定基频时利用高频部分衰减幅度差异较小的特点,分析其周期特性并用来计算语音基频。
共振峰参数包括共振峰频率、频带宽度和幅值,共振峰信息包含在语音频谱的包络中。
因此共振峰参数提取的关键是估计语音频谱包络,并认为谱包络中的最大值就是共振峰。
利用语音频谱傅里叶变换相应的低频部分进行逆变换,就可以得到语音频谱的包络曲线。
依据频谱包络线各峰值能量的大小确定出第1~第4共振峰,如图1所示。
图1(根据频谱包络确定共振峰)
2.2语音信号的倒谱分析
语音的产生模型实际是一个激励信号与声道冲激响应的卷积。
对于浊音,激励信号可以有周期脉冲序列表示;对于清音,激励信号可以有随机噪声序列表示。
语音的倒谱是将语音的短时谱取对数后再进行IDFT得到的,所以浊音信号的周期性激励反映在倒谱上是同样周期的冲激。
借此,可从倒谱波形中估计出基周期。
一般把倒谱波形中第二个冲激,认为即是对应激励源的基频。
那如何求倒谱呢?
首先计算倒谱.然后在预期的基音周期附近寻找峰值。
如果倒谱的峰值超出了预先规定的门限,则输入峰的位置就是基音周期的良好估值.如果投有超出门限的峰值语音段定为浊音,则输入语音段定为清音,如果计算的是一个时变的倒谱,则可估计出激励源模型及基音周期随时间的变化.一般每隔10-20ms,计算倒谱一次,这是因为在一般语音中激励参数是缓慢变化的。
数作为平滑后的值。
为了更好地估计共振峰的频率,通常还要进行平滑处理。
常见的平滑处理有
线性平滑和中值平滑。
中值平滑是将相邻的几个数从大到小排列,(通常取5个或3个),取中间的线性平滑则分别对这几个数进行加权并相加,加权系数之和为1。
2.3提取共振峰的方法
2.3.1线性预测用于共共振峰估计
线性预测(LinearPrediction,LP)分析是最有效的语音分析技术之一,在语音编码,语音合成,语音识别等语音处理领域中得到了广泛的应用。
语音线性预测的基本思想是:
一个语音信号的抽样植可以用过去若干个取样值的线性组合类逼近。
通过使实际语音抽样值与线性预测抽样值的均方误差达到最小,可以确定唯一一组线性预测系数。
采用线性预测分析不仅仅能够得到语音信号的预测波形,而且能够提供一个非常好的声道。
如果将语音模型看作激励源通过一个线性时不变系统(声道)产生的输出,那么可以利用LP分析对声道参数进行估值,以少量低信息率的时变参数精确地描述语音波形及其频谱的性质。
此外,LP分析还能够对共振蜂,功率谱等语音参数进行估计,LP分析得到的参数可以作为语音识别的重要的参数之一。
2.3.1.1线性预测的基本原理
在语音信号处理中最常用的模型是全极点模型。
线性预测所包含的基本概念是,通过使实际语音抽样和线性预测抽样之间差值的平方和达到最小值,即进行最小均方误差的逼近,能够决定惟一的一组预测器系数。
如果一个随机过程用一个p阶全极点系统受白噪声激励产生的输出来模拟,设这个系统的传递函数为:
其中:
p是预测器阶数,一般取10;G是声道滤波器增益。
由此,语音抽样s(n)和激励信号e(n)之间的关系可用下列差分方程来表示:
即语音样点间有相关性,可以用过去的样点值预测未来样点值。
对于浊音,激励e(n)是以基音周期重复的单位冲激;对于清音e(n)是平稳白噪声。
在模型参数估计过程中,由于P阶线性预测是将语音信号过去的P个取样值S(n-1),S(n-2),
…,S(n-p)用线性预测系数a1-ap进行加权求和,从而预测信号的当前取样值S(n),若预测系数值s(n)来表示,则有
预测误差
式中:
ai称为线性预测系数。
我们要提取共振峰必须首先要求出其最佳预测系数ai
2.3.2倒谱法用于共振峰估计
1.倒谱与复倒谱
共振峰参数包括共振峰频率、频带宽度和幅值,共振峰信息包含在语音频谱的包络中。
因此共振峰参数提取的关键是估计语音频谱包络,并认为谱包络中的最大值就是共振峰。
复倒谱x(n)的Z变换取对数后的逆Z变换,即可表示为X(n)=Z-1[LnZ[x(n)]]
将x(n)进行Z变换后得到X(z),它包含幅度和相位信息。
那么取复对数后将得到X(z)=Ln|X(z)|+jargX(z)如果忽略了X(z)的相位信息,只是考虑其幅度信息,那么立刻可以得到倒谱c(n)的定义,c(n)的定义为x(n)Z变换后的幅度的对数的逆Z变换,即
C(n)=Z-1[ln|Z(x(n))|]=Z-1[ln|X(Z)|]
倒谱和复倒谱的特征系统D*[.]的唯一区别是倒谱的第二步运算用Ln|X(z)|代替了lnX(z),其特征系统结构见图2-1
Z[。
]
--→
Ln[|.|]
--→
Z-1[.]
--→
图2-1倒谱的特征系统结构
2.复倒谱与倒谱的计算
如果输入信号序列x(n)的Z变换X(z)的收敛域包含了单位圆在内,那么序列的傅里叶变换X(ejw)存在,复倒谱计算中的变换可以用傅里叶变换来替代。
这样,就可以用高效的FFT酸法完成相关计算。
DFT
--→
Ln[|.|]
--→
IDFT
--→
图2-2复倒谱的计算方法
如图2-2所示,若x(n)为长度N的有限序列,首先经过DFT:
k=0-N-1
然后X(K)取复对数:
X(k)=LnX(k),k=0-N-1
X(k)经过IDFT变化得到xp(n):
n=0-N-1
这里,xp(n)是x(n)以为N周期进行周期延拓后构成的序列,即
由于为无限成序列,故周期延拓后必然产生混叠失真,但由于至少是按的速度衰减,所以当取值较大的时候混叠失真并不是很明显。
如果值本身不是太大的话,可以在序列后面添加若干个零来补足所需的长度,从而增加值。
这样既可以有效的减少混叠失真,另一方面又可以使它所代表的离散时域频谱具有更佳的频率分辨率。
对于倒谱的计算与复倒谱相类似,只是在取对数的时候采用下面的式子,与复倒谱有所区别:
C(k)=Ln|X(K)|,K=0-N-1
同样,经过IDFT变换得到的Cp(n)是C(n)以N为周期进行周期延拓构成的序列:
一般来说,语音序列x(n)帧长为200左右,故N值一般可以取2n(256.512或1024)这样既具有足够高的分辨率和抗混叠能力,同时还能够使用高效的FFT算法。
3.利用倒谱的特征参数提取
我们知道只有浊音信号的倒谱中存在峰值,它的出现位置等于该语音段的基音周期。
而清音的倒谱中不存在峰值。
利用倒谱的这个特点,我们可以进行清浊音的判决,并且可以估计浊音的基音周期。
倒谱用于共振峰的估计。
对倒谱进行滤波,取出低时部分进行逆特征系统处理,我们就可以得到一个平滑的对数谱函数。
这个平滑的对数谱函数显示输入语音段的共振峰结构,同时谱的峰值对应于共振峰频率。
通过对此对数谱进行峰值估计检测,我们可以估计出前几个共振峰的频率和强度。
这样,对于浊音的声道特性,我们可以采用前三个共振峰来描述,清音不具有共振峰的特点,可以简单的用一个零点和一个极点的模型反映声道的特性,平滑对数谱中最高的峰值的位置定为极点,而零点的位置应使得低频和高频之间相对幅度得以保持。
第三章算法实现与仿真分析
3.1具体算法实现
3.2.1线性预测算法实现
3.2.2倒谱算法实现
因此,我们可以利用倒谱计算其频谱,然后估计出其共振峰的位置:
具体的程序如下:
首先我们录入一个浊音:
S,利用wavread从文件中读出次话音信息,并对其加上窗函数。
程序如下:
%'加海明窗的信号幅度谱
fs=8000;
[a,fs]=wavread('AA.wav',[16200,16600]);
t=((0:
length(a)-1)*1000)/fs;
ah=a.*hamming(length(a));
figure
(1);plot(t,ah);
xlabel('t/ms');
ylabel('加海明窗的信号幅度谱');
holdon;
%对数幅度
FFTSIZE=8000;
duishu=zeros(FFTSIZE,1);
z0=fft(ah,FFTSIZE);
duishu=20.*log10(abs(z0));
figure
(2);plot(duishu);
xlabel('f/Hz');
ylabel('对数幅度图');
holdon;
%'复倒谱幅度
z=fft(ah,400);
fln=log10(abs(z));
fdp=ifft(fln,400);
figure(3);plot((n./fs).*1000,abs(fdp));
axis([0,50,-0.1,1.6])
xlabel('t/ms');
ylabel('复倒谱幅度');
holdon;
%倒谱幅度
dln=log10(abs(z));
dp=ifft(dln,400);
figure(4);plot((n./fs).*1000,abs(dp));
axis([0,50,-0.1,1.6])
xlabel('t/ms')
ylabel('倒谱幅度图')
%倒谱低时部分
dpdishi=dp(1:
32);
figure(5);plot(abs(dpdishi));
xlabel('N');
ylabel('倒谱低时部分')
%倒谱高时部分
dpgaoshi=dp(33:
400);
figure(6);plot(abs(dpgaoshi));
xlabel('N');
ylabel('倒谱高时部分');
%复倒谱低时部分
fdpdishi=fdp(1:
32);
figure(7);plot(abs(fdpdishi));
xlabel('N');
ylabel('复倒谱低时部分');
%复倒谱高时部分
fdpgaoshi=fdp(33:
400);
figure(8);plot(abs(fdpgaoshi));
xlabel('N');
ylabel('复倒谱高时部分');
3.3仿真分析
图3-1加海明窗的信号幅度谱
图3-2倒谱幅度
分析:
由上面的仿真可以看出,当从文件中读取信号后可以得其幅度谱。
用倒谱来估计共振峰,可明显看出起共振峰的位置。
参考文献
【1】朱勇,张宝富,李玉权.码分多址光纤局域网[A].全国第八次光纤通信暨第九届集成光学学术会议论文集[C].武汉,1997
【2】朱勇,张宝富,李玉权.光正交码的有限射影几何设计方法[J].通信学报,Vol.20No.1P.28-33
【3】万谦.多用户光纤CDMA系统性能的研究[D].南京:
通信工程学院,第9期No.9September1998
【4】朱勇.采用光处理的光纤CDMA系统的实现与应用研究[D].南京:
通信工程学院,1996
【5】赵梓森.光纤通信工程(修订本)[M].北京:
人民邮电出版社,1994
【6】刘忠英.多用户光纤CDMA系统的关键技术及性能研究[D].南京:
通信工程学院,1998
【7】陈忠平.多电平数字光接收机灵敏度计算[J].光通信技术,2003Vol.24No.5P.79-84
【8】张宝富,万谦.光码分多址(OCDMA)系统误码性能研究[J].通信学报,2003Vol.24No.5P.79-84
【9】陈允,邱昆,张崇富.跳频扩时光码分多址系统误码率上限的研究[J].电子科技大学学报,2004Vol.33No.6P.743-745
【10】吉建华,范戈.MWOCDMA与WDM+OCDMA系统的性能分析.上海交通大学学报[J],2002Vol.36No.5P.690-693
【11】刘波,文忠,曾涯.MATLAB信号处理[M].2006
【12】杨祥林,光纤通信系统[M].国防工业出版社,2002
【13】李传起,基于2D-OOC的OCDMA系统的地址码结构研究[J].光子学报,2003年第1期
【14】顾婉仪,全光通信网[M].北京:
北京邮电出版社,1999
【15】陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用[M].电子工出版社,2005
【16】楼顺天,李博菡,基于MATLAB的系统分析与设计---信号处理[M].西安电子科技大学出版社,1998
【17】HabibFathallah."Passiveopticalfastfrequency-hopCDMAcommunicationssystem".JournalofLightwaveTechnology,1999Vol.17No.3P.397-405致谢