【论文:麦克风阵列增强】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 ...
随机推荐
- MySQL之改_update
MySQL增删改查之改_update UPDATE语句 进行数据记录的更新. 1.更新单个表中的值 语法: UPDATE [IGNORE] table_reference SET col_name1= ...
- [Day01] Python基础
明天要完成的任务如下: Python 四则运算 Python 数据结构 Python 元算符(in.not in.is.and.or) 用户输入 (input.raw_input) 流程控制 缩进 ...
- 安卓手机免root实现对其他软件最高管理(sandbox思想)
root之后的安卓系统并不稳定,root后有时候会出现一些系统的错误,如果实在忍受不了的话,这时候只能恢复出厂设置了.因此不root是最优的选择,但是不root情况下,并没有哪个软件可以实现对其它 ...
- DTCMS插件的制作实例电子资源管理(三)前台模板页编写
总目录 插件目录结构(一) Admin后台页面编写(二) 前台模板页编写(三) URL重写(四) 本实例旨在以一个实际的项目中的例子来介绍如何在dtcms中制作插件,本系列文章非入门教程,部分逻辑实现 ...
- Android获取状态栏高度、标题栏高度、编辑区域高度
一.Activity界面的划分 简单说明一下(上图Activity采用默认Style,状态栏和标题栏都会显示):最大的草绿色区域是屏幕界面,红色次大区域我们称之为"应用程序界面区域" ...
- 山东省第八届ACM省赛游记
Day 1: 凌晨,来了几分兴致,和队友在VJudge上开了一把zoj月赛,WA一发闷一口拿铁,一瓶拿铁 不一会就被喝完了!好气啊!遂开始愉快地打游戏,打着打着,woc,居然3点半了,小睡片 刻,咬上 ...
- VueJs开发笔记—IDE选择和WebStorm性能优化、框架特性和数据调用、路由选项以及使用
一.IDE的选择: VsCode和WebStorm都是不错的选择,两者运行调试都非常的方便都可以使用快捷键运行和停止,就打开项目的速度和对电脑配置的要求来说,vscode要比webstorm要出色很多 ...
- Linux系统档案与文件系统的压缩与打包
以下文章基于centos6.5 文章引自:http://www.jb51.net/LINUXjishu/105916.html 一.Linux下常见的压缩指令 在linux的环境中,压缩文件的扩展名大 ...
- 8611 大牛之路I
#include<stdio.h> ]; int main() { int i, n, m, sum, x, y; scanf("%d%d", &n, & ...
- OpenCV探索之路(十四):绘制点、直线、几何图形
绘制点和圆 void cvCircle( CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int li ...