【论文:麦克风阵列增强】Speech Enhancement Based on the General Transfer Function GSC and Postfiltering
作者:桂。
时间:2017-06-06 16:10:47
链接:http://www.cnblogs.com/xingshansi/p/6951494.html
原文链接:http://pan.baidu.com/s/1i51Kymp
omlsa代码:http://pan.baidu.com/s/1bpkvLVp
omlsa论文:http://pan.baidu.com/s/1i5j3Adv
前言
这篇文章是TF-GSC的改进版。虽然TF-GSC对于方向性干扰的抑制效果不错,对于弥散噪声(diffuse noise,题外话:不同方向directional noise的均值,或者接近这种效果,可以理解为diffuse noise.)TF-GSC性能下降明显,如果diffuse noise还是non-stationary,性能下降就更严重了。本文的思路是在TF-GSC的基础上,引入postfiltering(后置滤波),文中提到了三种方法:两种基于single channel-1)mixture maximum;2)OMLSA;但如果噪声both diffused and nonstationary,基于single channel的方法不再适用,这时候方法3仍然有效:a new multimicrophone postfilter method。
本文主要梳理基于TF-GSC的multimicrophone postfilter method,由于涉及到OMLSA,所以先简单介绍。基于single channel的mix-max方法是单独使用,后面有时间另写文章整理。
一、OMLSA思想
A-利用不存在概率的增强

容易推理基于MMSE准则的估计器

如果考虑语音存在概率,则估计器扩展为

理论上
的值为0,上式简化为

B-语音不存在概率与最大似然准则估计器ML 结合
例如在语音增强一文中介绍的,基于最大似然准则的估计器为

从Y的概率密度形式

易知ML是基于语音存在的假设,结合语音存在概率,则基于ML准则的估计器为

对于
)的计算可以利用贝叶斯准则

这里利用一个假设(也就是约束条件):噪声服从均值为0,方差相同的复高斯分布。
,此时容易证明噪声幅度服从瑞利分布(相位为均匀分布,且二者独立),

H1假设下,
此时

关于
的计算参考语音增强一文的最大似然估计。例如假设语音存在/不存在是等可能的,
,此时完成了
的估计:

其中
是a posteriori SNR,
是a priori SNR。这个就是一般意义的参数估计了,在语音增强一文也给出了两个实现思路:1)Maximum-Likelihood Method;2)Decision-Directed Approach.至此也就完成了结合不存在概率的语音增强。
C-语音不存在概率与最小均方误差估计器MMSE 结合
其实基本思路都是一样的:

然后是利用贝叶斯进行概率估计

不同点在于这里进行了转化

其中

其中
,denotes the a priori probability of speech absence for frequency bin k.从而
与ML准则不同的是,只有噪声时,是噪声D的分布,而不是其幅度(其实如果是幅度,也有一套方法,感兴趣可以自己推导推导)。
仍是高斯分布

H1时,
且认为D与X不相关,易得

代入上面的估计器,有

其中
就是
,则
.进一步求解条件概率

其中

参数估计的细节与ML中的估计思路一致。从而实现信号的增强:

G就是MMSE估计器

不同之处是里边的
替换成
。
题外话:看看之前的参数估计与此处参数估计的联系
即
不得不佩服,这些理论的研究者真有一套。
D-语音不存在概率与对数最小均方误差估计器Log-MMSE 结合(OMLSA)
原理与其他方法一致

X的估计器

可以进一步写为

其中
就是语音增强一文中的对数MMSE估计器。这里要有一点不同了,这里的概率是指数形式,有学者研究这样的增强效果并不比直接LSA更好,所以对其变形

还是与其他方法类似:概率相乘的形式。这里的
与MMSE中的一致。至此完成了LSA与语音不存在概率的结合。但这套理论比较粗糙,一些学者(原文见这里,P262)提出了不同的角度:只有噪声时,不再认为严格为0,而是接近0:


其中
,第一项
就是最开始的LSA与语音存在概率的原始结合,这就是optimally modified log-spectrum amplitude (OMLSA) estimator ,即

按作者的说法,OMLSA特别是对于低SNR比其他方法更有效。
E-OMLSA中的参数估计
1-SNR估计
按原文的说法,虽然SNR估计理论上更漂亮,但实际效果并不好,因此直接对SNR的估计结果利用不存在概率:



需要注意的是:
依赖于修正之后的SNR
,而P(H1)则依赖修正之前的SNR
。
2-语音存在概率的估计
上面分析的各套打法,都是用的固定先验概率P(H0)和P(H1)也就是q、1-q.这里提供了两个思路。
思路一(逐个频点处理):Hard threshold

这里其实是基于ML准则的估计:

更新公式

c是常数,文中设定为0.1.
思路二(逐个频点处理):soft threshold
利用

得出更新公式

有的学者简化了操作

是门限,文中设定为0.8.得出更新公式

c按经验取0.98.此处的更新需要借助VAD,仅当存在语音时迭代更新。
在OMLSA原文中,作者提出了另外一种估计思路。

只是带宽不同,估计思路一致(本质上都是基于能量的估计)

其中


h是带宽不同的窗函数。Pframe按帧处理

从而

其中
至此完成了语音存在概率的估计

加个后处理修正,也就是q=min(q,q_max):

3-噪声频谱的估计
这里用到的是the minima-controlled recursive-averaging (MCRA)算法,这里是一套方法,另起文章梳理。
汇总一下OMLSA的思路:
OMLSA算法思路:
1)大框架:利用统计模型中,log-MMSE的估计器;
2)细节有三点:
2.1)priori SNR:修正了估计方法;
2.2)语音不存在概率:改进了估计方法;
2.3)噪声频谱:利用MCRA方法估计;
语音增强模型、priori SNR的估计、语音不存在概率估计、噪声频谱估计:这是四块技术,每一块都有多种方法,OMLSA是一个综合算法,每一块技术都用了其中一套打法而已。
二、论文理论框架
全文主要是TF-GSC框架+post-filtering。
TF-GSC:这篇博文已介绍。
Post-filtering:这篇博文已介绍。
参考
- Gannot, Sharon, and Israel Cohen. "Speech enhancement based on the general transfer function GSC and postfiltering." IEEE Transactions on Speech and Audio Processing 12.6 (2004): 561-571.
- Loizou, Philipos C. Speech enhancement: theory and practice. CRC press, 2013.
【论文:麦克风阵列增强】Speech Enhancement Based on the General Transfer Function GSC and Postfiltering的更多相关文章
- 论文翻译:Speech Enhancement Based on the General Transfer Function GSC and Postfiltering
论文地址:基于通用传递函数GSC和后置滤波的语音增强 博客作者:凌逆战 博客地址:https://www.cnblogs.com/LXP-Never/p/12232341.html 摘要 在语音增强应 ...
- 【论文:麦克风阵列增强】An alternative approach to linearly constrained adaptive beamforming
作者:桂. 时间:2017-06-03 21:46:59 链接:http://www.cnblogs.com/xingshansi/p/6937259.html 原文下载:http://pan.ba ...
- 【论文:麦克风阵列增强】Microphone Array Post-Filtering For Non-Stationary Noise Suppression
作者:桂. 时间:2017-06-08 08:01:41 链接:http://www.cnblogs.com/xingshansi/p/6957027.html 原文链接:http://pan.ba ...
- 【论文:麦克风阵列增强】Signal Enhancement Using Beamforming and Nonstationarity with Applications to Speech
作者:桂. 时间:2017-06-06 13:25:58 链接:http://www.cnblogs.com/xingshansi/p/6943833.html 论文原文:http://pan.bai ...
- 【论文:麦克风阵列增强】An Algorithm For Linearly Constrained Adaptive Array Processing
作者:桂. 时间:2017-06-03 15:06:37 链接:http://www.cnblogs.com/xingshansi/p/6937635.html 原文链接:http://pan.ba ...
- 论文翻译:2021_Low-Delay Speech Enhancement Using Perceptually Motivated Target and Loss
论文地址:使用感知动机目标和损失的低延迟语音增强 引用格式:Zhang X, Ren X, Zheng X, et al. Low-Delay Speech Enhancement Using Per ...
- 【麦克风阵列增强】Delay and sum beamforming
作者:桂. 时间:2017-06-03 15:40:33 链接:http://www.cnblogs.com/xingshansi/p/6937576.html 前言 本文主要记录麦克风阵列的几个基 ...
- 论文翻译:2021_MetricGAN+: An Improved Version of MetricGAN for Speech Enhancement
论文地址:MetricGAN+:用于语音增强的 MetricGAN 的改进版本 论文代码:https://github.com/JasonSWFu/MetricGAN 引用格式:Fu S W, Yu ...
- 论文翻译:2021_DeepFilterNet: A Low Complexity Speech Enhancement Framework for Full-Band Audio based on Deep Filtering
论文地址:DeepFilterNet:基于深度滤波的全频带音频低复杂度语音增强框架 论文代码:https://github.com/ Rikorose/DeepFilterNet 引用:Schröte ...
随机推荐
- Xamarin自定义布局系列——支持无限滚动的自动轮播视图CarouselView
背景简述 自动轮播视图(CarouselView)在现在App中的地位不言而喻,绝大多数的App中都有类似的视图,无论是WebApp还是Native App.在安卓.iOS以及Windows(UWP) ...
- [Monkey King]
题目描述 在一个森林里住着N(N<=10000)只猴子.在一开始,他们是互不认识的.但是随着时间的推移,猴子们少不了争斗,但那只会发生在互不认识(认识具有传递性)的两只猴子之间.争斗时,两只猴子 ...
- css小细节罗列
有空时候把一些常见可能不是每个人都知道的css小细节总结了下,共勉. 1.line-height 众多周知,line-height是行高的意思,我们时常会使用类似line-height:24px;这样 ...
- string___assign
#include <iostream> #include <iterator> #include <string> int main() { std::string ...
- JavaScript常用的方法和函数(setInterval和setTimeout)
1.setInterval:计时器 可以按照指定的周期(以毫秒为单位)来调用函数或计算表达式 调用格式:setinterval(fun,time) 说明:fun为函数体,time为数值,这两个参数是必 ...
- AFNetworking源码阅读
get方法: - (NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(id)parameters progress:(void ...
- git笔记--git@OSC
之前安装了git,用了不久就升级系统了,发现又忘记了步骤,虽然网上有很多教程,但寻找需要浪费太多的时间,由于github连接比较慢,所以使用了开源中国的托管http://git.oschina.net ...
- 华为路由器AR1220F-S的端口映射NAT配置(拨号光纤上网)
telnet 登录 或者ssh登录路由器 //进入系统试图界面 sys-view //第一步. 添加acl规则, 允许内网本身访问对外的公网ip. 否则,只能外部人员访问你的公网ip [Huawei] ...
- 分辨率、像素和PPI
屏幕尺寸是指屏幕对角线的长度,一般以英寸为单位,1英寸(inch)=2.54厘米(cm).传统意义上的照片尺寸也是这个概念.所以同样尺寸(指对角线)的屏幕,也可能长宽比率不同.像素(Pixel):是位 ...
- 求数组的最小数、最大值,求一组数的平均数,sort函数详解,类数组转数组
求数组的最小值和最大值 //求数组当中最大值和最小值 var arr=[3,2,6,1,45,23,456,23,2,6,3,45,37,89,30]; //第一种方法 根据排序方法来求最大值和最小值 ...

即