基于MATLAB的语音信号时域特征分析(
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MATLAB 的语音信号时域特征分析
研究背景及意义:
语音信号是一种非平稳的时变信号,它携带着各种信息。
在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。
语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。
语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量,短时平均过零率, 短视自相关函数。
短时自相关函数
自相关函数用于衡量信号自身时间波形的相似性。
清音和浊音的发声机理不同,因而在波形上也存在着较大的差异。
浊音的时间波形呈现出一定的周期性,波形之间相似性较好;清音的时间波形呈现出随机噪声的特性,样点间的相似性较差。
因此,我们用短时自相关函数来测定语音的相似特性。
短时自相关函数定义为:
()()()()()
n m R k x m w n m x m k w n m k ∞
=-∞
=
-+--∑
令'm n m =+´
,并且'
()()w m w m -=,可以得到:
1'
'
'
'
()[()()][()()][()()][()()]
N k n m m R k x n m w m x n m k w m k x n m w m x n m k w m k ∞
--=-∞
==
++++=++++∑∑ 图1给出了清音的短时自相关函数波形,图7给出了不同矩形窗长条件下(窗长分别为N=70,N=140,N=210,N=280)浊音的短时自相关函数波形。
由图1.1、图1.2短时自相关函数波形分析可知:清音接近于随机噪声,清音的短时自相关函数不具有周期性,也没有明显突起的峰值,且随着延时k 的增大迅速减小;浊音是周期信号,浊音的短时自相关函数呈现明显的周期性,自相关函数的周期就是浊音信号的周期,根据这个性质可以判断一个语音信号是清音还是浊音,还可以判断浊音的基音周期。
浊音语音的周期可用自相关函数中第一个峰值的位置来估算。
所以在语音信号处理中,自相关函数常用来作以下两种语音信号特征的估计:
1)区分语音是清音还是浊音;2)估计浊音语音信号的基音周期。
延时k
R (k )
图1.2 清音的短时自相关函数
延时k
R (k )
延时k
R (k )
延时k
R (k )
延时k
R (k )
图1.2 不同矩形窗长条件下的浊音的短时自相关函数
短时平均过零率
过零率可以反映信号的频谱特性。
当离散时间信号相邻两个样点的正负号相异时,我们称之为“过零”,即此时信号的时间波形穿过了零电平的横轴。
统计单位时间内样点值改变符号的次数具可以得到平均过零率。
定义短时平均过零率:
sgn[[]sgn[(1)]()
n m Z x m x m w n m ∞
=-∞
=
---∑
其中sgn[]为符号函数,{1,()0
1,()0
sgn ()x n x n x n ≥-=,在矩形窗
条件下,可以简化为
1
1
sgn[()sgn[(1)]
2n
n m n N Z x m x m N
=-+=
--∑
短时过零率可以粗略估计语音的频谱特性。
由语音的产生模型可知,发浊音时,声带振动,尽管声道有多个共振峰,但由于声门波引起了频谱的高频衰落,因此浊音能量集中于
3KZ 以下。
而清音由于声带不振动,声道的某些部位阻塞气流产生类白噪声,多数能量集中在较高频率上。
高频率对应着高过零率,低频率对应着低过零率,那么过零率与语音的清浊音就存在着对应关系。
.
图2为某一语音在矩形窗条件下求得的短时能量和短时平均过零率。
分析可知:清音的短时能量较低,过零率高,浊音的短时能量较高,过零率低。
清音的过零率为0.5左右,浊音的过零率为0.1左右,两但者分布之间有相互交叠的区域,所以单纯依赖于平均过零率来准确判断清浊音是不可能的,在实际应用中往往是采用语音的多个特征参数进行综合判决。
短时平均过零率的应用:1)区别清音和浊音。
例如,清音的过零率高,浊音的过零率低。
此外,清音和浊音的两种过零分布都与高斯分布曲线比较吻合。
2)从背景噪声中找出语音信号。
语音处理领域中的一个基本问题是,如何将一串连续的语音信号进行适当的分割,以确定每个单词语音的信号,亦即找出每个单词的开始和终止位置。
3)在孤立词的语音识别中,可利用能量和过零作为有话无话的鉴别。
02000400060008000
1000012000140001600018000
sample
采样幅度
sample
短时能量
sample
短时平均过零率
图2矩形窗条件下的短时平均过零率 时域分析方法的应用
1)基音频率的估计
首先可利用时域分析(短时能量、短时过零率、短时自相关)方法的某一个特征或某几
个特征的结合,判定某一语音有效的清音和浊音段;其次,针对浊音段,可直接利用短时自相关函数估计基音频率,其方法是:估算浊音段第一最大峰的位置,再利用抽样率计算基音频率,举例来说,若某一语音浊音段的第一最大峰值约为35个抽样点,设抽样频率为11.025KHZ,则基音频率为11025/35=315 HZ。
但是,实际上第一最大峰值位置有时并不一定与基音周期吻合。
一方面与窗长有关,另一方面还与声道特性有关。
鉴于此,可采用三电平削波法先进行预处理。
2)语音端点的检测与估计
可利用时域分析(短时能量、短时过零率、短时自相关)方法的某一个特征或某几个特征的结合,判定某一语音信号的端点,尤其在有噪声干扰时,如何准确检测语音信号的端点,这在语音处理中是富有挑战性的一个课题。
参考文献:
陈怀琛.数字信号处理教程[M].北京:电子工业出版社,2004.
程佩青.数字信号处理教程(第二版)[M].北京:清华大学出版社,2001.
韩纪庆,张磊,郑铁然.语音信号处理[M].北京:清华大学出版社,2004.
易克初,田斌,付强.语音信号处理[M].北京:国防工业出版社,2000.
周辉,董正宏.数字信号处理基础及MATLAB实现[M].北京:北京希望电子出版社,2006.
赵力.语音信号处理[M].北京机械工业出版社,1985.
短时平均过零率
a=wavread('beifeng.wav');
n=length(a);
N=320;
subplot(3,1,1),plot(a);
h=linspace(1,1,N); 均分响亮
En=conv(h,a.*a); %求卷积得其短时能量函数En
subplot(3,1,2),plot(En);
for i=1:n-1
if a(i)>=0
b(i)= 1;
else
b(i) = -1;
end
if a(i+1)>=0
b(i+1)=1;
else
b(i+1)= -1;
end
w(i)=abs(b(i+1)-b(i)); %求出每相邻两点符号的差值的绝对值
end
k=1;
while (k+N-1)<n
Zm(k)=0;
for i=0:N-1;
Zm(k)=Zm(k)+w(k+i);
end
j=j+1;
k=k+N/2; %每次移动半个窗
end
for w=1:j
Q(w)=Zm(160*(w-1)+1)/(2*N); %短时平均过零率
end
subplot(3,1,3),plot(Q),grid;
加矩形窗
a=wavread('beifeng.wav');
subplot(6,1,1),plot(a);
N=32;
for i=2:6
h=linspace(1,1,2.^(i-2)*N) %形成一个矩形窗,长度为2.^(i-2)*N En=conv(h,a.*a);% 求短时能量函数En
subplot(6,1,i),plot(En);
if(i==2) legend('N=32');
elseif(i==3) legend('N=64');
elseif(i==4) legend('N=128');
elseif(i==5) legend('N=256');
elseif(i==6) legend('N=512');
end
end
自相关函数
N=240
Y=WAVREAD('beifeng.wav');
x=Y(13271:13510);
x=x.*rectwin(240);
R=zeros(1,240);
for k=1:240
for n=1:240-k
R(k)=R(k)+x(n)*x(n+k);
end
end
j=1:240;
plot(j,R);
grid;。