POST /tasks/audio/speech endpoint is served by the RunPod Orpheus-3B deployment (sunbird-orpheus-tts) — multilingual and multi-speaker, covering 20 African languages with 40+ voices. Voices are catalog tags (e.g. salt_lug_0001); list them with GET /tasks/voice/speakers.
Single Synthesis
Parameters
Response
The
audio_url is a temporary signed URL valid for ~30 minutes. Download or stream the audio promptly, or re-sign it with GET /tasks/audio/speech/url.Response Modes
response_mode controls how the audio is returned:
url— synthesize, upload to GCP, return a signed URL (valid ~30 minutes) — defaultstream— stream the raw audio bytes straight back (constant client memory; no GCS upload)both— stream the raw audio bytes and return the signed URL in theX-Audio-Urlresponse header
RunPod synthesizes the full waveform before sending the first byte, so
stream bounds client memory but does not reduce time-to-first-audio.Languages and Voices
Speaker IDs encode both the source corpus (salt_*, waxal_*, slr32_*, slr129_*, bateesa_*) and the language. Languages marked with an em dash are present in the model’s training mix but do not currently expose individual voice IDs in this checkpoint.
Listing Voices
Batch Synthesis
Synthesize up to 16 items in a single request (RunPod cap). Per-item failures are reported withstatus="error"; the request returns 200 if at least one item succeeds and 502 if every item fails.
Refreshing an Expired URL
Signed URLs expire after ~30 minutes. Re-sign a stored object withGET /tasks/audio/speech/url:

