DeepFilterNet2能否在嵌入式设备上实现全频带音频的实时语音增强?

摘要:博客地址:凌逆战 论文地址:DeepFilternet2: 面向嵌入式设备的全波段音频实时语音增强 论文代码:https:github.comRikoroseDeepFilterNet 引用格式:Schrö
博客地址:凌逆战 论文地址:DeepFilternet2: 面向嵌入式设备的全波段音频实时语音增强 论文代码:https://github.com/Rikorose/DeepFilterNet 引用格式:Schröter H, Rosenkranz T, Maier A. DeepFilterNet2: Towards Real-Time Speech Enhancement on Embedded Devices for Full-Band Audio[J]. arXiv preprint arXiv:2205.05474, 2022. 摘要   基于深度学习的语音增强技术已经取得了巨大的进步,最近还扩展到了全频带音频(48 kHz)。然而,许多方法都有相当高的计算复杂度,需要大的时间缓冲来实时使用,例如由于时间卷积或注意力。这两者都使得这些方法在嵌入式设备上不可行。这项工作进一步扩展了DeepFilterNet,利用语音的谐波结构实现了有效的语音增强。训练过程、数据增强和网络结构中的几项优化使SE性能达到了最先进的水平,同时在笔记本Core-i5 CPU上将实时因子降低到0.04。这使得算法可以在嵌入式设备上实时运行。DeepFilterNet框架可以在开源许可下获取。 索引术语:DeepFilterNet,语音增强,全波段,两级建模 1 引言   最近,基于深度学习的语音增强已经扩展到全频带(48 kHz)[1,2,3,4]。大多数SOTA方法通过对噪声音频信号进行短时傅里叶变换(STFT)在频域进行SE,并在类似于深度神经网络(DNN)的U-Net中对信号进行增强。然而,许多方法在乘法累积操作(MAC)和内存带宽方面有相对较大的计算需求。也就是说,较高的采样率通常需要较大的FFT窗口,从而产生大量的频率bin,这直接转化为更多的MAC。   PercepNet[1]通过使用三角形ERB(等效矩形带宽)滤波器组解决了这个问题。在这里,基于STFT的频率bin被对数压缩到32个ERB波段。然而,这只允许实值处理,这就是为什么PercepNet额外应用梳状过滤器来更好地增强语音的周期性成分。相反,FRCRN[3]将频率bin分成3个通道,以减少频率轴的大小。这种方法允许对复数比例掩码(CRM)进行复数的处理和预测。类似地,DMF-Net[4]使用多波段方法,其中频率轴被分成3个波段,由不同的网络分别处理。一般来说,与单阶段方法相比,像DMF-Net这样的多阶段网络最近展示了它们的潜力。例如,GaGNet[5]在特征提取阶段之后使用两个所谓的glance和gaze阶段。glance模块在粗量级域上工作,而gaze模块在复数域上处理频谱,允许以更精细的分辨率重建频谱。   在这项工作中,我们扩展了[2]的工作,[2]也分为两个阶段。DeepFilterNet利用了由一个周期分量和一个随机分量组成的语音模型。第一阶段在ERB域中工作,只增强语音包络,而第二阶段使用深度滤波[6,7]来增强周期性成分。在本文中,我们描述了在Voicebank+Demand[8]和深度噪声抑制(DNS) 4盲测挑战数据集[9]上实现SOTA性能的几个优化。此外,这些优化提高了运行时性能,使得在树莓派4上实时运行模型成为可能。 2 方法 2.1信号模型和DeepFilterNet框架 我们假设噪音和语音是不相关的,比如 $$公式1:x(t)=s(t)*h(t)+n(t)$$ 其中$s(t)$是纯净语音信号,$n(t)$是加性噪声,$h(t)$是模拟混响环境的房间脉冲响应,产生噪声混合物$x(t)$。这直接转化为频域 $$公式2:X(k,f)=S(k,f)*H(k,f)+N(k,f)$$ 其中$X(k, f)$为时域信号$X(t)$的STFT表示,$k, f$为时间和频率指标。   在本研究中,我们采用了DeepFilterNet[2]的两阶段去噪过程。也就是说,第一阶段在量级范围内运行,并预测实值增益。整个第一阶段在一个压缩的ERB域内进行,目的是在模拟人耳听觉感知时减少计算复杂性。因此,第一阶段的目的是在粗频率分辨率下增强语音包络。第二阶段利用深度滤波在复数域内工作[7,6],试图重构语音的周期性。[2]表明,深度滤波(DF)通常优于传统的复数比掩模(CRMs),特别是在very noisy的条件下。   组合SE过程可以表述如下。编码器$F_{enc}$将ERB和复数特征编码到一个embedding $\varepsilon$中。
阅读全文