@[TOC](A Dual-Microphone Algorithm That Can Cope With Competing-Talkers Scenarios) 1
1 . Abstract
这里介绍一种基于相干函数的双麦降噪算法,上一篇 2 中的方法从本质上讲应该是这篇论文里的一个特例,或者说是一种简化处理,这里咱们就来看看完整的框架
先上系统框图:
基本与上一篇里面的相同,这里就多了一个S N R E s t i m a t i o n SNR Estimation S N R E s t i m a t i o n (信噪比估计),很多降噪算法都依赖于信噪比估计,得到信噪比后,就可以用谱减或维纳滤波进行降噪。那这里我们就主要来看看怎么得到这个信噪比。
2 . SNR Estimation
信号定义以及相干函数的计算都是跟上一篇 相同,这里就不重复,直接跳到相干函数跟信噪比的公式:
公式
(1) Γ ^ y 1 y 2 ( ω ) = [ c o s ( ω τ ) + j s i n ( ω τ ) ] S N R ^ 1 + S N R ^ + [ c o s ( ω τ c o s θ ) + j s i n ( ω τ c o s θ ) ] 1 1 + S N R ^
\hat{\Gamma }_{y_{1}y_{2}}(\omega)=[cos(\omega \tau)+jsin(\omega \tau)]\frac{\hat{SNR}}{1+\hat{SNR}}+[cos(\omega \tau cos\theta)+jsin(\omega \tau cos\theta)]\frac{1}{1+\hat{SNR}} \tag{1}
Γ ^ y 1 y 2 ( ω ) = [ c o s ( ω τ ) + j s i n ( ω τ ) ] 1 + S N R ^ S N R ^ + [ c o s ( ω τ c o s θ ) + j s i n ( ω τ c o s θ ) ] 1 + S N R ^ 1 ( 1 )
分别写出Γ ^ y 1 y 2 ( ω ) \hat{\Gamma }_{y_{1}y_{2}}(\omega) Γ ^ y 1 y 2 ( ω ) 的实部和虚部如下:
(2) ℜ = S N ^ R 1 + S N ^ R cos ω ˙ + 1 1 + S N ^ R cos α
\Re=\frac{\mathrm{S} \hat{\mathrm{N}} \mathrm{R}}{1+\mathrm{S} \hat{\mathrm{N}} \mathrm{R}} \cos \dot{\omega}+\frac{1}{1+\mathrm{S} \hat{\mathrm{N}} \mathrm{R}} \cos \alpha\tag{2}
ℜ = 1 + S N ^ R S N ^ R cos ω ˙ + 1 + S N ^ R 1 cos α ( 2 ) (3) ℑ = S N R ^ 1 + S N ^ R sin ω ˙ + 1 1 + S N R ^ sin α
\Im=\frac{\hat{SNR}}{1+\mathrm{S} \hat{\mathrm{N}} \mathrm{R}} \sin \dot{\omega}+\frac{1}{1+\hat{SNR}} \sin \alpha \tag{3}
ℑ = 1 + S N ^ R S N R ^ sin ω ˙ + 1 + S N R ^ 1 sin α ( 3 )
其中ω ˙ = ω τ , α = ω ˙ c o s θ \dot{\omega}=\omega \tau,\alpha=\dot{\omega} cos\theta ω ˙ = ω τ , α = ω ˙ c o s θ
观察(2)、(3)两式,两个方程,两个未知量,S N R ^ 和 α \hat{SNR}和\alpha S N R ^ 和 α ,因此,根据(2)、(3)两式解方程可以得到S N R ^ 和 α \hat{SNR}和\alpha S N R ^ 和 α ,其中S N R ^ \hat{SNR} S N R ^ 是我们想要的信息,α \alpha α 是方向信息,因此这种方法其实也可以用在DOA相关方向上。
先写出S N ^ R \mathrm{S} \hat{\mathrm{N}} \mathrm{R} S N ^ R 关于α \alpha α 的表达式:
(4) S N ^ R = sin α − ℑ ℑ − sin ω ˙
\mathrm{S} \hat{\mathrm{N}} \mathrm{R}=\frac{\sin \alpha-\Im}{\Im-\sin \dot{\omega}} \tag{4}
S N ^ R = ℑ − sin ω ˙ sin α − ℑ ( 4 )
论文中给出了详细推导求解过程,这里就直接写出结果了
(5) { A = ℑ − sin ω ˙ B = cos ω ˙ − ℜ C = ℜ sin ω ˙ − ℑ cos ω ˙
\left\{\begin{array}{l}{A=\Im-\sin \dot{\omega}} \\ {B=\cos \dot{\omega}-\Re} \\ {C=\Re \sin \dot{\omega}-\Im \cos \dot{\omega}}\end{array}\right. \tag{5}
⎩ ⎨ ⎧ A = ℑ − sin ω ˙ B = cos ω ˙ − ℜ C = ℜ sin ω ˙ − ℑ cos ω ˙ ( 5 ) (6) T = 1 − ℜ cos ω ˙ − ℑ sin ω ˙
T=1-\Re \cos \dot{\omega}-\Im \sin \dot{\omega} \tag{6}
T = 1 − ℜ cos ω ˙ − ℑ sin ω ˙ ( 6 ) (7) sin α = − B ∗ C + A ∗ T A 2 + B 2
\sin \alpha=\frac{-B*C+A*T}{A^2+B^2} \tag{7}
sin α = A 2 + B 2 − B ∗ C + A ∗ T ( 7 )
式(5)、(6)都是已知量,然后计算(7),最后代入到(4)中就得到了S N ^ R \mathrm{S} \hat{\mathrm{N}} \mathrm{R} S N ^ R
最后,就可以写出增益函数如下了,这里用的是(square-root) Wiener filter
(8) G ( ω , k ) = SNR ( ω , k ) SNR ( ω , k ) + 1
G(\omega, k)=\sqrt{\frac{\operatorname{SNR}(\omega, k)}{\operatorname{SNR}(\omega, k)+1}} \tag{8}
G ( ω , k ) = S N R ( ω , k ) + 1 S N R ( ω , k ) ( 8 )
3. Experiment
还是上篇一样的音频,对比下处理前后结果
干扰抑制效果明显,且没有了上一篇中声音变小的现象
References:
Yousefian, N., & Loizou, P. C. (2013). A Dual-Microphone Algorithm That Can Cope With Competing-Talker Scenarios. IEEE Transactions on Audio, Speech, and Language Processing, 21(1), 145–155 ↩︎
Yousefian, N., & Loizou, P. (2011). A Dual-Microphone Speech Enhancement Algorithm Based on the Coherence Function. IEEE Transactions on Audio, Speech, and Language Processing. ↩︎