--- license: isc pipeline_tag: audio-to-audio tags: - axmodel - axera - rnnoise - audio-denoising - ax650 - ax620e --- # RNNoise(爱芯 NPU 版) Xiph RNNoise 语音降噪在爱芯 NPU 上的部署包,支持 **AX650(NPU3)/ AX620E(NPU2)** 双芯。 官方模型仓库:https://github.com/xiph/rnnoise ## 特性 - 48kHz 单声道实时语音降噪(逐帧 10ms,16-bit 等价域 ±32768) - 原版 rnnoise C 信号处理(特征分析 / 合成)+ AX Engine NPU 推理 - Python 与 C++ 双 SDK;官方未提供 ONNX,本仓库 ONNX 由官方 `rnnoise_data.c` 权重 1:1 复刻导出(Tanh/Sigmoid 有理逼近对齐 C 端) ## 支持平台与模型 | 芯片 | NPU | 模型目录 | gains cosine | 板端验证 | |---|---|---|---|---| | AX650 | NPU3 | `rnnoise_ax650/` | 0.9991(板端 198 帧) | ✅ C++ 2.91ms/帧,输出 cosine 0.9988 | | AX620E | NPU2 | `rnnoise_ax620e/` | 0.9987(仿真) | ✅ AX630C 板(AX620E NPU2 同构)C++ 4.93ms/帧,输出 cosine 0.9989 | 每个模型目录内含 `model.axmodel` + `model_meta.json`。 量化:U16 链路(MatMul/Conv/Add/Mul/Div/Sub/Concat/Clip/Slice,S8 权重), MinMax,校准数据来自真实语音(speech/speech-echo/speech-reverb + 6dB 噪声)。 ## 快速开始 ### 1. 安装 Python 环境 ```bash pip install -r python/requirements.txt ``` ### 2. 板端运行降噪 ```bash # AX650 python3 python/demo.py --chip ax650 # AX620E python3 python/demo.py --chip ax620e ``` 输出 `output/out.pcm`(48k f32le)+ `output/vad.npy`;演示样本为 `python/sample_speech.pcm`(约 4 秒语音)。 ## C++ SDK | 芯片 | 目录 | 说明 | |---|---|---| | AX650 | `cpp/ax650/` | cmake 链接 ax_engine/ax_sys,板端实测 2.91ms/帧 | | AX620E | `cpp/ax620e/` | 同源码树,目标 AX620E BSP 交叉编译 | ## 精度说明 | 张量 | AX650 板端 cosine | AX620E 仿真 cosine | |---|---|---| | gains | 0.9991 | 0.9987(板端 0.9989) | | vad | 0.99996 | 0.99997(板端 0.99987) | | GRU 状态 | 0.992–0.996 | 0.996+(板端输出 0.9989) | ## 复现 完整导出与编译流程(含双芯 Pulsar2 配置与校准数据)见 GitHub:https://github.com/ml-inory/rnnoise.axera