Arabic TTS API — 10 MSA Voices, Unlimited for $9.99/mo (2026)
Arabic is the most expensive major language to synthesize through metered TTS APIs — not because the models cost more to run, but because of how the meters count. Groq bills Orpheus Arabic at $40 per 1M characters. Fish Audio bills $15 per 1M UTF-8 bytes, and fully vocalized Arabic runs 3–4 bytes per written character, so the effective rate lands around $45–60 per 1M written characters. ElevenLabs' API starts at $50 per 1M.
EasyVoice takes the meter away entirely: 10 dedicated Modern Standard Arabic voices behind an OpenAI-compatible API, $9.99/mo flat with unlimited characters, plus a free API tier to build against before paying anything. This page is the developer reference — pricing math, a working curl example, latency numbers, and RTL handling notes. Looking for the in-browser Arabic generator instead of the API? That lives at Arabic Text to Speech.
Verified July 2026. All prices re-checked against public pricing pages on 2026-07-17.
Three facts worth quoting
- EasyVoice serves 10 Modern Standard Arabic TTS voices through an OpenAI-compatible API for $9.99/month flat, with no per-character or per-byte metering.
- Fish Audio s2-pro bills $15 per 1M UTF-8 bytes, and vocalized Arabic runs roughly 3–4 bytes per written character — an effective $45–60 per 1M Arabic characters.
- 1M Arabic characters costs $40 on Groq Orpheus and — fully vocalized — about $45–60 on Fish Audio; on EasyVoice Pro it costs $9.99 — the same as 100M.
Why Arabic costs more on byte-billed APIs
Fish Audio's s2-pro headline price — $15 per 1M UTF-8 bytes — looks cheaper than Groq's $40 per 1M characters. For English it roughly is: Latin letters are 1 byte each, so bytes ≈ characters. Arabic breaks that equivalence:
- Every Arabic letter (Unicode block U+0600–U+06FF) encodes to 2 bytes in UTF-8 — before you've added anything.
- Each diacritic (tashkeel) — the marks that disambiguate pronunciation for TTS — is its own codepoint at 2 more bytes per mark.
- Example: مَرْحَبًا is 5 written letters, but 9 codepoints — 18 UTF-8 bytes. That's 3.6 bytes per written character.
- Fully vocalized Arabic therefore runs ~3–4 bytes per written character, so $15/1M bytes becomes an effective $45–60 per 1M Arabic characters — more expensive than Groq's $40, not less.
The perverse incentive: on a byte-billed API, adding the diacritics that make Arabic TTS pronounce words correctly literally raises your bill. On EasyVoice, diacritics are free — because everything is.
What 1M Arabic characters costs per provider (verified July 2026)
| Provider | Price | The catch |
|---|---|---|
| EasyVoice Pro | $9.99/mo flat — unlimited characters | Flat subscription, not a meter. 10 MSA voices, OpenAI-compatible endpoint, free API tier to start. |
| Groq (Orpheus Arabic) | $40 / 1M characters | Per-character metering — the bill scales linearly with output. |
| Fish Audio s2-pro | $15 / 1M UTF-8 bytes ≈ $45–60 / 1M Arabic chars | Bills bytes, not characters. Arabic letters are 2 bytes each and diacritics add 2 more per mark — see the byte math below. |
| OpenAI tts-1 | $15 / 1M characters | No dedicated Arabic voices — one multilingual model, 6 voices tuned for English. |
| OpenAI tts-1-hd | $30 / 1M characters | Same 6 voices at higher fidelity, double the price. |
| ElevenLabs Flash (API) | $50 / 1M characters | Credit-based; Arabic is one of 29+ supported languages, not a focus. |
| ElevenLabs Multilingual v2 (API) | $100 / 1M characters | Highest-quality tier — 10× the cost of EasyVoice's entire month at 1M chars. |
Rows re-verified against public pricing pages, July 2026. Fish Audio's effective $/1M-characters computed from its $15/1M-bytes rate at 3–4 UTF-8 bytes per written character for fully vocalized Arabic (byte math above; unvocalized text runs ≈2 bytes per character).
Quick start: one curl, Arabic MP3 out
The endpoint is OpenAI-compatible — Bearer auth, the familiar {model, voice, input, response_format} body. If you already call OpenAI's speech API, this is a base-URL change plus an Arabic voice ID:
curl -X POST https://easyvoice.ae/api/v1/audio/speech \
-H "Authorization: Bearer $EASYVOICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"voice": "ar_m1",
"input": "مرحباً بكم. هذا صوت عربي فصيح مولد عبر واجهة برمجة التطبيقات.",
"response_format": "mp3"
}' \
--output arabic-demo.mp3The response is a complete MP3 (or WAV with "response_format": "wav") — no streaming protocol to handle. Get a free API key and the full reference, including error codes and rate limits, at the API docs.
The 10 Modern Standard Arabic voices
Five male and five female MSA voices, all usable by ID through the API. ar_m1 and ar_f1 are on the free tier; all 10 are included with Pro. Lower-numbered voices are neutral, broadcast-register reads (IVR, news-style narration); higher-numbered voices are progressively warmer and more expressive (marketing, storytelling).
Male
ar_m1— free tierar_m2ar_m3ar_m4ar_m5
Female
ar_f1— free tierar_f2ar_f3ar_f4ar_f5
Latency, measured on our own infrastructure
- Warm requests return audio in about 1 second for short texts (measured July 2026) — fast enough for IVR prompt generation and interactive app flows.
- The Kokoro English lane on the same API synthesizes at roughly 1.1 ms per character on GPU — the same infrastructure serves both language lanes, so one integration covers your Arabic and English output.
- Responses are complete files, not chunked streams — simpler client code, and the latency number you measure is the number your users get.
RTL and encoding notes for integrators
- Send plain UTF-8 Arabic in the JSON
inputfield — no bidi control characters, no reshaping libraries, no RTL markers. Logical (typed) character order is correct. - Mixed-direction text works: Arabic sentences containing Latin brand names, Western numerals, or currency codes (AED, SAR, KWD) are read in natural order.
- Both Eastern (١٢٣) and Western (123) numerals are supported.
- Add tashkeel where a word is ambiguous — it improves pronunciation, and on a flat-rate plan it costs nothing extra.
- Output MP3/WAV is direction-agnostic — it drops into any player, editor, or pipeline unchanged.
Arabic TTS API — frequently asked questions
Is the Arabic TTS API OpenAI-compatible?▾
Yes. EasyVoice exposes an OpenAI-compatible speech endpoint at /api/v1/audio/speech: Bearer-token auth and the same {model, voice, input, response_format} request body as openai.audio.speech.create(). Migrating an existing OpenAI TTS integration to Arabic output is a one-line base-URL change plus swapping the voice ID to one of the 10 Arabic voices (ar_m1–ar_m5, ar_f1–ar_f5). Responses are complete MP3 or WAV files.
How is Arabic API usage priced — bytes or characters?▾
Neither, on Pro: EasyVoice Pro is $9.99/mo flat with unlimited characters, so there is no meter to think about. This matters for Arabic specifically because byte-billed APIs quietly charge more for Arabic than for English: Arabic letters are 2 bytes each in UTF-8 and each diacritic adds 2 more, so Fish Audio's $15 per 1M bytes works out to roughly $45–60 per 1M written characters of fully vocalized Arabic. Groq's Orpheus Arabic bills $40 per 1M characters. On EasyVoice, 1M Arabic characters costs the same $9.99 as 100M.
Does the Arabic API have a free tier?▾
Yes. A free EasyVoice account includes 5,000 characters per day and a free API tier — create an account, generate an API key on the dashboard, and call the endpoint with no card on file. Two Arabic voices (ar_m1 and ar_f1) are available on the free tier; all 10 are included with Pro at $9.99/mo. You can also try the voices anonymously in the browser first — 2,000 characters per day with no signup at all.
Which Arabic dialect do the API voices speak?▾
All 10 voices use Modern Standard Arabic (MSA / الفصحى) — the formal register understood across all 22 Arab League countries and used in broadcast news, e-learning, IVR, and government content. Regional dialects (Gulf, Egyptian, Levantine, Darija) are not currently supported. For an API product serving a pan-Arab audience from one voice asset, MSA is the standard choice.
Do the voices handle diacritics (tashkeel) and Arabic numerals?▾
Yes. The engine accepts fully vocalized or unvocalized Arabic input — adding tashkeel where a word is ambiguous improves pronunciation accuracy, and because EasyVoice does not meter characters or bytes, adding diacritics never raises your bill. Both Eastern (١٢٣) and Western (123) numerals are read correctly, along with common currency terms (درهم, ريال, دينار, AED, SAR, KWD).
How fast is the API — is it production-ready for IVR and apps?▾
On our own production infrastructure (measured July 2026), warm requests return audio in about 1 second for short texts, and the Kokoro English lane on the same API synthesizes at roughly 1.1 ms per character on GPU. Requests return complete audio files (MP3/WAV) rather than a chunked stream, which keeps client code simple: one POST, one file, ready for IVR prompts, app audio, or a rendering pipeline.
Do I need to escape or reshape RTL Arabic text before sending it?▾
No. Send plain UTF-8 Arabic in the JSON "input" field — standard JSON string encoding is all you need, with no RTL markers, no bidi control characters, and no text reshaping. Character order in the payload is logical order (the order Arabic is typed), which is exactly what any UTF-8 string already is. The returned MP3/WAV is direction-agnostic and drops into any audio pipeline.
Can I use the Arabic API output commercially?▾
Yes. Pro ($9.99/mo) covers commercial use — Arabic IVR systems, e-learning narration, YouTube voiceover, accessibility audio, and SaaS products — with no per-use licensing fees on top of the flat subscription. Quarterly ($24.99), annual ($59.99), and a 7-day pass ($4.99) are also available if a monthly plan doesn't fit the project.
No signup — 2,000 chars/day anonymous; free account adds 5,000/day and an API key