Skip to main content

Text-to-Speech Languages & Voices

The AfriRoute Voice API converts text into natural-sounding speech for IVR prompts, outbound voice notifications, and call-center announcements. This page lists the supported languages, locales, and voices β€” including broad coverage for African languages.

Pass a language and (optionally) a voice parameter when creating a call or building an IVR step. If no voice is specified, the default voice for the chosen locale is used.

πŸ—£οΈ Supported Languages & Voices​

LanguageLocaleVoice NameGenderNotes
English (Nigeria)en-NGAmaraFemaleWest African accent
English (Nigeria)en-NGTundeMaleWest African accent
English (Kenya)en-KEZuriFemaleEast African accent
English (South Africa)en-ZAThandiFemale
English (US)en-USJoannaFemaleNeutral fallback
French (West Africa)fr-SNAΓ―chaFemaleSenegalese accent
French (France)fr-FRLΓ©aFemale
Arabic (Egypt)ar-EGSalmaFemale
Arabic (MSA)ar-001HamzaMaleModern Standard Arabic
Swahilisw-KEImaniFemale
Swahilisw-KEBarakaMale
Amharicam-ETSelamFemale
Amharicam-ETDawitMale
Hausaha-NGHadizaFemale
Yorubayo-NGBisiFemale
Igboig-NGChiomaFemale
Zuluzu-ZANomvulaFemale
Xhosaxh-ZALindiweFemale
Afrikaansaf-ZAPieterMale
Somaliso-SOHodanFemale
Wolofwo-SNFatouFemale
Portuguese (Angola)pt-AOBeatrizFemale

SSML support: All voices accept a subset of SSML for controlling pauses, emphasis, and pronunciation. Wrap your text in <speak>...</speak> to enable it.

πŸ”Š Usage Example​

Specify the language and voice when placing an outbound call:

curl -X POST https://api.afriroute.ai/api/v1/voice/calls \
-H "Authorization: Bearer $AFRIROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+254712345678",
"from": "+254700000000",
"tts": {
"text": "Habari! Salio lako ni shilingi mia tano.",
"language": "sw-KE",
"voice": "Imani"
}
}'
const res = await fetch('https://api.afriroute.ai/api/v1/voice/calls', {
method: 'POST',
headers: {
'Authorization': 'Bearer $AFRIROUTE_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
to: '+254712345678',
from: '+254700000000',
tts: {
text: 'Habari! Salio lako ni shilingi mia tano.',
language: 'sw-KE',
voice: 'Imani'
}
})
});
console.log((await res.json()).call_id);
import requests

requests.post(
'https://api.afriroute.ai/api/v1/voice/calls',
headers={'Authorization': 'Bearer $AFRIROUTE_API_KEY'},
json={
'to': '+254712345678',
'from': '+254700000000',
'tts': {
'text': 'Habari! Salio lako ni shilingi mia tano.',
'language': 'sw-KE',
'voice': 'Imani'
}
}
)

πŸ’‘ Best Practices​

  • Match the recipient's locale β€” use the country-specific locale (e.g. en-NG rather than en-US) for natural pronunciation of local names and currency.
  • Keep prompts short in IVR menus to reduce caller drop-off.
  • Use SSML pauses (<break time="500ms"/>) between menu options.
  • Spell out numbers the way callers expect, or use SSML <say-as> for phone numbers and amounts.

Last Updated: May 2026