声源分离算法性能评估指标SIR、SDR、SAR

原理介绍

声源分离算法用于从混合的观测声信号中分离出一个或者多个期望源信号,如语音降噪、去混响、音乐信号分离等。评价一个声源分离算法性能的好坏,就是要衡量算法所提取的源信号和真实源信号之间的差异。目前最常用的评价指标是Emmanuel[1]等提出的源失真比(source-to-distortion ratio, SDR)、源干扰比(source-to-interference ratio, SIR)和源伪影比(source-to-artifact ratio, SAR)。下面我们来介绍一下指标计算的原理。

假设 s j ( t ) s_{j}(t) sj(t) 1 ≤ j ≤ n 1 \le j \le n 1jn)为第 j j j个声源信号, x i ( t ) x_{i}(t) xi(t) 1 ≤ i ≤ m 1\le i \le m 1im)为第 i i i个麦克风采集的观测信号, a i j ( τ ) a_{ij}(\tau) aij(τ)为声源与麦克风之间的声传播路径滤波器,则声源信号的混合过程可以表示为
∑ j = 1 n ∑ τ = 0 + ∞ a i j ( τ ) s j ( t − τ ) + n i ( t ) \sum_{j=1}^{n} \sum_{\tau = 0}^{+ \infty } a_{ij}(\tau)s_{j}(t-\tau)+n_{i}(t) j=1nτ=0+aij(τ)sj(tτ)+ni(t)其中, n i ( t ) n_{i}(t) ni(t)是加性的传感器噪声。表示为矩阵形式为
x = A ⋆ s + n \mathbf{x}=\mathbf{A}\star \mathbf{s}+\mathbf{n} x=As+n其中, ⋆ \star 为卷积符号,粗体字母表示矩阵,如 x = [ x ( 0 ) , x ( 1 ) , . . . , x ( T − 1 ) ] \mathbf{x}=\left [ \mathbf{x}(0), \mathbf{x}(1),...,\mathbf{x}(T-1) \right ] x=[x(0),x(1),...,x(T1)]。方便起见,将由 s j ( t ) s_{j}(t) sj(t)组成的向量简记为 s j s_{j} sj

我们把从观测信号中估计的源信号表示为 s ^ j \hat {s}_{j} s^j,它可以分解为以下四个分量
s ^ j = s t a r g e t + e i n t e r f + e n o i s e + e a r t i f \hat {s}_{j}=s_{target}+e_{interf}+e_{noise}+e_{artif} s^j=starget+einterf+enoise+eartif这四部分依次代表着 s ^ j \hat {s}_{j} s^j中有关真实源信号 s j s_{j} sj的成分、来自其他源信号 ( s j ′ ) j ′ ≠ j (s_{j'})_{j' \ne j} (sj)j=j的干扰、来自传感器噪声 ( n i ) 1 ≤ i ≤ m (n_{i})_{1\le i \le m} (ni)1im的干扰以及算法本身造成的伪影失真。以上的分解可以用正交投影算子来定义,用 ∏ { y 1 , y 2 , . . . , y k } \prod \left \{ y_{1},y_{2},...,y_{k}\right \} { y1,y2,...,yk}表示由向量集合 y 1 , y 2 , . . . , y k y_{1},y_{2},...,y_{k} y1,y2,...,yk张成的子空间,定义以下三个正交投影算子
P s j = ∏ { s j } P s = ∏ { ( s j ′ ) 1 ≤ j ′ ≤ n } P s , n = ∏ { ( s j ′ ) 1 ≤ j ′ ≤ n , ( n i ) 1 ≤ i ≤ m } P_{sj}= \prod \left \{ s_{j}\right\} \\ P_{\mathbf{s}}= \prod \left \{ (s_{j'})_{1 \le j' \le n}\right\} \\ P_{\mathbf{s,n}}= \prod \left \{ (s_{j'})_{1 \le j' \le n}, (n_{i})_{1 \le i \le m}\right\} Psj={ sj}Ps={ (sj)1jn}Ps,n={ (sj)1jn,(ni)1im} 以上四个分量可以表示为
s t a r g e t : = P s j s ^ j e i n t e r f : = P s s ^ j − P s j s ^ j e n o i s e : = P s , n s ^ j − P s s ^ j e a r t i f : = s ^ j − P s , n s ^ j s_{target}:= P_{sj}\hat {s}_{j} \\ e_{interf}: = P_{\mathbf{s}}\hat {s}_{j}- P_{sj}\hat {s}_{j} \\ e_{noise}:= P_{\mathbf{s,n}}\hat {s}_{j} -P_{\mathbf{s}}\hat {s}_{j} \\ e_{artif}:=\hat {s}_{j}- P_{\mathbf{s,n}}\hat {s}_{j} starget:=Psjs^jeinterf:=Pss^jPsjs^jenoise:=Ps,ns^jPss^jeartif:=s^jPs,ns^j

根据估计的源信号的分解,定义指标如下
S D R = 10 l o g 10 ∥ s t a r g e t ∥ 2 ∥ e i n t e r f + e n o i s e + e a r t i f ∥ 2 S I R = 10 l o g 10 ∥ s t a r g e t ∥ 2 ∥ e i n t e r f ∥ 2 S A R = 10 l o g 10 ∥ s t a r g e t + e i n t e r f + e n o i s e + ∥ 2 ∥ e a r t i f ∥ 2 SDR=10log_{10}\frac{\left \| s_{target} \right \|^{2} }{\left \| e_{interf}+e_{noise}+e_{artif} \right \|^{2} } \\ SIR=10log_{10}\frac{\left \| s_{target} \right \|^{2} }{\left \|e_{interf} \right \|^{2} } \\ SAR=10log_{10}\frac{\left \| s_{target} +e_{interf}+e_{noise}+\right \|^{2} }{\left \|e_{artif} \right \|^{2} } SDR=10log10einterf+enoise+eartif2starget2SIR=10log10einterf2starget2SAR=10log10eartif2starget+einterf+enoise+2其中, ∥ a ∥ 2 = < a , a > \left \| a\right \|^{2}=<a,a> a2=<a,a>表示信号 a a a的能量值, < > < > <>为向量的内积运算。

实际中,我们需要计算出四个分量值,才能计算出以上的指标。接下来我们介绍计算的方法, s t a r g e t s_{target} starget的计算是比较直接的
s t a r g e t = < s j ^ , s j > ∥ s j ∥ 2 s j s_{target}= \frac{<\hat{s_{j}}, s_{j}>}{\left \| s_{j}\right \|^{2}}s_{j} starget=sj2<sj^,sj>sj e i n t e r f e_{interf} einterf的计算稍微有些复杂,如果源信号之间是相互正交的,则
e i n t e r f = ∑ j ≠ j ′ < s j ^ , s j ′ > ∥ s j ′ ∥ 2 s j ′ e_{interf}= {\textstyle \sum_{j \ne j'}^{}} \frac{<\hat{s_{j}}, s_{j'}>}{\left \| s_{j'}\right \|^{2}}s_{j'} einterf=j=jsj2<sj^,sj>sj而如果源信号之间有相关性,需要定义一个系数向量 c \mathbf{c} c
P s s ^ j = ∑ j ′ = 1 n c ˉ j ′ s j ′ = c H s P_{\mathbf{s}} \widehat{s}_{j}=\sum_{j^{\prime}=1}^{n} \bar{c}_{j^{\prime}} s_{j^{\prime}}=\mathbf{c}^{H} \mathbf{s} Pss j=j=1ncˉjsj=cHs
其中, H H H表示共轭转置
c = R s s − 1 [ ⟨ s ^ j , s 1 ⟩ , … , ⟨ s ^ j , s n ⟩ ] H \mathbf{c}=\mathbf{R}_{\mathbf{s s}}^{-1}\left[\left\langle\widehat{s}_{j}, s_{1}\right\rangle, \ldots,\left\langle\widehat{s}_{j}, s_{n}\right\rangle\right]^{H} c=Rss1[s j,s1,,s j,sn]H
R s s \mathbf{R}_{\mathbf{s s}} Rss为源信号的格拉姆矩阵, ( R s s ) j j ′ = ⟨ s j , s j ′ ⟩ \left(\mathbf{R}_{\mathbf{s s}}\right)_{j j^{\prime}}=\left\langle s_{j}, s_{j^{\prime}}\right\rangle (Rss)jj=sj,sj P s , n P_{\mathbf{s,n}} Ps,n的计算方法与之类似,然而大多数情况下,我们假设源信号和噪声是不相关的,因此
P s , n s ^ j ≈ P s s ^ j + ∑ i = 1 m ⟨ s ^ j , n i ⟩ n i / ∥ n i ∥ 2 P_{\mathbf{s}, \mathbf{n}} \widehat{s}_{j} \approx P_{\mathbf{s}} \widehat{s}_{j}+\sum_{i=1}^{m}\left\langle\widehat{s}_{j}, n_{i}\right\rangle n_{i} /\left\|n_{i}\right\|^{2} Ps,ns jPss j+i=1ms j,nini/ni2

参考文献

[1] Vincent E, Gribonval R, Févotte C. Performance measurement in blind audio source separation[J]. IEEE transactions on audio, speech, and language processing, 2006, 14(4): 1462-1469.

猜你喜欢

转载自blog.csdn.net/qq_37215867/article/details/125417044
今日推荐