语音信号短时域分析之预处理(三)

语音信号是一种非平稳的时变信号,它携带着各种信息。一般而言语音处理目的有两种,一种是对语音信号进行分析,提取特征参数,用于后续处理;一种是加工语音信号,如在语音增强中对含噪语音进行背景噪声抑制,以获得相对“干净”的语音。

根据分析参数不同,可分为时域分析和变换域(频域、倒谱域)分析,其中时域分析是最简单、最直观的方法,它直接对语音信号的时域波形进行分析提取主要有语音短时能量和平均幅度、短时平均过零率、短时自相关函数和短时平均幅度差函数等。

实际的语音信号是模拟信号,因此在对语音信号进行数字处理之前,首先要将模拟语音信号是s(t)以采样周期T采样,将其离散化为s(n),采样周期的选择应根据模拟语音信号的带宽来确定,以避免信号的频域混叠失真。

语音信号的预处理一般包括预加重处理和加窗处理

一 预加重处理

对输入的数字语音进行预加重,其目的是为了对语音的高频部分进行加重,去除口唇辐射的影响,增加语音的高频分辨率。一般通过传递函数为 
的高通数字滤波器来实现预加重,其中a为预加重系数,一般为0.9<a<1。设n时刻语音采样值为x(n),经过预加重处理后的结果为y(n) = x(n) - ax(n-1),这里a=0.98。matlab代码如下,可以参考。

<span style="font-size:14px;">e=wavread('beijing.wav');
ee=e(200:455);            %选取原始文件e的第200到455点的语音,也可选其他样点
r=fft(ee,1024);             %对信号ee进行1024点傅立叶变换
r1=abs(r);                 %对r取绝对值 r1表示频谱的幅度值
pinlv=(0:1:255)*8000/512;    %点和频率的对应关系
yuanlai=20*log10(r1);       %对幅值取对数
signal(1:256)=yuanlai(1:256);%取256个点,目的是画图的时候,维数一致
[h1,f1]=freqz([1,-0.98],[1],256,4000);%高通滤波器
pha=angle(h1);           %高通滤波器的相位
H1=abs(h1);             %高通滤波器的幅值
r2(1:256)=r(1:256);
u=r2.*h1';              % 将信号频域与高通滤波器频域相乘 相当于在时域的卷积
u2=abs(u) ;             %取幅度绝对值
u3=20*log10(u2);        %对幅值取对数
% un=filter([1,-0.98],[1],ee);  %un为经过高频提升后的时域信号
figure(1);subplot(211);
plot(f1,H1);title('高通滤波器的幅频响应');
xlabel('频率/Hz');
ylabel('幅度');
subplot(212);plot(pha);title('高通滤波器的相位响应');
xlabel('频率/Hz');
ylabel('角度/radians');
figure(2);subplot(211);plot(pinlv,signal);title('原始语音信号频谱');
xlabel('频率/Hz');
ylabel('幅度/dB');
subplot(212);plot(pinlv,u3);title('经高通滤波后的语音信号频谱');
xlabel('频率/Hz');
ylabel('幅度/dB');</span>

其中高通滤波器和经预加重处理后的图如下:

      
        

二 加窗处理

在进行预加重数字滤波处理后,接下来进行加窗分帧处理,语音信号是一种随时间而变化信号,主要分为浊音和清音两大类,由于发音器官的惯性运动,可以认为在一小段时间里(一般为10ms-30ms),语音信号近似不变,即语音信号具有短时平稳性。这样,可以把语音信号分为一些短段来进行处理,语音信号的分帧是采用可移动的有限长度窗口进行加权的办法来实现的,一般每秒的帧数为33-100帧,分帧虽然可以采用连续分段的方法,但一般要采用如图所示交叠分段的方法,为了使帧与帧之间平滑过渡,保持连续性,前一帧与后一帧的交叠部分为帧移,帧移和帧长的比值一般为0-1/2。

一般窗有两种,一种是矩形窗,一种是汉明窗,窗函数如下:

                            

(1) 矩形窗                                                                                                 (2) 汉明窗

矩形窗的时域和频域波形,窗长N=61,matlab代码如下:

<span style="font-size:14px;">% 程序3.2:juxing.m
x=linspace(0,100,10001);               %在0~100的横坐标间取10001个值
h=zeros(10001,1);                     %为矩阵h赋0值
h(1:2001)=0;                         %前2000个值取为0值
h(2002:8003)=1;                      %窗长 ,窗内值取为1
h(8004:10001)=0;                     %后2000个值取为0值
figure(1);                            %定义图号
subplot(1,2,1)                        %画第一个子图
plot(x,h,'k');                          %画波形,横坐标为x,纵坐标为h,k表示黑色
title('矩形窗时域波形');                %图标题
xlabel('样点数');                      %横坐标名称
ylabel('幅度');                        %纵坐标名称
axis([0,100,-0.5,1.5])                  %限定横、纵坐标范围
line([0,100],[0,0])                    %画出x轴

w1=linspace(0,61,61);                %取窗长内的61个点
w1(1:61)=1;                        %赋值1,相当于矩形窗
w2=fft(w1,1024);                    %对时域信号进行1024点的傅立叶变换
w3=w2/w2(1)                       %幅度归一化
w4=20*log10(abs(w3));               %对归一化幅度取对数
w=2*[0:1023]/1024;                  %频率归一化
subplot(1,2,2);                       %画第二个子图
plot(w,w4,'k')                        %画幅度特性图
axis([0,1,-100,0])                     %限定横、纵坐标范围
title('矩形窗幅度特性');               %图标题
xlabel('归一化频率 f/fs');           %横坐标名称
ylabel('幅度/dB');                 %纵坐标名称
</span>

汉明窗matlab代码如下:

<span style="font-size:14px;">x=linspace(20,80,61);         %在20~80的横坐标间取61个值作为横坐标点
h=hamming(61);             %取61个点的哈明窗值为纵坐标值
figure(1);                   %画图
subplot(1,2,1);               %第一个子图
plot(x,h,'k');                 %横坐标为x,纵坐标为h,k表示黑色
title('Hamming窗时域波形');   %图标题
xlabel('样点数');              %横坐标名称
ylabel('幅度');             %纵坐标名称
w1=linspace(0,61,61);         %取窗长内的61个点
w1(1:61)=hamming(61);         %加哈明窗
w2=fft(w1,1024);               %对时域信号进行1024点傅立叶变换
w3=w2/w2(1);                 %幅度归一化
w4=20*log10(abs(w3))           %对归一化幅度取对数
w=2*[0:1023]/1024;            %频率归一化
subplot(1,2,2)                  %画第二个子图
plot(w,w4,'k')                  %画幅度特性图
axis([0,1,-100,0])                %限定横、纵坐标范围
title('Hamming窗幅度特性');      %图标题
xlabel('归一化频率 f/fs');      %横坐标名称
ylabel('幅度/dB');             %纵坐标名称</span>

          
  

(1) 矩形窗                                                                                                  (2) 汉明窗

通过图可以看出汉明窗具有更平滑的低通特性,能够在较高的程度上反映短时信号的频率特性。

下图说明了加窗方法,其中窗序列沿着语音样点值逐帧从左到右移动,窗w(n)长度为N。在确定窗函数后,对语音信号的分帧处理实际上就是对各帧进行某种变换或运算,设这种变换用T[]表示,x(n)为输入语音信号,w(n)为窗序列,h(n)是与w(n)有关的滤波器,则各帧经处理后输出可表示为



语音信号短时域分析之预处理(三)

时间: 2024-10-24 10:48:03

语音信号短时域分析之预处理(三)的相关文章

语音信号短时域分析之短时平均能量(四)

由于语音信号的能量随时间而变化,清音和浊音之间的能量差别相当显著,因此对短时能量和短时平均幅度进行分析,可以描述语音的这种特征变换情况.定义n时刻某语音信号的短时平均能量E为: 式中,N为窗长,可见短时能量为一帧样点值的加权平方和.当窗函数为矩形窗时 短时平均能量用途: (1) 可以作为区分清音和浊音的特征参数: (2) 在信噪比比较高的情况下,短时能量可以作为区分有声和无声的依据: (3) 可以作为辅助的特征参数用于语音识别中. 其中短时能量matlab代码如下: x = wavread('b

语音信号中的特征提取

原文链接地址:http://blog.csdn.net/u010451580/article/details/51178190 一.语音的产生简介 1.1   发音器官 人体的语音是由人体的发音器官在大脑的控制下做生理运动产生的.人体发音器官由三部分组成:肺和气管.喉.声道. 肺是语音产生的能源所在.气管连接着肺和喉,是肺与声道的联系通道.喉是由一个软骨和肌肉组成的复杂系统,其中包含着重要的发音器官--声带.声带为产生语音提供主要的激励源.声道是指声门(喉)至嘴唇的所有发音器官,包括咽喉.口腔和

数字语音信号处理学习笔记——语音信号的短时时域分析(1)

3.1 概述 语音信号是一种非平稳的时变信号,它携带着各种信息.在语音编码.语音合成.语音识别和语音增强等语音处理中都需要提取语音中包含的各种信息.一般而言语音处理的目的有两种:一种是对语音信号进行分析,提取特征参数,用于后续处理:另一种是加工语音信号,例如在语音增强中对含噪语音进行背景噪声抑制,以获得相对"干净"的语音:在语音合成方中需要对分段语音进行拼接平滑,获得主观音质较高的合成语音,这方面的应用同样是建立在分析并提取语音信号信息的基础上的.总之,语音信号分析的目的就在于方便有效

语音信号分析

所谓的语音信号分析就是提取表征语音特征的信息,以进行后续的处理:语音识别.说话人识别等.语音特征信息及特征参数的提取.由于语音信号具有短时平稳特性,及在短时内特征参数稳定不变,一般时长为10~30ms,故通常将语音分帧处理,以获得稳定的特征参数.综上,对于一段语音信号,分析时通常表示为由每一帧特征参数组成的特征参数序列. 语音信号处理基本步骤: 端点检测(VAD)切除静音 1预滤波.采样.(A\D)转换 2编码(常用格式PCM ALAW MULAW) 3预处理:(处理已经数字化的信号) 预加重加

【自动语音识别课程】第二课 语音信号分析

[传送门] [自动语音识别课程]第一课 统计语音识别介绍 原文地址:http://blog.csdn.net/joey_su/article/details/36414877 转载请注明出处,欢迎交流. 概述 针对ASR的语音信号分析 特征 频谱分析 倒谱分析 标准特征:MFCC和PLP分析 动态特征 第一课的结尾提到了语音识别的框图,下图展示了信号分析技术在语音识别系统中的位置: 我们先来认识下语音的产生过程: 语音是在发音器官和声道共同作用下产生的.说话时,声带振动发出具有一定周期特性(基音

语音信号的梅尔频率倒谱系数(MFCC)的原理讲解及python实现

梅尔倒谱系数(MFCC) 梅尔倒谱系数(Mel-scale FrequencyCepstral Coefficients,简称MFCC).依据人的听觉实验结果来分析语音的频谱, MFCC分析依据的听觉机理有两个 第一Mel scale:人耳感知的声音频率和声音的实际频率并不是线性的,有下面公式 $$f_{mel}=2595*\log _{10}(1+\frac{f}{700})$$ $$f = 700 (10^{f_{mel}/2595} - 1)$$ 式中$f_{mel}$是以梅尔(Mel)为

数字语音信号处理学习笔记——语音信号的数字模型(3)

2.4 语音的感知       2.4.1 几个概念       语音的听觉感知是一个复杂的人脑-心理过程.对听觉感知的研究还很不成熟.听觉感知的试验主要还在测试响度.音高和掩蔽效应等.人耳听觉界限的范围大约为20Hz~20kHz.在频率范围低端,感觉声音变成低频脉冲串,在高端感觉声音减小直至完全听不到一点儿声响.语音感知的强度范围是0~130dB声压级,声音强度太高,感到难以忍受,强度太低则感到寂静无声. 1.响度 这是频率和强度级的函数.通常用响度(单位为宋)和响度级(单位为方)来表示. 人

数字语音信号处理学习笔记——同态处理语音信号(1)

5.1 概要 进行处理的方法,它能将两个信号通过乘法合成的信号,或通过卷积合成的信号分开. 对于语音信号.我们的目的是要从声道冲激对应与激励分量的卷积中分开各原始分量. 由卷积结果求得參与卷积的各个信号分量是涉及数字信号处理理论的一项任务,称为"解卷积"或简称"解卷". 对语音信号进行同态分析后.将得到语音信号的倒谱參数,因此同态分析也称为倒谱分析或同态处理. 5.2 叠加原理和广义叠加原理      对于一个线性系统来说,其输入输出的关系服从叠加原理.叠加原理能够

语音信号的“短时时域”分析

语音信号的预处理 语音信号的频带范围通常是300~3400Hz,一般情况下取采样率为8kHz,本博客的部分代码采用的是已经数字化了的语音. 预加重 预加重的目的是为了对语音的高频部分进行加重,去除口唇辐射的影响,增加语音的高频分辨率. 一般通过使用一阶FIR高通数字滤波器来实现预加重,滤波器函数为: $$H(z)=1-\alpha z^{-1}$$ 其中$\alpha $为预加重系数,$0.9<\alpha<1.0$, 设n时刻的语音采样值为$x(n)$,经过预加重处理后的结果为$y(n)=x