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β
| Language | Locale | Voice Name | Gender | Notes |
|---|---|---|---|---|
| English (Nigeria) | en-NG | Amara | Female | West African accent |
| English (Nigeria) | en-NG | Tunde | Male | West African accent |
| English (Kenya) | en-KE | Zuri | Female | East African accent |
| English (South Africa) | en-ZA | Thandi | Female | |
| English (US) | en-US | Joanna | Female | Neutral fallback |
| French (West Africa) | fr-SN | AΓ―cha | Female | Senegalese accent |
| French (France) | fr-FR | LΓ©a | Female | |
| Arabic (Egypt) | ar-EG | Salma | Female | |
| Arabic (MSA) | ar-001 | Hamza | Male | Modern Standard Arabic |
| Swahili | sw-KE | Imani | Female | |
| Swahili | sw-KE | Baraka | Male | |
| Amharic | am-ET | Selam | Female | |
| Amharic | am-ET | Dawit | Male | |
| Hausa | ha-NG | Hadiza | Female | |
| Yoruba | yo-NG | Bisi | Female | |
| Igbo | ig-NG | Chioma | Female | |
| Zulu | zu-ZA | Nomvula | Female | |
| Xhosa | xh-ZA | Lindiwe | Female | |
| Afrikaans | af-ZA | Pieter | Male | |
| Somali | so-SO | Hodan | Female | |
| Wolof | wo-SN | Fatou | Female | |
| Portuguese (Angola) | pt-AO | Beatriz | Female |
SSML support: All voices accept a subset of SSML for controlling pauses, emphasis, and pronunciation. Wrap your
textin<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-NGrather thanen-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.
π Related Resourcesβ
Last Updated: May 2026