Or jump from this list on a smaller screen.
This is a page from the Audivra documentation. Developer exports — index: http://127.0.0.1:3000/docs/llms.txt, full corpus: http://127.0.0.1:3000/docs/llms-full.txt, OpenAPI: http://127.0.0.1:3000/docs/openapi.json, Postman: http://127.0.0.1:3000/docs/postman.json. Press ⌘K to search docs.
Dubbing
Async job: speech-to-text, translate, text-to-speech, then lip-sync on a talking-head. Poll GET /api/v1/jobs/{id}.
/api/v1/dubMultipart source (audio or MP4/WebM). Optional script skips recognition. Returns 202 with job_id.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| source | file | Yes | Audio or talking-head video (max 180s, 15 MB) |
| target_language | string | No | Allowlisted ISO 639-1 code (default en). en, de, it, nl, fr, es, pt, pl, ru, uk, tr, sw, … (33 total) |
| voice_id | string | No | Preset or ready clone used for the dubbed track |
| avatar_id | string | No | Talking-head preset when source is audio-only |
| script | string | No | Human transcript — skips STT billing |
| sync_mode | string | No | cut_off · loop · bounce · silence · remap |
Response
{
"job_id": "…",
"status": "queued",
"transcript": "…",
"translation": "…",
"target_language": "sw",
"poll": "/api/v1/jobs/…"
}Errors
| Status | Meaning |
|---|---|
| 401 | Unauthorized |
| 402 | STT or video credit quota exceeded |
| 409 | Voice clone still training |
| 503 | STT or translation worker unavailable |
Pipeline
Recognition meters STT seconds. Translation uses the local LLM worker. Speech and lip-sync follow the existing avatar job (character credits plus video seconds). Video sources become the lip-sync reference face.
curl -X POST http://127.0.0.1:3000/api/v1/dub \ -H "Authorization: Bearer sk_live_…" \ -F "source=@talking-head.mp4" \ -F "target_language=sw" \ -F "voice_id=zuri-sw" \ -F "avatar_id=studio-host"
Studio: /app/dub. Jobs: Avatars & jobs.