By Hakim Research7 min read

Dialect coverage that actually ships

Fifteen Arabic dialects and six MENA language tiers, evaluated on regional corpora, not press releases. How we measure it, and how we plan to grow it.

ModelsThesis

When a voice AI platform claims "dialect support," it's doing one of three things:

  1. Running English prosody over an Arabic phoneme set and hoping.
  2. Picking one or two dialects (usually Egyptian, because the training data is cheapest) and calling the rest "experimental."
  3. Marketing a large number without anyone on the team having ever reviewed the outputs.

We don't want to ship #3. Here's what we actually cover, how we evaluate it, and how we plan to grow it.

What "covered" means at Hakim

A dialect is considered "covered" by Hakim Arab v2 when it meets all of the following:

  • A held-out evaluation set of at least 200 sentences, recorded by native speakers from the target region, is synthesized by the model.
  • Native-speaker reviewers (distinct from the recording pool) rate the synthesized audio against the reference on three axes: phoneme accuracy, prosody naturalness, and register fit. Each axis is scored on a 1–5 MOS scale.
  • The dialect clears a 4.0 MOS average on all three axes and 3.8 on the worst axis. Anything below that stays in research.
  • A regional listener session, run live with 5–10 paid native speakers per region, reports no "robotic" or "not from here" responses on the blind-listen set.

If a dialect doesn't clear this bar, it stays out of the public API until it does. We'd rather ship six good dialects than twelve uneven ones.

The current tree

At the time of writing, Hakim Arab v2 covers the following under the formal bar above:

TierDialect / registerNotes
MSAModern Standard ArabicNewsroom register, IVR register, formal announcements.
LevantineShamiDamascus, Beirut, Amman urban variants merged (shared phonology).
LevantinePalestinianDistinct lexical + prosodic profile; split from general Shami at v2.
GulfGulf (general)Reads neutral across UAE, Bahrain, Kuwait, Qatar.
GulfNajdiRiyadh + central KSA; distinct vowel length + emphasis profile.
GulfHejaziJeddah + western coast; softer consonants than Najdi.
EgyptianCaireneThe highest-volume dialect; trained on the largest corpus.
MaghrebiMoroccan (Darija)Full phonology + Amazigh loan words; not MSA in Moroccan clothing.
MaghrebiTunisian
MaghrebiAlgerian
MesopotamianIraqiBaghdad urban + southern rural blended; separate Moslawi in research.
Nilo-SaharanSudanese
YemeniYemeni (Sanaani)

Six additional languages ship in the MENA language tier: Farsi, Urdu, Turkish, Hebrew, Kurdish (Sorani), and French (MENA register).

How we grow it

The tree above is the minimum we intend to ship with. It's not the ceiling. Three dialects are currently in research-quality status and will graduate when they clear the MOS bar:

  • Moslawi (northern Iraqi), distinct enough from Baghdadi that merging them hurts MOS on both.
  • Omani, treated separately from the Gulf general voice because the emphasis pattern diverges.
  • Libyan, the Maghrebi tree's fourth leg; currently short on high-quality corpus.

Each of these has a corpus-collection project underway with regional partners, and each will ship independently rather than as a big-bang release.

Why we don't just "transliterate"

A surprising number of claims to "Arabic dialect support" in the industry reduce, on inspection, to: run MSA through the model, then do string-level lexical swaps (خرا/مي → whatever the dialect uses) and hope. The output sounds close enough to one dialect on the right side and generic on every other side.

We don't do that. The dialect head is a first-class conditioning signal in the decoder, trained on dialect-native audio, and every one of the variants in the table above was evaluated against a native listener panel. You can hear the difference in a 10-second clip, which is exactly the point.

Try it yourself

Every dialect in the table above is accessible on /models with a live-preview button. Pick a dialect, type a sentence, hear a native voice speak it within 200 ms. Or go straight to the API, api.tryhakim.ai/docs has the exact voice_dialect parameter shape and an interactive "try it" for every operation.

If you're evaluating Hakim against another provider, we'd particularly encourage running your own blind-listen panel on sentences from your product domain. The model numbers are real; the only number that matters for your users is whether they'd notice.

Read next