1、实验一 语音信号的时域和频域分析,一、实验目的,理解和掌握语音信号的数字化和预处理方法。 理解短时能量分析、短时过零分析、短时相关分析。 语音信号的短时傅立叶分析方法。,二、实验原理,语音信号分析可分为时域、频域、倒谱域等方法。 贯穿于语音分析全过程的是“短时分析技术”。语音信号特性是随时间而变化的,是一个非平稳 的随机过程。但从另一方面,在一个相对短时间范 围内其特性基本保持不变。对于这种特点是语音信 号处理的一个重要出发点。因此我们可以采用平稳 过程的分析处理方法来处理语音。,时域分析,时域分析是语音分析中最早使用,应用范围最广的一种方法。 特点:1、表示语音信号比较直观。(语音信号本 身
2、就是时域信号)2、实现简单、运算量小。3、可以得到语音的一些重要参数。,常用短时分析技术,短时能量 短时平均幅度 短时过零率 短时自相关函数 短时平均幅度差函数 短时频谱 短时功率谱,短时能量分析,能量分析是基于语音信号能量随时间有相当大的变化,特别是清音段的能量一般比浊音段的小得多。 短时分析将语音流分为一段一段来处理,每一段称为一“帧”。 用有限长窗函数进行加权来实现。,不同的窗口选择(形状、长度),将决定短时能量 的特性。窗口的形状:窗口有多种形状,他们都是中心对称 的。窗口的长度:无论什么形状的窗口,窗口序列的长 度N将起决定性的作用。N太大,能量随时间变化很小,不能反映语音信号的 幅
3、度变化,波形的变化细节就看不出来;N太小,滤波器的通带变宽,短时能量随时间有剧烈 变化,不能得到平滑的能量函数。,窗口的选择(长度的确定)又需相对不同的基音周期来选择。通常情况下,一个语音帧内应含有17个基音周期。然而不同的人其基音周期变化范围很大,因此窗口宽度(N)的选择有一个折衷选择为100200(即1020ms持续时间)。,短时过零分析,过零就是信号通过零值。 考察连续语音信号其时域波形通过时间轴的情况。 通过相邻取值改变符号判断是否过零,从而计算过零数。 单位时间内的过零数称为平均过零数。,对于窄带信号,平均过零数计算比较简单。例:有一频率为f0的正弦信号,以取样频率fs进行取样,则每
4、个正弦周期内有fs/f0个取样,另外,每个正弦周期有二次过零,所以平均过零数为借助平均过零数及取样频率可精确算出频率。,对于语音信号序列是宽带信号,所以不能简单地用上面的公式计算频率。但是,可借助短时平均过零数来得到其频谱的粗略估计。 语音信号的短时平均过零数定义为式子中 是符号函数,W(n)为窗口序列,其作用于短时平均能量一样。,短时平均过零数的实现,首先对语音信号序列进行成对采样地查对采样以确定是否发生过零,若发生符号变化,则表示有一次过零,而后进行一阶差分计算,再求取绝对值,最后进行低通滤波。,例:任选一段语音信号,对其进行采样,画出采样以后的时域波形。,x1,fs=wavread(c:
5、wang.wav); %读取语音信号 sound(x1,fs); %播放语音信号 plot(x1) %做原始语音信号的时域图形 title(原始语音信号); xlabel(time); ylabel(windows);,绘制该语音信号短时平均能量,%读入声音文件x,fs=wavread(c:wang.wav); %常数设置 FrameLen = 240; FrameInc = 80; %计算短时能量 amp = sum(abs(enframe(filter(1 -0.9375, 1, x),FrameLen, FrameInc), 2); subplot(1,2,1);plot(x);titl
6、e(原波形图) subplot(1,2,2);plot(amp);title(短时平均能量图),当选择不同长度的窗时的短时能量,x,fs=wavread(c:wang.wav); FrameLen1 = 51; FrameLen2 = 101; FrameLen3 = 201; FrameLen4 = 401; FrameInc = 80; subplot(5,1,1);plot(x);title(原波形图) amp = sum(abs(enframe(filter(1 -0.9375, 1, x),FrameLen1, FrameInc), 2); subplot(5,1,2);plot(a
7、mp);title(短时平均能量图),amp = sum(abs(enframe(filter(1 -0.9375, 1, x),FrameLen2, FrameInc), 2); subplot(5,1,3);plot(amp);title(短时平均能量图) amp = sum(abs(enframe(filter(1 -0.9375, 1, x),FrameLen3, FrameInc), 2); subplot(5,1,4);plot(amp);title(短时平均能量图) amp = sum(abs(enframe(filter(1 -0.9375, 1, x),FrameLen4,
8、FrameInc), 2); subplot(5,1,5);plot(amp);title(短时平均能量图),四、实验报告要求,1、简述实验目的和实验原理; 2、matlab程序清单及结果图形; 3、实验结果分析,添加:VOICEBOX工具箱,解压voicebox.zip, 将整个目录voicebox复制到MATLAB的安装目录的TOOLBOX目录下,如: c:program filesMATLABr2007btoolbox 将voicebox加到MATLAB的搜索路径中。 addpath(genpath(c:program files MATLABr2007btoolbox voicebox) 检验是否成功设置的方法:which activlev.m,