语音信号处理课程设计资料上传分析.docx
《语音信号处理课程设计资料上传分析.docx》由会员分享,可在线阅读,更多相关《语音信号处理课程设计资料上传分析.docx(27页珍藏版)》请在冰豆网上搜索。
语音信号处理课程设计资料上传分析
讲义
课程设计目的:
深入了解专业课程知识的应用,加强实践训练
内容简介:
步骤:
查阅资料,了解相关基本理论知识
运行调试程序,实现设计要求,并理解程序运行结果
撰写课程设计报告
基于MATLAB的语音信号时域、频域特征分析
语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。
同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。
语音信号处理是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。
虽然从事这一领域研究的人员主要来自信号与信息处理及计算机应用等学科,但是它与语音学、语言学、声学、认知科学、生理学、心理学等许多学科也有非常密切的联系。
课程设计内容内容概述:
1、基于MATLAB的语音信号时域特征分析
通过学习、资料查阅,自己设计程序,给出某一语音信号的短时过零率、短时能量、短时自相关特征的分析结果,并分析语音信号的基音周期。
2、基于MATLAB的语音信号频域特征分析
通过学习、资料查阅,自己设计程序,给出某一语音信号的短时谱、倒谱、语谱图的分析结果,并语音信号的基音周期或共振峰。
3、基于MATLAB的语音信号的LPC分析
通过学习、资料查阅,自己设计程序,给出某一语音信号的LPC分析结果,并分析语音信号的基音周期和共振峰。
-----------------------------------------------------------------------------
1、基于MATLAB的语音信号时域特征分析
一、目的
语音信号是一种非平稳的时变信号,它携带着各种信息。
在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。
语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。
语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。
本设计内容要求掌握时域特征分析原理,并利用已学知识,编写程序求解语音信号的短时过零率、短时能量、短时自相关特征,分析结果,并能掌握借助时域分析方法所求得的参数分析语音信号的基音周期及共振峰。
二、原理
1.窗口的选择
通过对发声机理的认识,语音信号可以认为是短时平稳的。
在5~50ms的范围内,语音频谱特性和一些物理特性参数基本保持不变。
我们将每个短时的语音称为一个分析帧。
一般帧长取10~30ms。
我们采用一个长度有限的窗函数来截取语音信号形成分析帧。
通常会采用矩形窗和汉明窗。
图1.1给出了这两种窗函数在帧长N=50时的时域波形。
图1.1矩形窗和Hamming窗的时域波形
矩形窗的定义:
一个N点的矩形窗函数定义为如下
hamming窗的定义:
一个N点的hamming窗函数定义为如下
这两种窗函数都有低通特性,通过分析这两种窗的频率响应幅度特性可以发现(如图1.2):
矩形窗的主瓣宽度小(4*pi/N),具有较高的频率分辨率,旁瓣峰值大(-13.3dB),会导致泄漏现象;汉明窗的主瓣宽8*pi/N,旁瓣峰值低(-42.7dB),可以有效的克服泄漏现象,具有更平滑的低通特性。
因此在语音频谱分析时常使用汉明窗,在计算短时能量和平均幅度时通常用矩形窗。
表1.1对比了这两种窗函数的主瓣宽度和旁瓣峰值。
图1.2矩形窗和Hamming窗的频率响应
表1.1矩形窗和hamming窗的主瓣宽度和旁瓣峰值
窗函数
主瓣宽度
旁瓣峰值
矩形窗
4*pi/N
13.3dB
hamming
8*pi/N
42.7dB
2.短时能量
由于语音信号的能量随时间变化,清音和浊音之间的能量差别相当显著。
因此对语音的短时能量进行分析,可以描述语音的这种特征变化情况。
定义短时能量为:
,其中N为窗长
特殊地,当采用矩形窗时,可简化为:
图1.3和图1.4给出了不同矩形窗和hamming窗长的短时能量函数,我们发现:
在用短时能量反映语音信号的幅度变化时,不同的窗函数以及相应窗的长短均有影响。
hamming窗的效果比矩形窗略好。
但是,窗的长短影响起决定性作用。
窗过大(N很大),等效于很窄的低通滤波器,不能反映幅度En的变化;窗过小(N很小),短时能量随时间急剧变化,不能得到平滑的能量函数。
在11.025kHz左右的采样频率下,N选为100~200比较合适。
短时能量函数的应用:
1)可用于区分清音段与浊音段。
En值大对应于浊音段,En值小对应于清音段。
2)可用于区分浊音变为清音或清音变为浊音的时间(根据En值的变化趋势)。
3)对高信噪比的语音信号,也可以用来区分有无语音(语音信号的开始点或终止点)。
无信号(或仅有噪声能量)时,En值很小,有语音信号时,能量显著增大。
图1.3不同矩形窗长的短时能量函数图1.4不同hamming窗长的短时能量函数
3.短时平均过零率
过零率可以反映信号的频谱特性。
当离散时间信号相邻两个样点的正负号相异时,我们称之为“过零”,即此时信号的时间波形穿过了零电平的横轴。
统计单位时间内样点值改变符号的次数具可以得到平均过零率。
定义短时平均过零率:
其中
为符号函数,
,在矩形窗条件下,可以简化为:
短时过零率可以粗略估计语音的频谱特性。
由语音的产生模型可知,发浊音时,声带振动,尽管声道有多个共振峰,但由于声门波引起了频谱的高频衰落,因此浊音能量集中于3KZ以下。
而清音由于声带不振动,声道的某些部位阻塞气流产生类白噪声,多数能量集中在较高频率上。
高频率对应着高过零率,低频率对应着低过零率,那么过零率与语音的清浊音就存在着对应关系。
.
图1.5为某一语音在矩形窗条件下求得的短时能量和短时平均过零率。
分析可知:
清音的短时能量较低,过零率高,浊音的短时能量较高,过零率低。
清音的过零率为0.5左右,浊音的过零率为0.1左右,两但者分布之间有相互交叠的区域,所以单纯依赖于平均过零率来准确判断清浊音是不可能的,在实际应用中往往是采用语音的多个特征参数进行综合判决。
短时平均过零率的应用:
1)区别清音和浊音。
例如,清音的过零率高,浊音的过零率低。
此外,清音和浊音的两种过零分布都与高斯分布曲线比较吻合。
2)从背景噪声中找出语音信号。
语音处理领域中的一个基本问题是,如何将一串连续的语音信号进行适当的分割,以确定每个单词语音的信号,亦即找出每个单词的开始和终止位置。
3)在孤立词的语音识别中,可利用能量和过零作为有话无话的鉴别。
图1.5矩形窗条件下的短时平均过零率
4、短时自相关函数
自相关函数用于衡量信号自身时间波形的相似性。
清音和浊音的发声机理不同,因而在波形上也存在着较大的差异。
浊音的时间波形呈现出一定的周期性,波形之间相似性较好;清音的时间波形呈现出随机噪声的特性,样点间的相似性较差。
因此,我们用短时自相关函数来测定语音的相似特性。
短时自相关函数定义为:
令
,并且
,可以得到:
图6给出了清音的短时自相关函数波形,图7给出了不同矩形窗长条件下(窗长分别为N=70,N=140,N=210,N=280)浊音的短时自相关函数波形。
由图1.6、图1.7短时自相关函数波形分析可知:
清音接近于随机噪声,清音的短时自相关函数不具有周期性,也没有明显突起的峰值,且随着延时k的增大迅速减小;浊音是周期信号,浊音的短时自相关函数呈现明显的周期性,自相关函数的周期就是浊音信号的周期,根据这个性质可以判断一个语音信号是清音还是浊音,还可以判断浊音的基音周期。
浊音语音的周期可用自相关函数中第一个峰值的位置来估算。
所以在语音信号处理中,自相关函数常用来作以下两种语音信号特征的估计:
1)区分语音是清音还是浊音;
2)估计浊音语音信号的基音周期。
图1.6清音的短时自相关函数
图1.7不同矩形窗长条件下的浊音的短时自相关函数
5、时域分析方法的应用
1)基音频率的估计
首先可利用时域分析(短时能量、短时过零率、短时自相关)方法的某一个特征或某几个特征的结合,判定某一语音有效的清音和浊音段;其次,针对浊音段,可直接利用短时自相关函数估计基音频率,其方法是:
估算浊音段第一最大峰的位置,再利用抽样率计算基音频率,举例来说,若某一语音浊音段的第一最大峰值约为35个抽样点,设抽样频率为11.025KHZ,则基音频率为11025/35=315HZ。
但是,实际上第一最大峰值位置有时并不一定与基音周期吻合。
一方面与窗长有关,另一方面还与声道特性有关。
鉴于此,可采用三电平削波法先进行预处理。
2)语音端点的检测与估计
可利用时域分析(短时能量、短时过零率、短时自相关)方法的某一个特征或某几个特征的结合,判定某一语音信号的端点,尤其在有噪声干扰时,如何准确检测语音信号的端点,这在语音处理中是富有挑战性的一个课题。
三、附录(参考程序)
1)短时能量
(1)加矩形窗
a=wavread('beifeng.wav');
subplot(6,1,1),plot(a);
N=32;
fori=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
(2)加汉明窗
a=wavread('beifeng.wav');
subplot(6,1,1),plot(a);
N=32;
fori=2:
6
h=hanning(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
2)短时平均过零率
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);
fori=1:
n-1
ifa(i)>=0
b(i)=1;
else
b(i)=-1;
end
ifa(i+1)>=0
b(i+1)=1;
else
b(i+1)=-1;
end
w(i)=abs(b(i+1)-b(i));%求出每相邻两点符号的差值的绝对值
end
k=1;
j=0;
while(k+N-1)Zm(k)=0;
fori=0:
N-1;
Zm(k)=Zm(k)+w(k+i);
end
j=j+1;
k=k+N/2;%每次移动半个窗
end
forw=1:
j
Q(w)=Zm(160*(w-1)+1)/(2*N);%短时平均过零率
end
subplot(3,1,3),plot(Q),grid;
3)自相关函数
N=240
Y=WAVREAD('beifeng.wav');
x=Y(13271:
13510);
x=x.*rectwin(240);
R=zeros(1,240);
fork=1:
240
forn=1:
240-k
R(k)=R(k)+x(n)*x(n+k);
end
end
j=1:
240;
plot(j,R);
grid;
2、基于MATLAB分析语音信号频域特征
一、目的
信号的傅立叶表示在信号的分析与处理中起着重要的作用。
因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。
另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象。
由于语音信号是随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。
输出频谱是声道系统频率响应与激励源频谱的乘积。
声道系统的频率响应及激励源都是随时间变化的,因此一般标准的傅立叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。
由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。
本设计内容要求掌握短时傅里叶分析原理,会利用已学的知识,编写程序估计短时谱、倒谱,画出语谱图,并分析结果,在此基础上,借助频域分析方法所求得的参数分析语音信号的基音周期或共振峰。
二、原理
1、短时傅立叶变换
由于语音信号是短时平稳的随机信号,某一语音信号帧的短时傅立叶变换的定义为:
(2.1)
其中w(n-m)是实窗口函数序列,n表示某一语音信号帧。
令n-m=k',则得到
(2.2)
于是可以得到
(2.3)
假定
(4)
则可以得到
(5)
同样,不同的窗口函数,将得到不同的傅立叶变换式的结果。
由上式可见,短时傅立叶变换有两个变量:
n和ω,所以它既是时序n的离散函数,又是角频率ω的连续函数。
与离散傅立叶变换逼近傅立叶变换一样,如令ω=2πk/N,则得离散的短时傅立叶吧如下:
(6)
2、语谱图
水平方向是时间轴,垂直方向是频率轴,图上的灰度条纹代表各个时刻的语音短时谱。
语谱图反映了语音信号的动态频率特性,在语音分析中具有重要的实用价值。
被成为可视语言。
语谱图的时间分辨率和频率分辨率是由窗函数的特性决定的。
时间分辨率高,可以看出时间波形的每个周期及共振峰随时间的变化,但频率分辨率低,不足以分辨由于激励所形成的细微结构,称为宽带语谱图;而窄带语谱图正好与之相反。
宽带语谱图可以获得较高的时间分辨率,反映频谱的快速时变过程;窄带语谱图可以获得较高的频率分辨率,反映频谱的精细结构。
两者相结合,可以提供带两与语音特性相关的信息。
语谱图上因其不同的灰度,形成不同的纹路,称之为“声纹”。
声纹因人而异,因此可以在司法、安全等场合得到应用。
3、复倒谱和倒谱
复倒谱
是x(n)的Z变换取对数后的逆Z变换,其表达式如下:
(7)
倒谱c(n)定义为x(n)取Z变换后的幅度对数的逆Z变换,即
(8)
在时域上,语音产生模型实际上是一个激励信号与声道冲激响应的卷积。
对于浊音,激励信号可以由周期脉冲序列表示;对于清音,激励信号可以由随机噪声序列表示。
声道系统相当于参数缓慢变化的零极点线性滤波器。
这样经过同态处理后,语音信号的复倒谱,激励信号的复倒谱,声道系统的复倒谱之间满足下面的关系:
(9)
由于倒谱对应于复倒谱的偶部,因此倒谱与复倒谱具有同样的特点,很容易知道语音信号的倒谱,激励信号的倒谱以及声道系统的倒谱之间满足下面关系:
(10)
浊音信号的倒谱中存在着峰值,它的出现位置等于该语音段的基音周期,而清音的倒谱中则不存在峰值。
利用这个特点我们可以进行清浊音的判断,并且可以估计浊音的基音周期。
4、基音周期估计
浊音信号的倒谱中存在峰值,它的出现位置等于该语音段的基音周期,而清音的倒谱中则不存在峰值。
利用倒谱的这个特点,我们可以进行语音的清浊音判决,并且可以估计浊音的基音周期。
首先计算语音的倒谱,然后在可能出现的基音周期附近寻找峰值。
如果倒谱峰值超过了预先设置的门限,则输入语音判断为浊音,其峰值位置就是基音周期的估计值;反之,如果没有超出门限的峰值的话,则输入语音为清音。
5、共振峰估计
对倒谱进行滤波,取出低时间部分进行进行逆特征系统处理,可以得到一个平滑的对数谱函数,这个对数谱函数显示了输入语音段的共振峰结构,同时谱的峰值对应于共振峰频率。
通过此对数谱进行峰值检测,就可以估计出前几个共振峰的频率和强度。
对于浊音的声道特性,可以采用前三个共振峰来描述;清音不具备共振峰特点。
三、参考结果
1短时谱
图2.1短时谱
2语谱图
图2.2语谱图
3倒谱和复倒谱
图3、4是加矩形窗和汉明窗的倒谱图和复倒谱图,图中横轴的单位是Hz,纵轴的单位是dB。
图2.4加矩形窗时的倒谱和复倒谱图
图2.3加汉明窗时倒谱和复倒谱图
4基音周期和共振峰估计
图2.5倒谱图
分析第15帧其中第一峰值出现在第2个样点,窗长为512(64ms),抽样频率为11KHz,说明基音频率就在这个点上,其基音频率为5.5KHz,基音周期为0.182ms。
四、附录(参考程序)
1)短时谱
clear
a=wavread('beifeng.wav');
subplot(2,1,1),
plot(a);title('originalsignal');
grid
N=256;
h=hamming(N);
form=1:
N
b(m)=a(m)*h(m)
end
y=20*log(abs(fft(b)))
subplot(2,1,2)
plot(y);title('短时谱');
grid
2)语谱图
[x,fs,nbits]=wavread('beifeng.wav')
specgram(x,512,fs,100);
xlabel('时间(s)');
ylabel('频率(Hz)');
title('语谱图');
3)倒谱和复倒谱
(1)加矩形窗时的倒谱和复倒谱
clear
a=wavread('beifeng.wav',[4000,4350]);
N=300;
h=linspace(1,1,N);
form=1:
N
b(m)=a(m)*h(m);
end
c=cceps(b);
c=fftshift(c);
d=rceps(b);
d=fftshift(d);
subplot(2,1,1)
plot(d);title('加矩形窗时的倒谱')
subplot(2,1,2)
plot(c);title('加矩形窗时的复倒谱')
(2)加汉明窗时的倒谱和复倒谱
clear
a=wavread('beifeng.wav',[4000,4350]);
N=300;
h=hamming(N);
form=1:
N
b(m)=a(m)*h(m);
end
c=cceps(b);
c=fftshift(c);
d=rceps(b);
d=fftshift(d);
subplot(2,1,1)
plot(d);title('加汉明窗时的倒谱')
subplot(2,1,2)
plot(c);title('加汉明窗时的复倒谱')
3、基于MATLAB的语音信号LPC分析
一、目的
线性预测分析是最有效的语音分析技术之一,在语音编码、语音合成、语音识别和说话人识别等语音处理领域中得到了广泛的应用。
语音线性预测的基本思想是:
一个语音信号的抽样值可以用过去若干个取样值的线性组合来逼近。
通过使实际语音抽样值与线性预测抽样值的均方误差达到最小,可以确定唯一的一组线性预测系数。
采用线性预测分析不仅能够得到语音信号的预测波形,而且能够提供一个非常好的声道模型。
如果将语音模型看作激励源通过一个线性时不变系统产生的输出,那么可以利用LP分析对声道参数进行估值,以少量低信息率的时变参数精确地描述语音波形及其频谱的性质。
此外,LP分析还能够对共振峰、功率谱等语音参数进行精确估计,LP分析得到的参数可以作为语音识别的重要参数之一。
由于语音是一种短时平稳信号,因此只能利用一段语音来估计模型参数。
此时有两种方案:
一种是将长的语音序列加窗,然后对加窗语音进行LP分析,只要限定窗的长度就可以保证分析的短时性,这种方案称为自相关法;另一种方案不对语音加窗,而是在计算均方预测误差时限制其取和区间,这样可以导出LP分析的自协方差法。
本设计内容要求掌握LPC原理,会利用已学的知识,编写程序估计线性预测系数以及LPC的推演参数,并能利用所求的相关参数估计语音的端点、清浊音判断、基音周期、共振峰等。
二、原理
语音产生的系统模型图:
以声管模型为基础的LPC模型
1LP分析基本原理
LP分析为线性时不变因果稳定系统V(z)建立一个全极点模型,并利用均方误差准则,对已知的语音信号s(n)进行模型参数估计。
如果利用P个取样值来进行预测,则称为P阶线性预测。
假设用过去P个取样值
的加权之和来预测信号当前取样值
,则预测信号
为:
(1)
其中加权系数用
表示,称为预测系数,则预测误差为:
(2)
要使预测最佳,则要使短时平均预测误差最小有:
(3)
(4)
令
(5)
最小的
可表示成:
(6)
显然,误差越接近于零,线性预测的准确度在均方误差最小的意义上为最佳,由此可以计算出预测系数。
通过LPC分析,由若干帧语音可以得到若干组LPC参数,每组参数形成一个描绘该帧语音特征的矢量,即LPC特征矢量。
由LPC特征矢量可以进一步得到很多种派生特征矢量,例如线性预测倒谱系数、线谱对特征、部分相关系数、对数面积比等等。
不同的特征矢量具有不同的特点,它们在语音编码和识别领域有着不同的应用价值。
2自相关法
在最佳线性预测中,若用下式定义的时间平均最小均方准则代替(3)式的集合平均最小均方准则,即令
(7)
事实上就是短时自相关函数,因而
(8)
(9)
根据平稳随机信号的自相关性质,可得
(10)
由(6)式,可得:
(11)
综上所述,可以得到如下矩阵形式:
(12)
值得注意的是,自相关法在计算预测误差时,数据段
的两端都需要加P个零取样值,因而可造成谱估计失真。
特别是在短数据段的情况下,这一现实更为严重。
另外,当预测系数量化时,有可能造成实际系统的不稳定。
自相关解法主要有杜宾算法、格型算法和舒尔算法等几种高效递推算法。
3协方差法
如果在最佳线性预测中,用下式定义的时间平均最小均方准则代替(3)式的集合平均最小均方准则,则可得到类似的方程:
(13)
可以看出,这里的数据段两端不需要添加零取样值。
在理论上,协方差法计算出来的预测系数有可能造成预测误差滤波器的不稳定,但在实