Arabic and English Bilingual Text to Speech: Handling Code Switching

Arabic and English Bilingual
On this page
  1. What Is Code Switching in Arabic Text to Speech?
  2. Why Is Code Switching Hard for Text to Speech?
  3. How Often Do Gulf Scripts Switch Between Arabic and English?
  4. Should English Words Stay in English or Be Written in Arabic?
  5. How Should Arabic Prefixes Attach to English Words?
  6. How Do Acronyms, Numbers and Arabizi Affect Bilingual Scripts?
  7. Why Can a Bilingual Script Look Right but Sound Wrong?
  8. Which Voice Should Read a Bilingual Arabic and English Script?
  9. How Can You Check a Bilingual Script Automatically?
  10. Disclaimers

In the Gulf, a customer service message, an app notification or a social video script rarely stays in one language. Words like app, login, meeting and offer sit naturally inside Arabic sentences, and brand names stay in English. People hear this mix every day, so a text to speech voice that stumbles at every switch sounds foreign at once.

This guide explains how to prepare bilingual Arabic and English scripts so a voice reads them naturally. We wrote ten typical Gulf style lines, ran them through a small checker we built, and found 33 language switches and 14 spots likely to trip a voice. Below is what we found, how to fix each problem, and the checker itself.

What Is Code Switching in Arabic Text to Speech?

Code switching is moving between two languages within one conversation or sentence, such as using English words inside an Arabic sentence. In text to speech, it means the voice must recognise which words are English and pronounce them correctly without breaking the rhythm of the Arabic around them.

It is a normal part of Gulf speech, not a mistake. A 2025 Gulf News report on how Emirati youth blend Arabic and English describes young Emiratis switching languages within a single exchange, citing research that finds people of all ages code switch, with more mixing among younger speakers and in informal settings. Our guide to dialects and code switching in Arabic NLP explains why this matters for voice technology.

Why Is Code Switching Hard for Text to Speech?

Code switching is hard because the voice has to decide, word by word, which language it is reading, then switch sound systems and intonation mid sentence. Mixed spellings, Arabic prefixes attached to English words and abbreviations make that decision harder.

Arabic and English differ in their sounds, stress and rhythm. A voice trained mostly on one language may read an English word with Arabic sounds, or pause awkwardly at the switch. Generic multilingual systems often handle each language separately, which is one reason Arabic voice AI needs its own technology rather than an add on to an English model.

ProblemWhat the voice hearsTypical result
English word inside ArabicA sudden change of alphabetWrong accent or a pause at the switch
Arabic prefix on English word (الـapp)One token in two scriptsPrefix skipped, misread or spelled out
Acronym (OTP, VAT)Capital letters with no vowelsRead as a word, or letters in the wrong language
Arabizi (7abibi)Latin letters mixed with digitsDigits read as numbers
Text directionCharacters in stored orderCorrect audio, but a script that looks wrong when edited

How Often Do Gulf Scripts Switch Between Arabic and English?

In our sample of ten Gulf style customer service and app lines, 27% of words were English and the language switched 33 times, an average of 3.3 switches per line. One line about downloading an app switched language eight times in ten words.

We wrote the lines to reflect common Gulf usage, such as banking messages, app instructions, a weekend offer, a meeting reminder and a delivery update, then counted switches with the checker described later in this guide.

Six sample Gulf Arabic lines with English words highlighted and the number of language switches in each
Our sample lines, November 2026. Pink marks the most common problem: an Arabic prefix joined to an English word.

Should English Words Stay in English or Be Written in Arabic?

Keep an English word in English when your audience says it in English and your voice pronounces it well; write it in Arabic letters when the voice mispronounces it; and translate it when a common Arabic word exists. Make the decision once per term and use the same form throughout.

OptionBest forExample
Keep in EnglishBrand and product names your audience says in EnglishApp Store, Face ID
Write in Arabic lettersNames the voice mispronounces in Latin lettersآيفون instead of iPhone
TranslateEveryday words with a common Arabic equivalentتقرير instead of report

Formal content such as government notices and banking terms usually suits full Arabic. Social media scripts and app onboarding for young Gulf audiences often sound more natural with some English kept. Our guide to designing Arabic voice UX covers matching tone to the audience.

How Should Arabic Prefixes Attach to English Words?

Do not join Arabic prefixes such as ال (the), ب (with) or و (and) directly to an English word. Either rewrite the phrase so the English word stands alone, or write the whole term in Arabic letters, so the voice sees one language per word.

WrittenRewrite with English keptRewrite fully in Arabic
الـiPhonesأجهزة iPhoneأجهزة آيفون
بالـFace IDباستخدام Face IDببصمة الوجه
من الـApp Storeمن متجر App Storeمن آب ستور
الـtracking linkرابط trackingرابط التتبع

Writers often type الـapp or بالـFace ID because that is how the phrase is spoken. To a voice, though, each of those tokens mixes two alphabets, and it may drop the prefix or read it oddly. In our sample this was the most frequent problem, appearing 10 times across 6 of the 10 lines.

How Do Acronyms, Numbers and Arabizi Affect Bilingual Scripts?

Acronyms, numbers and Arabizi are the other common traps: acronyms may be read as words, numbers may be read in the wrong language, and Arabizi digits such as 7 and 3 are read as numbers. Spell each of them out the way you want them heard.

WrittenRiskWrite this instead
OTPRead as a word, or letters in Englishرمز التحقق
VATRead as a wordضريبة القيمة المضافة
Dr. SarahAbbreviation read letter by letterالدكتورة سارة
7abibiThe 7 read as a numberحبيبي
5%Number read in Englishخمسة بالمئة

Arabizi, Arabic written in Latin letters and digits, is common in chats but should never reach a voice script. The digits stand for Arabic sounds that have no Latin letter, and a voice will read them as numbers.

Why Can a Bilingual Script Look Right but Sound Wrong?

A mixed Arabic and English script can display in a confusing order depending on the text direction of the editor, but a voice always reads the characters in the order they are stored. Writers who edit in a left to right field may “fix” a line that was already correct and break it.

Screens arrange mixed text using the Unicode bidirectional algorithm, which depends on the direction of the surrounding paragraph. We rendered the same two sentences in a left to right field and a right to left field. The characters were identical, yet in the left to right field the English words, the full stop and the ال prefix all appeared in different places.

The same mixed Arabic and English sentences shown in a left to right field and a right to left field, with the stored word order
Our rendering test, November 2026: same characters, different display, one reading order.

The practical rule: write and review bilingual scripts in a right to left editor, such as a document with Arabic set as the language, and check the order by listening rather than by looking.

Which Voice Should Read a Bilingual Arabic and English Script?

Use a voice that is built for both languages when the script keeps many English words, and an Arabic voice when English appears only as occasional brand names. Whichever you choose, test the exact English terms in your script before generating the full audio.

Munsit’s featured voice list includes Maya, presented as an English and Arabic voice, alongside Saudi, Emirati and formal Arabic voices. The synthesis API also accepts a dialect setting of auto, emirati or fusha. Listen to how each voice handles your brand names in the Munsit text to speech studio, and compare dialect voices in our Arabic AI voice generator guide.

For phone lines, where callers cannot see the text and have one chance to hear it, lean towards fewer English words. Our guide to the best Arabic text to speech voices for call centres covers telephony in more detail.

How Can You Check a Bilingual Script Automatically?

Run the script through a checker that marks every English word, counts language switches and flags joined prefixes, acronyms and Arabizi, then fix the flagged words before generating audio. A check takes seconds and catches the problems that are easiest to miss when reading.

We wrote a short Python checker for this article. It needs no extra libraries and works line by line.

switch_check.py
"""Find Arabic and English switch points in a text to speech script."""
import sys

ARABIZI_DIGITS = set("235679") # 3 = ع, 7 = ح, 5 = خ and so on


def is_arabic(ch):
return "ء" <= ch <= "ي" or ch == "ـ"


def is_latin(ch):
return ch.isascii() and ch.isalpha()


def is_word_char(ch):
return is_arabic(ch) or is_latin(ch) or ch.isdigit()


def clean(word):
"""Strip punctuation from both ends of a word."""
junk = "".join(c for c in word if not is_word_char(c))
return word.strip(junk)


def script_of(word):
ar = any(is_arabic(c) for c in word)
en = any(is_latin(c) for c in word)
return "mixed" if ar and en else "en" if en else "ar" if ar else "other"


def flag(word, script):
if script == "mixed":
return "Arabic prefix joined to English" # بالـAI
if script != "en":
return None
if word.isascii() and set(word) & ARABIZI_DIGITS and not word.isdigit():
return "Arabizi (Arabic in Latin letters)" # 7abibi
core = word.removesuffix("s")
if 2 <= len(core) <= 6 and core.isupper():
return "acronym" # OTP, VAT
return None


def analyse(line):
words = [w for w in (clean(w) for w in line.split()) if w]
scripts = [script_of(w) for w in words]
spoken = [s for s in scripts if s != "other"]
switches = sum(1 for a, b in zip(spoken, spoken[1:]) if a != b)
flags = [(flag(w, s), w) for w, s in zip(words, scripts) if flag(w, s)]
english = sum(1 for s in scripts if s in ("en", "mixed"))
return len(words), english, switches, flags


if __name__ == "__main__":
lines = open(sys.argv[1], encoding="utf8").read().splitlines()
for n, line in enumerate(lines, 1):
if not line.strip():
continue
words, english, switches, flags = analyse(line)
print(f"line {n}: {words} words, {english} English, {switches} switches")
for kind, word in flags:
print(f" {kind}: {word}")


Run it with python switch_check.py script.txt. On our ten sample lines it reported 33 switches and 14 issues: 10 joined prefixes, 3 acronyms and 1 Arabizi word. After rewriting the lines fully in Arabic, it reported no English words and no issues. A mixed rewrite that keeps brand names in English would still show switches, which is fine once each English word stands alone.

Six steps to prepare a bilingual Arabic and English text to speech script
From choosing the voice to listening at every change of language.

From choosing the voice to listening at every change of language.

Teams generating audio at scale can run the same check before every request; our Arabic text to speech API guide for developers shows how to automate generation.

Disclaimers

  • The ten sample lines were written for this article to reflect common Gulf usage and are not drawn from real customer data. Real scripts will show different switch rates.
  • The switch checker flags common risks using simple rules. It does not detect every pronunciation problem, so always listen to the audio.
  • Munsit voice and parameter details come from its public documentation reviewed in October 2026 and may change. Pronunciation of specific English terms varies by voice and should be tested.
  • Product and brand names belong to their respective owners. Their mention does not imply affiliation or endorsement.

Frequently asked questions

Can one text to speech voice read both Arabic and English?

One text to speech voice can read both Arabic and English if it is built for both languages, and even then each English term in a script should be tested, because pronunciation of brand names and technical words varies between voices.

Should I write English brand names in Arabic letters for text to speech?

English brand names should stay in Latin letters if the voice pronounces them correctly and the audience says them in English, and be written in Arabic letters only when the voice mispronounces the Latin spelling.

Why does text to speech misread words like الـapp?

Text to speech misreads words like الـapp because the Arabic prefix and the English word form one token in two alphabets, so the voice may drop or misread the prefix; writing التطبيق or separating the English word avoids the problem.

How common is code switching in Gulf Arabic scripts?

Code switching is very common in Gulf Arabic scripts; in our sample of ten Gulf style lines, 27% of words were English and the language changed 33 times, an average of 3.3 switches per line.

Can text to speech read Arabizi?

Text to speech should not be given Arabizi, because digits such as 7 and 3 that stand for Arabic sounds are read as numbers; Arabizi words should be written in Arabic letters before generating audio.

ShareLinkedInXWhatsApp