干货周记:趣说“语音降噪”(一)(番外篇17)

360影视 2025-01-24 08:46 2

摘要:像这种科技论坛活动,一般都会有产品的demo展示环节。这本来也没啥好说的,但我在熙熙攘攘的环境中,却遇到了一款,令人匪夷所思的Demo。

前段时间,Roy参加了个论坛。

像这种科技论坛活动,一般都会有产品的demo展示环节。这本来也没啥好说的,但我在熙熙攘攘的环境中,却遇到了一款,令人匪夷所思的Demo。

这是一个语音降噪的Demo,简单讲,就是用麦克风和喇叭搭了一套的会议系统。看上去很简易,甚至略显简陋。Roy之前也用过很多“语音增强类”产品,自认为是“吃过正经白面”的,但多少还是被它的效果给惊到了。

哪怕你给通话麦克风“贴脸开大”,风噪、强敲击声这些杂音,统统都能被无痕免疫掉,那叫一个丝滑。但这个世界终究没有魔法,当了解到,想要达到这种效果,所需付出的代价时,我不禁感慨:算力,真是个好东西

无论如何,这简陋demo的外表之下,似乎有着一股神秘的内力正在蔓延,它的名字叫:AI

深入研究之后,Roy发现,无论是传统经典降噪,还是AI降噪,都可以爆好多料,敞开说的话,万字以内都聊不完。

咱这期,索性就先说说:传统语音降噪的那些事儿

还记得《高数》、《随机过程》和《泛函分析》吗,还记得课本上那些密密麻麻的公式和推导吗?别怕,我只是提醒你一下,传统语音降噪,主要就是基于统计特性的。

这么说吧,传统降噪的整个过程,就像是解一道数学概率题,想得高分。你就得深入了解每一个解题步骤,有时甚至还得用“近似条件”去妥协。虽然很难不扣分,但它至少是可控的。就这样,历代的“能工巧匠”们,纷纷在这张试卷上,留下了自己的答案。

就这样,经过多年的积累与打磨,许多巧妙的降噪模型得以传承下来。它们虽不能“包治百病”,但也都是智慧结晶,也各有各的闪光点,值得咱们respect。

不信?来,先看看下面这几个经典手法:

谱减法:用橡皮擦的猛男。

这是一个已存在几十年的老技法了。它的思路是,先估计出噪声的“模样”(如功率谱),而后再从信号频谱中把它减掉,以得到干净的语音信息。(注:麦克风收集到的语音信号,包含干净的语音和噪声)。

举例:想象一下,你手里有一张素描画像,它画的是一张美女的脸庞,但素描纸张,被一些乱七八糟的污渍给弄脏了。谱减法,就好比一个猛男,拿着橡皮擦,简单粗暴地去擦掉这些污渍,让画像恢复得更干净。

这个过程,公式表达如下:

S(f)=∣X(f)∣−α∣N(f)∣

其中, S(f) 是干净语音频谱,X(f) 是输入的带噪语音频谱,N(f) 是噪声频谱,α 是一个调整参数,相当于橡皮擦拭的力度。

谱减法这个猛男,它有个特点:他得先听一小段噪声,了解到噪声长什么样之后,才知道往哪儿使劲。准确地讲,分三步:

一、趁不说话时,先单独测量出环境噪声,得到噪声功率谱N(f) 。

二、对带噪语音,做STFT得到带噪语音功率谱X(f)。

三、从带噪语音功率谱X(f)中减去噪声功率谱N(f),得到纯净的语音功率谱S(f),再对它做iSTFT逆变换到时域,齐活。

优点:简单粗暴,计算量小,实时速度快,适合消除稳态噪声(如电风扇、空调噪声)。

缺点:一刀切策略,前提是假设噪声为稳态加性噪声。且若噪声估计不准,语音也可能会被误伤。虽然这是小学生都会的减法,但咱要想用好这块橡皮擦,也不容易,手一抖可能就翻车了。

维纳滤波法:心机调音师。

它本质上是一个精准的谱分解滤波器,对估计的噪声和语音做分析后,以最小均方差为准则(滤波器输出与目标语音),决定保留哪些信息,滤除哪些杂讯。一句话小结:见人下菜碟。

再好比,夜深人静,你在宿舍听播客时,旁边的室友在打呼噜,声音还忽大忽小,不厌其烦。而此时的维纳滤波器,就像个御用调音师,它知道哪些声音更像播客里的语音,哪些更像呼噜声,然后根据这些信息,边听节目,边帮你拧音量旋钮!

从数学上看,假设带噪语音 x(n)是纯净语音s(n)和噪声d(n)相加得到的,即x(n) = s(n) + d(n) . (假设信号和噪声均为平稳,且相互独立的)

维纳滤波法的目标,就是找到一个滤波器h(n),让滤波器输出y(n)和纯净语音s(n)的均方误差E=E[s(n)-y(n)]²最小。经对均方差求偏导等一系列推导之后,可得到维纳霍夫方程:

其中Rxx(m)是带噪语音x(n)的自相关函数(为n*n维矩阵),Rsx(m)是纯净语音s(n)和带噪语音x(n)的互相关函数,都可通过测得的信号矩阵计算得到。在此基础上,对Rxx(l-k)做矩阵求逆,与Rsx(l)相乘后,便可解出方程,得到h(n),这便是目标维纳滤波器的系数。

这个滤波器的目标,就是让它的输出尽可能保留人声,滤掉噪声。它的实际运行状态:实时计算输入信号的自相关矩阵,和输入与目标信号的互相关矩阵,得到动态的维纳滤波器系数,作用于系统。

说到这儿,Roy依稀记得,之前有位大神在设计某系统时,经常提起维纳霍夫方程和矩阵求逆等计算,当时听起来感觉好高深,现在想起来,他那会儿可能是在设计一款维纳滤波器。

优点:可以看到,维纳滤波器是动态更新的,它比谱减法更智能,它充分考虑了语音和噪声的比例特性,能较好地平衡噪声抑制和语音失真。

缺点:一、有动态的矩阵运算,计算量偏大。二、它假设噪声和语音是平稳且相互独立的,即噪声和语音的特性不随时间变化。但实际应用中,这个假设未必能被完全满足,若对二者的特性估计不准,那效果也会大打折扣。

当遇到人声和噪音“贴脸杀”(如人声和噪音频谱重叠时),调音师可能当场摆烂:这钱我不赚了!

写到这儿,我刚刚竟然有一种心流的感觉。

但是一回头,发现才写了俩传统语音降噪/增强手法,就已经两千多字了。下期Roy会注意,不能再这么啰嗦了。

顺便广播下,咱下期会接着聊传统语音降噪/增强的技法:小波变换法隐马尔可夫模型(HMM)、高斯混合模型(GMM)等。

下下期,会接着聊“AI降噪的十八般武器”等等。

我知道有人会说:且慢,HMM和GMM,都会用到大量的数据集做训练,你确定它们是传统降噪,不是AI降噪?

嘿嘿,咱们下期见分晓,bye!

Roy个人观点,仅供参考。

如果你对数码产品、英语学习和励志成长也感兴趣,也可关注各平台上的同名视频账号:微博、抖音、视频号,B站、小红书:科技朋克Roy,知乎:Roy

来源:左手小拇指

相关推荐