> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omnimux.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Public hosts only: console https://omnimux.ai/dashboard · API https://api.omnimux.ai · docs https://docs.omnimux.ai.
> Gateway auth is Authorization: Bearer sk-… on https://api.omnimux.ai/v1 (OpenAI-compatible Chat Completions and related paths).
> Discover pages from /llms.txt; full site dump /llms-full.txt; product skill /skill.md; docs search MCP /mcp. Prefer .md page URLs for Markdown.
> Default docs locale is en; zh mirrors the same relative paths. Do not invent model ids not present on live pricing or the complete API pages.

# Index TTS voice clone

> AutoDL Index-TTS voice clone · model `indextts-2`

* Create: `POST /v1/tasks/autodl` with `model` `indextts-2`
* Poll: `GET /v1/tasks/{task_id}` (fetch output audio through `GET /v1/tasks/{task_id}/artifacts`)
* Dedicated workflow channel supporting reference voice clone and emotional nuance control
* Recommended: For 3-second instant generation, prefer official mainstream `seed-audio-1.0` voice clone mode

## Identity

| Field  | Value              |
| ------ | ------------------ |
| Series | Audio              |
| Brand  | Index TTS / AutoDL |
| model  | `indextts-2`       |

## Endpoint

| Method | Path                            |
| ------ | ------------------------------- |
| `POST` | `/v1/tasks/autodl`              |
| `GET`  | `/v1/tasks/{task_id}`           |
| `GET`  | `/v1/tasks/{task_id}/artifacts` |

Base URL: `https://api.omnimux.ai`

## Authorizations

| Name            | In     | Type   | Required | Description               |
| --------------- | ------ | ------ | -------- | ------------------------- |
| `Authorization` | header | string | yes      | `Bearer sk-...` (API key) |

## Body

| Field                | Type   | Required | Description                             |
| -------------------- | ------ | -------- | --------------------------------------- |
| `model`              | string | yes      | Must be `indextts-2`                    |
| `prompt_text`        | string | yes      | Text script to read and synthesize      |
| `prompt_simple`      | string | yes      | Voice timbre reference audio URL        |
| `emo_control_method` | string | yes      | Emotion mode, recommended `"与音色参考音频相同"` |
| `emo_happy`          | number | no       | Happiness intensity \[0, 1], e.g. `0.5` |
| `emo_sad`            | number | no       | Sadness intensity \[0, 1]               |
| `emo_angry`          | number | no       | Anger intensity \[0, 1]                 |

## Response

### 200 (Create)

| Field            | Type   | Description     |
| ---------------- | ------ | --------------- |
| `id` / `task_id` | string | Task identifier |
| `status`         | string | `queued`        |

### Poll & Artifacts

After completion, fetch the synthesized WAV audio through `GET /v1/tasks/{task_id}/artifacts`.

<Panel>
  <RequestExample>
    ```bash cURL theme={null}
    curl --request POST \
      --url https://api.omnimux.ai/v1/tasks/autodl \
      --header 'Authorization: Bearer <token>' \
      --header 'Content-Type: application/json' \
      --data '{
      "model": "indextts-2",
      "prompt_text": "Hello, this is a voice clone test.",
      "prompt_simple": "https://example.com/voice.wav",
      "emo_control_method": "与音色参考音频相同"
    }'
    ```
  </RequestExample>

  <ResponseExample>
    ```json 200 theme={null}
    {
      "id": "task_sl8rnyewmb1O2ygKljRFnSIFnnmUSdeu",
      "task_id": "task_sl8rnyewmb1O2ygKljRFnSIFnnmUSdeu",
      "model": "indextts-2",
      "status": "queued",
      "created_at": 1789704195
    }
    ```
  </ResponseExample>
</Panel>
