预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

4语音信号增强 一、实验目的 1、了解语音信号噪声抑制的仿真方法及原理; 2、利用谱想减法抑制语音中的噪声; 二、实验要求 1、仿真合成一段带噪语音; 2、使用谱相减法对带噪语音进行增强; 三、实验原理 1、语音信号特点: 语音信号是一种时变的非平稳的随机信号,但是人类的发声系统的生理结构 的变化速度是有一定限度的,在一段时间内(10~30ms)人的声带和声道形状具有相 对稳定性,可以认为其特性是不变的,因而语音的短时谱分析也有相对稳定性,在 语音增强中可以利用短时谱的这种稳定性。 2、语音信号的处理方法 根据语音信号的特点,可以将平稳过程中的处理方法和理论引入到语音信号 的短时处理当中,将语音信号划分为很多短时的语音段,每个短时的语音段称为一 个分析帧。这样,对每一帧语音信号处理就相当于对特征固定的持续信号进行处 理。帧既可以是连续的,也可以采用交叠分帧,一般帧长取10~30ms。取数据时, 前一帧和后一帧的交迭部分称为帧移,帧移与帧长之比一般取为0~1/2。 对取出的语音帧要经过加窗处理,即用一定的窗函数 与信号相乘,从而形成加窗语音。加窗的主要作用在于减少由分帧处理带来的频谱 泄露,这是因为,分帧是对语音信号的突然截断,相当于语音信号的频谱与矩形窗 函数频谱的周期卷积。由于矩形窗频谱的旁瓣较高,信号的频谱会产生“拖尾”, 即频谱泄露。为此,可采用汉明窗,因为汉明窗旁瓣最低,可以有效地克服泄露现 象,具有更平滑的低通特性,得到的频谱比较平滑。 汉明(Hamming)窗定义: 3、谱减法简介 谱相减方法是基于人的感觉特性,即语音信号的短时幅度比短时相位更容易 对人的听觉系统产生影响,从而对语音短时幅度谱进行估计,适用于受加性噪声污 染的语音。 谱减法的基本原理: 图1谱相减法原理图 图中 为加窗后的带噪信号, 为的噪声信号功率谱, 为增强后的语音信号。 由于人耳对语音相位不敏感,所以用原始含噪语音的相位代替估计语音的相 位。谱减法实现的几条公式如下: (1) (2) (3) 由式(1)得到增强后的语音信号的功率谱;然后利用原始含噪语音的相位 代替增强后语音的相位,恢复出增强后的语音信号 。 由公式(1)可看出,估计值 不能保证是非负的,这是因为在估计噪声时存在误差,当估计噪声平均功率大于某 帧带噪语音功率时,该帧得出的估计值 就会出现为负的情况,这些负值我们直接给它们置零。 4、“音乐噪声”的产生 由于在谱减法处理过程中,是以无声期间统计平均的噪声方差代替当前分析 帧各频率点的噪声频率分量,而噪声频谱具有高斯分布,即其幅度随机变化范围很 讲,由谱相减所产生的噪声称为残余噪声,与语音信号不相关,是由具有随机频率 和幅度的窄带信号所组成。在频谱上呈现随机出现的尖峰,便产生了间歇短暂的突 发声调,在听觉上形成有节奏性起伏的类似音乐噪声的残留噪声。 5、语音端点检测技术 在谱减法中噪声功率谱的估计至关重要,如果噪声估计偏差较大的话,将毫 无疑问的影响语音增强质量。语音端点检测是一种噪声估计的算法,目的就是从连 续记录的带噪语音信号中分离出我们真正感兴趣的语音信号。 语音激活检测指从一段包含语音的信号中确定出语音的起始点和终点,又称 端点检测。 语音激活检测是基于语音帧来进行的,语音帧的长度在10~30ms不等。语音 活性检测的方法可以综述为:从输入信号中提取一个或一系列的对比特征参数,然 后将其和一个或一系列的门限阈值进行比较,如图3-2所示。如果超过门限则表示 当前为有音段,否则就表示当前为无音段。而门限通常是根据无音段时语音特征确 定的。 图2语音激活检测框图 6、实验的流程图: 图3实验流程图 ◆用wavread函数读入一个语音信号,然后取其单声道信号得到纯净的语音 信号; ◆用rand函数加入噪声,得到加噪的语音噪声; ◆对加噪的语音信号进行分帧,帧长取20ms,每帧的重合长度设置为帧长 的2/3,用floor函数求帧数; ◆对分帧信号加上汉明窗,并求得信号的fft频谱,进而求得信号能量和 fft的复角度,该角度用于后面增强语音信号的重构; ◆设置阈值为信号开始阶段的能量平均值; ◆进行谱减运算,得到估计出的语音信号功率谱; ◆插入相位谱,计算出语音谱; ◆进行IFFT变换,得到还原的语音帧; ◆对语音信号进行去加重处理,得到最终信号。 四、Matlab程序及实验结果分析 1、源代码 clear;clc; %读入语音信 号 xs=xx(:,1);%取单声道 N=length(xs);%求信号长度 x=xs+0.01*rand(N,1);%加噪 n=fs*20*