Anis Transcribe
A speech model that writes Egyptian Arabic the way doctors dictate it: Arabic in Arabic letters, English terms in English letters, numbers as digits. It runs on your own computer or phone, and the audio never leaves it.
Download on Hugging Face. Free for non-commercial use. The training code is coming soon.
15.9% word error rate · 127x faster than real time · 325M parameters · 1 GB graphics memory
Second of 13, and the best you can run yourself
Word error rate on 133 Egyptian dictation clips with English terms (4,404 words), pooled. Lower is better.
| Model | WER % | English kept % |
|---|---|---|
| Gemini 3.1 Flash-Lite (Google, cloud) | 9.6 | 77 |
| Anis Transcribe 1.0 (ours, local) | 15.9 | 85 |
| GPT-audio-mini (OpenAI, cloud) | 18.7 | 81 |
| Qwen 3.8 Omni Flash (Alibaba, cloud) | 18.7 | 86 |
| Gemini 3.5 Transcribe (Google, cloud) | 19 | 19 |
| QwenCleo-ASR (local) | 20.7 | 65 |
| Whisper large code-switch (local) | 26.6 | 78 |
| Voxtral Small 24B (Mistral, cloud) | 30.8 | 64 |
| Whisper large-v3 (OpenAI, local) | 31 | 11 |
| Audar ASR v1 turbo (local) | 31 | 27 |
| Qwen3-ASR 1.7B (Alibaba, local) | 40.1 | 7 |
| Whisper-small Egyptian (local) | 42.5 | 44 |
| MiMo v2.6 Flash (Xiaomi, cloud) | 48 | 54 |
16 to 36 times faster, in a fifth of the memory
Every model that runs locally, on the same RTX 4060 8 GB at batch 1. Only Whisper-small is as light, and it makes 2.7 times as many errors.
It is a CTC model: one pass over the audio writes every letter at once. Whisper and speech-LLMs run a decoder once for every word they write.
| Model | Params (M) | x real time | GPU memory GB |
|---|---|---|---|
| Anis Transcribe 1.0 | 325 | 127 | 1 |
| QwenCleo-ASR | 2000 | 3.8 | 4.8 |
| Whisper large code-switch | 1550 | 7.8 | 5.2 |
| Whisper large-v3 | 1550 | 6.9 | 5 |
| Qwen3-ASR 1.7B | 2000 | 3.5 | 4.6 |
| Whisper-small Egyptian | 244 | 5.3 | 1 |
Runs anywhere, same accuracy
The same model on a graphics card and on an ordinary CPU. The 303 MB int8 file is what the Anis phone app downloads.
- Graphics card, RTX 4060: 127x, 746 MB
- CPU, ONNX int8, 4 threads: 33.7x, 303 MB
- CPU, ONNX int8, 2 threads: 23.1x, 303 MB
- CPU, PyTorch, 10 threads: 17x, 746 MB
- CPU, ONNX int4, 4 threads: 13.8x, 198 MB
How it got here
- 0.0: 25 h of doctors' lectures, 29.8%
- 0.4: + 281 h of general Egyptian Arabic, 22.4%
- 1.0: + 32 h of the author's own dictation, 15.9%
How it works
- Listen: The audio encoder of Google’s EmbeddingGemma 2 (304.8M), adapted with LoRA
- Read: A 20M-parameter CTC reader that spells Arabic, English and digits
- Correct: Beam search with a word dictionary picks the likely spelling
- Tidy: Spoken numbers become digits
Where the idea came from
The starting idea is from Embedding Gemma Transcribe by haku: keep EmbeddingGemma 2’s audio encoder as it is and train only a small reader on top, so an embedding model becomes a fast, on-device transcriber (for English). Anis Transcribe takes that idea to Egyptian Arabic with English terms: a CTC reader that spells letters instead of picking from a word list, LoRA on the encoder, a dictionary and number normalisation.
Read this before you compare
- Every test clip is the author’s own voice, and about 10% of the training audio is too. This is a personal dictation model: on other speakers it is weaker (43 to 66% WER without the dictionary).
- Word error rate overstates Arabic errors: برضه and برضو count as a mistake. Folding spelling variants lowers every model by 2 to 5 points and does not change the order.
- Not validated for clinical documentation. Read the text before you use it.
Built and trained by Mohamed Maslooh (محمد مصلوح) in Cairo, 2026.