DeepFilterNet3.AXERA

DeepFilterNet3 (48kHz 全频带实时语音降噪) 的 AXERA 平台量化部署包 (当前支持 AX650N)。

  • 模型: enc (U16) / erb_dec (U16) / df_dec (全 FP32) 3 个子图, GRU 状态跨块携带版
  • 依赖: 仅 numpy + axengine (Python); C++ 为预编译 aarch64 可执行文件

目录

├── axmodels/       # enc.axmodel / erb_dec.axmodel / df_dec.axmodel
├── inference.py    # Python 推理入口 (依赖仅 numpy + axengine)
├── requirements.txt
├── assets/         # 演示音频 (带噪输入 + 增强输出样例)
├── bin/            # C++ 可执行文件 (aarch64)
└── run.sh          # 一键运行

Python 运行

pip3 install numpy
# pyaxengine: https://github.com/AXERA-TECH/pyaxengine/releases/latest
pip3 install axengine-<version>-py3-none-any.whl
./run.sh input.wav output.wav

或:

from inference import enhance_audio
out = enhance_audio(audio_float32_48k, model_dir="axmodels")

C++ 运行

LD_LIBRARY_PATH=<ax_runtime>/lib ./bin/df3_ax \
  axmodels/enc.axmodel axmodels/erb_dec.axmodel axmodels/df_dec.axmodel \
  input.wav output.wav

模型说明

  • 输入: 48kHz 单声道 (PCM16 wav 或 float32 数组)
  • 3 子图流水线: STFT(fft 960/hop 480) -> ERB+unit_norm 特征 -> enc (GRU, 状态携带) -> erb_dec (m 掩码) + df_dec (coefs) -> ERB 增益 + DF 滤波(5 阶, 2 帧前瞻) -> ISTFT
  • 静态 T=99 帧/块, GRU 状态跨块传递 (实时流式语义, 与官方 tract 部署一致)
  • 完整转换源码见 GitHub: DeepFilterNet3.AXERA

RTF(AX650N 实测, noisy_snr0.wav 10.6s)

推理路径 耗时 RTF 峰值内存
C++ 1.50 s 0.142
Python 1.44 s 0.136 28.9 MB

RTF = 推理耗时 / 音频时长(不含模型加载,RTF < 1.0 即可实时)

示例结果(AX650N 实测)

音频 输入 RMS 输出 RMS 效果
assets/noisy_snr0.wav(SNR 0dB 带噪语音) 0.0640 0.0489 噪声移除、语音保留
assets/enhanced_sample.wav(上者降噪输出) 试听对比用

其他实测(不在本仓):干净语音 RMS 0.0287→0.0270(几乎无损伤); 纯噪声 0.0336→0.0021(约 -24dB 压制)

精度(AX650N 实测)

指标 数值
逐张量 cosine vs ONNX(enc/erb_dec) ≥ 0.9946(U16 量化)
df_dec 输出 coefs 0.99999(全 FP32)
板端端到端 vs 官方 torch 参考 cosine 0.9857(量化损失仅 0.0005)

参考

技术讨论

  • GitHub issues
  • QQ 群: 139953715
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support