Model reference · open weights

granite-speech-5.0

Audio ibm-granite Speech→text 1 build Open weights 105 dl/mo

granite-speech-5.0 is an open-weight audio or speech model from IBM. granite-speech-5.0-2b (BF16) weighs 5.0 GB; the smallest configuration that runs it is RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • Granite Speech 5.0 2B is a 2.3B parameter speech-language model by IBM designed for multilingual automatic speech recognition and bidirectional speech translation.
  • It supports English, French, German, Spanish, Portuguese, and Japanese with a context length of 16384 tokens.
  • The model is released under the Apache 2.0 license.

Summary of the ibm-granite/granite-speech-5.0-2b model card, 2026-10-22

What it is

Released byIBM
Released2026-10-07
Parameters2.3B
VRAM5.0 GB for the weights

What it runs on

Memory and cards for granite-speech-5.0-2b (BF16)

5.0 GBweights, file size
1.6 GBruntime overhead
CardOne streamMemory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What IBM says about granite-speech-5.0

Read the model card

Model Summary: Granite Speech 5.0 2B is a compact and efficient speech-language model, specifically designed for multilingual automatic speech recognition (ASR) and bidirectional automatic speech translation (AST) for English, French, German, Spanish, Portuguese and Japanese.

The model was trained on 390,000 hours of audio from public corpora for ASR and AST as well as synthetic datasets tailored to support Japanese ASR, keyword-biased ASR and speech translation. Granite Speech 5.0 2B was trained by modality aligning an intermediate checkpoint of granite-4.0-1b-base to speech on publicly available open source corpora containing audio inputs and text targets. Compared to its predecessor granite-speech-4.1-2b, this model has the same parameter count and provides additional capabilities and improvements:

  • Higher transcription accuracy for English short-form ASR and increased robustness to noise, reverberation and distant microphone speech
  • Supports input language id prompting for multilingual ASR
  • Improved long-form and conversational speech translation
  • Increased keyword list size (up to 2000) for multilingual keyword-biased ASR and AST

Evaluations:

We evaluated granite-speech-5.0-2b on standard English ASR benchmarks from the Open ASR leaderboard (official results as of October 21, 2026):

Performance on noisy and reverberant speech from the FFASR leaderboard (official results as of October 18, 2026):

We also evaluated multilingual ASR on CommonVoice, as well as X->En (CoVoST) and En->X (FLEURS) automatic speech translation, against other speech-language models and dedicated ASR and AST systems:

We evaluated the model’s keyword list biasing (KWB) capability by comparing performance with and without KWB applied at inference time. We report the F1 scores of transcribed keywords during ASR tasks, excluding common words from the evaluation.

We also evaluated our model on a variety of corpora to assess its punctuation and capitalization capabilities. We report the metrics as defined in LibriSpeech-PC. PER (punctuation error rate) measures errors in the insertion, deletion, or substitution of punctuation marks (periods, commas, and question marks). Cap-F1 (capitalization F1) measures how accurately the model capitalizes relevant words in the output. Note that our Cap-F1 is computed on Levenshtein-aligned matching word pairs rather than fully matching sentences, allowing evaluation even in the presence of ASR errors.

Test SetPER 4.1-2b (↓)PER 5.0-2b (↓)Cap-F1 4.1-2b (↑)Cap-F1 5.0-2b (↑)
LScln25.7023.2089.7190.16
LSoth22.2721.2291.2691.65
VoxPopuli24.8623.7095.3595.07
Earnings-2222.8721.6495.1994.98
CV-EN9.139.1896.7596.96
CV-DE†3.663.6599.5099.51
CV-ES11.6111.4695.6895.62
CV-FR11.0011.4397.2597.20
CV-PT7.867.5398.5198.48

† We report a Cap-F1 of 99.51 on German, where noun capitalization is required.

Release Date: October 20, 2026

License: Apache 2.0

Supported Languages: English, French, German, Spanish, Portuguese, Japanese

Intended Use: The model is intended to be used in enterprise applications that involve processing of speech inputs. In particular, the model is well-suited for English, French, German, Spanish, Portuguese and Japanese speech-to-text and speech translations to and from English for the same languages, plus English-to-Italian and English-to-Mandarin.

Usage:

Granite Speech model is supported natively in transformers>=4.52.1. For best results, transcribe audio in segments of up to ~2 minutes; split longer recordings (e.g. with VAD) before decoding.

Usage with transformers

First, make sure to install a recent version of transformers:

pip install transformers torchaudio soundfile

Then run the code:

import torch
import torchaudio
from huggingface_hub import hf_hub_download
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor

device = "cuda" if torch.cuda.is_available() else "cpu"

model_name = "ibm-granite/granite-speech-5.0-2b"
processor = AutoProcessor.from_pretrained(model_name)
tokenizer = processor.tokenizer
model = AutoModelForSpeechSeq2Seq.from_pretrained(
    model_name, device_map=device, torch_dtype=torch.bfloat16
)

# Load audio
audio_path = hf_hub_download(repo_id=model_name, filename="multilingual_sample.wav")
wav, sr = torchaudio.load(audio_path, normalize=True)
assert wav.shape[0] == 1 and sr == 16000  # mono, 16kHz

# Create text prompt
user_prompt = "transcribe the speech with proper punctuation and capitalization."
chat = [
    {"role": "user", "content": user_prompt},
]
prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)

# Run the processor + model
model_inputs = processor(prompt, wav, device=device, return_tensors="pt").to(device)
model_outputs = model.generate(
    **model_inputs, max_new_tokens=200, do_sample=False, num_beams=1
)

# Transformers includes the input IDs in the response
num_input_tokens = model_inputs["input_ids"].shape[-1]
new_tokens = model_outputs[0, num_input_tokens:].unsqueeze(0)
output_text = tokenizer.batch_decode(
    new_tokens, add_special_tokens=False, skip_special_tokens=True
)
print(f"STT output = {output_text[0]}")

Usage with vLLM

First, make sure to install vLLM:

pip install vllm
  • Code for offline mode:
from transformers import AutoTokenizer
from

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms