Model comparison · 2026-10-19
Jais ASR vs Grok Voice STT vs Gemini 3.8 Flash for Arabic
Jais ASR, Grok Voice STT and Gemini 3.8 Flash for transcribing Arabic audio: dialect labels, price, recording limits and request shape, compared.
Short answer: Jais ASR for dialect labels, Grok Voice STT for a flat hourly price
LLMTR is a gateway that gives access to AI models from different providers through one OpenAI-compatible API. Jais ASR (ifm/jais-asr) and Grok Voice STT (xai/grok-voice-stt) take audio on the /v1/audio/transcriptions endpoint, while Gemini 3.8 Flash (google/gemini-3.8-flash) takes audio in an input_audio part on the /v1/chat/completions endpoint. All three are called at https://llmtr.com/v1 with the same API key from your llmtr.com account.
Jais ASR transcribes Modern Standard Arabic and the dialects of 19 Arab countries, names the language or dialect of each recording, and is free with an allowance of 60 minutes of audio a day until 5 November 2026, 23:59 (TRT); from 6 November 2026, 00:00, it returns 410. Grok Voice STT is paid at $0.10 per hour of audio, and xAI's guide lists the codes ar (Egyptian Arabic), ar-AE and ar-SA for Arabic. Gemini 3.8 Flash is a chat model: it can translate or summarize the transcript in the same request, and it bills by audio token.
Jais ASR, Grok Voice STT or Gemini 3.8 Flash for Arabic audio?
Four questions decide it: do you need the dialect, how long are your recordings, will the work run past 5 November, and do you want a translation or a summary on top of the transcript. Jais ASR's data notice says recordings and transcripts may be logged by the provider and used to improve the model; do not send recordings that carry sensitive, personal or customer data.
The table shows the three rows with the values in the LLMTR catalog and docs.
| Property | Jais ASR | Grok Voice STT | Gemini 3.8 Flash |
|---|---|---|---|
| Model id | ifm/jais-asr | xai/grok-voice-stt | google/gemini-3.8-flash |
| Endpoint | /v1/audio/transcriptions | /v1/audio/transcriptions | /v1/chat/completions, input_audio part |
| Price | free until 5 November 2026, 23:59 (TRT), 60 minutes a day | $0.10 per hour of audio | through 31 December 2026 input $0.75, output $3.75 (per 1M tokens) |
| Arabic | Modern Standard Arabic and the dialects of 19 countries; returns a dialect code | ar (Egyptian Arabic), ar-AE, ar-SA (xAI guide) | no language list on the model page |
| Recording limit | 15 minutes per recording, about 9 MB of audio per request | about 9 MB of audio per request | long recordings through the Files API as a file_id |
| Audio formats | wav, mp3, flac, ogg | mp3, wav, ogg, flac and the other formats xAI lists | wav, mp3, flac, ogg, webm |
| Extra options | code_switch, diacritics, a no-speech flag | language, duration_seconds | translation, summary or questions in the same request |
| Availability | 410 from 6 November 2026, 00:00 (TRT) | no scheduled retirement | no scheduled retirement |
What does an hour of audio cost on each model?
Take a one-hour Arabic recording. On Jais ASR the limit is 15 minutes per recording, so you split it into four parts; until 5 November 2026 nothing is taken from your balance and the whole daily allowance of 60 minutes is used. On Grok Voice STT the same recording costs $0.10, and a half-hour recording $0.05. On Gemini 3.8 Flash, Google's audio guide counts 32 tokens for every second: an hour is 115,200 input tokens, or $0.0864, plus the output tokens of the transcript; with 10,000 output tokens, for example, the total is $0.1239. From 1 January 2027 Gemini 3.8 Flash's price rises to $1.50 for input and $7.50 for output.
The Python example below sends the same recording to the three models. Jais ASR returns the dialect code with verbose_json, Grok Voice STT gets language and duration_seconds, and Gemini 3.8 Flash gets the audio in an input_audio part with reasoning at the low level. Read the results side by side with your own recordings.
Python example that sends the same Arabic recording to Jais ASR, Grok Voice STT and Gemini 3.8 Flash through https://llmtr.com/v1 and prints the transcripts.
import base64
import os
import requests
BASE = "https://llmtr.com/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["LLMTR_API_KEY"]}
DURATION_SECONDS = 120 # length of call.mp3
with open("call.mp3", "rb") as f:
audio = base64.b64encode(f.read()).decode()
# Jais ASR: verbose_json carries the language or dialect code of the recording.
jais = {"model": "ifm/jais-asr", "audio_base64": audio, "audio_format": "mp3", "response_format": "verbose_json"}
r = requests.post(BASE + "/audio/transcriptions", headers=HEADERS, json=jais, timeout=600)
r.raise_for_status()
print("ifm/jais-asr", r.json()["language"], r.json()["text"])
# Grok Voice STT: billed per hour of audio; duration_seconds lowers the amount held before the call.
grok = {"model": "xai/grok-voice-stt", "audio_base64": audio, "audio_format": "mp3", "language": "ar", "duration_seconds": DURATION_SECONDS}
r = requests.post(BASE + "/audio/transcriptions", headers=HEADERS, json=grok, timeout=600)
r.raise_for_status()
print("xai/grok-voice-stt", r.json()["text"])
# Gemini 3.8 Flash: the audio goes in an input_audio part on /v1/chat/completions.
gemini = {
"model": "google/gemini-3.8-flash",
"reasoning_effort": "low",
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Transcribe this Arabic recording word for word."},
{"type": "input_audio", "input_audio": {"data": audio, "format": "mp3"}},
]}],
}
r = requests.post(BASE + "/chat/completions", headers=HEADERS, json=gemini, timeout=600)
r.raise_for_status()
print("google/gemini-3.8-flash", r.json()["usage"], r.json()["choices"][0]["message"]["content"])
Dialect, language code and recording length
On Jais ASR, if you leave out the language field the language is detected on its own; ar selects all dialects, msa Modern Standard Arabic, and a country code such as AE, EG, MA or SA a single dialect. The verbose_json response gives the detected language or dialect code, the length of the recording, whether the recording contains speech, and whether the transcript reached the end of the recording. code_switch: true keeps English, French, Spanish and Italian words inside the speech in their own script, and diacritics: true adds Arabic vowel marks. The audio goes base64-encoded in a JSON body; m4a and webm are not accepted.
On Grok Voice STT you can set the language field to ar, ar-AE or ar-SA. The charge is worked out from the recording length xAI reports; on short recordings, sending duration_seconds lowers the amount held on your balance before the request. On Gemini 3.8 Flash, send small recordings inline; upload long recordings with /v1/files first and pass them as a file_id. Gemini bills reasoning tokens at the output price; if you only want the transcript, send reasoning_effort low.
Which one when?
The choices below follow from the differences in features, price and duration between the three models; compare transcript quality with your own recordings.
- Knowing the dialect of a recording, speech where French or English mixes into Arabic, and transcripts with vowel marks, free until 5 November 2026: Jais ASR.
- Transcription at a flat hourly price that has to keep running after 6 November 2026: Grok Voice STT, $0.10 per hour of audio.
- Translating the transcript into another language, summarizing it, or answering questions about the recording in the same request: Gemini 3.8 Flash.
- Sending recordings longer than 15 minutes without splitting them: Gemini 3.8 Flash, through the Files API.
- Do not send recordings that carry sensitive, personal or customer data to Jais ASR; its data notice says such content may be used to improve the model.
Trying all three with the same key
Open an account on llmtr.com and create a key under Dashboard > API Keys. Jais ASR runs without charging your balance until 5 November 2026; for Grok Voice STT and Gemini 3.8 Flash, top up your balance under Dashboard > Billing. The same key works on all three models, and you do not need separate accounts with IFM, xAI and Google.
Move a flow you built on Jais ASR before 6 November 2026: from that date requests return 410 and are not redirected to another model. Because Grok Voice STT uses the same endpoint, the switch changes the model id and the language field; a switch to Gemini 3.8 Flash turns the request into the chat shape.
Comparing Arabic audio models with the same recording
Send the same Arabic recording to Jais ASR, Grok Voice STT and Gemini 3.8 Flash with one LLMTR key, then compare the transcript and the cost.
- Key. Create an API key on llmtr.com; top up your balance for Grok Voice STT and Gemini 3.8 Flash.
- Same recording. Send the recording to Jais ASR and Grok Voice STT through /v1/audio/transcriptions and to Gemini 3.8 Flash through /v1/chat/completions.
- Choice. Compare the transcripts, the dialect information and the cost, then choose the model id.
Frequently asked questions
Which Arabic dialects does Jais ASR recognize?
Modern Standard Arabic and the dialects of 19 Arab countries: Algeria, Bahrain, Egypt, the UAE, Iraq, Jordan, Kuwait, Lebanon, Libya, Mauritania, Morocco, Oman, Palestine, Qatar, Saudi Arabia, Sudan, Syria, Tunisia and Yemen. The verbose_json response returns the code of the detected dialect.
How is Grok Voice STT billed?
$0.10 per hour of audio, worked out from the recording length xAI reports. A half-hour recording costs $0.05. On short recordings, sending duration_seconds lowers the amount held before the request.
What should replace Jais ASR after 6 November 2026?
From that date Jais ASR returns 410 model_retired. To stay on the same endpoint choose Grok Voice STT; for a translation or summary along with the transcript choose Gemini 3.8 Flash.