Arabic voice typing on Mac: dialects, tashkeel and right-to-left text
Five spoken dialects share one written script, the script runs right to left, and English words land in the middle of your sentences. Here is what breaks in most Arabic voice typing, and how to test an app yourself.
Yes, you can voice type in Arabic, and Apple's built-in dictation supports it. But Apple's dictation does not add punctuation, and it does not remove false starts (words you begin, stop, and then say again). It does not understand a Gulf sentence with English words inside it, and it does not translate. Lipo is our app, and it does all of that. You hold a key, speak Arabic the way you speak it at work, and release the key. Clean Arabic script arrives in Mail, Slack, WhatsApp Desktop or any other text field (a box where you can type). Lipo can also paste English instead. Arabic voice typing is also called Arabic voice dictation, and both names are used below.
Why is Arabic voice typing hard?
"Arabic" is at least five spoken languages that share one written form. And the written form runs from right to left, while most other text on your screen runs from left to right.
Start with dialect. Almost nobody speaks Modern Standard Arabic (فصحى) at the office. An Egyptian says "عايز" for want. Someone in Riyadh says "أبغى", someone in Beirut says "بدي", and someone in Casablanca says "بغيت". A speech to text model (the technology that turns sound into words) is often trained on news broadcasts, so it often writes the wrong word. Maghrebi Arabic, with its French loanwords (words taken from another language), is the hardest for most models.
Tashkeel are diacritics, the small marks above and below letters that show short vowels. Typed Arabic almost never carries them, and readers add the vowels from context. Lipo leaves out tashkeel by default, like normal typed Arabic.
Spelling is hard for people too. Hamza placement (أ, إ, آ, ء, ؤ, ئ) follows rules that many native speakers do not fully remember. People also mix up taa marbuta (ة) and haa (ه), so "مدرسه" for "مدرسة" is common online. A good voice dictation app gets this right every time.
Right-to-left text is the last problem. Arabic runs right to left, but "Q3" or an email address inside the sentence runs left to right. Each app handles this mix differently. The cursor is the blinking line that shows where text will go. In Notes and Mail, it jumps to the wrong end of the English word when you edit.
Many people avoid all of this with Arabizi. Arabizi is Arabic written in Latin letters, with numbers for the sounds English lacks: 3 for ع, 7 for ح, 2 for hamza. It is easy to read in a chat, but not acceptable in an email to a client or a ministry. Voice typing gives you proper Arabic script without a slow Arabic keyboard.
How to voice type in Arabic with Lipo
You don't need the Arabic keyboard layout.
- Install Lipo from uselipo.com. It needs macOS 15.2 or later. There is a free trial.
- During onboarding, pick Arabic as your dictation language. You can change it later under Dictation, then Language. Lipo can also auto-detect the language (guess which language you are speaking), but choosing Arabic gives better results.
- Grant the microphone and accessibility permissions (settings where you allow the app to use part of your computer). The accessibility permission lets Lipo paste into other apps.
- Click into any text field. Mail, WhatsApp Desktop, Outlook, Slack and the chat box in ChatGPT all work.
- Hold the hotkey and speak. A hotkey is a key you press to start recording, and the default is the right Option key. When you release the key, Lipo transcribes your speech (turns it into text), cleans it up, and pastes the finished text where your cursor is. Cleaning up means Lipo removes filler words (sounds like "يعني" that carry no meaning) and false starts, adds punctuation, and fixes small mistakes. Lipo does not type letter by letter, and it does not show text while you speak.
Here is a message with the mess real speech has in it. Six different problems, all in one message.
You say (Cairo office style):
"يعني... بص، الأوردر، الأوردر اللي جاي هيوصل الخميس، لا لا، الجمعة، عشان المخزن هيقفل بدري. فيه خمسميت قطعة تقريبًا، والفاتورة طلعت اتناشر ألف جنيه مش عشر آلاف. كلم المورد يأكد الميعاد. ولو اتأخر، بلغني على طول لو سمحت."
Lipo pastes:
بص، الأوردر اللي جاي هيوصل الجمعة مش الخميس، عشان المخزن هيقفل بدري. فيه 500 قطعة تقريبًا، والفاتورة طلعت 12,000 جنيه مش 10,000. كلم المورد يأكد الميعاد، ولو اتأخر بلغني على طول لو سمحت.
Six things happened there:
- The correction was kept. You said Thursday, stopped yourself, and said Friday. The message says Friday.
- The stutter is gone. "الأوردر، الأوردر" is written once.
- Filler is gone. "يعني" does not appear.
- Numbers are written as digits. "خمسميت" became 500 and "اتناشر ألف" became 12,000. Lipo never changes the value of a number, only the way it is written.
- Two half sentences became one. You paused after "يأكد الميعاد" and started again. Lipo joined them, because they were clearly one thought.
- Your Egyptian stayed Egyptian. "بص", "عشان", "بدري" and "على طول" are all still there, and the English word "order" is written in Arabic letters as الأوردر. Casual mode fixes the writing, not the way you talk.
For a long email, switch to Toggle mode in settings. Press the hotkey once to start and again to stop.
Does Lipo keep my dialect or turn it into فصحى?
A WhatsApp message to your brother should sound like you, and a cover letter for a job in Doha should not contain "عايز". In Casual mode, Lipo fixes spelling and punctuation and leaves your Egyptian, Gulf, Levantine or Maghrebi words alone. In Formal mode, Lipo rewrites the text in a professional style, which for Arabic means فصحى. You say: "عايز أعمل ميتينج بكرة". Lipo writes: أود عقد اجتماع غداً. Pin Formal to Mail and Casual to WhatsApp Desktop, and the same hotkey produces the right register (level of formality) in each app.
Lipo recognizes Modern Standard Arabic and regional accents, and heavy dialect words may be written in the standard form. This happens more often with Maghrebi words. If a sentence comes out wrong, tell us.
Lipo does not change how Notes or Slack handle right-to-left text, but it avoids the problem. It pastes the whole sentence at once as finished text. Words in Latin letters (a product name, "Q3") sit in the right place inside the Arabic, and the punctuation stays on the Arabic side. When you dictate complete sentences, you rarely edit in the middle of one.
Speak Arabic, paste English
Many Arabic speakers write English all day, to a head office, a client or a professor. You think the sentence in Arabic, translate it in your head, and then type English. Lipo lets you skip the middle step.
In Lipo's settings, open the Translation tab and set "Lipo pastes" to English. Then choose when translation happens:
- Always translate. Every dictation comes out in English.
- Translate with this hotkey. Your normal hotkey pastes Arabic, and a second hotkey pastes English.
With translation on, Lipo transcribes your Arabic, cleans it up, translates the cleaned text, and then pastes it. If you translate raw speech with the يعني still in it, you get English that's fluent but empty.
When you write in a second language, you often say less than you mean, because you are thinking about grammar. When you speak Arabic and Lipo translates it, the meaning and the tone stay.
Here is a messy Gulf sentence:
You say (Gulf Arabic, Formal mode, output language set to English):
"هلا أستاذ خالد، بخصوص زيارة الموقع بكرة. إحنا، إحنا جاهزين بس محتاجين تصاريح الدخول، وسيارة من البوابة الشمالية، وواحد من الأمن يستقبل الفريق. الفريق اتناشر شخص، مو ثمانية زي ما قلت لك أمس. ولو ما ضبط بكرة، نأجلها للأحد عادي."
Lipo pastes:
Hello Khalid,
Regarding tomorrow's site visit, we are ready, but we need the following:
- Entry permits
- A vehicle from the north gate
- Someone from security to receive the team
The team is 12 people, not 8, as I told you yesterday. If tomorrow does not work, we can move it to Sunday.
Read that against what you said. You spoke a greeting, so you get a greeting. Lipo will not invent a greeting, a subject line or a sign-off you did not say, which is why the message stops where your speech stopped instead of adding "Best regards". The three things you needed became a list, even though you never said the word "list", and the sentence that introduces them keeps its colon. The correction was kept as 12, not 8. "إحنا، إحنا" was written once, and the Gulf words that have no English equivalent, "عادي" and "ما ضبط", came across as meaning rather than as words.
The dashes in that list are ordinary characters, not formatting. Lipo pastes plain text, so the list survives in Outlook, Slack and any box that does not understand Markdown.
Lipo did not translate "أخوي" as "my brother", which would sound strange in a business email. It understood "مو حق الأسبوع اللي طاف" instead of transliterating it (writing the sounds in English letters).
The translation docs explain every setting, and the dictate and translate guide shows more examples. Translation has a monthly word limit on the smaller plan; see pricing for plans and limits.
For names that keep coming out wrong, use the dictionary. Add a word spelled the way you want, and Lipo uses that spelling in every language and after translation. You can set "Mohammed" instead of "Muhammad", or keep "Figma" in Latin letters.
What about Wispr Flow, Willow Voice, Aqua Voice and superwhisper?
Here is how the four compare with Lipo on the things that matter for Arabic.
| Lipo | Wispr Flow | Willow Voice | Aqua Voice | superwhisper | |
|---|---|---|---|---|---|
| Arabic | Yes | Yes | Not sure | Yes | Depends on the model |
| English words inside a sentence in your language, written in your script | Yes | No, one language per recording | Switches mid-sentence, script not stated | Not documented | Not documented |
| Voice typing translation: speak one language, paste another | Yes, any pair | No | No | No | Into English only |
| Tone modes | Casual, Formal, Vibe Coding | Yes | Yes | Yes | Custom modes |
| Screenshot attached to dictated text | Yes | No | No | No | No |
| Video prompt for AI tools (Visual Brief) | Yes | No | No | No | No |
| Clipboard history | Yes | No | No | No | No |
A long language list means the app can recognize those languages. It does not mean it is equally good in all of them.
The clearest evidence for that comes from a competitor. Wispr Flow's own research page sorts its languages into two groups: seven that it says are "trained and tuned to match English-level performance", which are French, German, Hindi, Italian, Portuguese, Spanish and Thai, and "dozens of other major languages" where it promises accurate dictation without making that comparison. Arabic is in the second group. That is their wording, not our opinion of them.
"Not sure" in the table means the company gives a total but does not say in public whether that language is one of them. On totals, Wispr Flow and Willow Voice both say 100+, Aqua Voice publishes a full list of 49, superwhisper depends on the model you choose, and Lipo lists 50+.
Nobody publishes per-language accuracy figures, ourselves included. So speak one real sentence in Arabic, with a person's name and one English word in it, and read what comes back. Ten minutes of that tells you more than any comparison table, including this one. Lipo is built so Arabic gets the same accuracy work as English, rather than a long list where only a few languages work well.
None of the four recognize a language change inside one sentence, so they treat "الميتينج مع الـ client بكرة" as one language. You cannot predict which words come out right.
Screenshots and Visual Brief, in Arabic
While you are recording, the small floating window (Lipo calls it the pill) has a screenshot button. Click it, capture the screen, and keep speaking. When you release the hotkey, Lipo pastes the text and attaches the screenshot to the same message. So "شوف الايرور ده" arrives with the error in it. The screenshots docs have the details.
Visual Brief goes further. AI tools such as Claude, ChatGPT and Cursor read only text. Visual Brief lets you record your screen while you describe a problem in Arabic. Start it from the Lipo menu bar icon and record your screen or one window for up to 5 minutes. You can say "لما أضغط الزرار ده الصفحة بتعمل reload بس الداتا مش بتيجي". Lipo transcribes what you said, analyzes the recording, writes a structured prompt in your output language, and pastes it into the AI tool. It needs the Screen Recording permission, and recordings are deleted from your computer after 7 days. Details are in the Visual Brief docs.
What about Apple dictation and the free options?
Apple dictation on macOS 15 has Arabic for Saudi Arabia and the United Arab Emirates. It runs on-device, which means on your computer, without sending audio to a server. It does not add punctuation, so you must say "فاصلة" for a comma. It does not remove false starts or filler words, and it does not translate. It listens for one language at a time, so it cannot handle English words inside an Arabic sentence.
Tips for better Arabic voice dictation
Speak full sentences. The cleanup step reads the whole sentence for context, and that is how Lipo decides between مدرسة and مدرسه.
If you correct yourself ("الاثنين، لا، الثلاثاء"), Lipo keeps the correction and removes the mistake.
Use the built-in microphone or a wired headset. Wireless earbuds compress the audio, and the emphatic consonants (ص, ض, ط, ظ) lose clarity first.
Frequently asked questions
Can I voice type in Arabic on a Mac?
Yes. Apple's built-in dictation supports Arabic. Apps like Lipo add punctuation, cleanup, dialect support and translation.
Does Apple dictation support Arabic?
Yes, with several regional settings, and it runs on-device. It does not add punctuation, does not remove filler words or false starts, and listens for one language at a time.
Does Lipo understand Egyptian, Gulf, Levantine and Moroccan Arabic?
Yes. Lipo recognizes Modern Standard Arabic and regional accents, including Egyptian, Gulf, Levantine and Moroccan speech. Heavy dialect words, especially Maghrebi words and French loanwords, may be written in the standard form.
Does Lipo add tashkeel?
No, not by default. Lipo writes Arabic the way typed Arabic is written, without short vowel marks. You can add specific words with tashkeel to the dictionary if you need them.
Can I mix Arabic and English in one sentence?
Yes. Lipo recognizes both and writes English loanwords in Arabic script (ميتينغ, كلاينت, ديدلاين), the way they appear in print, with the definite article attached. Add a word to the dictionary to keep it in Latin letters.
Can I speak Arabic and get English text?
Yes. Set "Lipo pastes" to English in the Translation tab. Lipo transcribes your Arabic, cleans it up, translates it, and then pastes it. Translation has a monthly word limit on the smaller plan; see pricing.
Does it fix the RTL cursor problem in Mail and Slack?
Lipo avoids it. It pastes the finished sentence at once, with English words in the right place inside the Arabic. You do not edit in the middle of a sentence while the cursor jumps.
What is Arabizi and do I still need it?
Arabizi is Arabic written in Latin letters and numbers (3 for ع, 7 for ح). With voice typing you speak Arabic and get Arabic script, so you do not need it.
Does it work in WhatsApp, Outlook and Gmail?
Yes. Lipo pastes into any field with a cursor, including WhatsApp Desktop, Outlook and Gmail in the browser.
How much does it cost?
Plans and prices are on the pricing page. There is a free trial.
Keep reading
From the docs: Dictation modes · Translation