Hindi Wav2Vec2 Aligner — q8_0 GGUF for CrispASR
Quantized GGUF of theainerd/Wav2Vec2-large-xlsr-hindi (wav2vec2-large XLSR-53 fine-tuned on Hindi, 315M parameters) for use as the CTC word-timestamp aligner in CrispASR.
It is meant to be paired with the Hindi checkpoints of Bonenk/indic-transcribe-flex-GGUF. That repo's built-in -am auto aligner (canary-ctc-aligner) is English-oriented, so its word boundaries drift on Hindi transcription. This checkpoint replaces it with a Devanagari CTC model, giving accurate per-word timestamps for Hindi output.
This is a community conversion, not an official release.
Files
| File | Size | Notes |
|---|---|---|
hi-wav2vec2-q8_0.gguf |
356 MiB | Q8_0 aligner GGUF; tokenizer embedded, no separate download needed |
Usage
Build CrispASR from the indic-transcribe-flex branch (see the main repo README), then download both files:
hf download Bonenk/indic-transcribe-flex-GGUF indic-transcribe-flex-q5_k.gguf --local-dir .
hf download Bonenk/hi-wav2vec2-aligner-GGUF hi-wav2vec2-q8_0.gguf --local-dir .
Pass the aligner explicitly with -am and keep --force-aligner so its timestamps are used even though the Canary backend emits its own:
./build/bin/crispasr --backend canary \
-m indic-transcribe-flex-q5_k.gguf \
-f hindi.wav -l hi \
-am hi-wav2vec2-q8_0.gguf --force-aligner \
--output-srt
Tip: on Windows, refer to the binaries in the same folder (for example, from this repo's build):
crispasr.exe --backend canary ^
-m indic-transcribe-flex-q5_k.gguf ^
-f hindi.wav -l hi ^
-am hi-wav2vec2-q8_0.gguf --force-aligner ^
--output-srt
Notes:
-l hiis still required by the Canary backend; the aligner is only used for word timestamps.- Drop
--force-alignerto compare native Canary timestamps against the CTC aligner's. - Works with other LLM-style CrispASR backends (
--backend qwen3,--backend cohere, ...) where-amis otherwise the only way to get word timestamps; the aligner needs the transcript's script to match its Devanagari vocabulary. - The aligner runs standalone, so the two models can run on different backends (e.g.
--gpu-backend cudafor the Canary model and--no-gpufor the aligner).
Model architecture
| Key | Value |
|---|---|
| Architecture | wav2vec2 (GGUF v3, 422 tensors) |
| Parameters | ~315M (Q8_0 + F32 CTC head/norms) |
| Hidden size | 1024 |
| Layers / heads | 24 / 16 |
| Feature extractor | 7 conv layers, 512 channels |
| Vocab | 64-token Devanagari CTC charset |
| Context stride | 5 conv + 5x2^4 strides → ~20 ms per frame |
Conversion
Converted with CrispASR's models/convert-wav2vec2-to-gguf.py from a full-precision checkout of the source checkpoint, then quantized with crispasr-quantize q8_0:
python models/convert-wav2vec2-to-gguf.py \
--model-dir theainerd/Wav2Vec2-large-xlsr-hindi \
--output hi-wav2vec2-f16.gguf
./build/bin/crispasr-quantize hi-wav2vec2-f16.gguf hi-wav2vec2-q8_0.gguf q8_0
The quantized tokenizer in this repo reproduces the source model's 64-token vocab.json exactly (verified token-for-token).
Validation
Informal checks with CrispASR:
- Word timestamps from this aligner on Hindi audio are visibly tighter than the default
canary-ctc-alignerpath, especially for words transcribed as short Devanagari compounds. - No WER benchmark was produced — this checkpoint is intended for alignment only, not as an ASR backend.
License and attribution
The base model theainerd/Wav2Vec2-large-xlsr-hindi is inherited from facebook/wav2vec2-large-xlsr-53 (Apache-2.0); the converted weights are distributed under the same terms.
- Source model: theainerd/Wav2Vec2-large-xlsr-hindi
- Base model: facebook/wav2vec2-large-xlsr-53
- Companion ASR models: Bonenk/indic-transcribe-flex-GGUF
- Runtime: CrispASR (MIT)