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

# Overview

> Clip Persona vs Voice Persona — Clone Voice (paid) or Init + Complete (free)

# Persona

> Two families. **Clone Voice** and **Init + Complete** are both **Voice Persona** — same result, different billing.

A persona is a reusable vocal identity for `/generate`. Do not mix Clip Persona with Voice Persona.

## Clip Persona

Style / vocal color from an existing Suno clip. **Desensitized** — any account can use it.

<CardGroup cols={2}>
  <Card title="Create Clip Persona" icon="user" href="/api-reference/suno/persona">
    Sync create from `clip_id`. Not voiceprint-bound. `/generate` keeps `is_voice: false`.
  </Card>

  <Card title="Get Vox Stem" icon="waveform" href="/api-reference/suno/getVoxStem">
    Extract vocals, then pass `vox_audio_id` into Clip Persona (`persona_type: "vox"`).
  </Card>
</CardGroup>

## Voice Persona

Real-voice clone, **voiceprint-bound** to the creating account. Two APIs, **same Voice Persona**:

<CardGroup cols={2}>
  <Card title="Clone Voice" icon="clone" href="/api-reference/suno/voices">
    `POST /suno/v2/voices` — one `audio_url`, one task. **Paid.** English phrase only.
  </Card>

  <Card title="Init + Complete" icon="list-check" href="/api-reference/suno/voicePersona">
    User reads `phrase_text`. **Free.** Multi-language. Same Voice Persona as Clone Voice.
  </Card>
</CardGroup>

```
 Clone Voice  /voices     (paid, 1 call)
      └─ same pipeline as ──►  init  +  complete   (free, 2 calls)
                                    │
                                    ▼
                              Voice Persona
                              is_voice: true
```

|                     | Clone Voice `/voices`                        | Init → Complete                         |
| ------------------- | -------------------------------------------- | --------------------------------------- |
| **Family**          | Voice Persona                                | Voice Persona                           |
| **Result**          | `{ name, is_public, persona_id }`            | Same Voice Persona                      |
| **Billing**         | **Paid** (failed tasks should not be billed) | **Free**                                |
| **Input**           | Public `audio_url`                           | Voice file + live read-aloud            |
| **UI**              | No phrase / no second recording              | Show `phrase_text`, record within \~30s |
| **Phrase language** | English only                                 | `zh` / `en` / `ja` / `ko` / …           |
| **`is_voice`**      | `true`                                       | `true`                                  |
| **Account**         | Creating account only                        | Creating account only                   |

<Tip>
  Need a URL and no read-aloud UI → **Clone Voice** (paid). User can read a phrase → **Init + Complete** (free). Both return a Voice Persona `persona_id`.
</Tip>

### Clone Voice task result

After polling `/suno/v2/status` to `success`, `data` looks like this:

```json theme={null}
{
  "name": "voices-ext-fix-verify",
  "is_public": false,
  "persona_id": "af88153e-a513-432a-a9b5-3948fb562d4b"
}
```

Use `persona_id` on `/generate` with `is_voice: true`.

## Desensitization vs voiceprint

|                    | Clip Persona                          | Voice Persona (Clone Voice **or** Init+Complete) |
| ------------------ | ------------------------------------- | ------------------------------------------------ |
| **Desensitized?**  | **Yes**                               | **No** — voiceprint-bound                        |
| **Who can use it** | Any account                           | **Same** Suno account only                       |
| **`is_voice`**     | `false`                               | `true`                                           |
| **Input**          | `clip_id` (+ optional `vox_audio_id`) | A real voice recording                           |

<Warning>
  A Voice Persona with `is_voice: false`, or on another account, fails. A Clip Persona must **not** set `is_voice: true`.
</Warning>

## Use on `/generate`

```json theme={null}
{
  "task": "create",
  "model": "chirp-v55",
  "prompt": "[Verse]\n...",
  "persona": {
    "persona_id": "af88153e-a513-432a-a9b5-3948fb562d4b",
    "artist_clip_id": "clip_abc123",
    "persona_style": "vox",
    "is_voice": true
  }
}
```

| Field            | Required | Notes                                                        |
| ---------------- | -------- | ------------------------------------------------------------ |
| `persona_id`     | Yes      | From Clip create, or Clone Voice / Init+Complete poll `data` |
| `artist_clip_id` | Yes      | Style clip (often the persona’s `root_clip_id`)              |
| `persona_style`  | No       | Only `"vox"` on chirp-v50+                                   |
| `is_voice`       | No       | `true` for **Voice Persona** only                            |
