Loading…
Loading…
ibm-granite/granite-speech-5.0-470m-turboctcGGUF conversions of ibm-granite/granite-speech-5.0-470m-turboctc for use with transcribe.cpp.
Ported from upstream commit 18ca3c1, pinned 2026-09-12. Validated against the transformers reference at transcribe.cpp commit b9427cf on 2026-09-12.
Offline English speech-to-text. A Granite Conformer encoder with a self-conditioned CTC head. Takes a 16 kHz mono WAV and produces a transcript. Not a streaming model. English only.
| Quantization | Download | Size | WER (LibriSpeech test-clean) |
|---|---|---|---|
| BF16 | granite-speech-5.0-470m-turboctc-BF16.gguf | 948 MB | 1.34% |
| F16 | granite-speech-5.0-470m-turboctc-F16.gguf | 948 MB | 1.33% |
| Q8_0 | granite-speech-5.0-470m-turboctc-Q8_0.gguf | 506 MB | 1.33% |
| Q6_K | granite-speech-5.0-470m-turboctc-Q6_K.gguf | 392 MB | 1.33% |
| Q5_K_M | granite-speech-5.0-470m-turboctc-Q5_K_M.gguf | 336 MB | 1.34% |
| Q4_K_M | granite-speech-5.0-470m-turboctc-Q4_K_M.gguf | 279 MB | 1.35% |
WER on the full LibriSpeech test-clean split (2,620 utterances), batch size 8, timestamps none, language hint en, decoded on cuda. Measured at transcribe.cpp 9daf396.
Greedy CTC decoding, no external LM. Measured reference baseline (transformers 5.17.0, F32, CPU): 1.33%, 95% CI [1.20, 1.47].
Build transcribe.cpp from source:
git clone git@github.com:handy-computer/transcribe.cpp.git
cd transcribe.cpp
cmake -B build && cmake --build build
Run on a 16 kHz mono WAV:
build/bin/transcribe-cli \
-m granite-speech-5.0-470m-turboctc-Q8_0.gguf \
input.wav
If your audio isn't already 16 kHz mono WAV, convert it first:
ffmpeg -i input.mp3 -ar 16000 -ac 1 output.wav
See the transcribe.cpp model page for performance numbers, numerical validation, and reproduction steps.
Inherited from the base model: Apache-2.0. See the
upstream model card for full terms.
This repository includes the license text
(LICENSE) and a
NOTICE recording
how these files were derived from the original.
The section below is reproduced from ibm-granite/granite-speech-5.0-470m-turboctc at commit
18ca3c1for offline reference. The upstream card is the authoritative source.
Model Summary: Granite Speech 5.0 TurboCTC is a compact 470 million parameter English ASR model with very high inference speed that is well suited for deployment on laptops, smartphones and other edge devices. The model consists of a conformer acoustic encoder with block self-attention, self-conditioning and temporal downsampling with an output layer corresponding to 16,384 BPE units. It was trained on approximately 60,000 hours of English audio from public corpora using Connectionist Temporal Classification (CTC) and inference is done non-autoregressively with greedy decoding.
Evaluations:
We evaluated granite-speech-5.0-470m-turboctc on standard short-form English ASR benchmarks from the Open ASR leaderboard:
Performance on the Open ASR leaderboard (official results as of August 25, 2026, public test sets only, RTFx measured on 1 H200):
Performance on noisy and reverberant speech from the FFASR leaderboard (official results as of August 25, 2026, RTFx measured on 1 L4 GPU)
Release Date: August 25, 2026
License: Apache 2.0
Supported Languages: English
Intended Use: The model is intended to be used in enterprise applications that involve accurate low-latency/high-throughput English speech-to-text transcription.
transformersGranite Speech 5.0 TurboCTC is supported natively in transformers>=5.16.0:
pip install transformers>=5.16.0 datasets
from datasets import Audio, load_dataset
from transformers import AutoModelForCTC, AutoProcessor
model_id = "ibm-granite/granite-speech-5.0-470m-turboctc"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCTC.from_pretrained(model_id, device_map="auto")
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el["array"] for el in ds["audio"][:5]]
# `device` computes the log-mel front-end on the model's accelerator, saving a host-to-device copy
inputs = processor(
speech_samples, sampling_rate=processor.feature_extractor.sampling_rate, device=model.device
)
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs)
print(processor.batch_decode(outputs, skip_special_tokens=True))
mlx-audio for Apple Silicon M series chipsInstall a recent version of mlx-audio (0.5.1 or later):
pip install -U mlx-audio
Sample use:
python -m mlx_audio.stt.generate --model ibm-granite/granite-speech-5.0-470m-turboctc --verbose --audio "audio.wav" --output-path "transcript"
Model Architecture:
The architecture of granite-speech-5.0-470m-turboctc consists of 16 conformer blocks trained with Connectionist Temporal Classification (CTC) with a 16,384 BPE classification head (see configuration below). We perform temporal subsampling by a factor of 8 to reduce frame rates from 100Hz to 12.5Hz: first by stacking and skipping consecutive logmel+delta frames (2x) followed by strided convolutions and pooled residuals in the first two conformer blocks (4x) as shown in the figure below. In addition, the encoder uses block-attention with blocks of 128 frames and self-conditioned CTC from the middle layer.
| Configuration parameter | Value |
|---|---|
| Input dimension | 320 (80 logmels + 80 deltas) x 2 |
| Nb. of layers | 16 |
| Hidden dimension | 1024 |
| Nb. of attention heads | 8 |
| Attention head size | 128 |
| Attention block size | 128 |
| Convolution kernel size | 7 |
| Output dimension (BPE) | 16384 |
Our training data is entirely comprised of publicly available datasets or of synthetic data generated from public corpora specifically targeting English ASR. A detailed description of the training datasets can be found in the table below:
| Name | Nb. hours | Source |
|---|---|---|
| CommonVoice-17 | 2500 | https://huggingface.co/datasets/mozilla-foundation/common_voice_17_0 |
| MLS | 44600 | https://huggingface.co/datasets/facebook/multilingual_librispeech |
| Librispeech | 960 | https://huggingface.co/datasets/openslr/librispeech_asr |
| VoxPopuli | 500 | https://huggingface.co/datasets/facebook/voxpopuli |
| YODAS | 8900 | https://huggingface.co/datasets/espnet/yodas |
| AMI | 150 | https://huggingface.co/datasets/edinburghcstr/ami |
| Earnings-22 | 100 | https://huggingface.co/datasets/esb/datasets |
In addition, the model was trained on three synthetic datasets:
gpt-oss-120b or gpt-oss-20b and synthesized using StyleTTS2.Infrastructure: We train Granite Speech TurboCTC using IBM's super computing cluster, Blue Vela, which is outfitted with NVIDIA H100 GPUs. This cluster provides a scalable and efficient infrastructure for training our models over thousands of GPUs. The training of this particular model was completed in 10 days on 8 H100 GPUs.
Resources
Citation
@misc{granite-speech-5.0-470m-turboctc,
title={Granite Speech 5.0 TurboCTC},
author={IBM Granite Speech Team},
year={2026},
url={https://huggingface.co/ibm-granite/granite-speech-5.0-470m-turboctc}
}