Views
No views yet
ibm-granite/granite-speech-4.0-1b, IBM's 1B-parameter speech-LLM (Conformer encoder + BLIP-2 Q-Former projector + Granite μP LLM head). Runs through CrispASR's --backend granite path with full feature support including the new prompt-based speech-translation path.| File | Size | Quantization | Notes |
|---|---|---|---|
granite-speech-4.0-1b-f16.gguf | 5.58 GB | F16 | Reference precision |
granite-speech-4.0-1b-q8_0.gguf | 3.86 GB | Q8_0 | Effectively lossless |
granite-speech-4.0-1b-q5_0.gguf | 3.17 GB | Q5_0 | Slightly slower than Q4_K but a bit more accurate |
granite-speech-4.0-1b-q4_k.gguf | 2.94 GB | Q4_K | 1.9× compressed; smallest reasonable choice |
tokenizer.ggml.merges field — the previous granite GGUFs had only tokenizer.ggml.tokens. The C++ side could detokenize but couldn't tokenize arbitrary text, which blocked the prompt-based translate path. This re-conversion writes the merges table from merges.txt and unblocks --translate -tl <lang> end-to-end.--translate is silently a no-op. Re-download these files to get translate.1# Build crispasr (one-time)
2git clone https://github.com/CrispStrobe/CrispASR
3cd CrispASR
4cmake -B build -DCMAKE_BUILD_TYPE=Release
5cmake --build build -j$(nproc) --target whisper-cli
6
7# Auto-download the recommended quant on first use:
8./build/bin/crispasr --backend granite -m auto -f my_audio.wav
9
10# Or point at a local file:
11./build/bin/crispasr --backend granite \
12 -m granite-speech-4.0-1b-q4_k.gguf \
13 -f my_audio.wav
14
15# Speech translation to German via the runtime-tokenized prompt path:
16./build/bin/crispasr --backend granite \
17 -m granite-speech-4.0-1b-q4_k.gguf \
18 -f my_audio.wav --translate -tl de
19# → "und so meine amerikaner, fragen sie nicht, was ihr land für sie
20# tun kann, fragen sie, was sie für ihr land tun können."
21
22# Word-level timestamps via the canary CTC aligner second pass:
23./build/bin/crispasr --backend granite \
24 -m granite-speech-4.0-1b-q4_k.gguf \
25 -f my_audio.wav -am canary-ctc-aligner-q5_0.gguf -osrt -ml 1libcurl or wget for auto-download and (optionally) BLAS / OpenMP for the encoder hot-loop speedup.1# 1. Download the base model from HF
2hf download ibm-granite/granite-speech-4.0-1b --local-dir ./granite-speech-4.0-1b
3
4# 2. Convert to F16 GGUF (the new converter writes both vocab and merges)
5python models/convert-granite-speech-to-gguf.py \
6 --input ./granite-speech-4.0-1b \
7 --output granite-speech-4.0-1b-f16.gguf
8
9# 3. Quantize
10./build/bin/crispasr-quantize granite-speech-4.0-1b-f16.gguf granite-speech-4.0-1b-q8_0.gguf q8_0
11./build/bin/crispasr-quantize granite-speech-4.0-1b-f16.gguf granite-speech-4.0-1b-q5_0.gguf q5_0
12./build/bin/crispasr-quantize granite-speech-4.0-1b-f16.gguf granite-speech-4.0-1b-q4_k.gguf q4_kdefault transcribe (any quant):
"and so my fellow americans ask not what your country can do for you
ask what you can do for your country"
translate -> German (any quant):
"und so meine amerikaner, fragen sie nicht, was ihr land für sie
tun kann, fragen sie, was sie für ihr land tun können."1@misc{granite-speech,
2 title = {Granite-Speech-4.0-1B},
3 author = {IBM Research},
4 year = {2026},
5 url = {https://huggingface.co/ibm-granite/granite-speech-4.0-1b}
6}apache-2.0. This repository redistributes under the same terms; it grants no rights the upstream licence does not.