| --- |
| license: apache-2.0 |
| pipeline_tag: audio-to-audio |
| tags: |
| - axmodel |
| - axera |
| - gcrn |
| - speech-enhancement |
| --- |
| # GCRN 语音增强(AX650 NPU3) |
|
|
| GCRN(Graph Convolutional Recurrent Network)单声道语音增强模型,输入 16 kHz 噪声语音, |
| 输出同长增强语音。本包为 AX650 / NPU3 量化部署版: |
|
|
| - 精度:AXMODEL 与 ONNX 参考余弦相似度 **0.9992**(增强波形余弦 0.9997) |
| - 速度:AX650 板端 **RTF 0.029**(9.77 秒音频约 0.28 秒处理完) |
| - 大小:AXMODEL **27.6 MB**(ONNX 38 MB) |
|
|
| ## 快速开始(两步) |
|
|
| ### 1. 安装环境 |
|
|
| ```bash |
| bash setup.sh |
| ``` |
|
|
| ### 2. 跑推理 |
|
|
| ```bash |
| bash run.sh |
| ``` |
|
|
| 脚本会自动选择后端:板端(有 axengine)跑 NPU 模型,普通电脑自动用 ONNX 模型演示。 |
| 输出为 `enhanced.wav`,增强前后的对比音频可以自己听一下。 |
|
|
| ## 目录说明 |
|
|
| | 目录 | 用途 | |
| |------|------| |
| | `models/` | AXMODEL 模型 + `model_meta.json` | |
| | `python/` | Python SDK(axengine / onnxruntime 双后端)| |
| | `cpp/` | C++ SDK(AX Engine runtime,aarch64 交叉编译)| |
| | `model_convert/` | 导出、校准、Pulsar2 编译全套可复现脚本 | |
| | `reports/` | 导出/编译/仿真/板端验证报告 | |
| | `test_audio/` | 自带 9.77 秒测试音频 | |
|
|
| ## 在自己的代码里用 |
|
|
| ```python |
| from gcrn_sdk import GCRNDenoiser |
| |
| denoiser = GCRNDenoiser("models/model.axmodel") |
| report = denoiser.enhance_file("test_audio/mix.wav", "enhanced.wav") |
| print(report) # 含 RTF 等性能指标 |
| ``` |
|
|
| ## 常见问题 |
|
|
| **Q: import 报错找不到 axengine?** |
| A: 说明当前不在 AX 板端。代码会自动用 ONNX 模型演示;要在 NPU 上跑,需在 AX650 板端 |
| 安装匹配的 axengine wheel(见 `setup.sh` 输出提示)。 |
|
|
| **Q: 想自己重新编译 AXMODEL?** |
| A: 进入 `model_convert/` 按 README 操作,Pulsar2 会从 ONNX 重新量化编译。 |
| 原始编译使用 Docker 镜像 `pulsar2:7.0-lite`,配置为 NPU3 + U16 高精度模式。 |
|
|
| **Q: 输入音频有什么要求?** |
| A: 16 kHz、单声道、16-bit PCM WAV;更长音频会自动按 4 秒分块处理并拼接。 |
|
|