基于MATLAB GUI 的多算法语音增强系统

语音增强是指当语音信号被各种各样的噪声干扰、甚至淹没后,从噪声背景中提取有用的语音信号,抑制、降低噪声干扰的技术。一句话,从含噪语音中提取尽可能纯净的原始语音。
实际语音遇到的干扰可以分以下几类:①周期性噪声,例如电气干扰,发动机旋转部分引起的干扰等,这类干扰表现为一些离散的窄频峰;②冲激噪声,例如-些电火花、放电产生的噪声干扰;③宽带噪声,这是指高斯噪声或白噪声一类的噪声,它们的特点是频带宽,几乎覆盖整个语音频带;④语音干扰,例如话筒中拾入其它人的说话,或者传输时遇到串音引起的语音。对付上述各种不同类型的噪声,增强技术亦是不一样的。
语音增强的一个主要目标是从带噪语音信号中提取尽可能纯净的原始语音。然而,由于干扰通常都是随机的,从带噪语音中提取完全纯净的语音几乎不可能。在这种情况下,语音增强的目的主要有两个:一是改进语音质量,消除背景噪音,使听者乐于接受,不感觉疲劳,这是一种主观度量;二是,这是一种客观度量。这两个目的往往不能兼得。目前有一些对低信噪比带噪语音进行语音增强的方法,可以显著地降低背景噪声,改进语音质量,但并不能提高语音的可懂度,甚至略有下降。
语音增强不但与语音信号数字处理理论有关,而且涉及到人的听觉感知和语音学范畴。再者,噪声的来源众多,因应用场合而异,它们的特性也各不相同。所以必须针对不同噪声,采用不同的语音增强对策。某些语音增强算法在实际应用中己经证明是有效的,它们大体上可分为四类:噪声对消法、谐波增强法、基于参数估计的语音再合成法和基于语音短时谱估计的增强算法。
unction [Pxx] = pwelch_2(x, nwind, noverlap, w_nwind, w_noverlap, nfft)
% 计算短时功率谱密度函数
% x是信号,nwind是每帧长度,noverlap是每帧重叠的样点数
% w_nwind是每段的窗函数,或相应的段长,
% w_noverlap是每段之间的重叠的样点数,nfft是FFT的长度

x=x(;
inc=nwind-noverlap; % 计算帧移
X=enframe(x,nwind,inc)’; % 分帧
frameNum=size(X,2); % 计算帧数
%用pwelch函数对每帧计算功率谱密度函数
for k=1 : frameNum
Pxx(:,k)=pwelch(X(:,k),w_nwind,w_noverlap,nfft);
end
基于MATLAB GUI 的多算法语音增强系统_第1张图片

你可能感兴趣的:(基于MATLAB GUI 的多算法语音增强系统)