本发明属于语音信号处理技术领域,具体涉及到根据含噪语音每个子带的谱熵估计背景噪声的均值,对含噪语音进行谱减,恢复纯净语音的语音增强方法。
背景技术:
在语音的传输过程中,不可避免地会受到环境噪声的干扰。含噪语音中混杂的噪声不仅使听者产生不舒服的感觉,而且会给语音编码、语音识别等应用系统带来不利影响。因此,在实际应用中,就需要采用各种语音增强方法抑制噪声干扰,增强有用语音信号,增加语音的可懂度。
在传统的语音增强算法中,需要对含噪语音进行端点检测,将其划分为有音段和静音段,即将每一帧信号判断为语音帧和非语音帧。在静音段,估计噪声频谱的均值;在有音段,利用估得的噪声均值,对每个语音帧的幅度谱进行增强,减小噪声干扰的影响。然而,实际环境中的背景噪声往往是非平稳的,在有音段,噪声的类型或强度也有可能发生变化。因此,仅仅在静音段估计噪声,无法实时跟踪非平稳噪声的变化,这会给语音增强带来不利影响。
技术实现要素:
发明目的:针对现有技术中存在的问题,本发明提供一种基于子带谱熵的语音增强方法。
技术方案:一种基于子带谱熵的语音增强方法,首先将含噪语音的幅度谱划分成若干个子带,计算每个子带的谱熵;然后,根据子带谱熵,判断该子带是否存在语音;最后,对无音子带,更新该子带上所有数字频率处的噪声参数;对有音子带,用谱减法对含噪语音的幅度谱进行增强。
本发明的具体步骤如下:
(1)对含噪语音进行预处理,包括加窗、分帧和快速傅里叶变换(fft:fastfouriertransform),并将每帧信号的频谱分为幅度部分和相位部分;
(2)将含噪语音的幅度谱划分为若干个子带,并计算每个子带上的谱熵;
(3)根据每个子带上的谱熵,判断该子带是否存在语音;
(4)若某子带上不存在语音,则对该子带上的每个数字频率,用平滑滤波方式更新其噪声均值,并将其幅度谱设置为噪声均值的0.01倍;
(5)若某子带上存在语音,则对该子带上的每个数字频率,用加权谱减法减小噪声的影响,增强含噪语音的幅度谱,提高含噪语音的信噪比;
(6)对增强后的语音信号进行ifft(inversefft)运算,得到时域信号;
(7)对时域帧信号进行重叠相加,得到增强后的连续语音。
本发明采用上述技术方案,具有以下有益效果:
本发明可以对每一帧信号的每个子带的语音存在性进行判断,增强噪声估计算法对非平稳环境的实时跟踪能力。
附图说明
图1为本发明实施例的基于子带谱熵的语音增强方法的总体框架图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于
本技术:
所附权利要求所限定的范围。
如图1所示,基于子带谱熵的语音增强方法主要包括语音预处理、子带划分、子带谱熵计算、噪声估计、幅度增强、ifft和重叠相加部分。
1、语音预处理
对含噪语音进行预处理,包括加窗、分帧和fft。语音信号的采样频率为8000hz,窗函数为海明窗,帧长为256,帧移为128。含噪语音经过预处理,可以得到每帧信号的幅度谱和相位谱,幅度谱用于噪声估计和谱减,相位谱用于在后端恢复时域信号。一般认为相位对听觉系统的影响很小,可以直接用含噪语音的相位作为纯净语音的相位。
2、子带谱熵计算
首先将每帧语音的幅度谱划分为8个等间距的子带;然后,计算每个子带上的谱熵;最后,根据每个子带上的谱熵,判断该子带是否存在语音。
3、噪声估计
若某子带上不存在语音,则对该子带上的每个数字频率k,用平滑滤波方式更新其噪声均值n(k,l):
n(k,l)=α·n(k,l-1)+(1-α)·|y(k,l)|(1)
其中,n(k,l-1)是上一帧(第(l-1)帧)的噪声估计值;|y(k,l)|是当前帧(第l帧)的含噪语音幅度谱;实数α是平滑系数,这里取α=0.9。若某子带上存在语音,则将α设置为1,即停止更新噪声,以上一帧的噪声估计值作为本帧的噪声估计值。
4、幅度增强
若某子带上存在语音,则对该子带上的每个数字频率k,用加权谱减法减小噪声的影响:
其中,
其中,e(m)是当前帧第m个子带的对数能量;emin和emax是e(m)的最小值和最大值;βmax是β(m)的上限,这里设置为6。
若某子带上不存在语音,则对该子带上的每个数字频率k,用下式估计
5、ifft与重叠相加
首先将含噪语音的相位作为纯净语音的相位,与纯净语音幅度谱的估计值