Skip to content

Arabic sounds different in Cairo, Riyadh, Casablanca and Beirut. Set dialectId and MenaVoice steers the voice toward that region's accent and rhythm, so your audio sounds local to the people you're speaking to.

Use a dialect

Add dialectId to any text to speech request:

import os

import requests

response = requests.post(
    "https://api.menavoice.ai/api/tts",
    headers={"x-api-key": os.environ["MENAVOICE_API_KEY"]},
    json={
        "text": "إزيك يا صاحبي؟ عامل إيه النهارده؟",
        "voiceId": "omar",
        "dialectId": "egyptian",
    },
    timeout=120,
)

Without a dialectId, the voice reads the text as written, with no dialect steering.

Supported dialects

dialectIdDialectArabic nameRegion
egyptianEgyptianالمصريةNorth Africa
libyanLibyanالليبيةNorth Africa
tunisianTunisianالتونسيةNorth Africa
algerianAlgerianالجزائريةNorth Africa
moroccanMoroccanالمغربيةNorth Africa
mauritanianMauritanianالموريتانيةNorth Africa
saudiSaudiالسعوديةArabian Peninsula
emiratiEmiratiالإماراتيةArabian Peninsula
kuwaitiKuwaitiالكويتيةArabian Peninsula
bahrainiBahrainiالبحرينيةArabian Peninsula
qatariQatariالقطريةArabian Peninsula
omaniOmaniالعمانيةArabian Peninsula
yemeniYemeniاليمنيةArabian Peninsula
syrianSyrianالسوريةLevant
lebaneseLebaneseاللبنانيةLevant
palestinianPalestinianالفلسطينيةLevant
jordanianJordanianالأردنيةLevant
iraqiIraqiالعراقيةMesopotamia
sudaneseSudaneseالسودانيةEast Africa
somaliSomaliالصوماليةEast Africa
djiboutianDjiboutianالجيبوتيةEast Africa
comorianComorianالقمريةEast Africa
msaModern Standard ArabicالفصحىStandard Arabic
englishEnglishالإنجليزيةOther languages
frenchFrenchالفرنسيةOther languages

msa, english and french don't add any steering: the voice simply follows the language of your text. They exist so you can store one dialect setting per script or speaker, exactly like the web app does.

Write the script in the dialect

The dialect setting shapes pronunciation, accent and rhythm, but it doesn't translate. A script written in Modern Standard Arabic still sounds formal when read with dialectId: "egyptian". For the most natural result, write the words the way people in that region say them:

DialectExample
egyptianإزيك يا صاحبي؟ عامل إيه النهارده؟
saudiهلا والله! وش رايك نبدأ المشروع من اليوم؟
moroccanسلام خويا، كيداير؟ واش كلشي مزيان؟
lebaneseكيفك؟ شو عم تعمل اليوم؟
emiratiشحالك؟ عساك بخير؟
msaمرحباً بكم، كيف حالكم اليوم؟

Good to know

  • Every model except Clone. Dialect steering works with MenaVoice 2, 1.5 and 1v. MenaVoice Clone ignores dialectId: a cloned voice keeps the accent of its recording.
  • Unknown values are ignored. A dialectId that isn't in the table above doesn't cause an error. The text is read without steering.
  • Free of charge. The steering instruction isn't counted in your characters. You pay only for your own text.
  • Per line in a dialogue. In a multi-speaker dialogue, each line can have its own dialectId.
  • Web app default. New scripts in the web app start in Modern Standard Arabic. Pick a dialect for the whole script, or one per speaker.

Was this page helpful?