Downloads · 30 days
21
9% of all-time downloads
divydeep/granite-speech-4.1-2b-mlx-6bit
granite-speech-4.1-2b-mlx-6bit is a automatic speech recognition model from divydeep. Use it when you need speech turned into text. It is set up for mlx. The card lists the license as apache-2.0.
Quality-oriented MLX conversion of ibm-granite/granite-speech-4.1-2b for Apple Silicon. This is the autoregressive Granite Speech model, not the separate NAR variant.
Downloads · 30 days
21
9% of all-time downloads
All-time downloads
232
Public
Parameters
2.3B
5.4 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors2.9 GB · 100%
How the weights are stored.
U321.4B · 62%
From the Hugging Face model README
Quality-oriented MLX conversion of
ibm-granite/granite-speech-4.1-2b
for Apple Silicon. This is the autoregressive Granite Speech model, not the
separate NAR variant.
The model runs with
mlx-audio and supports multilingual
automatic speech recognition (ASR), speech translation (AST), punctuation and
capitalization, and keyword-biased transcription.
This conversion uses post-training weight quantization only. No training, fine-tuning, calibration dataset, or importance matrix was used.
| Component | Precision |
|---|---|
| 16-layer Conformer speech encoder | BF16 |
| 2-layer Q-Former speech projector | BF16 |
| Granite language model, eligible internal linear layers | MLX affine 6-bit, group size 64 |
| Token embedding | BF16 |
| Language-model output head | BF16 |
| Norms, biases, and unsupported tensors | BF16 |
The acoustic stack is kept in BF16 because quantization errors can compound through the Conformer and alter the embeddings supplied to the language model. The token embedding and output head are also kept in BF16 to preserve input and output token precision. This follows the general multimodal quantization practice of protecting encoders, projectors, embeddings, and output tensors while compressing the large internal language-model projections.
de575db64086f84fdc79da4932d1076e965bc546model.safetensors: approximately 2.7 GBmlx-audio >= 0.4.5pip install -U mlx-audio
python -m mlx_audio.stt.generate \
--model divydeep/granite-speech-4.1-2b-mlx-6bit \
--audio audio.wav \
--output-path transcript \
--format txt \
--prompt "transcribe the speech with proper punctuation and capitalization."
Python:
from mlx_audio.stt.utils import load_model
model = load_model("divydeep/granite-speech-4.1-2b-mlx-6bit")
result = model.generate(
"audio.wav",
prompt="transcribe the speech with proper punctuation and capitalization.",
temperature=0.0,
)
print(result.text)
Greedy decoding with temperature=0.0 is recommended for transcription.
| Task | Prompt |
|---|---|
| Raw ASR | can you transcribe the speech into a written format? |
| Punctuated ASR | transcribe the speech with proper punctuation and capitalization. |
| Keyword-biased ASR | transcribe the speech to text. Keywords: <kw1>, <kw2>, ... |
| Speech translation | translate the speech to <language>. |
| Punctuated translation | translate the speech to <language> with proper punctuation and capitalization. |
For non-English punctuation, translation, and keyword biasing, use the English prompt forms recommended by IBM.
The conversion was validated by:
mlx-audio.granite_speech, not granite_speech_nar.multilingual_sample.wav.This is a conversion smoke test, not a full WER benchmark. The upstream IBM evaluation results describe the original model and should not be interpreted as measured results for this quantized conversion.
Apache-2.0, matching the original model.
@misc{granite-speech-4.1-2b,
title={Granite 4.1 Speech},
author={IBM Granite Speech Team},
year={2026},
url={https://huggingface.co/ibm-granite/granite-speech-4.1-2b}
}