Deployment contract

audio.cpp native Fun-ASR-Nano

Run Fun-ASR-Nano Q8_0 with native C++ and GGML on CPU or CUDA, using a CLI or local OpenAI-compatible transcription service.

Maturity
Community verified
FunASR
Fun-ASR-Nano-2512
Runtime
audio.cpp@1778b23a
Verified
2026-07-30

Workload boundary

Decide whether it fits your production constraints

Good fit

  • No Python inference environment
  • Desktop, edge, and offline batch transcription
  • A local OpenAI-compatible audio endpoint is required

Not a fit

  • Realtime streaming results or timestamps
  • FunASR model families other than Fun-ASR-Nano
  • Internet-facing service before capacity and accuracy tests on target hardware
ModelsFun-ASR-Nano-2512
Hardwarecpu / nvidia-gpu / desktop-edge-gpu
Operating systemsLinux / macOS / Windows
InterfacesCLI / OpenAI-compatible HTTP

Run path

From installation to known-audio verification

These commands come from the current verification registry. Pin dependencies, model, and hardware before rollout.

Install

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

Launch

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

Health check

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

Smoke test

Minimum verification before promotion

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

Operations and capacity

Move from runnable to operable

Operational checks

  • Pin the audio.cpp commit and GGUF revision
  • Verify a known WAV transcript before business traffic
  • Measure cold start, warm RTF, memory, and concurrent queueing separately

Capacity variables

  • Audio duration, language, channels, and VAD segment distribution
  • Concurrency, queue time, warmup, and model-cache state
  • Exact hardware, driver, runtime, and thread configuration

Troubleshooting

  • Start with CPU and Q8_0 to isolate CUDA setup
  • Match the compiled backend to the runtime argument
  • For input failures, verify WAV decoding, mono conversion, and 16 kHz resampling

Security boundary

Treat production ingress as untrusted

Known limitation

The current path returns offline transcript text only and exposes neither streaming nor timestamps; use the corresponding FunASR runtime for other model families.

Public benchmarks are reproduction starting points, not substitutes for target-workload testing.

Evidence and feedback

Verify this contract against primary material