GGUF + pure-C++ runtime in CrispASR (German XLSR-53)

#4
by cstr - opened

We've added the Jonatas Grosman XLSR-53 German fine-tune to CrispASR's wav2vec2 backend. C++ binary, GGUF β€” no Python.

CrispASR has a small fleet of German wav2vec2 GGUFs that all run through the same wav2vec2-ggml.cpp (we dispatch on GGUF metadata, not filename β€” pre-norm vs post-norm and the pos_conv variants are detected automatically):

Implementation note: our CNN frontend is a ggml graph (im2col + mul_mat, F32 to avoid F16 precision collapse through 7 conv layers) β€” 10.8Γ— faster than the naΓ―ve scalar-loop C++ baseline.

CTC means no native punctuation/casing β€” the standard recipe is --punc-model fullstop-punc-q4_k.gguf (XLM-R-large, DE/EN/FR/IT, ~254 MB Q4_K) for restoration.

./build/bin/crispasr --backend wav2vec2 -m wav2vec2-xlsr-de-q4_k.gguf -l de \
    -f audio.wav --punc-model fullstop-punc-q4_k.gguf

Sign up or log in to comment