语音信号处理

山东建筑大学实验报告

学院:信息与电气工程学院 班级: 电信111 姓名: 彭宝玺 学号: 2011081226 课程: 语音信号处理 实验日期: 2014 年 4 月 25 日 成绩:

实验四 减谱法语音增强技术研究

一、实验目的

本实验要求掌握减谱法语音增强的原理,会利用已学的相关语音特征,构建语音特征矢量,然后自己设计减谱法语音增强程序(也可参考相关文献),能显示干净语音和加噪语音信号及处理后的结果语音信号波形,分析实验结果,写出报告。

二、实验原理

谱减法的基本原理

谱相减方法是基于人的感觉特性,即语音信号的短时幅度比短时相位更容易对人的听觉系统产生影响,从而对语音短时幅度谱进行估计,适用于受加性噪声污染的语音。

由于语音是短时平稳的,所以在短时谱幅度估计中认为它是平稳随机信号,假设s(m)、n(m)和y(m)分别代表语音、噪声和带噪语音,Ss(?)、Sn(?)和Sy(?)分别表示其短时谱。假设噪声n(m)是与语音

s(m)不相关的加性噪声。于是得到信号的加性模型:y(m)?s(m)?n(m) (4-1)

对功率谱有 |Yw(?)|2?|Sw(?)|2?|Nw(?)|2?Sw(?)N*w(?)?S*w(?)Nw(?) (4-4) 原始语音的估值为

|Sw(?)|2?|Yw(?)|2?E[|Nw(?)|2] (4-5)

?(m)?IFFTs?w(?)ej?(?)s?只要在频域用(4-5)式得到纯净语音的谱估计,就可以根据(4-6)式得到增强后的语音。 (4-6)

根据前面分析,我们可以给出谱相减算法的整个算法流程,如图4-1所示:

带噪语音y(m)

??错误!未找到引用源。

FFT |Yw(?)|2 减去估计噪声 相位信息 E[|Nw(?)|2] 增强后的语音s(m) IFFT ?|Sw(?)|1/2

图4-1 谱减法的算法流程

三、实验程序

山东建筑大学实验报告

学院:信息与电气工程学院 班级: 电信111 姓名: 彭宝玺 学号: 2011081226 课程: 语音信号处理 实验日期: 2014 年 4 月 25 日 成绩:

1、噪声叠加到信号上的比较 %在噪声环境下语音信号的增强 %语音信号为读入的声音文件 %噪声为正态随机噪声 clear;

input=wavread('C:\\Users\\Administrator\\Desktop\\yuyinxinhao\\b1.wav'); count=length(input); noise1=0.1*randn(1,count); signal=input; for i=1:count

voice1(i)=signal(i)+noise1(i); end

noise2=0.01*randn(1,count); for i=1:count

voice2(i)=signal(i)+noise2(i); end

noise3=randn(1,count); signal=input; for i=1:count

voice3(i)=signal(i)+noise3(i); end

n=1:count;

figure %对比纯净语音信号,噪音信号和带噪语音信号 subplot(3,1,1); plot(n,signal); title('纯净信号') subplot(3,1,2); plot(n,noise1); title('噪音信号') subplot(3,1,3); plot(n,voice1); title('带噪信号')

figure %对比纯净语音信号频谱,噪音信号和带噪信号频谱 Fss=fft(signal); subplot(3,1,1); plot(n,abs(Fss)); title('纯净信号频谱') Fss1=fft(noise1); subplot(3,1,2); plot(n,abs(Fss1));

山东建筑大学实验报告

学院:信息与电气工程学院 班级: 电信111 姓名: 彭宝玺 学号: 2011081226 课程: 语音信号处理 实验日期: 2014 年 4 月 25 日 成绩:

title('噪音信号频谱') Fv1=fft(voice1); subplot(3,1,3) plot(n,abs(Fv1)); title('带噪信号的频谱')

figure %对比纯净语音信号,噪音信号和带噪语音信号 subplot(3,1,1); plot(n,signal); title('纯净信号') subplot(3,1,2); plot(n,noise2); title('噪音信号') subplot(3,1,3); plot(n,voice2); title('带噪信号')

figure %对比纯净语音信号频谱,噪音信号和带噪信号频谱 Fss=fft(signal); subplot(3,1,1); plot(n,abs(Fss)); title('纯净信号频谱') Fss2=fft(noise2); subplot(3,1,2); plot(n,abs(Fss2)); title('噪音信号频谱') Fv2=fft(voice2); subplot(3,1,3) plot(n,abs(Fv2)); title('带噪信号的频谱')

figure %对比纯净语音信号,噪音信号和带噪语音信号 subplot(3,1,1); plot(n,signal); title('纯净信号') subplot(3,1,2); plot(n,noise3); title('噪音信号') subplot(3,1,3); plot(n,voice3); title('带噪信号')

figure %对比纯净语音信号频谱,噪音信号和带噪信号频谱

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4