【语音信号处理】噪声抑制NS(一)噪声估计——MCRA方法

计算语音存在概率

思路: 在一个短时窗内,计算局部能量(local energy,通常用 S ( k , l ) S(k,l)S (k ,l ) 表示)与最小能量 S m i n ( k , l ) S_{min}(k,l)S m i n ​(k ,l ) 的比值。

S ( k , l ) S(k,l)S (k ,l ) 可以通过频域和时域的平滑计算出来:

频域平滑:
S f ( k , l ) = ∑ i = − w w b ( i ) ∣ Y ( k − i , l ) ∣ 2 S_f(k,l)=\sum_{i=-w}^{w}b(i)|Y(k-i,l)|^2 S f ​(k ,l )=i =−w ∑w ​b (i )∣Y (k −i ,l )∣2
频域平滑就是在当前的频点 k k k ,上下各扩展 w w w 个频点(通常取1),在经过频域窗 b ( i ) b(i)b (i ) 加权之后,可以得到频域平滑后的局部能量。

时域平滑:
S ( k , l ) = α s S ( k , l − 1 ) + ( 1 − α s ) S f ( k , l ) S(k,l)=\alpha_sS(k,l-1)+(1-\alpha_s)S_f(k,l)S (k ,l )=αs ​S (k ,l −1 )+(1 −αs ​)S f ​(k ,l )
其中,α s ( 0 < α s < 1 ) \alpha_s(0 是局部能量的时域平滑因子。

计算最小能量S m i n ( k , l ) S_{min}(k,l)S m i n ​(k ,l ) :

采用局部最小值追踪的方法,设定一个时间窗 L L L ,搜索局部最小值,可以得到 S m i n ( k , l ) S_{min}(k,l)S m i n ​(k ,l )。

定义:S r ( k , l ) ≜ S ( k , l ) / S m i n ( k , l ) S_r(k,l)\triangleq S(k,l)/S_{min}(k,l)S r ​(k ,l )≜S (k ,l )/S m i n ​(k ,l )

则语音是否存在的判决式为:
S r ( k , l ) > δ : H 1 ′ S r ( k , l ) < δ : H 0 ′ S_r(k,l)>\delta:H’_1 \ S_r(k,l)
其中 δ \delta δ 为设定的判断语音是否存在的阈值。

根据上式,可以得到语音存在概率的迭代估计:
p ′ ^ ( k , l ) = α p p ′ ^ ( k , l − 1 ) + ( 1 − α p ) I ( k , l ) I ( k , l ) = { 1 , S r ( k , l ) > δ 0 , S r ( k , l ) < δ \hat{p’}(k,l)=\alpha_p\hat{p’}(k,l-1)+(1-\alpha_p)I(k,l) \ I(k,l)= \begin{cases} 1,& S_r(k,l)>\delta \ 0,& S_r(k,l)
其中,α p ( 0 < α p < 1 ) \alpha_p(0 是语音存在概率的平滑因子。

至此,将语音存在概率带回噪声估计的表示,便可以得到最终的噪声估计。

Original: https://blog.csdn.net/TalonZhang/article/details/118866131
Author: Talon不会写代码
Title: 【语音信号处理】噪声抑制NS(一)噪声估计——MCRA方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/512603/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球