基于Matlab的语音处理3_第1页
基于Matlab的语音处理3_第2页
基于Matlab的语音处理3_第3页
基于Matlab的语音处理3_第4页
基于Matlab的语音处理3_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字语音处理上机报告指 导 老 师: 陈振兴 姓 名: 班 级 序号: 日 期: 2014年10月30日 目录一、实验目的:2二、算法设计:31、程序流程图及原理解析:32、源代码:43、代码解析:6三、运行效果及分析:71.原始语音信号:7一、实验目的:理解语谱法语音增强算法,会用MATLAB进行仿真。对已知语音用语谱法实现去噪,画出仿真图。二、算法设计:1、 程序流程图及原理解析:谱减法是利用噪声的统计平稳性以及加性噪声与语音不相关的特点而提出的一种语音增强方法。没有使用参考噪声源,但它假设噪声是统计平稳的,即有语音期间噪声幅度谱的期望值与无语音间隙噪声的幅度谱的期望值相等。 如下即为其原

2、理图:由于是S(n)和d(n) 相互独立,所以 Sk和Nk 独立,而Nk为零均值的高斯分布,所以有:对于一个分析帧内的短时平稳过程,有:为无语音时 , 的统计平均值,则原始语音的估计值如下,其中 是增强后的语音信号的幅度根据以上原理可得流程图如下:2、 源代码:clear all;InputSpeech,fs,nbits = wavread('speech_Chinese.wav'); % 读取语音信号speech = InputSpeech(2001:20000)' % 读取原语音信号的其中一段figure(1);plot(speech); grid on;winsi

3、ze = 256; % 窗长n = 0.004; % 噪声系统size = length(speech);numofwin = floor(size/winsize); % 帧数ham = hamming(winsize)' % 生产汉明窗hamwin = zeros(1,size);enhanced = zeros(1,size);x = speech + n * randn(1,size); % 给选取的语言信号加窗noisy = n * randn(1,winsize); % 噪声估计N = fft(noisy); nmag = abs(N);figure(2);plot(x);

4、 grid on;%-分帧-for q = 1:2*numofwin-1 frame = x(1+(q-1)*winsize/2:winsize+(q-1)*winsize/2);hamwin(1+(q-1)*winsize/2:winsize+(q-1)*winsize/2) = hamwin(1+(q-1)*winsize/2:winsize+(q-1)*winsize/2)+ham; % 加窗 y = fft(frame.*ham); % 带噪声语音FFT变换 mag = abs(y); % 功率谱 phase = angle(y); % 求相位 %-幅度谱- for i = 1:win

5、size if mag(i)-nmag(i)>0 clean(i) = mag(i) - nmag(i); else clean(i) = 0; end end %-在频域合成语音- spectral = clean.* exp(1i * phase); %-IFFT拼接-enhanced(1+(q-1)*winsize/2:winsize+(q-1)*winsize/2) = enhanced(1+(q-1)*winsize/2:winsize+(q-1)*winsize/2)+real(ifft(spectral);end%-除去汉明窗的增益-for i = 1:size if ha

6、mwin(i)=0 enhanced(i) = 0; else enhanced(i) = enhanced(i)/hamwin(i); endendSNR1 = 10*log10(var(speech)/var(noisy);SNR2 = 10*log10(var(speech)/var(enhanced-speech);wavwrite(x,fs,nbits,'noisy.wav');figure(3);plot(enhanced); grid on;3、代码解析:1. 本次实验选取汉明窗长度为256,选取处理信号为200120000,长度为18000,不能被256整除,所

7、以在分帧时通过floor函数四舍五入求整。2. 该代码 n = 0.004, n 即为噪声系数,通过 n * randn(1, size) 将噪声的幅值加以限制。3. 噪声估计范围的大小由汉明窗长度决定,通过 n * randn(1,winsize)来实现。4. 功率谱通过对其傅氏变换求绝对值来实现,相位是通过 angle 函数求得,其原理为:将傅氏变换每个数都映射到复平面(横轴为实数,纵轴为 i),然后通过反三角函数求得与x轴的夹角。5. 在频域合成语音之前,需要将所有频域信号变为复数形式(即:spectral = clean.* exp(1i * phase);),因为在前一步的“短时噪声

8、估计与短时幅度谱作差”之后,输出信号clean(i)实数。6. 语音信号进行IFFT变换时要注意去除每帧信号的重叠部分,因为处理之前早已进行加汉明窗处理,该过程处理以后会使每帧信号之间有50%的重叠部分。7. 最终还原信号要进行“去除汉明窗增益”,该过程不仅是为了去除汉明窗的滤波效果,但由于之前的处理可能使信号出现幅值为0的情况,故而逆滤波过程要注意分类讨论。8. 对比原始信号、加噪信号和最终信号时单单由人耳听觉来判断可能效果不佳,因为这可能受被处理语音的特点影响,这时可根据信噪比的差别来衡量去噪效果,在该代码中SNR1与SNR2可以有该作用。三、运行效果及分析:1. 原始语音信号:原始语音信号加噪声后的语音信号语谱法处理后的语音信号处理前后的信噪比效果分析:1. 由上图可看出,被处理信号加噪后,发音部分(清音)的区别难以用肉眼看出,但观察发音间隙(浊音),可明显看出加噪后幅值变大。2. 通过试听输出语音信号,可以轻易区分加噪后的语音和处理后的语音,但加噪前的语音与处理后的语音比较相似,难以区分。语谱法的物理意义可以理解为:对带

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论