语音检测实验

更新时间:2023-10-12 06:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验:语音特征提取与分析

控制工程 杨艳 2110000124

一、实验目的

1.学会MATLAB的使用,掌握MATLAB的程序设计方法;

2.掌握在Windows环境下语音信号采集的方法; 3.掌握数字信号处理的基本概念、基本理论和基本方法; 4.认识语音信号;

5.了解自相关函数和功率谱;

6.学会用MATLAB对信号进行分析和处理。

二、实验原理

语音信号时一种非平稳的时变信号,对语音的分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量、短时平均过零率、短时自相关函数等。语音信号的频域分析包括频谱、功率谱、倒谱等分析。

本实验用分别用时、频域特征分析原理,通过短时能量,短时自相关函数以及功率谱等方法来进行语音特征的提取与分析。

1. 短时平均能量

语音信号具有时变特性,但在一个短时间范围内(一般认为在10~40ms的短时间内),其特性基本保持不变,即相对稳定,因而可以将其看作是一个准稳态过程,即语音信号具有短时平稳性。任何语音信号的分析和处理必须建立在“短时”的基础上,即进行“短时分析”,将语音信号分段来分析其特征参数, 其中每一段称为一“帧”,帧长一般取为10~40ms。这样,对于整体的语音信号来讲,分析出的是由每一帧特征参数组成的特征参数时间序列。

语音信号{x(n)}的某帧信号的短时平均能量En的定义为:

?1,w(n)???0,?0?n?N?1其它 2En???x(m)w(n?m)?m???2????x(m)w(n?m)?m?n?N?1n2h(n)?w(n)En??m???x(m)h(n?m)?x22?n?*h?n?式中,w(n)为窗函数;N为窗长。

由此表明, 窗口加权短时平均能量En相当于将“ 语音平方” 信号通过一个单位函数响应为h(n)的的线性滤波器的输出。试验统计发现, 语音浊音段的短时平均能量远远大于清音段的短时平均能量。因此, 短时平均能量En的计算给出了区分清音段与浊音段的依据, 即En(浊)>En(清)。根据En由高到低的跳变可定出浊音变为清音语音的时刻, En由低向高的跳变可定出清音变为浊音语音的时刻;而只有浊音才有基音周期, 清音的基音周期为零。

该算法中窗口选择汉明窗, 其定义为:

h(n)

0?n?N?1?0.54?0.46cos[2?n/(N?1)],?? 其它 ?0,选择汉明窗的理由是窗函数的选取原则为窗函数截取后的x(n) 尽量是中间大两头小的

光滑函数, 冲激响应对应的滤波器具有低通特性。从汉明窗的构成及频率响应特性上看, 汉明窗具有这种特性, 而矩形窗及汉宁窗则稍逊之。汉明窗虽然主瓣最高(带宽大), 但旁瓣最低(通带外的衰减大), 可以有效地克服泄露现象, 具有更好的低通特性。故选择汉明窗而不选择别的窗函数, 能使短时平均能量En更能反映语音信号的幅度变化。

2. 自相关函数基音检测的原理

对于离散的数字语音信号序列x(n), 自相关函数定义如下:

为:

?R(k)??m???x(m)x(m?k)式中, K为信号的延迟点数。对于随机性信号序列或周期性信号序列, 自相关函数定义

R(k)?lim12NNN???m??Nx(m)x(m?k)自相关函数具有以下的性质:如果序列x(n)具有周期N, 则其自相关函数也是同周期的周期函数。即:

x(n)=x(n+Np);则:R(k)=R(k+Np)

清音信号没有周期性, 它的自相关函数也没有周期,R(k) 会随着k的增大迅速衰减。浊音信号具有准周期性, 它的自相关函数R(k)具有与{x(n)}相同的周期。自相关法基音检测正是利用R(k)的这一性质对语音信号进行基音检测的。

3.功率谱

语音随机信号是时域无限信号,不具备可积分条件,因此不能直接进行傅氏变换。一般用具有统计特性的功率谱来作为谱分析的依据。功率谱与自相关函数是一个傅氏变换对。功率谱具有单位频率的平均功率量纲。所以标准叫法是功率谱密度。通过功率谱密度函数,可以看出随机信号的能量随着频率的分布情况。

对于随机信号的功率谱求法有经典谱估计方法与现代谱估计方法。经典谱估计中最简单的就是周期图法,又分为直接法和间接法两种:

1)间接法求功率谱:先计算N点样本数据的自相关函数,然后取自相关函数的傅里叶变换,即得到功率谱的估计。

2)直接法求功率谱:先取N点数据的傅里叶变换(即频谱),然后取频谱与其共轭的乘积,就得到功率谱的估计。

本实验用最简单的周期图直接法分析语音功率谱信号。采样后的离散语音信号为x(n),其离散傅里叶变换x(w)为,

x(w)=FFT[x(n)]; 功率谱Px(w)为,

Px(w)?limx(w)*x(w)N*N???lim|x(w)|N2N??,

其中,N为取样的点数。

三、实验内容及结果

1.语音信号的采集

要求利用windows下的录音机(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—11.025KHz,8位,单声道),录制一段自己姓名的话音,时间控制在0.5至1秒左右(本实验语音时长为0.75秒)。在MATLAB软件平台下,利用函数wavread打开语音信号。

2.窗函数的选取

由于hamming窗平滑效果比较好,为了更好的观察语音能量图,本实验选取了hamming窗,把语音分成若干个短时的帧。

每帧长取40ms,采样频率为11.025KHz,每帧的取样点数N=帧时间长/采样周期=441个,即窗长为441。

3.短时能量及清、浊音的判断

短时能量的函数的函数有以下程序实现: %fs=11.025*10^3; %采样点数

[a,fs,Bit]=wavread('AA.wav'); a=a(11025*0.25:11025*1.0);

t=(0:length(a)-1)/fs; %坐标轴时间化

figure(1); %原始语音和短时能量图 subplot(2,1,1);plot(t,a); %做原始语音的时域图形 grid on;axis tight;

xlabel('time(s)');ylabel('幅度');

title('原始语音');

N=441; %短时窗长度 h=hamming(441); %汉明窗 E=conv(h,a.*a); %短时能量 subplot(2,1,2);plot(E); %短时能量图 grid on;axis tight;

xlabel('取样点');ylabel('幅度'); title('hamming窗短时能量函数');

原始语音波形和短时能量波形如下:

通过短时能量函数波形图可以看出En值大的对应于浊音段,En值小的对应于清音段。由此可以判断浊音变清音,清音变为浊音的时刻,选取浊音段语音的范围为6780~7220个点,进行浊音段自相关函数分析。

4.自相关函数及基音周期、频率的估计

选取浊音段语音的范围为6780~7220个点,浊音段的自相关函数由以下程序实现:

N=441;

Y=WAVREAD('AA.wav');

x=Y(6780:7220); %取浊音段样点 x=x.*hamming(441); %信号滤波处理 R=zeros(1,441); for k=1:441

for n=1:441-k

R(k)=R(k)+x(n).*x(n+k);%自相关函数 end end figure(2); j=1:441; plot(j,R);

grid on;axis tight;

xlabel('滞后点数k'); ylabel('自相关函数');

title('浊音段的自相关函数'); 得到波形图如下:

从图中可以看出,除零点外第一个最大峰值出现在49个滞后点上。因为浊音段语音的自相关函数具有一定的周期性,在相隔一定的取样后,自相关函数达到最大值。浊音语音的周期可以用自相关函数的第一个峰值的位置来估算。图中经过滤波处理后的信号只含有第一共振峰以下的基波和谐波分量,由此估计出浊音的基音周期为T=49*40ms/441=4.4ms;则基音频率为f=1/T=250Hz。

5.功率谱密度及基音周期、频率的估计

求功率谱密度的程序如下:

[x,fs,bits]=WAVREAD('AA.wav',[6196,7220]); N=1024; %取样点数 X=fft(x,1024); %语音信号FFT f=fs*(0:1023)/1024; %频率坐标轴

magX=abs(X); %语音信号幅频函数 P=magX.^2/N; %语音信号功率谱 figure(3); plot(f,P);

grid on;axis tight; title('语音功率谱图'); xlabel('频率/Hz'); ylabel('幅度');

得到如下功率谱波形图:

从图中可以估计出基音频率约为f=236.9Hz,基音周期为T=1/f=4.2ms。

通过自相关波形图和功率谱波形图得到的参数可知,语音的基音频率约为f=243.45Hz;基音周期约为T=4.1ms。

四、小结

通过本次试验,查阅了大量资料和参考了许多语音处理的论文。学习了语音特征提取

与分析的相关知识,了解了自相关函数、功率谱密度函数等在检测技术中非常重要的理论基础,熟悉了MATLAB软件的使用,并学会了如何使用MATLAB来编写语音的.m程序。实验的完成对我独立动手能力有了一定提高。

本文来源:https://www.bwwdw.com/article/4blf.html

Top