基于matlab谱减法音频降噪处理教材Word格式文档下载.docx
- 文档编号:21290096
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:15
- 大小:233.04KB
基于matlab谱减法音频降噪处理教材Word格式文档下载.docx
《基于matlab谱减法音频降噪处理教材Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于matlab谱减法音频降噪处理教材Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
(5)
(6)
1、设计要求.................................1
2、设计原理.......……………………………………………….............2
3、源程序清单........................................7
4、设计结果和仿真波形.......................................11
5、参考文献.......................................15.
6、设计心得体会......................................16
1、设计要求
语言是人类最重要、直接、有效和便捷的交换信息的方式。
随着近些年科学技术的飞速发展,人们也不满足于和计算机的信息交换方式,希望能够甩掉键盘和鼠标而实现用语言来对计算机进行控制。
因此,语音信号处理技术便应运而生。
语音信号处理是一门新兴的学科,同时也是综合多种学科和涉及面非常广泛的交叉学科。
现在在一些职能系统中嵌入有语音处理系统,但它们只能在安静的环境中才能使用。
然而,在语音信息的采集过程中难免会有各种噪声的干扰。
噪声不仅降低了语音的可懂度和语音质量,还严重的影响语音处理的准确性,甚至使系统不能正常工作。
本文将就对语音增强技术的原理和方法进行讨论,重点介绍语音增强的一种方法——谱减法及其改进算法。
该方法能够有效消除平稳的加性噪声,其改进算法能够有效消除普通方法产生的“音乐噪声”,在很大程度上提高语音信号的信噪比。
目前,语言识别技术已经取得了重大进展,并开始进入实用阶段。
但语音识别系统必须在相对比较安静的环境下运行,然而,在语言信息的采集中难免会有各种噪声的干扰,在较强的噪声背景下,语音识别系统的准确性会受到较大影响,甚至没法正常工作。
所以在语音识别系统对语音信息处理前,应该对语音信息进行预处理,即背景噪声消除。
语音背景噪声消除技术的出现使得语音识别技术更加稳定和精确,也使得语音信息的可懂度大大提高,使人们能够从较复杂的语音信息中提取到更多的有用信息。
2、设计原理
噪声的生成原理及分类
噪声的来源取决于实际应用,不同情形下产生的噪声其特性也是千变万化,所以没有一种通用的语音增强算法能对每一种噪声起到有效的消除。
下面我们来简单分析噪声的生成原理及分类情况。
噪声可以分为两大类:
加性噪声和非加性噪声,加性噪声一般是指热噪声、散弹噪声等,其特点是噪声信号与语音信号是加性的,噪声不随信号而改变,即使信号不存在噪声也会存在。
非加性噪声如乘性噪声,他们与信号成乘性关系,信号存在噪声就存在,信号改变噪声也随之改变。
一般通信中我们把加性随机性看成背景噪声,而乘性随机性则是由系统时变性和非线性造成的。
这里我们仅介绍加性噪声,加性噪声一般分为一下几类:
人为噪声,自然噪声和内部噪声。
人为噪声是指信号之外人为的噪声,如外台信号、开关接触噪声、工业的点火辐射等;
自然噪声则是由于自然界的各种电磁波源如闪电、大气中电暴和宇宙辐射等造成的噪声;
内部噪声是信号采集时系统设备自身产生的各种噪声,如热噪声和散弹噪声等[8]。
以上噪声中确定类型的噪声因为知道其产生机制,所以理论上是能够消除或者基本消除。
但是有一类随机噪声因为不能预测其波形而比较难以消除,这种不能预测的噪声系统成为随机噪声。
随机噪声可分为三类:
(1)周期性噪声是由于发动机等机械、电气干扰特别是交流电等造成的周期性的干扰噪声。
(2)脉冲噪声是突发的幅度高且持续时间短的离散脉冲。
它的来源是由于爆炸、点击和撞击等,其特点就是脉冲幅度大,持续时间短,两个脉冲之间时间长等。
这类噪声通常在时域情况下消除,根据信号的幅度平均值来确定信号幅度的闭值。
当信号超过这一闭值时,系统则认为是脉冲噪声,再对脉冲噪声进行衰减。
(3)宽带噪声的来源很多,热噪声、气流(如风、呼吸)噪声及各种随机噪声源,量化噪声也可视为宽带噪声。
由于宽带噪声与语音信号在时域和频域上完全重叠,因而消除它最为困难。
这种噪声只有在语音间歇期才单独存在。
对于平稳的宽带噪声通常可以认为是白色高斯噪声。
不具有白色频谱的噪声,可以先进行白化处理。
对于非平稳的宽带噪声,情况就更为复杂一些。
噪声破坏了语音信号原有的声学特征和模型参数,使语音质量下降,也使人产生听觉疲劳。
不仅如此,强噪声环境还会对说话的人产生影响,使人改变在安静环境或者低噪声环境中的发音,从而改变了说话人的语音特征参数,它对语音识别系统有很大影响。
基本谱减法消除噪声的原理
在诸多语音增强方法中,谱减法因其计算量小,容易实现和增强效果好等特点而备受关注,是诸多方法中比较有效的语音增强算法。
谱相减方法是居于人的感觉特性,即语音信号的短时幅度比短时相位更容易对人的听觉系统产生影响,从而估计语音的短时幅度谱,比较适用于消除带加性噪声的语音。
谱减法在20世纪八十年代后用来与其它方法相结合来获得更为有效的语音增强算法。
并且成为其它语音增强算法的比较标准。
下面我们来详细了解谱减法的原理。
在基本谱减法中,假定语音为平稳信号,且噪声为加性噪声,与语音信号彼此不相关。
此时带噪语音信号可表示为:
(1)
式
(1)中,y(t)为含噪语音信号,s(t)为纯净语音信号,n(t)为噪声信号。
用Y(w),S(w)和N(w)来分别表示y(t),s(t)和n(t)的傅里叶变换,则有下列关系:
(2)
由公式
(2)可得:
(3)
根据(3)可得:
(4)
由于基本假定是噪声信号与语音信号是加性的,s(t)和n(t)独立,所以S(w)和N(w)也独立。
故
=0。
所以对一个分析帧内得短时平稳过程,有:
(5)
因为噪声是局部平稳的,故可以认为没有语音信息是的噪声与有语音信息时的噪声功率谱是相同的,因而可以利用发语音前的“寂静帧”来估计噪声。
由式(5)可以得到原始语音的估计值:
(6)
式(6)中,下标表示加窗信号,
表示估值,
则表示无语音信号时
的均值。
如果式(6)中结果出现负值,则将其改为0或改变符号,因为功率谱不能为负数。
由式(6)可得原始语音估值:
(7)
根据人耳对语音的相位变化不敏感这一特点,我们可以用原带噪语音信号y(t)的相位来代替估计之后的语音信号的相位,将估计后的频域信号进行逆傅里叶变换得到降噪后的语音时域信号。
基本谱减法的原理图如图2.1所示:
图2.1基本谱减法的原理示意图
改进谱减法消除噪声的原理
传统的噪声估计方法是基于最优平滑和最小统计的噪声估计,还有一种采用改进的算法——基于语音活性检测的噪声估计算法。
语音激活检测指从一段包含语音信号中确定出语音的起始点和终点,又称端点检测。
语音端点检测的目的就是从连续记录的带噪语音信号中分离出有用的语音信号。
语音激活检测是各种语音处理中必需的一个重要环节,精确地确定输入语音的起点和终点将保证语音处理系统良好的性能。
对于语音激活检测在语音增强中的应用,为了得到更多的关于背景噪声特性,语音端点检测更注重于如何准确的检测出无音段。
一般的语音激活检测是根据语音帧来进行的,语音帧的长度在10~30ms不等。
语音端点检测的方法可以综述为:
从输入信号中提取一个或一系列的对比特征参数,然后将其和一个或一系列的门限阈值进行比较,如图4-7所示。
如果超过门限则表示当前为有音段,否则就表示当前为无音段。
图4-7语音激活检测框图
目前语音端点检测所采取的方法大体可以分为两类:
第一类是噪声环境下基于HMM模型的语音信号端点检测的方法,该方法要求背景噪声保持平稳且信噪比较高。
第二类方法是基于信号的短时能量进行检测的算法,它通过对背景噪声能量的统计,定出能量门限,利用能量门限来确定语音信号起始点。
在这里运用语音端点检测采用了第二类方法,即基于信号的短时能量进行检测的算法。
基于信号的短时能量检测具体算法如下:
1)计算每一帧的语音能量:
(4-1)
式中
为帧长,
为帧的编号,m为每一帧中的各点,
,
为帧数;
然而它有一个缺陷,即它对高电平非常敏感(信号的二次方计算)。
为此,定义短时平均幅度函数来表征一帧语音信号的能量大小,定义:
(4-2)
2)计算前20帧平均噪声能量
;
3)求能量最大值和能量最小值
4)根据式(4-2)确定门限
(4-3)
应用谱相减法实现语音增强基本原理是通过对带噪语音谱减去噪声谱得到语音谱,因此,语音激活检测这一环节非常重要,准确地确定语音的起始点和终止点对噪声谱估计有着重要的作用。
改进型语音降噪处理运用端点检测技术,用MATLAB仿真,可明显显示出其优越性。
用MATLAB仿真的流程如下:
1)对输入的语音信号进行预滤波;
2)对滤波后的语音信号进行预加重;
3)将语音信号按每帧128个信号点进行分帧,帧移为64;
4)对信号帧加汉明窗(Haming);
5)对加窗后的信号帧进行FFT变换;
6)对各帧语音信号求功率谱;
7)根据前20帧求取平均噪声功率;
8)利用VAD进行噪声估计检测寂静段,进而组合递归平滑,更新噪声谱;
9)进行谱减运算,得到估计出的语音信号功率谱;
10)插入相位谱,计算出语音谱;
11)进行IFFT变换,得到还原的语音帧;
12)根据各个语音帧组合为语音信号;
13)对语音信号进行去加重处理,得到最终信号。
3、源程序清单
下面是一段无噪声纯净的音频1.wav,用matlab仿真的源程序代码:
[x,fs,bits]=wavread('
D:
\1.wav'
);
x1=x(1:
end,1);
%因录音时是立体声,故取其中的第一通道的音频数据
sound(x1,fs,bits);
X1=fft(x1,4096);
%对x1进行4096点傅里叶变换
magX1=abs(X1);
angX1=angle(X1);
subplot(221);
plot(x1);
title('
原始信号波形'
subplot(222);
plot(X1);
title('
原始信号频谱'
subplot(223);
plot(magX1);
原始信号幅值'
subplot(224);
plot(angX1);
原始信号相位'
其仿真图如图一所示。
前面MATLAB读取的语音信号声音比较清晰,信噪比较高,用这样的信号实验对比效果不太明显。
因此在进行消除噪声实验之前我们要人为的给原始信号添加随机白高斯噪声,降低语音信号的信噪比。
下面是matlab加入噪声的源代码:
clear
N=size(x,1);
N,1);
%因录音时是立体声,故取其中的第一通道的音频数据
fn=1000;
%设定噪声的频率为1000Hz
t=1:
length(x1);
%设置噪声的长度跟原语音信一样长,
x2=0.5*sin(2*pi*fn/fs*t);
%产生幅度为0.5频率为fn的正弦波作为噪声.
y=x1+x2'
;
%将原语音信号跟噪声相加,x为带有噪声的语音信号.
wavwrite(y,fs,'
\2.wav'
%将带有噪声的语音信号转换为声音,2.wav中将有噪声
下面是加噪后音频的matlab仿真源代码:
加噪后信号波形'
加噪后信号频谱'
加噪后信号幅值'
加噪后信号相位'
其仿真图如图二所示。
下面是噪声的matlab仿真的源代码:
%读取2.wav文件并返回fs和bits的值。
y=x(1:
4096,1);
%截取语音信息前4096点作为噪声信号
Y=fft(y);
%对噪声信号进行傅里叶变换
magY=abs(Y);
%取噪声功率谱绝对值
angY=angle(Y);
%取噪声相位
plot(y);
噪声信号波形'
plot(Y);
噪声信号频谱'
plot(magY);
噪声信号幅值'
plot(angY);
噪声信号相位'
其仿真的图形如图三所示。
下面是利用基本谱减法降噪处理matlab源代码:
clear;
b=[];
fori=0:
126;
n=4096;
x1=x(1+n*i:
n+n*i);
X1=fft(x1);
magX=abs(X1);
S=(magX.^2-magY.^2);
S1=abs(S).^0.5;
s1=ifft(S1);
m=mean(s1)*300;
forj=1:
4096;
ifabs(s1(j))>
m;
s1(j)=s1(j)/4;
end
a=s1'
b=[ba];
x2=b'
plot(x2);
sound(x2,fs,bits);
下面是利用改进的谱减法降噪处理的matlab源代码:
b1=[];
a=1.3;
b=1.3;
%设定
和
的值
S=(magX.^a-magY.^a);
S1=abs(S).^(1/b);
a1=s1'
b1=[b1a1];
x2=b1'
wavwrite(x2,fs,'
\4.wav'
)%增强后语音以4.wav为文件名保存
其降噪后的matlab仿真图形如图四所示。
4、设计结果和仿真波形
图一
图二
图三
图四
5、参考文献
【1】程佩青数字信号处理教程清华大学出版社
【2】吴镇扬数字信号处理高等教育出版社
【3】胡广书数字信号处理导论清华大学出版社
【4】易克初田斌付强语音信号处理国防工业出版社
【5】刘保柱苏彦华张宏林MATLAB7.0从入门到精通人民邮电出版社
【6】罗军辉罗勇江MATLAB7.0在数字信号处理中的应用机械工业出版社
【7】周辉董正宏数字信号处理基础及MATLAB实现北京希望电子出版社
6、设计心得体会
经过两周的数字信号处理课程设计,让我学到了很多东西。
其实我刚开始看到老师给的任务要求时我很茫然,不知道该干嘛,就连选题都不知道怎么选,虽然我学了数字信号处理这门课,但也只是理论上了解一点,在脑海中还是没有一个实质的概念。
不会做我就只有上网去找相关的资料,参考别人做的报告,看看别人是如何做的,有点启发,但还是不知道自己改选什么题目。
后来我又到图书馆借阅相关书籍,也进入了图书馆的电子资源各个网站,看到了关于谱减法的相关的资料,关于降噪的相关的技术现在应该普遍在应用。
我看到了,感觉比较感兴趣,于是就选了这个题目。
题目选好了,但真正难的是做。
这个题目是基于matlab软件的,虽然用过,但很不熟悉,对于matlab的编程时基本不懂,只有重新学了,又到图书馆借了本教程,并且到网上找一些相关的信息。
还好我有一点C语言的基础,学起来相对更容易点,但也有不小的难度。
处理宽带噪声的最通用技术是谱相减法,即从带噪语音估值中减去噪声频谱估值,从而得到纯净语音的频谱。
谱相减方法是基于人的感觉特性,即语音信号的短时幅度比短时相位更容易对人的听觉系统产生影响,从而对语音短时幅度谱进行估计,适用于受加性噪声污染的语音。
在这里我要感谢老师的悉心的指导,同学们的帮助,还有网上matlab技术论坛的朋友们,没有你们我很难完成这次课程设计,我在你们身上也学到了很多东西,让我一生受益。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 减法 音频 处理 教材
![提示](https://static.bdocx.com/images/bang_tan.gif)