The Master Guide / 10 Voice and lip sync · Voice and Arabic dialects
Spelling for the engine
The engine reads exactly what it is given. Write the engine text with full vowel marks in the dialect's own vowels (decided); its evidence is [best available, not yet validated].
The engine reads exactly what it is given. Write the engine text with full vowel marks in the dialect's own vowels (decided); its evidence is [best available, not yet validated].
In the one production where this was compared, only the fully vowel-marked takes were usable. The evidence on partial marks is mixed and none of it is creator practice, so full marks stay the default.
1. Dialect lines
Mark the full line in the dialect's own vowels.
Write sub-dialect words as natives write them (table below).
Mark vowels as the dialect says them, with sukūn where consonants cluster and shadda where a consonant doubles.
Short function words (in, from, and, the vocative) may stay bare.
No MSA case endings on a dialect line, and never two dialects in one line.
Arabic | Note | |
Cairene words | «عايز»، «ده»، «مش»، «أوي» | |
Najdi words | «وش»، «أبغى»، «زين»، «الحين» | |
Hijazi words | «إيش»، «أبغى»، «مرّة» | The last word, "a time", also means "very" in Hijazi |
Cairene, marked | «بُكْرَة»، «هُوَّ»، «قُلْتِلَك» | |
Function words that may stay bare | «في»، «من»، «و»، «يا» |
2. MSA lines
Full marks, case endings included, wherever the reading needs them.
3. Consonants
Use the common native spelling where it already shows the sound (the Egyptian spelling of "very" in the table). Otherwise keep the standard letter and fix only a word that is actually misread. Never respell every qāf as a hamza: it helped one voice and hurt another, and no source supports it.
4. Numbers, dates, prices and codes
Write them as words, the way the dialect says them. The table below carries the examples. Four rules it can't show:
The counted noun agrees as natives say it.
Dates are Gregorian unless the brief says Hijri.
Phone numbers are grouped as natives read them.
Saudi (Najdi and Hijazi) keeps the thā' of three and eight in writing, as Saudis write them, and the voice says them as the sub-dialect does.
Case | Written as |
Cairene numerals (not the MSA forms) | «تلاتة»، «تمنية» |
MSA forms Cairene does not use | «ثلاثة»، «ثمانية» |
Cairene counted noun | «تلات علب» |
Currency words | «جنيه»، «ريال»، «درهم»، «دينار» |
Cairene price: 99 Egyptian pounds | «تِسْعَة وتِسْعين جِنيه» |
Cairene date: 15 October | «يوم خَمَسْتاشَر أكتوبر» |
Cairene percentage: 50% | «خَمْسين في المِيَّة» |
Saudi counted nouns | «ثلاث عُلَب»، «عَشَر ريالات» |
Saudi price: 49 riyals | «تِسْعَة وأَرْبَعين ريال» |
Fifteen, Najdi speech | «خَمْسْطَعْش» |
Fifteen, Hijazi | «خَمَسْتاشَر» |
Najdi date: 15 October | «يوم خَمْسْطَعْش أكتوبر» |
Emirati price: 250 dirhams | «مِيتين وخَمْسين دِرْهَم» |
Kuwaiti price: 10 dinars | «عَشَر دَنانير» |
Gulf percentage: 20% | «عِشْرين بالمِيَّة» |
These are working spellings, not native-checked. The native reviewer confirms the project's number words before the first take, and they go into the pronunciation sheet.
5. English and brand words inside Arabic
Write them in Arabic script by default, as natives say them. v4 holds a voice's accent only while it is speaking that voice's own language, so a word in Latin letters risks a switch to a native-English accent. Only where the client wants a word to sound like an English insert does it stay in Latin letters; the listener then checks on the take that the voice keeps its accent, and if it switches, the word goes back to Arabic script. The canonical line keeps the client's own spelling.
English word | In the engine text |
meeting | «ميتنج» |
okay | «أوكي» |
6. Pauses
Pauses come from ellipses, commas and line breaks. v4 has no SSML (the markup some engines read for pauses and speed).
7. The pronunciation sheet
Keep one per project, with your shot plan: for every brand, product and name, the client's spelling, the Arabic-script engine spelling, IPA where needed, and the client's reference audio if one exists (plus the Franco spelling for Franco-route shots). Load it as your account's alias dictionary. It governs every engine.
The fix ladder
When a word is misread, fix the text, not the audio, one rung per attempt, and log each attempt.
Rung | Change | Note |
a | That word's marks or spelling | If the read sounds MSA, first check that the canonical line is really in dialect |
b | An alias in the pronunciation dictionary | Documented for ElevenLabs, but no source shows it working inside Arabic text; check it on the first misread word |
c | IPA for that word, between slashes | Documented for ElevenLabs, but no source shows it working inside Arabic text; check it on the first misread word |
d | An accent tag | Inconsistent across voices |
e | Recast the voice |
If rung b or c fails its first-use check, drop that rung for that engine. If the ladder fails on an acting-critical line, go to the fallback.
