Model reference · open weights
Jais-ASR is an open-weight audio or speech model from IFM. Jais-ASR (BF16) weighs 11.4 GB; the smallest configuration that runs it is RTX 4060 Ti 16 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the IFM/Jais-ASR model card, 2026-10-19
What it is
| Released by | IFM |
|---|---|
| Released | 2026-10-06 |
| Parameters | 5.7B |
| VRAM | 11.4 GB for the weights |
What it runs on
| Card | One stream | Memory |
|---|---|---|
| RTX 3060 12 GB | does not fit | 11.6 GB |
| RTX 4060 Ti 16 GB | fits | 15.4 GB |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
Jais-ASR is IFM's state-of-the-art speech recognition model for Arabic as it is spoken: Modern Standard Arabic and dialects from 19 Arab countries, with natural code-switching into English, French, Spanish, and Italian. Based on Jais-3-4B, it adds optional diacritization, built-in language and dialect identification, and an explicit signal when there is no speech to transcribe. The weights are released under Apache 2.0 with a vLLM plugin, and quantized versions are available in the Jais Speech collection.
/v1/audio/transcriptions endpoint. The bf16 weights are 11.4 GB.The Open Universal Arabic ASR Leaderboard covers six public test sets spanning read speech, broadcast media, and conversational dialects, in clean and noisy conditions. Evaluated with the leaderboard's own protocol, Jais-ASR leads on both average metrics.
Jais-ASR brings Arabic speech transcription, code-switching, diacritization, and language identification into one model, with controls to tailor the output to your application.
code_switch=True to keep English, French, Spanish, or Italian spans in their original script alongside Arabic, useful for interviews and everyday conversations.diacritics=True to add vowel marks to Arabic transcripts, making them easier to read and supporting language learning. Diacritics and code-switching can be enabled together.[IFM-NoTranscript] with the flag refused=True instead of hallucinated content, giving applications a clear signal to handle the case separately.Automatic language and dialect detection is enabled by default. If the language of the audio is known in advance, set it with one of the codes below: ar allows Modern Standard Arabic and all 19 supported dialects, msa selects Modern Standard Arabic, and a dialect code such as EG selects that dialect.
| Language | Setting |
|---|---|
| Arabic, including all supported dialects | ar |
| Modern Standard Arabic | msa |
| English | en |
| French | fr |
| Spanish | es |
| Italian | it |
The 19 Arabic dialect codes are:
Algerian (DZ) · Bahraini (BH) · Egyptian (EG) · Emirati (AE) · Iraqi (IQ) · Jordanian (JO) · Kuwaiti (KW) · Lebanese (LB) · Libyan (LY) · Mauritanian (MR) · Moroccan (MA) · Omani (OM) · Palestinian (PS) · Qatari (QA) · Saudi (SA) · Sudanese (SD) · Syrian (SY) · Tunisian (TN) · Yemeni (YE)
Install PyTorch for your hardware, then install the inference dependencies:
pip install 'transformers==5.16.1' accelerate soundfile soxr
The examples below use a GPU with bfloat16 support. The bf16 weights are 11.4 GB; plan on roughly 12 GB of GPU memory.
import torch
from transformers import pipeline
asr = pipeline(
"automatic-speech-recognition",
model="IFM/Jais-ASR",
trust_remote_code=True,
device_map="auto",
dtype=torch.bfloat16,
)
result = asr("speech.wav", max_new_tokens=256)
print(result["text"])
The pipeline accepts an audio file path or a waveform dictionary such as {"array": waveform, "sampling_rate": 16000}. For batches and structured metadata, use the model and processor directly as shown below.
This example transcribes two files together, including clips with different durations or sample rates.
import soundfile as sf
import torch
from transformers import AutoModelForCausalLM, AutoProcessor
model_id = "IFM/Jais-ASR"
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
processor.tokenizer.padding_side = "left"
model = AutoModelForCausalLM.from_pretrained(
model_id,
trust_remote_code=True,
device_map="auto",
dtype=torch.bfloat16,
).eval()
paths = ["speech_1.wav", "speech_2.wav"]
audio = [sf.read(path, dtype="float32") for path in paths]
waveforms = [waveform for waveform, _ in audio]
sample_rates = [sample_rate for _, sample_rate in audio]
prompt = processor.tokenizer.apply_chat_template(
[{"role": "user", "content": [{"type": "audio"}]}],
tokenize=False,
add_generation_prompt=True,
# diacritics=True, # Add Arabic vowel marks.
# code_swQuoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.