| --- |
| license: apache-2.0 |
| pipeline_tag: audio-to-audio |
| tags: |
| - axmodel |
| - axera |
| - FireRedASR-AED |
| --- |
| |
| # FireRedASR-AED |
|
|
| 小红书 ASR AED-L 在 AX650N 上的 NPU 部署(原项目: |
| [FireRedTeam/FireRedASR](https://github.com/FireRedTeam/FireRedASR))。 |
| 支持中文、英文,最长 10s 输入,超长音频自动 VAD 切分。 |
|
|
| ## 模型 |
|
|
| | 文件 | 说明 | |
| |------|------| |
| | `axmodel/encoder.axmodel` / `axmodel/decoder_loop.axmodel` | Pulsar2 7.0-lite 重转换(encoder U16 + decoder U8 密集校准) | |
| | `fsmn_vad/fsmn_vad_10s_fp32.axmodel` + `fsmn_vad/am.mvn` | FSMN-VAD(FunASR)NPU 语音门控 | |
|
|
| ## VAD 说明(2026-08-24) |
|
|
| - 超长音频按 10s 块处理;每块用 FSMN-VAD 判断是否含语音, |
| 检出语音 ≥ 1s 才整块送 ASR,静音/噪声块直接返回空。 |
| - 适配远场/低信噪比录音:3 分钟立体声录音可输出完整转写, |
| 同时静音/噪声不产生幻觉。 |
|
|
| ## 指标(AX650N,4 条测试语音) |
|
|
| - CER:3.37% |
| - RTF:约 0.3(Python),0.225(C++ SDK) |
|
|
| ## 使用 |
|
|
| ```bash |
| conda create -n fireredasr python=3.12 |
| conda activate fireredasr |
| pip install -r requirements.txt |
| pip install axengine-0.1.3-py3-none-any.whl # pyaxengine |
| python openai/openai_server.py \ |
| --encoder axmodel/encoder.axmodel \ |
| --decoder axmodel/decoder_loop.axmodel \ |
| --fsmn-vad fsmn_vad/fsmn_vad_10s_fp32.axmodel \ |
| --fsmn-cmvn fsmn_vad/am.mvn \ |
| --cmvn axmodel/cmvn.ark --dict axmodel/dict.txt \ |
| --pe axmodel/pe.npy --max-dur 10 --max-steps 128 |
| ``` |
|
|
| ## OpenAI API |
|
|
| - C++ 预编译:`cpp/bin/firered_openai_server`、`cpp/bin/firered_openai_client` |
| (用法见 `cpp/bin/README.md`) |
| - Python:`openai/openai_server.py`、`openai/openai_client.py`(stdlib,零额外依赖) |
| - Python ASR 核心:`openai/firered_asr.py` + `openai/fsmn_vad_post.py` |
| (numpy + pyaxengine + kaldi-native-fbank,无 torch/onnxruntime) |
| - 端点:`POST /v1/audio/transcriptions`(multipart `file`)、`GET /v1/models` |
|
|
| 7.0 重转换、C++ SDK 源码与构建说明见 |
| [GitHub](https://github.com/ml-inory/FireRedASR.axera)(`cpp/`、`reports/`)。 |
|
|