Skip to content

WaveFormer:实时低延迟音频处理与分离

WaveFormer 是一款开源的深度神经网络(DNN)模型,专为低延迟音频处理和实时音频分离而设计。它通过高效的流式推理机制,能够在每个时间步处理约 10 毫秒的音频块,且仅依赖过去的音频块,不涉及未来的音频块。WaveFormer 在实时音频处理领域表现出色,广泛应用于语音增强、音频监控和音频编辑等场景。

1. WaveFormer 的核心架构

WaveFormer 的核心架构基于编码器-解码器(Encoder-Decoder)模型,编码器由多个扩张因果卷积层(Dilated Causal Convolution, DCC)组成,解码器则采用 Transformer 解码层。这种混合架构结合了卷积神经网络的高效性和 Transformer 的强大性能。

1.1 扩张因果卷积编码器

扩张因果卷积(DCC)层的设计使得模型能够以较低的计算复杂度处理较大的感受野。具体来说,DCC 层通过指数增长的扩张因子(例如 \(2^0, 2^1, 2^2, \ldots, 2^{M-1}\))来扩展感受野,其计算复杂度为 \(O(\log R)\),远低于传统 Transformer 的 \(O(R)\) 复杂度。WaveFormer 使用了 10 层 DCC,感受野达到约 1.5 秒。

1.2 Transformer 解码器

Transformer 解码器负责将编码器的输出转换为目标音频信号。它通过自注意力机制和交叉注意力机制,结合查询向量(例如目标类别标签),生成用于提取目标音频的掩码。

2. WaveFormer 的性能表现

WaveFormer 在实时性和音频分离质量方面表现出色。在 Core i5 CPU 上,WaveFormer 的实时因子(RTF)范围为 0.66 到 0.94,端到端延迟小于 20 毫秒。与之前的模型相比,WaveFormer 的性能提升显著:

  • SI-SNRi 提升:相比 Conv-TasNet 和 ReSepformer 等模型,WaveFormer 的 SI-SNRi 提升了 2.2 到 3.3 分贝。
  • 模型大小:WaveFormer 的模型大小减少了 1.2 到 4 倍。
  • 运行时间:运行时间减少了 1.5 到 2 倍。

3. WaveFormer 的应用场景

WaveFormer 的低延迟和高效性能使其在以下领域具有广泛的应用前景:

3.1 语音增强

在嘈杂环境中,WaveFormer 可以实时提取清晰的语音信号,去除背景噪声,提升语音通信的质量。

3.2 音频监控

WaveFormer 能够实时监控特定音频事件,例如警报声、设备故障声等,及时发现异常情况。

3.3 音频编辑

在音频制作过程中,WaveFormer 可以实时分离出特定的音源,例如人声、乐器声等,方便音频工程师进行编辑和处理。

4. WaveFormer 的使用指南

4.1 环境设置

在使用 WaveFormer 之前,需要安装必要的依赖环境。以下是推荐的环境配置:

conda create --name waveformer python=3.8
conda activate waveformer
pip install -r requirements.txt

4.2 自定义音频处理

用户可以通过以下命令使用 WaveFormer 处理自己的音频文件:

# 单目标提取
python Waveformer.py data/Sample.wav output_typing.wav --targets Computer_keyboard

# 多目标提取
python Waveformer.py data/Sample.wav output_bark_cough.wav --targets Bark Cough

4.3 训练与评估

WaveFormer 提供了详细的训练和评估指南。用户可以根据需要进行模型的训练和性能评估。训练数据集可以通过以下方式生成:

# 下载 FSDKaggle2018 和 TAU Urban Acoustic Scenes 2019 数据集
python data/download.py

# 下载 FSDSoundScapes 数据集
wget https://targetsound.cs.washington.edu/files/FSDSoundScapes.zip
unzip FSDSoundScapes.zip

5. WaveFormer 的开源贡献

WaveFormer 的代码和相关资源已经开源,用户可以在以下地址找到更多信息:

Ref