Mansa Platform Docs

TTS

Generate WAV audio from text in a supported language and voice.

POST/v1/audio/speech

Request example

curl --fail-with-body "$MANSA_API_BASE_URL/v1/audio/speech" \
  -H "Authorization: Bearer $MANSA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "text": "Hello from Mansa",
  "language": "English",
  "voice": "ghanaian_female"
}' \
  --output speech.wav

Output

HTTP/1.1 200 OK
Content-Type: audio/wav

(binary WAV audio; save the response body to speech.wav)

Turn text into spoken audio. Send a language name such as English, then save the WAV body to a file.

Request fields

FieldTypeDefaultDescription
textstringRequiredNonempty text to convert to audio
languagestringRequiredA supported language name such as English, or the matching lowercase slug
voicestringOmittedAn optional supported voice
streambooleanfalseSend audio progressively when true

Voices

Omit voice to use the default. Every supported TTS language accepts male and female.

Regional English accents

When language is english, you can also send these regional accent voices:

  • nigerian_male and nigerian_female
  • ghanaian_male and ghanaian_female
  • east_african_male and east_african_female
  • north_african_male and north_african_female
  • south_african_male and south_african_female

Example:

{"text": "Good morning.", "language": "english", "voice": "ghanaian_female"}

English speakers for every language

Each of the 37 African languages also has an English voice named {language}_{gender}_speaker. These speak English with that language's native speaker accent. Example:

{"text": "Good morning.", "language": "english", "voice": "igbo_male_speaker"}

Ten speaker ids are the same clips as the regional accents above: igbo_male_speaker = nigerian_male, yoruba_female_speaker = nigerian_female, twi_*_speaker = the Ghanaian pair, swahili_*_speaker = the East African pair, xhosa_*_speaker = the South African pair, and arabic_*_speaker = the North African pair.

RegionLanguageMaleFemale
West AfricaIgboigbo_male_speakerigbo_female_speaker
West AfricaYorubayoruba_male_speakeryoruba_female_speaker
West AfricaHausahausa_male_speakerhausa_female_speaker
West AfricaTwitwi_male_speakertwi_female_speaker
West AfricaKanurikanuri_male_speakerkanuri_female_speaker
West AfricaFulafula_male_speakerfula_female_speaker
West AfricaEweewe_male_speakerewe_female_speaker
West AfricaFonfon_male_speakerfon_female_speaker
West AfricaBambarabambara_male_speakerbambara_female_speaker
West AfricaWolofwolof_male_speakerwolof_female_speaker
West AfricaKriokrio_male_speakerkrio_female_speaker
East AfricaSwahiliswahili_male_speakerswahili_female_speaker
East AfricaKikuyukikuyu_male_speakerkikuyu_female_speaker
East AfricaLugandaluganda_male_speakerluganda_female_speaker
East AfricaKinyarwandakinyarwanda_male_speakerkinyarwanda_female_speaker
East AfricaAmharicamharic_male_speakeramharic_female_speaker
East AfricaOromooromo_male_speakeroromo_female_speaker
East AfricaTigrinyatigrinya_male_speakertigrinya_female_speaker
East AfricaSomalisomali_male_speakersomali_female_speaker
East AfricaMalagasymalagasy_male_speakermalagasy_female_speaker
Southern AfricaXhosaxhosa_male_speakerxhosa_female_speaker
Southern AfricaZuluzulu_male_speakerzulu_female_speaker
Southern AfricaAfrikaansafrikaans_male_speakerafrikaans_female_speaker
Southern AfricaTswanatswana_male_speakertswana_female_speaker
Southern AfricaSesothosesotho_male_speakersesotho_female_speaker
Southern AfricaSepedisepedi_male_speakersepedi_female_speaker
Southern AfricaVendavenda_male_speakervenda_female_speaker
Southern AfricaSwatiswati_male_speakerswati_female_speaker
Southern AfricaShonashona_male_speakershona_female_speaker
Southern AfricaChichewachichewa_male_speakerchichewa_female_speaker
Southern AfricaTsongatsonga_male_speakertsonga_female_speaker
Southern AfricaNdebelendebele_male_speakerndebele_female_speaker
Southern AfricaBembabemba_male_speakerbemba_female_speaker
Southern AfricaUmbunduumbundu_male_speakerumbundu_female_speaker
Central AfricaLingalalingala_male_speakerlingala_female_speaker
North AfricaArabicarabic_male_speakerarabic_female_speaker
North AfricaBerberberber_male_speakerberber_female_speaker

Unsupported voice values return invalid_request.

Response

A successful response contains binary WAV audio with Content-Type: audio/wav. Save the response body directly to a .wav file; it is not JSON or base64.

When stream is true, audio bytes arrive progressively. Some audio players require the complete file before playback.

Supported languages

Send the full language name in the language field, such as English or Swahili. Matching lowercase slugs are listed below.

LanguageSlugLanguageSlug
AfrikaansafrikaansAmharicamharic
ArabicarabicBambarabambara
BembabembaBerberberber
ChichewachichewaEnglishenglish
EweeweFonfon
FulafulaHausahausa
IgboigboKanurikanuri
KikuyukikuyuKinyarwandakinyarwanda
KriokrioLingalalingala
LugandalugandaMalagasymalagasy
NdebelendebeleOromooromo
SepedisepediSesothosesotho
ShonashonaSomalisomali
SwahiliswahiliSwatiswati
TigrinyatigrinyaTsongatsonga
TswanatswanaTwitwi
UmbunduumbunduVendavenda
WolofwolofXhosaxhosa
YorubayorubaZuluzulu

Common aliases such as fulani, kiswahili, and tamazight are accepted.

Errors and billing

Before audio begins, failures use the shared JSON error format. If a streamed response is interrupted, treat the audio file as incomplete. TTS is billed according to input text length at $0.10 per 1K characters ($100 per 1M) — see Pricing. Retrying creates a new billable request.