Abena AI API — African-language Text-to-Speech and Speech Recognition over HTTP. Free tier, no sign-up.
# Abena AI API
African‑language **Text‑to‑Speech** (speech from text) and **Speech Recognition** (text from speech), over plain HTTP.
Use it from a website, a phone app, a server, or just your terminal — **no special library required**.
> 🟢 **Start free:** you get **30 requests with no account and no API key**. Just send a request and it works.
- 🌍 Live playground:
- 📖 Full docs:
---
## Base URL
```
abena.mobobi.com
```
> ℹ️ **First request to a voice may take ~10–15 seconds.** The first time a voice is used, its model is loaded and prepared on our server (offline). After that the same voice responds in about a second.
---
## Text‑to‑Speech
Send text + a voice, get audio back. The audio comes as a **Base64‑encoded WAV** inside JSON, which is easy to use from any language and from the browser.
**Endpoint**
```
POST /tts/synthesize/
```
**Request body (JSON)**
| Field | Required | Description |
|---------|----------|-------------|
| `text` | yes | Text to speak (up to 500 characters). |
| `voice` | yes | A voice ID, e.g. `akua_eng`, `abena_twi_high`, `kobby_gpe` — see Voices. |
| `speed` | no | `1.0` normal, `0.5` slowest, `2.0` fastest. Default `1.0`. |
**Response (JSON)**
```json
{
"status": "success",
"voice": "abena_twi_high",
"audio_base64": "UklGRiQ...",
"duration_seconds": 2.91,
"mime_type": "audio/wav",
"quality": "high"
}
```
`abena_twi_high` always uses the High voice. If the voice service is temporarily at capacity, retry after the interval returned by the API.
**Example (curl)** — saves `speech.wav`, no API key needed:
```bash
curl -s -X POST
abena.mobobi.com \
-H "Content-Type: application/json" \
-d '{"text": "Akwaaba, wo ho te sen?", "voice": "abena_twi_high", "speed": 1.0}' \
| python3 -c "import sys,json,base64; open('speech.wav','wb').write(base64.b64decode(json.load(sys.stdin)['audio_base64'])); print('Saved speech.wav')"
```
> 🗣️ **Twi tip:** …