部署合同

audio.cpp 原生 Fun-ASR-Nano

用原生 C++ / GGML 在 CPU 或 CUDA 上运行 Fun-ASR-Nano Q8_0,并提供 CLI 与兼容 OpenAI 的本地转写服务。

成熟度
社区验证
FunASR
Fun-ASR-Nano-2512
运行时
audio.cpp@1778b23a
验证日期
2026-07-30

适用边界

先判断它是否适合你的生产约束

适合

  • 不希望安装 Python 推理环境
  • 桌面、边缘与离线批量转写
  • 需要兼容 OpenAI 的本地音频接口

不适合

  • 需要实时流式结果或时间戳
  • 需要 Fun-ASR-Nano 之外的 FunASR 模型
  • 尚未在目标硬件完成容量与准确率复测的公网服务
模型Fun-ASR-Nano-2512
硬件cpu / nvidia-gpu / desktop-edge-gpu
操作系统Linux / macOS / Windows
接口CLI / OpenAI-compatible HTTP

运行路径

从安装到已知音频验证

以下命令来自当前验证清单;上线前固定依赖、模型和硬件。

安装

git clone https://github.com/0xShug0/audio.cpp.git && cd audio.cpp
bash scripts/build_linux.sh --backend cpu --model-set custom --models fun_asr_nano --target audiocpp_cli --target audiocpp_server
python3 tools/model_manager_v2.py install fun_asr_nano

启动

build/linux-cpu-release/bin/audiocpp_cli --task asr --family fun_asr_nano --model models/Fun-ASR-Nano-2512-GGUF/fun-asr-nano-2512-q8_0.gguf --backend cpu --audio speech.wav --text-out transcript.txt
printf '%s\n' '{"host":"127.0.0.1","port":8080,"backend":"cpu","threads":4,"lazy_load":true,"models":[{"id":"fun-asr-nano","family":"fun_asr_nano","path":"models/Fun-ASR-Nano-2512-GGUF/fun-asr-nano-2512-q8_0.gguf","task":"asr","mode":"offline"}]}' > server.json
build/linux-cpu-release/bin/audiocpp_server --config server.json

健康检查

curl -fsS http://127.0.0.1:8080/health
curl -fsS http://127.0.0.1:8080/v1/models

Smoke test

发布前必须通过的最小验证

curl -fsS http://127.0.0.1:8080/v1/audio/transcriptions -F model=fun-asr-nano -F language=auto -F file=@speech.wav

运行与容量

把可运行推进到可运营

运行检查

  • 固定 audio.cpp 提交与 GGUF revision
  • 先用已知 WAV 核对 transcript 再接业务流量
  • 分别记录冷启动、预热 RTF、内存与并发队列

容量变量

  • 音频时长、语言、声道和 VAD 分段分布
  • 并发、队列等待、预热与模型缓存状态
  • 精确硬件、驱动、运行时和线程配置

故障排查

  • 先用 CPU + Q8_0 路径排除 CUDA 环境问题
  • 构建 backend 必须与运行参数一致
  • 输入异常时先核对 WAV、单声道和 16 kHz 转换路径

安全边界

生产入口默认不信任

已知限制

当前只输出离线转写文本,不暴露 streaming 或 timestamps;其他模型家族仍应选择对应 FunASR 运行时。

公开基准仅用于复现起点,不替代目标业务负载测试。

证据与反馈

从原始资料核对部署合同