DSP 28335

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

  至少从 70 年代开始,噪声抑制就成为了人们关注的话题。尽管质量有了显著提升,但算法结构基

本保持不变。一些谱估计技术依赖于噪声谱估计器,而噪声谱估计器由语音活动检测器 ( VAD)或类
似的算法驱动,如图 1 所示。 3 个模块中的每个模块都需要准确的估计器,并且很难去调。尽管研
究者们改进了这些估计器,但仍然很难设计它们,并且该过程需要大量的人工调优。这就是为什么
最近深度学习技术上的进展对噪声抑制具有吸引力的原因。
    深度学习技术已被用于噪声抑制。许多方法都针对不需要低延迟的自动语音识别 (ASR)应用。
而且,在许多情况下,如果没有 GPU,神经网络的庞大规模将使得实时变得困难。文章专注于低复
杂度的实时应用(例如视频会议),并且专注于全频带(48 kHz)语音。为了实现这些目标,文章选择了
一种混合的方法,该方法依靠信号处理技术并使用深度学习来替代传统上难以调优的估计器。该方
法与所谓的端到端系统形成鲜明对比,在端到端系统中,大多数或所有信号处理操作 都被机器学习
取代。这些端到端系统已经明确地展示了深度学习的能力,但是它们通常以显著地增加复杂度为代
价。
  我们提出的方法具有可接受的复杂性(第 4 节),并且它提供了比更传统的方法更好的质量(第 5
节)。我们在第 6 节总结了进一步改进该方法的方向。

2 信号模型
    我们提出了一种混合的噪声抑制方法。我们的目标是在需要仔细调整的噪声抑制方面使用深度
学习,而在不需要调整的部分使用传统的信号处理模块。算法使用 20ms 的帧长,10ms 的帧移。分
析窗(analysis)和合成窗(synthesis)都使用 Vorbis 窗,它满足 Princen-Bradley 准则。该窗定义如下:
公式 1:w(n)=sin[π2sin2(πnN)]
公式 1:w(n)=sin⁡[π2sin2⁡(πnN)]
    系统框图如图 2 所示。大部分的抑制是在低分辨率的谱包络上进行的,使用循环神经网络计算
出频谱增益(maks,理想比值掩模 IRM 的平方根)。后面还使用梳状滤波器(pitch comb filter)来抑制
谐波(pitch harmonics)之间的噪声以达到更加精细的抑制。
Pitch analysis:基音追踪,追踪得到的基音周期一方面用于 Feature extraction 作为一个特征,
另一方面利用其得到$x(n−pindex)$进而进行后面的基音滤波(pitch filtering)操作。
feature extration:论文中求取 42 维特征的部分,将其作为输入送入 RNN,RNN 输出 22 位数据
band gain interpolation:每一帧的增益为 22 维,因而为了将其作用于点数为 481(帧长+1)的$X(k)$
上,需要对其进行插值,
A 带(band)结构
    在方法中,使用神经网络直接估计频率 Bin 的大小,共需要 6144 个隐藏单元和近 1000 万个权
重来处理 8 kHz 的语音。使用 20ms 帧扩展到 48kHz 语音需要 400 个输出(0 到 20kHz)的网络,这显
然会导致我们无法承受的更高复杂性。

    为了避免产生大量输出——从而产生大量神经元——我们决定不直接处理样本或频谱。我们假
设语音和噪声的频谱包络足够平坦,使用比频率 bin 更粗糙的分辨率—— bark scale 频段,这是一种
与人耳对声音感知相匹配的频率刻度。我们总共使用 22 个 band,而不是我们必须考虑的 480 个(复
数)频谱值。
Opus 频 带 的 布 局 与 实 际 的 Bark scale , bark 有 25 个 频 段 , opus 有 21 个 频 段 。 对 于
RNNoise,我们使用与 Opus 相同的基本布局。由于我们重叠了波段,因此 Opus 频段之间的边界
成为重叠的 RNNoise 波段的中心。因此我们有 22 个三角滤波器高频处频段更宽,因为耳朵在那里
的频率分辨率较差。低频处频带更窄,但不像 bark scale 给出的那么窄,因为那样我们将没有足够
的数据来做出正确的估计。当然,我们不能仅从 22 频段的能量中重建音频。不过,我们可以做的是
计算一个增益(22 维)以应用于每个频段的信号。你可以将其视为使用 22 个频段均衡器并快速改变每
个频段的 level 以衰减噪声,只让信号通过。(这里的增益和 mask 差不多概念。
    使用频带增益操作有几个优点:
(1)只用计算 22 个频段的增益,因此它的模型要简单得多。
(2)它不可能产生所谓的音乐噪声伪影,即只有一个 pitch 可以通过,而它的邻居却被衰减了。这
些伪影在噪声抑制中很常见,而且很烦人。对于足够宽的 band,我们要么让整个 band 通过,要么
全部剪掉。
增益总是在 0 和 1 之间,因此只需使用 sigmoid 激活函数(其输出也在 0 和 1 之间)来计算它们
就可以确保我们永远不会做一些愚蠢的事情,比如添加一些原本就不存在的噪音
    为了在训练期间更好地优化增益,损失函数是应用于增益的均方误差 (MSE) 的 alpha 次幂。到
目前为止,我们已经发现 alpha=0.5 在感知上产生了最好的结果。使用 alpha=0 将等同于最小化对
数谱距离,这是有问题的,因为最优增益可能非常接近于零。
    我们使用低分辨率频带(22 个频带)会导致 没有一个足够好的分辨率来抑制 pitch 谐波之间的噪
声。幸运的是,它并不是那么重要,甚至有一个简单的技巧去做它(见下面的音调过滤(pitch filtering)
部分)。
    此外,模型输出的是 22 个[0,1]范围内的 理想的临界频带增益(ideal critical band gains)——应
该也是基于 Mask 降噪方法的一种,其显著优点是限制在 0 和 1 之间。我们选择将频谱划分为与
Opus 编解码器[13]使用的 Bark scale[12]相同的近似。也就是说,高频波段遵循 Bark scale,但低频
波段最少有 4 个频率 bins。并且使用三角频带(滤波)而非矩形频带,每个三角的峰值和其相邻三角的
边界点重合。

You might also like