单麦降噪经典书籍《Speech enhancement: theory and practice》读书笔记(第5章)
目录
- 前言
- 第5章 谱减算法
- 5.1 谱减的基本原理
- 5.2 谱减的几何分析
- 5.2.1 带噪信号与纯净信号相位差的上限
- 5.2.2 不同的谱减形式及理论局限
- 5.3 谱减法的缺点
- 5.4 谱减法中使用过减技术
- 5.5 非线性谱减
- 5.6 多带谱减法
- 5.7 MMSE(Minimum Mean Square Error)谱减算法
- 5.8 扩展谱减法
- 5.9 使用自适应增益平均的谱减
- 5.10 选择性谱减
- 5.11 基于感知特性的谱减
- 5.12 谱减算法的性能
前言
本文主要记录本人选读单麦降噪经典书籍《Speech enhancement: theory and practice》的读书笔记,内容会持续更新 。
第1章~第4章:https://blog.csdn.net/weixin_42601303/article/details/109667743
第5章:https://blog.csdn.net/weixin_42601303/article/details/109804212
第6章:https://blog.csdn.net/weixin_42601303/article/details/114365082
此处附上该书的网盘链接,里面有全套代码,供大家学习参考
链接:https://pan.baidu.com/s/1BFyPPiAigoLJSe995SyPlw
提取码:7ycl
第5章 谱减算法
假设噪声为加性噪声,通过从带噪语音谱中减去对噪声谱的估计,就可以得到纯净的信号谱。在不存在目标信号的期间,可以对噪声谱进行估计和更新。做出这一假设是基于噪声的平稳性,这样噪声的频谱在每次更新之间不会有很大的改变。
5.1 谱减的基本原理
假设y(n)y(n)y(n)为受噪声污染的输入信号,其由纯净语音信号x(n)x(n)x(n)和加性噪声d(n)d(n)d(n)组成,即
y(n)=x(n)+d(n)(1)y(n)=x(n)+d(n)\tag{1}y(n)=x(n)+d(n)(1)
两边同时做傅里叶变换
Y(ω)=X(ω)+D(ω)(2)Y(\omega )=X(\omega )+D(\omega )\tag{2}Y(ω)=X(ω)+D(ω)(2)
噪声的幅度谱∣D(ω)∣|D(\omega )|∣D(ω)∣是未知的,但是可以通过无语音活动时的平均幅度谱的估计来代替;噪声的相位ϕd(ω)\phi _{d}(\omega )ϕd(ω)可以由带噪语音的相位ϕy(ω)\phi _{y}(\omega )ϕy(ω)来代替,这是因为相位不会对语音可懂度造成影响,只是可能在一定程度上影响语音质量。在(2)(2)(2)式中做以上替换,可以得到纯净信号谱的一种估计:
X^(ω)=[∣Y(ω)∣−∣D^(ω)∣]ejϕy(ω)(3)\hat{X}(\omega )=[|Y(\omega )|-|\hat{D}(\omega )|]e^{j\phi _{y}(\omega )}\tag{3}X^(ω)=[∣Y(ω)∣−∣D^(ω)∣]ejϕy(ω)(3)
增强信号的幅度谱X^(ω)(=∣Y(ω)∣−∣D^(ω)∣)\hat{X}(\omega )(=|Y(\omega )|-|\hat{D}(\omega )|)X^(ω)(=∣Y(ω)∣−∣D^(ω)∣)可能是负值,这是因为错误地估计了噪声谱。然而,幅度谱不应该是负值,当两个谱相减时,必须确保X^(ω)\hat{X}(\omega )X^(ω)总是非负值。解决办法之一就是对差分谱做半波整流
∣X^(ω)∣={∣Y(ω)∣−∣D^(ω)∣,if ∣Y(ω)∣>∣D^(ω)∣0,others(4)|\hat{X}(\omega )|= \begin{cases} |Y(\omega )|-|\hat{D}(\omega )|, & \text{if $|Y(\omega )|>|\hat{D}(\omega )|$} \\ 0, & \text{others} \\ \end{cases} \tag{4} ∣X^(ω)∣={∣Y(ω)∣−∣D^(ω)∣,0,if ∣Y(ω)∣>∣D^(ω)∣others(4)
这种半波整流的处理只是保证∣X^(ω)∣|\hat{X}(\omega )|∣X^(ω)∣为非负的众多方法之一,也可以使用其他方法。
有些情况下,使用功率谱会好于使用幅度谱。为了得到带噪语音的功率谱,将(2)(2)(2)式中的Y(ω)Y(\omega)Y(ω)与它的共轭Y∗(ω)Y^{*} (\omega )Y∗(ω)相乘
∣Y(ω)∣2=∣X(ω)∣2+∣D(ω)∣2+X(ω)⋅D∗(ω)+X∗(ω)⋅D(ω)=∣X(ω)∣2+∣D(ω)∣2+2Re{X(ω)D∗(ω)}(5)\begin{aligned} |Y(\omega )|^{2}&=|X(\omega )|^{2}+|D(\omega )|^{2}+X(\omega )\cdot D^{*}(\omega )+X^{*}(\omega )\cdot D(\omega ) \\ &=|X(\omega )|^{2}+|D(\omega )|^{2}+2Re\left \{ X(\omega ) D^{*}(\omega ) \right \} \end{aligned} \tag{5} ∣Y(ω)∣2=∣X(ω)∣2+∣D(ω)∣2+X(ω)⋅D∗(ω)+X∗(ω)⋅D(ω)=∣X(ω)∣2+∣D(ω)∣2+2Re{X(ω)D∗(ω)}(5)
其中∣D(ω)∣2|D(\omega )|^{2}∣D(ω)∣2,X(ω)⋅D∗(ω)X(\omega )\cdot D^{*}(\omega )X(ω)⋅D∗(ω),X∗(ω)⋅D(ω)X^{*}(\omega )\cdot D(\omega )X∗(ω)⋅D(ω)并不能直接得到,而是通过E{∣D(ω)∣2}E\left \{ |D(\omega )|^{2} \right \}E{∣D(ω)∣2},E{X(ω)⋅D∗(ω)}E\left \{ X(\omega )\cdot D^{*}(\omega ) \right \}E{X(ω)⋅D∗(ω)}和E{X∗(ω)⋅D(ω)}E\left \{ X^{*}(\omega )\cdot D(\omega ) \right \}E{X∗(ω)⋅D(ω)}来近似。E{∣D(ω)∣2}E\left \{ |D(\omega )|^{2} \right \}E{∣D(ω)∣2}通过无语音段估计得到,表示为∣D^(ω)∣2|\hat{D}(\omega )|^{2}∣D^(ω)∣2;如果我们假定d(n)d(n)d(n)具有零均值,并且与纯净信号x(n)x(n)x(n)不相关,则E{X(ω)⋅D∗(ω)}E\left \{ X(\omega )\cdot D^{*}(\omega ) \right \}E{X(ω)⋅D∗(ω)}和E{X∗(ω)⋅D(ω)}E\left \{ X^{*}(\omega )\cdot D(\omega ) \right \}E{X∗(ω)⋅D(ω)}这两项简化为零,即
∣X^(ω)∣2=∣Y(ω)∣2−∣D^(ω)∣2(6)|\hat{X}(\omega )|^{2}=|Y(\omega )|^{2}-|\hat{D}(\omega )|^{2}\tag{6}∣X^(ω)∣2=∣Y(ω)∣2−∣D^(ω)∣2(6)
[X(ω)⋅D∗(ω)]∗=X∗(ω)⋅D(ω)[X(\omega )\cdot D^{*}(\omega )]^{*}=X^{*}(\omega )\cdot D(\omega )[X(ω)⋅D∗(ω)]∗=X∗(ω)⋅D(ω)
互相关的定义
x(t)→FX(ω)x(t)\overset{F}{\rightarrow}{X(\omega )}x(t)→FX(ω)
h∗(−t)→FH∗(ω)h^{*}(-t)\overset{F}{\rightarrow}{H^{*}(\omega )}h∗(−t)→FH∗(ω)
Rτ=∫−∞+∞x(t)h∗(t−τ)dt=x(t)∗h∗(−t)→FX(ω)⋅H∗(ω)R_{\tau }=\int_{-\infty }^{+\infty }x(t)h^{*}(t-\tau )dt=x(t)*h^{*}(-t)\overset{F}{\rightarrow}{X(\omega )\cdot H^{*}(\omega )}Rτ=∫−∞+∞x(t)h∗(t−τ)dt=x(t)∗h∗(−t)→FX(ω)⋅H∗(ω)
如果对(6)(6)(6)式的两边同时进行傅里叶变换,我们可以在自相关域得到一个类似的方程
rx^x^(m)=ryy(m)−rd^d^(m)(7)r_{\hat{x}\hat{x}}(m)=r_{yy}(m)-r_{\hat{d}\hat{d}}(m)\tag{7}rx^x^(m)=ryy(m)−rd^d^(m)(7)
其中rx^x^(m)r_{\hat{x}\hat{x}}(m)rx^x^(m),ryy(m)r_{yy}(m)ryy(m)和rd^d^(m)r_{\hat{d}\hat{d}}(m)rd^d^(m)分别是估计的纯净信号、带噪语音信号和估计的噪声信号的自相关序列。因此,原则上也可以在自相关域进行减法操作。
(6)(6)(6)式也可以写成
∣X^(ω)∣2=H2(ω)∣Y(ω)∣2(8)|\hat{X}(\omega )|^{2}=H^{2}(\omega )|Y(\omega )|^{2}\tag{8}∣X^(ω)∣2=H2(ω)∣Y(ω)∣2(8)
其中
H(ω)=1−∣D^(ω)∣2∣Y(ω)∣2(9)H(\omega )=\sqrt{1-\frac{\left | \hat{D}(\omega ) \right |^{2}}{\left | Y(\omega ) \right |^{2}}}\tag{9}H(ω)=1−∣Y(ω)∣2∣∣∣D^(ω)∣∣∣2(9)
我们称H(ω)H(\omega)H(ω)为增益函数或抑制函数。H(ω)H(\omega)H(ω)是实偶函数意味着h(n)h(n)h(n)是以零点成偶对称的,因此是非因果的,在时域,相当于一个非因果的滤波运算。
谱减算法流程图
该方法存在问题
(5)(5)(5)式中的交叉项仅在统计意义上为零,即假设拥有足够的数据以得到期望值,同时假定信号是平稳的。然而,语音是非平稳的。在大多数应用中,语音是基于逐帧的形式被处理,并且这些交叉期望值不一定为零。
从上图可以看出,与带噪语音信号功率谱比较,至少在低频部分,交叉项并非小到可以忽略的地步。尽管交叉项或许不应该在整个频谱上都被忽略,但是大多数谱减法为了简单起见,都假设这些项为零。
5.2 谱减的几何分析
Y(ω)Y(\omega )Y(ω)可以在复平面以几何形式表示为两个复数X(ω)X(\omega )X(ω)和D(ω)D(\omega)D(ω)的和。
5.2.1 带噪信号与纯净信号相位差的上限
tan(θY−θX)=aDsin(θD−θX)aX+aDcos(θD−θX)(10)tan(\theta _{Y}-\theta _{X})=\frac{a_{D}sin(\theta _{D}-\theta _{X})}{a_{X}+a_{D}cos(\theta _{D}-\theta _{X})}\tag{10}tan(θY−θX)=aX+aDcos(θD−θX)aDsin(θD−θX)(10)
当噪声和纯净信号向量相互正交,即θD−θX=π/2\theta _{D}-\theta _{X}=\pi/2θD−θX=π/2的时候,相位差达到最大值
θmax=(θY−θX)∣θD−θX=π/2=tan−1aDaX=tan−11ξ(11)\theta_{max}=(\theta_{Y}-\theta_{X})|_{\theta_{D}-\theta_{X}=\pi /2}=tan^{-1}\frac{a_{D}}{a_{X}}=tan^{-1}\frac{1}{\sqrt{\xi }}\tag{11}θmax=(θY−θX)∣θD−θX=π/2=tan−1aXaD=tan−1ξ1(11)
定义ξ=aX2aD2\xi =\frac{a_{X}^{2}}{a_{D}^{2}}ξ=aD2aX2为频谱瞬时信噪比
信噪比越大,则带噪相位与纯净相位之差越小。这表明,当某频率处具有较大的信噪比时,用带噪信号谱的相位来代替纯净信号谱相位是比较可靠的。
听觉实验表明,当所有频段的信噪比大于约8dB8dB8dB时,我们感觉不到噪声对信号相位的影响。否则,相位失配将可能使人感觉到音质“粗糙”。
5.2.2 不同的谱减形式及理论局限
令(2)(2)(2)式两侧的实部和虚部分别相等
aYcos(θY)=aXcos(θX)+aDcos(θD)(12)a_{Y}cos(\theta _{Y})=a_{X}cos(\theta _{X})+a_{D}cos(\theta _{D})\tag{12}aYcos(θY)=aXcos(θX)+aDcos(θD)(12)
aYsin(θY)=aXsin(θX)+aDsin(θD)(13)a_{Y}sin(\theta _{Y})=a_{X}sin(\theta _{X})+a_{D}sin(\theta _{D})\tag{13}aYsin(θY)=aXsin(θX)+aDsin(θD)(13)
通过将式(12)(12)(12)和式(13)(13)(13)求平方以后相加,得到
aY2=aX2+aD2+2aXaDcos(θX−θD)(14)a_{Y}^{2}=a_{X}^{2}+a_{D}^{2}+2a_{X}a_{D}cos(\theta _{X}-\theta _{D})\tag{14}aY2=aX2+aD2+2aXaDcos(θX−θD)(14)
aX=−aDcXD±aD2(cXD2−1)+aY2(15)a_{X}=-a_{D}c_{XD}\pm \sqrt{a_{D}^{2}(c_{XD}^{2}-1)+a_{Y}^{2}}\tag{15}aX=−aDcXD±aD2(cXD2−1)+aY2(15)
cXD=△cos(θX−θD)(16)c_{XD}\overset{\mathrm{\bigtriangleup }}{=}cos(\theta _{X}-\theta _{D})\tag{16}cXD=△cos(θX−θD)(16)
若式(15)(15)(15)中cXD=0c_{XD}=0cXD=0,则纯净信号谱和噪声谱是正交的(不相关的)。因此,在信号向量与噪声向量相互正交这一条件下,标准的谱减形式(式(4)(4)(4))是非常精确的。同理,基于式(14)(14)(14),我们可以推断功率谱减形式(式(6)(6)(6))在同样条件下也是精确的。
通过三角关系图,可以推导该方程的另外一种形式
aX2=aY2+aD2+−2aYaDcos(θY−θD)(17)a_{X}^{2}=a_{Y}^{2}+a_{D}^{2}+-2a_{Y}a_{D}cos(\theta _{Y}-\theta _{D})\tag{17}aX2=aY2+aD2+−2aYaDcos(θY−θD)(17)
aX=−aYcXY±aY2(cXY2−1)+aD2(18)a_{X}=-a_{Y}c_{XY}\pm \sqrt{a_{Y}^{2}(c_{XY}^{2}-1)+a_{D}^{2}}\tag{18}aX=−aYcXY±aY2(cXY2−1)+aD2(18)
cXY=△cos(θX−θY)(19)c_{XY}\overset{\mathrm{\bigtriangleup }}{=}cos(\theta _{X}-\theta _{Y})\tag{19}cXY=△cos(θX−θY)(19)
若式(18)(18)(18)中cXY=1c_{XY}=1cXY=1,并取负号,则有aX=aY−aDa_{X}=a_{Y}-a_{D}aX=aY−aD。在高信噪比和低信噪比的时候,带噪信号和纯净信号近似共线,在该条件下,标准的谱减形式(式(4)(4)(4))是非常精确的。
式(15)(15)(15)和式(18)(18)(18)给出的减法形式易于使用,并且由于它们没有引入信号和噪声之间的统计假设,因而考虑了交叉项的影响,这样就比式(4)(4)(4)和式(6)(6)(6)更为精确。但是它们也有含糊的地方,那就是没有一个简单的办法来确定使用其中的正号还是负号。
另一个障碍就是其依赖于纯净信号的幅度,一个可能的解决方案是使用预先估计的aXa_{X}aX的值,这样的话需要隐含地假设帧与帧之间的幅度谱不会大幅改变。
瞬时信噪比与信号/噪声相位之间的关系
ξ=△aX2aD2=1−cYD21−cYX2(20)\xi \overset{\bigtriangleup }{=}\frac{a_{X}^{2}}{a_{D}^{2}}=\frac{1-c_{YD}^{2}}{1-c_{YX}^{2}}\tag{20}ξ=△aD2aX2=1−cYX21−cYD2(20)
抑制函数与带噪/纯净信号和噪声信号相位差之间的关系
h=△aXaY=1−cYD21−cXD2(21)h \overset{\bigtriangleup }{=}\frac{a_{X}}{a_{Y}}=\sqrt{\frac{1-c_{YD}^{2}}{1-c_{XD}^{2}}}\tag{21}h=△aYaX=1−cXD21−cYD2(21)
当cXD=0c_{XD}=0cXD=0,即当信号和噪声统计不相关时,该抑制函数简化为功率谱减法的抑制函数形式(式(9)(9)(9))。
5.3 谱减法的缺点
早先提到过,噪声谱的错误估计会导致谱减后的频谱存在负值,最简单的解决方法是对这些值进行半波整流,以保证非负的幅度谱。但是这种对负值的非线性处理,会导致信号帧频谱的随机频率位置上出现小的、独立的峰值,转换到时域以后,这些峰值听起来就像帧与帧之间频率随机变化的多频音。这种由半波整流过程引入的“噪声”被描述为具有多频音音质的颤音,一般被称为“音乐噪声”,音乐噪声在语音的清音段更为明显,此时噪声的功率与语音的功率很接近。
5.4 谱减法中使用过减技术
Boll所使用的的减小音乐噪声的办法是对谱减的负值设定一个下限,而不是将它们设为0(式(4)(4)(4))
∣X^i(ω)∣={∣Yi(ω)∣−∣D^(ω)∣,if ∣Yi(ω)∣−∣D^(ω)∣>max∣D^(ω)∣minj=i−1,i,i+1∣X^j(ω)∣,others(22)|\hat{X}_{i}(\omega )|= \begin{cases} |Y_{i}(\omega )|-|\hat{D}(\omega )|, & \text{if $|Y_{i}(\omega )|-|\hat{D}(\omega )|>max|\hat{D}(\omega )|$} \\ \underset{j=i-1,i,i+1}{min}\left | \hat{X}_{j}(\omega ) \right |, & \text{others} \\ \end{cases} \tag{22} ∣X^i(ω)∣=⎩⎨⎧∣Yi(ω)∣−∣D^(ω)∣,j=i−1,i,i+1min∣∣∣X^j(ω)∣∣∣,if ∣Yi(ω)∣−∣D^(ω)∣>max∣D^(ω)∣others(22)
该方法的主要缺点在于它需要使用后续帧的增强语音谱,因此可能不能满足实时应用。
Berouti提出了一种不需要使用未来信息的方法,该方法包括减去噪声谱的过估计,同时防止计算结果小于一个预设值(谱下限)
∣X^(ω)∣2={∣Y(ω)∣2−α∣D^(ω)∣2,if ∣Y(ω)∣>(α+β)∣D^(ω)∣β∣D^(ω)∣2,others(23)|\hat{X}(\omega )|^{2}= \begin{cases} |Y(\omega )|^{2}-\alpha|\hat{D}(\omega )|^{2}, & \text{if $|Y(\omega )|>(\alpha+\beta)|\hat{D}(\omega )|$} \\ \beta|\hat{D}(\omega )|^{2}, & \text{others} \\ \end{cases} \tag{23} ∣X^(ω)∣2={∣Y(ω)∣2−α∣D^(ω)∣2,β∣D^(ω)∣2,if ∣Y(ω)∣>(α+β)∣D^(ω)∣others(23)
其中α\alphaα为过减因子(α≥1)(\alpha\geq1)(α≥1),β(0<β≪1)\beta(0<\beta\ll1)β(0<β≪1)是谱下限参数。
使用过减因子和谱下限的主要动机在于:当从带噪语音谱中减去噪声谱估计的时候,频谱中会残留一些隆起的部分或谱峰。通过对噪声谱的过减处理,例如通过令α>1\alpha>1α>1我们可以减小宽带谱峰的幅度,有时还可以将其完全消除。但是仅仅这样还不够,因为谱峰周围可能仍然存在较深的谱谷,因此需要使用谱下限来填充这些谱谷,并可能掩盖那些具有相近幅度的谱峰。
参数β\betaβ可以控制残留噪声的多少以及音乐噪声的大小。如果谱下限参数太大,则可能听到残留噪声信号但是感觉不到音乐噪声;相反,如果β\betaβ太小,则可能带来讨厌的音乐噪声,但是原噪声信号可以被极大地抑制。
参数α\alphaα影响语音谱在谱减过程中的失真程度。如果α\alphaα过大,处理后的信号会严重失真以致语音可懂度受到影响。
实验结果表明:要尽可能好地抑制噪声同时又能达到最小的音乐噪声,在高信噪比数据帧时,α\alphaα应该取小值,对低信噪比帧,α\alphaα应该取大值。
α=α0−320SNR−5dB≤SNR≤20dB\alpha =\alpha _{0}-\frac{3}{20}SNR\, \, \, \, \,-5dB\leq SNR\leq 20dBα=α0−203SNR−5dB≤SNR≤20dB
其中α0\alpha _{0}α0是在0dB0dB0dB信噪比时期望的α\alphaα值,SNR为每一帧的短时信噪比估计,是信噪比的一种后验估计。
Berouti等人做了大量的实验来确定α\alphaα和β\betaβ的最优值。α0\alpha _{0}α0处于3到6时,被证明具有良好的性能。谱下限参数β\betaβ的取值则被证实与后验SNR的值相关。对于高噪声级(SNR=-5dB),建议β\betaβ的取值范围为0.02到0.06.对低噪声级(SNR ≥\geq≥ 0dB,β\betaβ取0.005到0.02。推荐25~35ms长度的分析窗,若使用短语20ms的分析帧可能导致粗糙的语音质量。
5.5 非线性谱减
Berouti等人提出的谱减算法,假设了噪声对所有的频谱分量具有同等的影响,继而只用了一个过减因子α\alphaα来减去整个频谱上对噪声的过估计。然而现实世界中的噪声对低频的影响可能要大于对高频部分的影响,这意味着可以用一个频率相关的减法因子来处理不同类型的噪声。
非线性谱减(Nonlinear Spectral Subtraction,NSS)令过减因子与频率相关且减法过程非线性,信噪比低则减去一个较大的值,信噪比高则减去较小的值。
∣X^(ω)∣={∣Yˉ(ω)∣−α(ω)N(ω),if ∣Yˉ(ω)∣>α(ω)N(ω)+β∣Dˉ(ω)∣β∣Yˉ(ω)∣,others(24)|\hat{X}(\omega )|= \begin{cases} |\bar{Y}(\omega )|-\alpha(\omega)N(\omega ), & \text{if $|\bar{Y}(\omega )|>\alpha(\omega)N(\omega )+\beta|\bar{D}(\omega )|$} \\ \beta|\bar{Y}(\omega )|, & \text{others} \\ \end{cases} \tag{24} ∣X^(ω)∣={∣Yˉ(ω)∣−α(ω)N(ω),β∣Yˉ(ω)∣,if ∣Yˉ(ω)∣>α(ω)N(ω)+β∣Dˉ(ω)∣others(24)
∣Yˉi(ω)∣=μy∣Yˉi−1(ω)∣+(1−μy)∣Yi(ω)∣(25)\left | \bar{Y}_{i}(\omega ) \right |=\mu _{y}\left | \bar{Y}_{i-1}(\omega )\right |+(1-\mu _{y})\left | Y_{i}(\omega ) \right |\tag{25}∣∣Yˉi(ω)∣∣=μy∣∣Yˉi−1(ω)∣∣+(1−μy)∣Yi(ω)∣(25)
∣Dˉi(ω)∣=μd∣Dˉi−1(ω)∣+(1−μd)∣D^i(ω)∣(26)\left | \bar{D}_{i}(\omega ) \right |=\mu _{d}\left | \bar{D}_{i-1}(\omega )\right |+(1-\mu _{d})\left | \hat{D}_{i}(\omega ) \right |\tag{26}∣∣Dˉi(ω)∣∣=μd∣∣Dˉi−1(ω)∣∣+(1−μd)∣∣∣D^i(ω)∣∣∣(26)
其中β\betaβ为谱下限,∣Yˉ(ω)∣|\bar{Y}(\omega )|∣Yˉ(ω)∣和∣Dˉ(ω)∣|\bar{D}(\omega )|∣Dˉ(ω)∣分别为带噪语音和噪声的平滑估计,α(ω)\alpha(\omega)α(ω)为频率相关的减法因子,N(ω)N(\omega )N(ω)为噪声谱的非线性函数,常数μy\mu _{y}μy和μd\mu _{d}μd的取值范围为0.1≤μy≤0.50.1\leq\mu _{y}\leq0.50.1≤μy≤0.5和0.5≤μd≤0.90.5\leq\mu _{d}\leq0.90.5≤μd≤0.9。过减因子α(ω)\alpha(\omega)α(ω)通过计算过去40帧的噪声幅度谱∣D^i(ω)∣\left | \hat{D}_{i}(\omega ) \right |∣∣∣D^i(ω)∣∣∣的最大值求得:
α(ω)=maxi−40⩽j⩽i(∣D^j(ω)∣)(27)\alpha (\omega )=\underset{i-40\leqslant j\leqslant i}{max}(\left | \hat{D}_{j}(\omega ) \right |)\tag{27}α(ω)=i−40⩽j⩽imax(∣∣∣D^j(ω)∣∣∣)(27)
本书关于α(ω)\alpha(\omega)α(ω)的讲解我也没太看懂,如有需要,建议参考文献1
5.6 多带谱减法
多带谱减法基于这样一个事实,即通常情况下,噪声不会对语音的整个频谱都具有同等的影响,有些频率上的影响会比别的频率更严重,这取决于噪声的频谱特性。
多带与非线性谱减的主要区别在于对过减因子的估计,多带算法针对频带估计减法因子,而非线性谱减法则针对每一个频点。针对每个频点来估计减法因子有个缺点,即每个频点上的信噪比可能帧与帧之间有很大的变化,这种剧烈变化是谱减法中所遇到的语音失真(音乐噪声)的原因,而子带信噪比的变化则不会特别剧烈,因此,利用多带谱减法有望显著减小语音失真。
在多带算法中,语音频谱被划分为NNN个互不重叠的子带,谱减法在每个子带中独立运行,第iii个子带的纯净语音信号谱的估计通过下式得到:
∣X^i(ωk)∣2=∣Yˉi(ωk)∣2−αi⋅δi⋅∣D^i(ωk)∣2bi≤ωk≤ei(28)\left | \hat{X}_{i}(\omega _{k}) \right |^{2}=\left | \bar{Y}_{i}(\omega _{k}) \right |^{2}-\alpha _{i}\cdot \delta _{i}\cdot \left | \hat{D}_{i}(\omega _{k}) \right |^{2} \; \; \; \; \; b_{i}\leq \omega _{k}\leq e_{i}\tag{28}∣∣∣X^i(ωk)∣∣∣2=∣∣Yˉi(ωk)∣∣2−αi⋅δi⋅∣∣∣D^i(ωk)∣∣∣2bi≤ωk≤ei(28)
bib_{i}bi和eie_{i}ei是第iii个频带上频点的起始和结束点,αi\alpha_{i}αi为第iii个子带的过减因子$, δi\delta_{i}δi为子带减法因子,它可以按子带独立设置以满足不同的噪声抑制需求,Yˉi(ωi)\bar{Y}_{i}(\omega_{i})Yˉi(ωi)为预处理过程中经过平滑的第iii个频带的噪声语音谱。对式(28)(28)(28)的减法过程产生的负值取下限:
∣X^i(ωk)∣2={∣X^i(ωk)∣2,if ∣X^i(ωi)∣2>β∣Yˉi(ωk)∣2β∣Yˉi(ωk)∣2,others(29)|\hat{X}_{i}(\omega_{k} )|^{2}= \begin{cases} |\hat{X}_{i}(\omega_{k} )|^{2}, & \text{if $|\hat{X}_{i}(\omega_{i} )|^{2}>\beta|\bar{Y}_{i}(\omega_{k} )|^{2}$} \\ \beta|\bar{Y}_{i}(\omega_{k} )|^{2}, & \text{others} \\ \end{cases} \tag{29} ∣X^i(ωk)∣2={∣X^i(ωk)∣2,β∣Yˉi(ωk)∣2,if ∣X^i(ωi)∣2>β∣Yˉi(ωk)∣2others(29)
其中的谱下限参数β\betaβ设为0.002。为了进一步掩盖剩下的音乐噪声,少量的带噪信号谱会被重新引入增强后的信号谱:
∣Xˉˉi(ωk)∣2=∣X^i(ωk)∣2+0.05∣Yˉi(ωk)∣2(30)\left | \bar{\bar{X}}_{i}(\omega _{k}) \right |^{2}=\left | \hat{X}_{i}(\omega _{k}) \right |^{2}+0.05\left | \bar{Y}_{i}(\omega _{k}) \right |^{2}\tag{30}∣∣∣Xˉˉi(ωk)∣∣∣2=∣∣∣X^i(ωk)∣∣∣2+0.05∣∣Yˉi(ωk)∣∣2(30)
子带过减因子αi\alpha_{i}αi是第iii个频率子带的信噪比的函数
αi={4.74,SNRi<−54−320(SNRi),−5≤SNRi≤201,SNRi>20(31)\alpha_{i}= \begin{cases} 4.74, & \text{ SNR$_{i}<-5$} \\ 4-\frac{3}{20}(\text{SNR}_{i}), & \text{$-5\leq \text{SNR}_{i}\leq 20$} \\ 1, & \text{ SNR$_{i}>20$} \\ \end{cases} \tag{31} αi=⎩⎪⎨⎪⎧4.74,4−203(SNRi),1, SNRi<−5−5≤SNRi≤20 SNRi>20(31)其中子带信噪比为
SNRi=10log10(∑ωk=biei∣Yˉi(ωk)∣2∑ωk=biei∣D^i(ωk)∣2)(32)\text{SNR}_{i}=10log_{10}(\frac{\sum_{\omega _{k}=b_{i}}^{e_{i}}\left | \bar{Y}_{i}(\omega _{k}) \right |^{2}}{\sum_{\omega _{k}=b_{i}}^{e_{i}}\left | \hat{D}_{i}(\omega _{k}) \right |^{2}})\tag{32}SNRi=10log10(∑ωk=biei∣∣∣D^i(ωk)∣∣∣2∑ωk=biei∣∣Yˉi(ωk)∣∣2)(32)
δi\delta_{i}δi权重为子带间的控制提供了更大的灵活性,δi\delta_{i}δi通过经验确定:
δi={1,fi≤1kHz2.5,1kHz<fi≤Fs2−2kHz1.5,fi>Fs2−2kHz(33)\delta_{i}= \begin{cases} 1, & \text{ $f_{i}\leq1 \, kHz$} \\ 2.5, & \text{$1kHz<f_{i}\leq \frac{Fs}{2}-2 \, kHz$}\\ 1.5, & \text{ $f_{i}>\frac{Fs}{2}-2 \, kHz$} \\ \end{cases} \tag{33} δi=⎩⎪⎨⎪⎧1,2.5,1.5, fi≤1kHz1kHz<fi≤2Fs−2kHz fi>2Fs−2kHz(33)在低频带使用较小的δ\deltaδ地目的是为了最小化语音失真,因为绝大部分语音能量都处于低频部分,在高频带也会使用这种较缓和的减法。
预处理的目的是为了减少谱估计的波动,进而减少残留噪声。预处理通过对数据进行预设置,使用了平滑后的功率谱,而不是直接使用原信号的功率谱。对幅度谱进行平滑可以减小语音谱的波动并提高语音质量,对噪声谱的估计进行平滑操作并未发现有益于减少残留噪声。
一种加权谱平均会利用到前续以及后续的语音帧:
∣Yˉj(ωk)∣=∑i=−MMWi∣Yj−i(ωk)∣(34)\left | \bar{Y}_{j}(\omega _{k}) \right |=\sum_{i=-M}^{M}W_{i}\left | Y_{j-i}(\omega _{k}) \right |\tag{34}∣∣Yˉj(ωk)∣∣=i=−M∑MWi∣Yj−i(ωk)∣(34)
平滑操作的跨度从当前语音帧的前续M帧直到后续M帧,帧数M限制为2,以防止破坏频谱信息。权重WiW_{i}Wi通过经验确定,设为Wi=[0.09,0.025,0.032,0.025,0.09]W_{i}=\left [ 0.09,0.025,0.032,0.025,0.09 \right ]Wi=[0.09,0.025,0.032,0.025,0.09]。
一些文献考考察了不同频带数量以及频率划分对性能的影响,性能评估使用IS谱距离测度。
该IS距离显示,当频带数量从1增加到4的时候,算法性能明显改善,但是频带数量超过4个之后,性能改善明显越来越小。音质的提高也是明显的。
文献也对三种不同的频率划分方式做了考察:线性、对数以及梅尔划分。这三种划分方式在谱距离以及语音质量上都具有比较近似的性能,只是对数划分方式会在低频带引起一些失真。
5.7 MMSE(Minimum Mean Square Error)谱减算法
在上面的方法中,谱减参数α\alphaα和β\betaβ通过实验确定,无论如何都不会是最优的选择。Sim等人提出了一种方法,能够在均方误差意义下最优地选择减法参数。他们考虑谱减法的这样一种一般形式:
∣X^(ω)∣p=γp(ω)∣Y(ω)∣p−αp(ω)∣D^(ω)∣p(35)\left | \hat{X}(\omega) \right |^{p}=\gamma _{p}(\omega)\left | Y(\omega ) \right |^{p}-\alpha _{p}(\omega)\left | \hat{D}(\omega ) \right |^{p}\tag{35}∣∣∣X^(ω)∣∣∣p=γp(ω)∣Y(ω)∣p−αp(ω)∣∣∣D^(ω)∣∣∣p(35)
参数γp(ω)\gamma _{p}(\omega)γp(ω)和αp(ω)\alpha _{p}(\omega)αp(ω)可以通过最小化频谱的均方误差得到:
ep(ω)=∣Xp(ω)∣p−∣X^(ω)∣p(36)e_{p}(\omega )=\left | X_{p}(\omega ) \right |^{p}-\left | \hat{X}(\omega ) \right |^{p}\tag{36}ep(ω)=∣Xp(ω)∣p−∣∣∣X^(ω)∣∣∣p(36)
这里假定带噪语音谱是两个独立频谱,即
∣Y(ω)∣p=∣Xp(ω)∣p+∣D(ω)∣p(37)\left | Y(\omega ) \right |^{p}=\left | X_{p}(\omega ) \right |^{p}+\left | D(\omega ) \right |^{p}\tag{37}∣Y(ω)∣p=∣Xp(ω)∣p+∣D(ω)∣p(37)
通过对γp(ω)\gamma _{p}(\omega)γp(ω)和αp(ω)\alpha _{p}(\omega)αp(ω)计算谱误差ep(ω)e_{p}(\omega)ep(ω)的最小化均方值E[{ep(ω)}2]E\left [ \left \{ e_{p}(\omega ) \right \}^{2} \right ]E[{ep(ω)}2],可以得到如下的最优减法参数:
αp(ω)=ξp(ω)1+ξp(ω)(38)\alpha _{p}(\omega )=\frac{\xi ^{p}(\omega )}{1+\xi ^{p}(\omega )}\tag{38}αp(ω)=1+ξp(ω)ξp(ω)(38)
γp(ω)=ξp(ω)1+ξp(ω){1−ξ−p/2(ω)}(39)\gamma _{p}(\omega )=\frac{\xi ^{p}(\omega )}{1+\xi ^{p}(\omega )}\left \{ 1-\xi ^{-p/2}(\omega ) \right \}\tag{39}γp(ω)=1+ξp(ω)ξp(ω){1−ξ−p/2(ω)}(39)
其中
ξ(ω)=E[∣Xp(ω)∣2]E[∣D(ω)∣2](40)\xi (\omega )=\frac{E\left [ \left | X_{p}(\omega ) \right |^{2} \right ]}{E\left [ \left | D(\omega ) \right |^{2} \right ]}\tag{40}ξ(ω)=E[∣D(ω)∣2]E[∣Xp(ω)∣2](40)
以上方程的推导基于这样的假设,即语音和噪声各自的频谱分量是统计独立的,且均为零均值复高斯随机变量。将式(38)(38)(38)和(39)(39)(39)代入式(35)(35)(35)可得到最优参数估计器:
∣X^(ω)∣={ξp(ω)1+ξp(ω)[∣Y(ω)∣p−(1−ξ−p/2(ω))∣D^(ω)∣p]}1/p(41)\left | \hat{X}(\omega ) \right |=\left \{ \frac{\xi ^{p}(\omega )}{1+\xi ^{p}(\omega )}\left [ \left | Y(\omega ) \right |^{p}-(1-\xi ^{-p/2}(\omega ))\left | \hat{D}(\omega ) \right |^{p} \right ] \right \}^{1/p}\tag{41}∣∣∣X^(ω)∣∣∣={1+ξp(ω)ξp(ω)[∣Y(ω)∣p−(1−ξ−p/2(ω))∣∣∣D^(ω)∣∣∣p]}1/p(41)
该估计器的推导过程并未对两个参数的关系做任何假设,因此被认为是无约束估计器。
Sim等人也曾考虑过对这两个参数添加约束,使它们相等,推导出的约束最优估计器具有如下形式:
∣X^(ω)∣={ξp(ω)δp+ξp(ω)[∣Y(ω)∣p−∣D^(ω)∣p]}1/p(42)\left | \hat{X}(\omega ) \right |=\left \{ \frac{\xi ^{p}(\omega )}{\delta _{p}+\xi ^{p}(\omega )}\left [ \left | Y(\omega ) \right |^{p}-\left | \hat{D}(\omega ) \right |^{p} \right ] \right \}^{1/p}\tag{42}∣∣∣X^(ω)∣∣∣={δp+ξp(ω)ξp(ω)[∣Y(ω)∣p−∣∣∣D^(ω)∣∣∣p]}1/p(42)
其中δp\delta_{p}δp对于给定的幂指数ppp为常数(当ppp等于1、2和3时,δp\delta_{p}δp分别等于0.2146、0.5和0.7055)。为了限制对低能量语音段的过度抑制,会采用一个谱下限:
μ∣Yˉ(ω)∣=0.5(μ∣Y(ω)∣+∣Xˉperv(ω)∣)(43)\mu \left | \bar{Y}(\omega ) \right |=0.5(\mu \left | Y(\omega ) \right |+\left | \bar{X}_{perv}(\omega ) \right |)\tag{43}μ∣∣Yˉ(ω)∣∣=0.5(μ∣Y(ω)∣+∣∣Xˉperv(ω)∣∣)(43)
其中μ∣Yˉ(ω)∣\mu \left | \bar{Y}(\omega ) \right |μ∣∣Yˉ(ω)∣∣表示经平滑以后的谱下限,μ\muμ取0.05到0.2。最终的约束估计器具有如下形式:
∣Xˉ(ω)∣={∣X^(ω)∣,if ∣Xˉ(ω)∣>μ∣Y(ω)∣μ∣Yˉ(ω)∣,others(44)|\bar{X}(\omega )|= \begin{cases} |\hat{X}(\omega )|, & \text{if $|\bar{X}(\omega )|>\mu|Y(\omega )|$} \\ \mu|\bar{Y}(\omega )|, & \text{others} \\ \end{cases} \tag{44} ∣Xˉ(ω)∣={∣X^(ω)∣,μ∣Yˉ(ω)∣,if ∣Xˉ(ω)∣>μ∣Y(ω)∣others(44)
式(40)(40)(40)中的ξ(ω)\xi (\omega )ξ(ω)项对应于信号能量与噪声能量的比,通常称为先验信噪比。由于我们并不能直接得到纯净信号,Sim等人将先验信噪比近似为:
ξ(ω)≈(1−η)max(∣Y(ω)∣2∣D^(ω)∣2−1,0)+η∣X^prev(ω)∣2∣D^(ω)∣2(45)\xi (\omega )\approx (1-\eta )max(\frac{\left | Y(\omega ) \right |^{2}}{\left |\hat{D}(\omega ) \right |^{2}}-1,0)+\eta \frac{\left | \hat{X}_{prev}(\omega ) \right |^{2}}{\left | \hat{D}(\omega ) \right |^{2}}\tag{45}ξ(ω)≈(1−η)max(∣∣∣D^(ω)∣∣∣2∣Y(ω)∣2−1,0)+η∣∣∣D^(ω)∣∣∣2∣∣∣X^prev(ω)∣∣∣2(45)
其中η\etaη为平滑常数(设为0.96),式(45)(45)(45)就是对当前的瞬时信噪比(第一项)和过去的信噪比(第二项)的加权平均。
对以上两种估计器进行了评估,与标准的谱减算法进行比较。仅在低信噪比(≤5dB)(\leq 5dB)(≤5dB)时,相对于标准谱减法,新算法性能有明显提高。对于带约束的估计器,μ=0.1\mu=0.1μ=0.1,当p=1p=1p=1和p=2p=2p=2时,性能几乎相同。
约束估计器相对于无约束估计器而言,可以提供更大的噪声衰减,特别是对于低能量语音段的情况。主观听音测试证实了约束估计器会带来更低的残留噪声。
5.8 扩展谱减法
扩展谱减法(Extended Spectral Subtraction,ESS),它是基于自适应维纳滤波与谱减原理的结合。维纳滤波用于估计噪声谱,然后从带噪信号中减去该噪声谱。该算法不需要VAD,即使处于语音段,也会连续更新背景噪声谱,因此它可以在非平稳噪声环境中进行语音增强。
对于第jjj帧的维纳滤波的近似表示是基于前一帧的谱估计,其表达式为:
Hj(ω)=(∣Dˉj−1(ω)∣2∣Xˉj−1(ω)∣2+∣Dˉj−1(ω)∣2)1/2(46)H_{j}(\omega )=\left ( \frac{\left | \bar{D}_{j-1}(\omega ) \right |^{2}}{\left | \bar{X}_{j-1}(\omega ) \right |^{2}+\left | \bar{D}_{j-1}(\omega ) \right |^{2}} \right )^{1/2}\tag{46}Hj(ω)=(∣∣Xˉj−1(ω)∣∣2+∣∣Dˉj−1(ω)∣∣2∣∣Dˉj−1(ω)∣∣2)1/2(46)
该式的计算基于前一帧增强信号的估计,因此它基于这样一种假设,即噪声的谱特性在前后两帧之间不会急剧变换。平滑的噪声估计由下式得到:
∣Dˉj(ω)∣=c∣Dˉj−1(ω)∣+(1−c)∣D^j(ω)∣(47)\left | \bar{D}_{j}(\omega ) \right |=c\left | \bar{D}_{j-1}(\omega ) \right |+(1-c)\left | \hat{D}_{j}(\omega ) \right |\tag{47}∣∣Dˉj(ω)∣∣=c∣∣Dˉj−1(ω)∣∣+(1−c)∣∣∣D^j(ω)∣∣∣(47)
其中ccc是平滑常数(0<c<1)(0<c<1)(0<c<1),∣D^j(ω)∣\left | \hat{D}_{j}(\omega ) \right |∣∣∣D^j(ω)∣∣∣为将输入的带噪语音谱通过(由前一帧确定的)维纳滤波器之后得到当前噪声谱估计,即:
∣D^j(ω)∣=Hj(ω)∣Yj(ω)∣(48)\left | \hat{D}_{j}(\omega ) \right |=H_{j}(\omega) \left | Y_{j}(\omega ) \right |\tag{48}∣∣∣D^j(ω)∣∣∣=Hj(ω)∣Yj(ω)∣(48)
最后,通过从带噪语音谱中减去上面的噪声谱而得到增强的信号谱:
∣X^j(ω)∣=∣Yj(ω)∣−∣D^j(ω)∣(49)\left | \hat{X}_{j}(\omega ) \right |=\left | Y_{j}(\omega) \right | -\left | \hat{D}_{j}(\omega ) \right |\tag{49}∣∣∣X^j(ω)∣∣∣=∣Yj(ω)∣−∣∣∣D^j(ω)∣∣∣(49)
实验结果显示,平滑常数ccc会影响算法性能。当ccc取小值的时候,可感觉到语音失真,但是当c值过大的时候会听到更多的残留噪声。ccc的最佳取值范围是0.8<c<0.990.8<c<0.990.8<c<0.99,当c=0.95c=0.95c=0.95时算法具有良好性能。
5.9 使用自适应增益平均的谱减
如前所述,谱减法中导致音乐噪声的两个因素在于谱估计的大范围变化以及增益函数的不同。为了解决第一个问题,Gustafsson等人建议将目前的分析帧划分为更小的子帧以得到更低分辨率的频谱,子帧频谱通过连续平均以减小频谱的波动。为解决第二个问题,Gustafsson等人提出可以通过使用自适应指数平均,在时间上对增益函数做平滑。此外,为了避免使用零相位增益函数导致的非因果滤波问题,在增益函数中引入线性相位。
输入信号被划分为具有LLL个样本长度的帧,然后进一步划分为M(M<L)M(M<L)M(M<L)个样本长度的子帧。可以得到具有较低分辨率的增益函数形式如下:
Gi(M)(ω)=1−k∣D^i(M)(ω)∣∣Yˉi(M)(ω)∣(50)G_{i}^{(M)}(\omega )=1-k\frac{|\hat{D}_{i}^{(M)}(\omega )|}{|\bar{Y}_{i}^{(M)}(\omega )|}\tag{50}Gi(M)(ω)=1−k∣Yˉi(M)(ω)∣∣D^i(M)(ω)∣(50)
其中kkk为减法因子(k=0.7)(k=0.7)(k=0.7)。为了减小增益函数的波动,Gi(M)(ω)G_{i}^{(M)}(\omega )Gi(M)(ω)按照下式做时间平均:
Gˉi(M)(ω)=aiGˉi−1(M)(ω)+(1−ai)Gi(M)(ω)(51)\bar{G}_{i}^{(M)}(\omega )=a_{i}\bar{G}_{i-1}^{(M)}(\omega )+(1-a_{i})G_{i}^{(M)}(\omega )\tag{51}Gˉi(M)(ω)=aiGˉi−1(M)(ω)+(1−ai)Gi(M)(ω)(51)
aia_{i}ai是自适应平滑参数,推导自谱差异测度βi\beta_{i}βi:
βi=min{∑ωk=0M−1∣∣Yˉi(M)(ωk)∣−∣D^i(M)(ωk)∣∣∑ωk=0M−1∣D^i(M)(ωk)∣,1}(52)\beta_{i}=min\left \{ \frac{\sum_{\omega _{k}=0}^{M-1}\left | \left | \bar{Y}_{i}^{(M)}(\omega _{k}) \right |-\left | \hat{D}_{i}^{(M)}(\omega _{k}) \right | \right |}{\sum_{\omega _{k}=0}^{M-1}\left | \hat{D}_{i}^{(M)}(\omega _{k}) \right |} ,1\right \}\tag{52}βi=min⎩⎨⎧∑ωk=0M−1∣∣∣D^i(M)(ωk)∣∣∣∑ωk=0M−1∣∣∣∣∣∣Yˉi(M)(ωk)∣∣∣−∣∣∣D^i(M)(ωk)∣∣∣∣∣∣,1⎭⎬⎫(52)
以上差异测度可以粗略评估信号谱相对于背景噪声的变化。较小的差异值表示相对平稳的背景噪声环境,大的差异值则表示有语音存在或者背景噪声正迅速变化。自适应平均参数αi\alpha_{i}αi通过βi\beta_{i}βi计算得到:
αi={γai−1+(1−γ)(1−βi),if ai−1<1−βi1−βi,others(53)\alpha_{i}= \begin{cases} \gamma a_{i-1}+(1-\gamma )(1-\beta _{i}), & \text{if $a_{i-1}<1-\beta _{i}$} \\ 1-\beta _{i}, & \text{others}\\ \end{cases} \tag{53} αi={γai−1+(1−γ)(1−βi),1−βi,if ai−1<1−βiothers(53)
其中γ\gammaγ是平滑参数(γ=0.8)(\gamma=0.8)(γ=0.8),自适应参数αi\alpha_{i}αi可以快速减小,这样就可以使增益函数快速适应于新的输入信号,但是αi\alpha_{i}αi只能较缓慢地增加。
5.10 选择性谱减
前面提到的方法对所有语音段都做同样处理,并不区分浊音段还是清音段。区别对待浊音段和清音段可以明显改善算法效果,然而,该方法面临的主要挑战就在于能否精确且可靠地进行清浊音检测。
5.11 基于感知特性的谱减
Virag提出的算法,在谱减过程中加入了基于心理声学的约束,算法的主要目的是要使残余噪声在听觉上难以被察觉,最终利用人类听觉系统的特性改进增强语音的可懂度。
Virag建议根据掩蔽阈值来调整谱减参数α\alphaα和β\betaβ。该方法基于以下思想:如果某一特定频率所处估计的掩蔽阈值较低,则残留噪声的强度可能会高于该阈值,进而可以被感知到,因此,谱减参数在该频率上应该达到它们的最大值。类似的,如果掩蔽阈值在某一频率上的值较大,则残留噪声很可能被其掩蔽,进而不会被听到,这是,该频率的减法参数应该取其最小值。这样,减法参数的选择将会根据听觉掩蔽阈值的一个非线性函数来决定:
α(ω)=Fa[αmin,αmax,T(ω)](54)\alpha (\omega )=F_{a}\left [ \alpha _{min},\alpha _{max},T(\omega ) \right ]\tag{54}α(ω)=Fa[αmin,αmax,T(ω)](54)
β(ω)=Fa[βmin,βmax,T(ω)](55)\beta (\omega )=F_{a}\left [ \beta _{min},\beta _{max},T(\omega ) \right ]\tag{55}β(ω)=Fa[βmin,βmax,T(ω)](55)
其中T(ω)T(\omega)T(ω)是掩蔽阈值,αmin\alpha _{min}αmin和αmax\alpha _{max}αmax分别设为1和6,βmin\beta _{min}βmin和βmax\beta _{max}βmax分别设为0和0.02。函数Fa(ω)F_{a}(\omega)Fa(ω)具有以下的边界条件:
Fa(ω)={amax,if T(ω)=T(ω)minamin,if T(ω)=T(ω)max(56)F_{a}(\omega)= \begin{cases} a_{max}, & \text{if $T(\omega)=T(\omega)_{min}$} \\ a_{min}, & \text{if $T(\omega)=T(\omega)_{max}$}\\ \end{cases} \tag{56} Fa(ω)={amax,amin,if T(ω)=T(ω)minif T(ω)=T(ω)max(56)
其中T(ω)minT(\omega)_{min}T(ω)min和T(ω)maxT(\omega)_{max}T(ω)max是每一帧所估计的掩蔽阈值的最小值和最大值,处于两个极值之间的Fa(ω)F_{a}(\omega)Fa(ω)的函数值有T(ω)T(\omega)T(ω)确定。
该方法的主要优点在于使用噪声掩蔽阈值T(ω)T(\omega)T(ω)而不是SNR来调整参数α\alphaα和β\betaβ,相对于SNR,掩蔽阈值使帧与帧之间的过渡更平滑,同时与听觉的感知特性也更相关,可以得到比非线性谱减以及标准谱减算法更好的语音质量。
上面的算法要求能够精确计算掩蔽阈值,掩蔽阈值通常需要从纯净语音信号中求得,由于我们仅仅能得到带噪信号,所以阈值的计算只能先通过一种简单的功率谱减法得到纯净信号的一个粗略估计。
5.12 谱减算法的性能
大多数研究证实了谱减算法能改进语音质量,但是不能提高语音可懂度,事实上,有些情况下不同的减法参数选择还可能导致语音可懂度下降。
谱减算法在去噪方面表现优异,但是以可能消去间歇出现的低能量语音信息为代价的。在谱减过程中,语音的低能量段会首先被损失掉,特别是在使用了过减法的时候。
Lockwood P , Boudy J , Blanchet M . Experiments with a nonlinear spectral subtractor (NSS), Hidden Markov models and the projection, for robust speech recognition in cars[J]. Speech Communication, 1992:215-228. ↩︎
单麦降噪经典书籍《Speech enhancement: theory and practice》读书笔记(第5章)相关推荐
- 单麦降噪经典书籍《Speech enhancement: theory and practice》读书笔记(第1章~第4章)
目录 前言 第1章 引言 1.1 了解噪声 1.2 语音增强算法分类 第3章 语音产生与感知 3.2 语音产生过程 3.2.1 肺 3.2.2 喉与声带 3.2.3 声道 3.3 语音产生的工程模型 ...
- Speech Enhancement : Theory and Practice 下载
在这个开源的世界中,就应该有更多的资源共享,csdn本身共享出资源的思路是好的,但是太金钱主义了,要下载什么都需要先充值,还有很多版主拿着下载的别人的劳动成果来赚取money,都不觉得脸红吗?其实有很 ...
- Missing Tag Identification in COTS RFID Systems: Bridging the Gap between Theory and Practice 理解+笔记
Missing Tag Identification in COTS RFID Systems: Bridging the Gap between Theory and Practice 理解+笔记+ ...
- 《Speech and Language Processing》读书笔记——语法规则及其解析
<Speech and Language Processing>读书笔记--语法规则及其解析 1.摘要 本章主要介绍了: 上下文无关语法(CFG) 语法解析算法(CKY.Earley) 2 ...
- 【绝版C++书籍】《Effective STL》读书笔记
<Effective STL>读书笔记 写在前面 0<Effective STL>中可能过时的内容 1 容器 第1条:慎重选择容器类型. 第2条:不要试图编写独立于容器类型的代 ...
- sql经典实例_读书笔记 前三章
sql经典实例_读书笔记 温故SQL以及数据库相关知识 1.检索记录 select * from emp //检索所有列 where dep = 10 //选择出指定行 or comm is not ...
- C语言入门经典读书笔记 ----第六章 字符串和文本的应用
1.什么是字符串 字符串常量的例子非常常见,字符串常量是放在一对双引号中的一串字符或符号,一对双引号之间的任何内容都会被编译器视为字符串,包括特殊字符和嵌入的空格.以下是使用字符串的例子: print ...
- 自控力_书籍分享_读书笔记_第一章 我要做,我不要,我想要:什么是意志力?为什么意志力至关重要?_0001
第一章 我要做,我不要,我想要:什么是意志力?为什么意志力至关重要? 意志力到底是什么?意志力无非就是以下三种力量的综合能力,如果能够驾驭着三种力量,那么你就能够通过意志力成就更好的自己.从另一个方面 ...
- python自动化运维书籍-python自动化运维之读书笔记(一)
第一章:系统基础信息模块: 下载psutil模块在安装的过程中报错: 那我们是怎么去找到这些需要的包呢?当然是官网 https://pypi.python.org/直接在这里搜索包名称即可 root@ ...
最新文章
- c#操作Excel整理总结
- 零基础入门学习Python(5)Python的数据类型
- openssl之EVP系列之2---对称加密算法概述
- Linux网络编程基础_6_应用层(下)--E-mail,WWW(大结局)
- oracle批处理参数调用,bat调用jar包并传入多个参数
- factorytalkview 卡 86_徕卡M党的街拍小贴士
- RecycleView的正确打开方式
- 字符集_第07期:有关 MySQL 字符集的 SQL 语句
- MySQL快速生成连续整数
- springboot+activiti工作流mybatis冲突解决办法
- Ubuntu下安装QQ(wineQQ)
- 搜集的几个超高难度的数独题
- 2.74-写出具有如下原型的函数的代码:
- 开源计算机辅助翻译(CAT)软件OmegaT快速上手指南
- PyTorch——手写数字识别
- 电流环扰动观测器、PI参数自动生成 观测器对扰动进行补偿,能有效提高电流环抗扰动能力,并且能对反电势扰动起到很好的作用
- 大前端技术发展趋势刨析
- vue项目中如何解决跨域问题
- git删除远程创库命令
- excel怎么固定住一行和一列