Azure Neural TTS
Microsoft Azure
Regional Swahili and African English speech synthesis.

What you can build.
Capabilities available in the Embiro pilot.
- Swahili voices from Kenya and Tanzania
- African English voices
- Regional managed inference in South Africa North
- Synchronous WAV or durable queued jobs
Choose a voice.
Seven tested standard neural voices. All use the same rate; no voice cloning or custom SSML.
- Zuri · sw-KE
sw-KE-ZuriNeural· female- Rafiki · sw-KE
sw-KE-RafikiNeural· male- Rehema · sw-TZ
sw-TZ-RehemaNeural· female- Daudi · sw-TZ
sw-TZ-DaudiNeural· male- Asilia · en-KE
en-KE-AsiliaNeural· female- Ezinne · en-NG
en-NG-EzinneNeural· female- Leah · en-ZA
en-ZA-LeahNeural· female
Know the limits.
- Text
- Up to 1500 Unicode code points, including spaces and punctuation
- Languages
- en · English, sw · Swahili; voice determines language when omitted
- Output
- Mono PCM16 WAV at 24 kHz, up to 180 seconds; speed 1
- Voices
- Seven preset standard neural voices; no voice cloning or custom SSML
Full pilot service notes
Optional regional managed speech in South Africa North. Seven English/Swahili preset voices; 1500 Unicode code points; plain text only; WAV at 24 kHz, up to 180 seconds; natural speed 1. No automatic fallback or GPU warm-up. Cancelled/failed work may be charged after provider dispatch.
Requests share your workspace’s allowance, rate limit and concurrency limit. Backend capacity varies; some GPU services warm up on demand. Model access does not guarantee immediate capacity.
Make your first request.
Use a server-side workspace API key from Platform → API keys. Examples use https://api.embiro.ai/v1 and the exact pilot model ID.
azure-neural-ttsPOST/v1/audio/speech
Azure TTS supports seven English/Swahili preset voices. Up to 1500 Unicode characters, WAV at 24 kHz, natural speed 1. If language is omitted it is inferred from voice. This model is optional and never automatically replaces Kokoro or Orpheus.
# Set EMBIRO_API_KEY in your shell first.
: "${EMBIRO_API_KEY:?Set your workspace API key first}"
curl --fail-with-body --silent --show-error "https://api.embiro.ai/v1/audio/speech" \
-H "Authorization: Bearer $EMBIRO_API_KEY" \
-H "Content-Type: application/json" \
--output speech.wav \
--data-binary @- <<'JSON'
{
"model": "azure-neural-tts",
"input": "Habari yako rafiki. Karibu Embiro Labs.",
"voice": "sw-KE-ZuriNeural",
"language": "sw",
"response_format": "wav"
}
JSONA WAV response body. The example saves speech.wav.
Cold starts, errors and safe retries
- Use the Queued job example when a request can wait for compute. Save its ID and poll that job.
- For 401/403, check the key and its model permissions. For 400, check the request and format limits.
- Respect Retry-After on 429/503. A timeout after dispatch can be ambiguous; check request logs before submitting again.
- These examples do not automatically retry paid work. A job retry must reuse the saved idempotency key and identical payload.
Under the hood.
Publisher specifications. These do not override the Embiro service limits above.
- Published context
- Not specified
- Parameters
- Not disclosed
- Model size
- Managed
Managed standard neural speech in South Africa North. Seven preset voices; 1500 Unicode characters, WAV at 24 kHz and natural speed 1. Provider model size and version are not disclosed. No voice cloning or customer SSML.
Read the publisher’s model cardNo verified benchmark scores are listed in this catalogue for this model.