HY-2012's picture
DeepFilterNet3 AXERA 量化部署包: axmodels (GRU 状态携带) + Python SDK + C++ 可执行文件
26f00f8 verified
|
Raw History Blame Contribute Delete
3.11 kB
---
language:
- zh
- en
license: mit
pipeline_tag: audio-to-audio
tags:
- speech-enhancement
- noise-reduction
- axera
- ax650
- deepfilternet
---
# 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 运行
```bash
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
```
或:
```python
from inference import enhance_audio
out = enhance_audio(audio_float32_48k, model_dir="axmodels")
```
## C++ 运行
```bash
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](https://github.com/ZY-2012/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) |
## 参考
- [DeepFilterNet](https://github.com/Rikorose/DeepFilterNet)
- [DeepFilterNet3.AXERA](https://github.com/ZY-2012/DeepFilterNet3.AXERA)(完整转换源码)
- [Magnetar](https://github.com/AXERA-TECH/Magnetar) — AXERA 模型部署 agent 工具
## 技术讨论
- GitHub issues
- QQ 群: 139953715