Downloads · 30 days
197K
98% of all-time downloads
cstr/ark-asr-3b-GGUF
ark-asr-3b-GGUF is a automatic speech recognition model from cstr. Use it when you need speech turned into text. It is set up for gguf. The card lists the license as other.
GGUF conversions of AutoArk-AI/ARK-ASR-3B, a 19-language automatic speech recognition model, for use with CrispASR (a ggml/llama.cpp-style C++ engine).
Downloads · 30 days
197K
98% of all-time downloads
All-time downloads
201K
Public
Repo size
22 GB
Likes
2
Public
Click a slice to open those files.
.gguf22 GB · 100%
From the Hugging Face model README
GGUF conversions of AutoArk-AI/ARK-ASR-3B, a 19-language automatic speech recognition model, for use with CrispASR (a ggml/llama.cpp-style C++ engine).
⚠️ Experimental / work-in-progress. Core ASR is validated and accurate (see below), but the backend has known rough edges — read Limitations before relying on it.
ARK-ASR-3B = Whisper-large-v3 encoder with partial rotary position embeddings → MLP adapter → Qwen2.5-3B decoder with audio-token injection. A single self-contained GGUF holds the encoder, adapter, and language model.
k_proj has no bias; the
encoder's own final LayerNorm is dropped). Because positions are rotary, the
encoder handles arbitrary-length audio in one pass — there is no 30 s cap.<|audio|> placeholder embeddings are
overwritten by the adapter's audio features, then the transcript is decoded.Mel features use the stock WhisperFeatureExtractor recipe (128 bins, n_fft 400, hop 160).
| File | Size | Notes |
|---|---|---|
ark-asr-3b-f16.gguf | 7.0 GB | Full precision. Reference quality. |
ark-asr-3b-q8_0.gguf | 4.0 GB | Recommended. Near-lossless; validated against the F16/PyTorch reference. |
ark-asr-3b-q4_k.gguf | 3.3 GB | Smallest. Encoder/adapter/embeddings kept in F16, only the Qwen2 decoder body is Q4_K. Verbatim on test clips. |
All three transcribe the JFK sample verbatim. Q8_0 is the best size/quality trade-off.
# Build CrispASR, then:
crispasr -m ark-asr-3b-q8_0.gguf --backend ark-asr -f audio.wav
# Optional best-effort language hint (the model is promptless; see Limitations):
crispasr -m ark-asr-3b-q8_0.gguf --backend ark-asr -l de -f audio.wav
# Force CPU (GPU is the default):
CRISPASR_ARKASR_CPU=1 crispasr -m ark-asr-3b-q8_0.gguf --backend ark-asr -f audio.wav
-m auto --backend ark-asr also resolves these files via the model registry.
The C++ port was checked stage-by-stage against the original PyTorch model
(trust_remote_code, bf16) with CrispASR's diff harness on the JFK clip:
| Stage | Cosine vs. reference |
|---|---|
| log-mel spectrogram | 0.999993 |
| first decoder logits (Q8_0) | 0.999646 |
| audio embeddings (Q8_0, mean) | 0.999445 |
End-to-end the transcript matches the reference verbatim (English and German tested).
CRISPASR_ARKASR_MAX_SINGLE_PASS_S, default 300 s) to
bound memory; chunked segments can re-detect language independently, so pass
--vad or raise the cap for long multilingual audio.-l
injects a best-effort "Transcribe the audio in <Language>." instruction, but
the model was not instruction-trained, so it is not a hard guarantee.CRISPASR_ARKASR_CPU=1 if you hit issues.Base model: AutoArk-AI/ARK-ASR-3B
(on-policy distilled, THU-NLP). These GGUFs are a community conversion; the
license follows the base model — check the upstream repository for terms.
Conversion and the CrispASR ark-asr backend by CrispStrobe.