> ## 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.

# Clone Voice

> 收费 Clone Voice — 产物与 Init + Complete 相同 Voice Persona

**Clone Voice**（`POST /suno/v2/voices`）属于 **Voice Persona**。它是 [Init](/zh/api-reference/suno/voicePersonaInit) + [Complete](/zh/api-reference/suno/voicePersonaComplete) 的**收费一步**等价接口：一条公网 `audio_url`、一次任务，得到同一种 Voice Persona。

<Warning>
  **收费。** Init + Complete **免费**，产物是**同一种** Voice Persona。Clone Voice 失败任务不应扣费。详见 [Persona 总览](/zh/api-reference/suno/persona-introduction)。
</Warning>

<Info>
  验证短语**仅英语**。`/generate` 时设 `persona.is_voice: true`，并走创建时的同一账号。
</Info>

## 请求

| 字段            | 类型           | 必填 | 说明                                                      |
| ------------- | ------------ | -- | ------------------------------------------------------- |
| `audio_url`   | string (URL) | 是  | 公网可下载的参考音频（MP3/WAV）。时长 **10–240 秒**；建议 **30–60 秒** 单人干声 |
| `name`        | string       | 否  | 音色名称；不传则由系统生成                                           |
| `description` | string       | 否  | 音色描述                                                    |

## 创建任务

```bash theme={null}
curl -X POST "https://api.mountsea.ai/suno/v2/voices" \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "audio_url": "https://cdn.example.com/reference.mp3",
    "name": "My Voice"
  }'
```

返回 `{ "taskId": "..." }`。用 [获取任务状态](/zh/api-reference/suno/task) 轮询，直到 `status` 为 `success`。

## 任务结果（成功时的 `data`）

Clone Voice 完成后的真实结果如下，后续 `/generate` 用 `persona_id`：

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

| 字段           | 类型      | 说明                                                 |
| ------------ | ------- | -------------------------------------------------- |
| `persona_id` | string  | Voice Persona ID，给 `/generate` 用（`is_voice: true`） |
| `name`       | string  | 展示名称                                               |
| `is_public`  | boolean | Clone Voice 固定为私有（`false`）                         |


## OpenAPI

````yaml POST /suno/v2/voices
openapi: 3.0.0
info:
  title: Suno AI
  description: API documentation for Suno AI
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.mountsea.ai
    description: API Gateway
security: []
tags:
  - name: suno
    description: ''
  - name: suno/studio
    description: Studio Song Editor（与 audio/crop|fade|reverse 独立）
paths:
  /suno/v2/voices:
    post:
      tags:
        - suno
      summary: Clone Voice — create Voice Persona from audio_url
      description: >-
        Clone Voice: upload a public audio_url and create a private Voice
        Persona in one task.

        Paid equivalent of /voicePersona/init+complete. Phrase language is
        English only.

        Poll GET /suno/v2/status; on success data is { name, is_public,
        persona_id }.

        Failed tasks should not be billed by gateway.
      operationId: ApiPublicController_createVoices
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVoicesDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskIdDto'
      security:
        - bearerAuth: []
components:
  schemas:
    CreateVoicesDto:
      type: object
      properties:
        audio_url:
          type: string
          format: uri
          description: 公网可下载的参考音频 URL，MP3/WAV，时长 10~240 秒，建议 30~60 秒单人干声
          example: https://cdn.acedata.cloud/suno_demo.mp3
        name:
          type: string
          description: 音色名称；不传则由系统生成
          example: My Voice
        description:
          type: string
          description: 音色描述
      required:
        - audio_url
    TaskIdDto:
      type: object
      properties:
        taskId:
          type: string
          description: task id. Use this id to query task status.
          example: 15c257ff-43f7-4678-bd41-202ad6b8488b
      required:
        - taskId
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````