上次关于语音增强的原理讲说了噪声估计问题,这次打算说下增益因子如何确定,也就是当噪声已知后,如何进行去噪的问题(把增益因子与带噪语音相乘即可)。这里主要说下MMSE滤波,顺带说下谱减法、维纳滤波。当然也有其它方式来实现语音增强的,比如基于矩阵分解原理的子空间法、基于自适应滤波器的降噪,有的方法icoolmedia比较清楚,有的也还在学习之中,同时也欢迎各位朋友就不足之处批评指正。
先说下经典的谱减法。我们还是假设带噪语音y(n)由纯净语音x(n)和加性噪声d(n)组成,其时域表示与频域表示为
\[\begin{array}{l}
y(n) = x(n) + d(n) \\
Y(\omega ) = X(\omega ) + D(\omega ) \\
\end{array}\]
在语音增强领域中,最常使用的是频域功率谱形式,那么,带噪语音的功率谱可以表示为Y与其共轭相乘,展开可得
\[\begin{array}{l}
|Y(\omega ){|^2} = [X(\omega ) + D(\omega )][{X^*}(\omega ) + {D^*}(\omega )] \\
= |X(\omega ){|^2} + |D(\omega ){|^2} + X(\omega ){D^*}(\omega ) + {X^*}(\omega )D(\omega ) \\
= |X(\omega ){|^2} + |D(\omega ){|^2} + 2{\mathop{\rm Re}\nolimits} \{ X(\omega ){D^*}(\omega )\} \\
\end{array}\]
展开式的第三项被称为交叉项,当纯净语音与加性噪声不相关时,交叉项为0,那么,当我们已经估计出噪声信号的功率谱时,纯净语音信号的估值就可以表示为
\[|\hat X(\omega ){|^2} = |Y(\omega ){|^2} - |\hat D(\omega ){|^2}\]
根据线性滤波理论,可以将这个滤波过程建模为
\[|\hat X(\omega ){|^2} = {H^2}(\omega )|Y(\omega ){|^2}\]
综合以上两式,H可以表示为
\[H(\omega ) = \sqrt {\frac{ {|\hat X(\omega ){|^2}}}{ {|Y(\omega ){|^2}}}} = \sqrt {\frac{ {|Y(\omega ){|^2} - |\hat D(\omega ){|^2}}}{ {|Y(\omega ){|^2}}}} = \sqrt {1 - \frac{ {|\ha