mmse 语音降噪_懷舊篇, 單通道降噪, MMSE

article/2025/11/9 19:52:50

2ff34e647e2e3cdfd8dca593e17d9b0a.png

記錄一下單通道降噪的一個經典方法, MMSE-STSA, MMSE-LSA, 已經是 1984 左右的文章了. 單通道降噪 OMLSA 也從這衍生出來的. 我們先從 MMSE-STSA 說起, 全名是 minimum mean-square error short time spectral amplitude.

$y(t)=x(t)+d(t),0leq tleq T$

$x$, $d$, $y$ 分別是 speech, noise, 和收到的 noisy signal, 其中 $x$, $d$ 相互獨立. 相對應的第 $k$ 個 frequency bin 如下:

$$X_k=A_kexp(jalpha_k) \

D_k \

Y_k=R_kexp(jtheta_k)$$

MMSE-STSA $^{[1]}$

目標函式為

$$begin{align}

argmin_{hat{A}_k}{mathbb{E}left[left(A_k-hat{A}_kright)^2vert y(t),0leq tleq Tright]}

end{align}$$ 最佳解為

$$begin{align}

hat{A}_k=mathbb{E}left[A_kvert y(t),0leq t leq Tright]

end{align}$$ 但關鍵是我們不知道 clean speech 的 amplitude $A_k$, 那該怎麼估呢?

首先我們對每個 frequency bin 的分布假設為 Gaussian distribution (complex).引用原文 “Since the Fourier coefficient is, after all, a weighted sum (or integral) of random variables resulting from the random process samples”, 在一個短時的 frame 中大致上是 stationary, 因此可以看作是一個 WSS 的 ramdom process, 再加上 cental limit theorem, 就當作高斯分布吧.

套用 Guassian distribution 假設, 做如下推導

$$begin{align}

hat{A}_k=mathbb{E}left[A_kvert y(t),0leq t leq Tright]=mathbb{E}left[A_kvert Y_0,Y_1,...right] \

=mathbb{E}left[A_kvert Y_kright] \

=int_0^{infty}int_0^{2pi}a_k p(a_k,alpha_kvert Y_k)dalpha_k d a_k = int_0^{infty}int_0^{2pi}a_k frac{p(a_k,alpha_k,Y_k)}{p(Y_k)}dalpha_k d a_k \

=frac{ int_0^{infty}int_0^{2pi}a_k p(Y_kvert a_k,alpha_k) p(a_k,alpha_k) dalpha_k d a_k }{ int_0^{infty}int_0^{2pi} p(Y_kvert a_k,alpha_k) p(a_k,alpha_k) dalpha_k d a_k }

end{align}$$ 其中 (3) 到 (4) 我們假設每個 frequency bin 是獨立的

由於我們假設每個 frequency bin 都是 complex Gaussian distribution, 因此 (6) 的機率分佈如下定義:

$$begin{align}

p(Y_kvert a_k,alpha_k)=frac{1}{pilambda_d (k)}expleft[ -frac{1}{lambda_d (k)}vert Y_k - a_k e^{jalpha_k} vert^2 right] \

p(a_k,alpha_k)=frac{1}{pilambda_x (k)}expleft[-frac{a_k^2}{lambda_x (k)}right]

end{align}$$ 注意到 (7) 能這麼寫是因為我們知道 $x$ and $d$ 互相獨立, 因此在給定 $x$ 的情形下, 只是改變 mean 的位置, 其 variance 仍由 $d$ 來決定. 另外:

$$begin{align}

lambda_x (k)=mathbb{E}left[vert X_k vert ^2right]=A_k^2 \

lambda_d (k)=mathbb{E}left[vert D_k vert ^2right]

end{align}$$ 表示第 $k$ 個 bin 的 speech and noise 的 variance

將 (7) and (8) 帶入 (6) 並感謝偉大的作者推導得到:

$$begin{align}

hat{A}_k=Gamma(1.5)frac{sqrt{upsilon_k}}{gamma_k}M(-0.5;1;-upsilon_k)R_k \

hat{A}_k=Gamma(1.5)frac{sqrt{upsilon_k}}{gamma_k}expleft(-frac{upsilon_k}{2}right)left[(1+upsilon_k)I_0(frac{upsilon_k}{2})+upsilon_k I_1(frac{upsilon_k}{2})right]R_k

end{align}$$ 其中 $Gamma$ 表示 gamma function, $Gamma(1.5)=sqrt{pi}/2$; $M(a;c;x)$ 是 confluent hypergeometric function (這是外星符號吧), $I_0$ and $I_1$ 是 modified Bessel funciton of zero and first order. 總之就是能帶入計算的東西, 最重要, 也是需要我們估計的變數如下:

$$begin{align}

upsilon_ktriangleq frac{xi_k}{1+xi_k}gamma_k \

color{orange}{

xi_ktriangleqfrac{lambda_x (k)}{lambda_d (k)}

} \

color{orange}{

gamma_ktriangleqfrac{R_k^2}{lambda_d (k)}

} \

end{align}$$ $xi_k$ 和 $gamma_k$ 分別稱為 prior SNR 和 posterior SNR. 總之如能估出 $xi_k$ 和 $gamma_k$, 我們就能計算出 gain 值, 之後的方法如 LSA, OMLSA 也都如此. 文章後面會使用 MCRA 來估算這兩個 SNR.現在就算傳統方法一般也很少使用 MMSE-STSA, 至少會使用 LSA 取代. LSA 有近似的計算方式, 因此我們也不糾結 (12) 到底怎麼算出來.

MMSE-LSA $^{[2]}$

大致想法跟流程跟上面一樣(只是我算不出來), 只是目標函數針對 log 值來計算

$$begin{align}

argmin_{hat{A}_k}{mathbb{E}left[left(log A_k-loghat{A}_kright)^2vert y(t),0leq tleq Tright]}

end{align}$$ 同樣經過不是人類的計算後得到:

$$begin{align}

hat{A}_k=frac{xi_k}{1+xi_k}expleft[frac{1}{2}int_{upsilon_k}^{infty}frac{e^{-t}}{t}dtright]R_k

end{align}$$ [3] 給出了一個好算的近似結果

$$begin{align}

int_{upsilon_k}^{infty}frac{e^{-t}}{t}dtapprox left{

begin{array}{rcl}

-2.31log_{10}(upsilon_k)-0.6mbox{ for }upsilon_k<0.1 \

-1.544log_{10}(upsilon_k)+0.166mbox{ for }0.1lequpsilon_kleq 1 \

10^{-(0.52upsilon_k+0.26)}mbox{ for }upsilon_k>1 \

end{array}right.

end{align}$$ 另外還有 optimally-modified log-spectral amplitude (OMLSA) [4] 方法, 作者有提供 MATLAB codes. 這算單通道降噪標配了, 但實驗結果對聽覺有幫助, 對 WER 不一定降低. 總之不管哪一種方法, 都必須很好的估出 prior and posterior SNR.

MCRA Prior/Posterior SNR 估計

針對 STFT 時間 $l$, frequency bin $k$ 來說, 假設我們已估出來 speech presence probability $p(k,l)$, 我們可以這麼 update noise 的 variance:

$$begin{align}

hat{lambda}_d(k,l+1)=hat{lambda}_d(k,l)p(k,l)+left[alpha_dhat{lambda}_d(k,l)+(1-alpha_d)|Y(k,l)|^2right](1-p(k,l))

end{align}$$ 這很好理解, 如果有 speech 的話, noise variance 就沿用原來舊的, 而如果沒有 speech, nosie vaiance 就要用當前 frame 透過 $alpha_d$ 平滑地更新一下 (就稱這樣的平滑為 $alpha$ 平滑).

估計 $p(k,l)$ 之前, 文章的做法是都先針對 time and frequency 做平滑. frequency 可選用一個 window (可用類似 Gaussian window), 而時間上的平滑可使用 $alpha$ 平滑. 令 $S(k,l)$ 為我們平滑後的 spectrum power, 然後對每個 bin 都 tracking 一小段時間的最小值, 令為 $S’(k,l)$. 則很明顯如果 $S(k,l)>delta S’(k,l)$, 我們就可以認為有 speech, 機率為 1, 否則為 0. 這樣的 speech 機率過了 $alpha$ 平滑的結果就是 $p(k,l)$. 明確一點寫下為:

$$begin{align}

p(k,l)=alpha_p p(k,l-1)+(1-alpha_p)mathbf{I}[S(k,l)>delta S'(k,l)]

end{align}$$ 其中 $mathbf{I}[.]$ 為 indicator function

MCRA 有哪些調整的參數

實際情形有一些需要調整的參數, 列在下面$alpha_d$: noise variance smoothing

$alpha_p$: speech probability smoothing

STFT 的 time and frequency smoothing 參數

$delta$: 判斷當前 frame and bin 是否為 speech 的 threshold

tracking minimal power $S’(k,l)$ 的參數, 譬如要用多少個 frame 來找 minimum

待做些實驗才會知道效果…

Reference


http://chatgpt.dhexx.cn/article/6Ld1ncja.shtml

相关文章

MMSE法用于MIMO系统

MMSE法用于MIMO系统 MMSE方法用于MIMO系统程序如下&#xff1a; 之前讲到过迫零响应法&#xff08;ZF&#xff09;在MIMO系统中的应用&#xff0c;而另外一种均衡方法也常常用在不理想传输信道中&#xff0c;这就是最小误差法&#xff08;Minimum Mean Square Error&#xff0c…

信道估计---LS、MMSE、LMMSE准则

本期目录 引言基本假设LS信道估计LS信道估计工程实现 MMSE信道估计LMMSE信道估计LMMSE实现 引言 信道估计主要分为非盲信道估计和盲信道估计。顾名思义&#xff0c;非盲信道估计需要使用基站和接收机均已知的导频序列进行信道估计&#xff0c;并使用不同的时频域插值技术来估计…

MIMO系统Vblast检测算法误码率matlab仿真,对比了zf,mmse,mmse-sic,zf-sic,osic

目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 3.1zf 3.2mmse 3.3osic 4.完整MATLAB 1.算法仿真效果 matlab2022a仿真结果如下&#xff1a; 2.MATLAB核心程序 ................................................ for i1:length (SNRs)SNR(i) 10^(SNR…

MIMO系统信号检测之MMSE推论

定义 MMSE (Minimum Mean Square Error)表示最小均方误差。 它是一种以最小化接收数据的MSE为目的的接收机模型。过程 我们从以下最简单的信道模型开始&#xff1a; MMSE是一种后处理均衡算法。 它用于找出尽可能接近原发送数据(X)的接收数据(Y)。 以下图示意&#xff0c;M…

MMSE (Minimum Mean Square Error)均衡原理讲解

MMSE是一种将接收数据的MSE&#xff08;均方误差&#xff09;最小化的模型。有了这句话&#xff0c;很多问题就会在你的脑海中蹦出来。 什么是均方误差&#xff1f;最小化MSE "的物理含义是什么&#xff1f; 等等。 让我们从一个我们现在已经非常熟悉的信道模型开始。(我希…

MMSE(Minimum Mean Square Error)

MMSE是一种最小化接收数据的MSE(均方误差)的模型。关于这句话&#xff0c;你的脑海里就会出现很多问题: 什么是均方误差? “最小化MSE”的物理意义是什么? 让我们从一个我们现在非常熟悉的信道模型开始. MMSE作为一种均衡器&#xff0c;是一种后处理算法&#xff0c;它帮助…

信道估计之MMSE算法

信道估计之MMSE算法 前言MMSE估计的原理总结 前言 前篇分析了LS信道估计算法&#xff0c;也说明了由于没有考虑SNR的影响&#xff0c;所以LS算法不适合在低信噪比的情况下使用。本篇来学习信道估计的另外一种常用的算法–MMSE。 为什么说LS没有考虑噪声大小的情况呢&…

冲顶数据产品经理笔试题及解答

一个社交APP, 它的新增用户的次日留存、7日留存、30日留存为52%、25%、14%, 请模拟出来&#xff0c;每天如果日新增6万用户&#xff0c;那么30天后&#xff0c;它的日活数会达到多少? 请使用Excel做答&#xff0c;截图并且说明计算方法。 从下面是某出行公司周报相关报表&…

做APP,从头到尾产品经理需要做什么?—项目上线后

摘要: 项目上线后&#xff0c;作为产品需要关注的事情有几个方面&#xff0c;一是APP数据&#xff0c;二是用户反馈&#xff0c;三是需求提取。这三个方面的流程见下。 之前给大家介绍了两个部分&#xff0c;项目启动前和项目执行中。项目上线后&#xff0c;作为产品需要关注的…

移动APP产品经理必学的工具和必上的酷站

一、移动APP产品经理工具篇&#xff1a; 1、processon (产品必备软件) ProcessOn是一个在线协作绘图平台&#xff0c;支持在线创作流程图、BPMN、UML图、UI界面原型设计、iOS界面原型设计等。一款免费在线协同作图软件ProcessOn 之前25学堂也跟大家分享过几个优秀的APP原型…

产品经理的七个阶段

一、第一阶段&#xff1a;需求细化与研发跟进 这个阶段基本上每天的工作都是写PRD、画原型、做DEMO。也就是基本处于一种被动分配任务的状态&#xff0c;接收的都是“二手需求”。一般而言自己思考产生的产品优化会比较少。也就是目前IT行业里面数百万的产品助理&#xff0c;甚…

得到app产品体验报告

产品体验报告-得到app 一、产品概况 1.1体验环境 体验产品&#xff1a;得到app软件版本&#xff1a;v7.6.0体验机型&#xff1a;iPhone8操作系统&#xff1a;iOS13.1.2体验时间&#xff1a;2019.12.08 1.2产品简介 类型&#xff1a;在线教育、知识付费、知识服务应用 slog…

广联达产品经理笔试题目

你喜欢网上购物吗&#xff0c;请列举出京东和淘宝的区别&#xff08;如果没使用过京东和淘宝&#xff0c;列举其他的网上购物产品区别也可&#xff09;&#xff1f; 参考答案&#xff1a; &#xff08;产品定位&#xff0c;商家入驻&#xff0c;用户群体、物流、仓储、真货假货…

产品经理面试技巧

互联网公司的新一轮春招已经开始&#xff0c;在此总结下自己之前面试阿里、百度、腾讯等公司的经历&#xff0c;分享一下自己一路走来的经验感想。 我 杭州电子科技大学&#xff08;非211、985&#xff09; 本科信息管理与信息系统专业 2015年4月在阿里巴巴移动事业部实习 20…

产品经理入门知识点

&#x1f604;&#xff0c;作为一个全方面发展的程序媛&#xff0c;第一步当然要先深入需求方啦。以下内容均为本人在编程之外学习的产品经理课程的归纳总结。属于精简重点版。&#xff08;偷偷约束一下啥也不懂的产品经理&#xff09; *产品经理定位 为产品和用户服务&#x…

得物APP产品研究

得物APP产品研究 得物立足于年轻消费者市场,在懂得如何发掘年轻人的心理的情况下挖局年轻人的需求&#xff0c;也随着潮元素的迅速张开的市场&#xff0c;得物在潮流的领域上开拓出了新的天地&#xff0c;基于互联网大数据的时代-典型的马太效应&#xff0c;使得得物变成了年轻…

产品经理一

前言&#xff1a;产品思维产品技能 产品经理的基础认知&#xff0c;跑&#xff0c;从0到1搭建一个实战项目---电商 一、产品经理的基础认知&#xff1a; 1.产品经理的定义&#xff1a; a产品经理&#xff1a;设计者&#xff0c;规划者&#xff0c;推动者&#xff0c;运营者—…

智能硬件产品经理跟纯APP产品经理的主要区别在哪里?

最近在混智能硬件的产品经理圈&#xff0c;一直在思考&#xff0c;产品的种类很多&#xff0c;硬件类的产品经理跟纯APP的区别主要在哪里呢&#xff1f;我想我们这里很多的各种类别的产品经理&#xff0c;大家都来说说&#xff0c;自己思维里&#xff0c;各种产品的差别跟主要能…

产品经理做APP从头到尾的所有工作流程详解!

本文转载自互联网&#xff0c;如有侵权&#xff0c;请联系我及时删除。谢谢。 一、项目启动前 从事产品的工作一年多&#xff0c;但自己一直苦于这样或者那样的困惑&#xff0c;很多人想要从事产品&#xff0c;或者老板自己创业要亲自承担产品一职&#xff0c;但他们对产品这个…

产品经理必备APP

产品经理工作的本质是&#xff1a;发现问题后&#xff0c;在设计、开发、测试、运营和市场商务等的帮助下&#xff0c;整合和管理各种资源&#xff0c;去解决痛点问题&#xff0c;并把解决方案转换成实际产品&#xff0c;创造商业价值。在进行内容呈现、产品文档撰写和需求的管…