经典语音降噪方法-谱减法

一、引言

谱减法作为语音降噪处理算法中的经典算法,因其运行和处理快,而被广泛应用。

二、简单谱减法

2.1 谱减法使用场景

1) 噪声为是平稳的(也即在整个时间范围内,噪声的均值和方差基本保持不变);
2) 噪声为加性噪声

2.2 简单谱减法基本思想

默认混合信号(含噪信号)前几帧仅包含环境噪声,并利用混合信号的前几帧的平均幅度谱或者能量谱作为估计到一帧噪声的幅度谱或者能量谱。最后利用混合信号(含噪信号)的幅度谱或者能量谱与估计到的幅度谱与能量谱相减,得到估计到的干净信号的幅度谱或者能量谱。

2.3 简单谱减法数学模型

接收到的含噪语音信号时域数学模型如下:y ( n ) = x ( n ) + n ( n ) y(n)=x(n)+n(n)y(n)=x(n)+n(n) 其中,y ( n ) y(n)y(n)表示混合信号(含噪信号),也即待降噪信号x ( n ) x(n)x(n)表示干净信的语音信号n ( n ) n(n)n(n)表示噪声信号。其频域表达式如下所示:Y ( ω ) = X ( ω ) + N ( ω ) Y(\omega)=X(\omega)+N(\omega)Y(ω)=X(ω)+N(ω) 出增强后语音信号出现幅度谱负数的情况用0替换∣ X ^ ( ω ) ∣ = { ( ∣ Y ( ω ) ∣ γ − ∣ N ^ ( ω ) ∣ ∣ ∣ 1 γ ∣ Y ( ω ) ∣ γ − ∣ N ^ ( ω ) ∣ ∣ γ ≥ 0 0  else  |\hat{X}(\omega)|=\left\{\begin{array}{cc} \left(|Y(\omega)|^{\gamma}-\left.|\hat{N}(\omega)|^{\mid}\right|^{\frac{1}{\gamma}}\right. & |Y(\omega)|^{\gamma}-|\hat{N}(\omega)|^{\mid \gamma} \geq 0 \\ 0 & \text { else } \end{array}\right.X^(ω)=(Y(ω)γN^(ω)γ10Y(ω)γN^(ω)γ0 else 
其中,若γ = 1 , ∣ Y ( ω ) ∣ \gamma=1,|Y(\omega)|γ=1,Y(ω)为混合信号(含噪信号)的幅度谱;若γ = 2 , ∣ Y ( ω ) ∣ 2 \gamma=2,|Y(\omega)|^2γ=2,Y(ω)2为混合信号(含噪信号)的能量谱;∣ N ^ ( ω ) ∣ ∣ γ |\hat{N}(\omega)|^{\mid \gamma}N^(ω)γ为混合信号(含噪信号)估计到的幅度谱或者能量谱。其系统框图如下所示:

简单谱减法代码实现步骤
1) 初始化参数,确定帧长帧移傅里叶变换长度,确定估计噪声谱的帧数
2) 读入混合语音信号,根据帧长帧移计算帧数
3) 根据确定用于估计噪声谱的帧数,估计噪声谱
4) 对每一帧混合信号进行stft变换,然后用含噪信号谱减去噪声谱,得到增强后的信号的幅度谱或者能量谱
5) 若增强后的信号的幅度谱或者能量谱出现负值,则将其替换为0
6) 利用混合信号的相位增强后信号的幅度谱进行重构-反变换到时域

2.4 简单谱减法结果展示

三、经典语音增强方法-过减法

3.1 简单谱减法的缺点

在简单谱减法过程中,如果混合信号的幅度谱与估计出来的噪声谱相减出现负值,说明对噪声出现了过估计问题,仅是简单的将出现的负值设为0,将会导致信号帧频谱的随机位置上出现小的、独立的峰值,称之为音乐噪声

3.2 改进后的谱减法–>过减法

改进的点如下所示:
1) 在简单谱减法的基础上加上过减因子α \alphaα
2) 对过减后出现的负值β ∣ N ^ ( ω ) ∣ \beta|\hat{N}(\omega)|βN^(ω)替换,∣ N ^ ( ω ) ∣ |\hat{N}(\omega)|N^(ω)为估计到的噪声的幅度谱

3.2 过减法数学公式

改进后的过减法数学公式如下所示,∣ X ^ ( ω ) ∣ = ( ∣ Y ( ω ) ∣ γ − α ∣ N ^ ( ω ) ∣ γ ) 1 γ |\hat{X}(\omega)|=\left(|Y(\omega)|^{\gamma}-\alpha|\hat{N}(\omega)|^{\gamma}\right)^{\frac{1}{\gamma}}X^(ω)=(Y(ω)γαN^(ω)γ)γ1 出增强后语音信号出现幅度谱负数的情况β ∣ N ^ ( ω ) ∣ \beta|\hat{N}(\omega)|βN^(ω)替换
∣ X ^ ( ω ) ∣ = { β ∣ N ^ ( ω ) ∣ ∣ X ^ ( ω ) ∣ < β ∣ N ^ ( ω ) ∣ ∣ X ^ ( ω ) ∣  else  |\hat{X}(\omega)|= \begin{cases}\beta|\hat{N}(\omega)| & |\hat{X}(\omega)|<\beta|\hat{N}(\omega)| \\ |\hat{X}(\omega)| & \text { else }\end{cases}X^(ω)={βN^(ω)X^(ω)X^(ω)<βN^(ω) else 

3.3 过减法降噪结果展示

四、参考文献

1、语音降噪初探
2、鲁东大学-于泓老师语音增强课程


版权声明:本文为ProgrammersFighting原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。