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

# Suno Voice Cloning API Integration Instructions

> Suno Music Generation integration guide - Ace Data Cloud

Suno allows us to create custom voice characters from any audio file, enabling voice cloning for music generation. Unlike the existing Persona API (which uses the `audio_id` generated by Suno), this API accepts a publicly accessible `audio_url`, which is your own voice recording. This document explains how to integrate the voice cloning API.

## Step 1: Create a Voice Character

This API has three input parameters: `audio_url` (required), which is a publicly accessible URL of an MP3 or WAV format audio file containing a clear single voice; `name` and `description` (optional), which are the name and description of the voice character.

> **Audio File Requirements**
>
> * The audio format must be `WAV` or `MP3`
> * The audio duration must be between `10~240 seconds`, with a recommendation of using clean single-voice material of `30~60 seconds`
> * The audio should contain **clear, recognizable single speech or singing voice**
> * Please avoid **background noise, accompaniment, echo, reverb**; complete songs with accompaniment usually cannot pass voiceprint verification
> * Do not include **multiple speakers** or **multiple voices**
> * Material with too low volume, unclear speech, or excessive noise may lead to **cloning failure** or **poor generation quality**
>   **Usage Restrictions**
> * Voice characters created by uploading audio are **private resources**
> * This voice character **does not support cross-account reuse**
> * It is recommended to use it as soon as it is created; prolonged inactivity may result in **expiration or unavailability**
> * The returned `name` is automatically generated by the system; please refer to the returned `persona_id`

> **Please retry if the call fails**
> Voice cloning is a compute-intensive task, and even compliant material has a certain probability of occasional failure, common returns include `voices_sound_different` (voiceprint verification failed), etc. **These failures are unrelated to audio quality, and retrying with the same material usually succeeds**. It is recommended to implement 1-2 automatic retries for failure results during integration. Failed requests will not incur charges.

```bash theme={null}
curl -X POST 'https://api.acedata.cloud/suno/voices' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "audio_url": "https://cdn.acedata.cloud/suno_demo.mp3",
  "name": "My Voice",
  "description": "Single clear voice example"
}'
```

> The above `https://cdn.acedata.cloud/suno_demo.mp3` is a directly callable example material (MP3, 41 seconds, single dry voice).
> For a `WAV` format example, you can use
> `https://cdn.acedata.cloud/uploads/82d23b97-ec1c-4b41-91b8-989fc51f8765` (WAV, 41 seconds, mono 44.1kHz).

The result is as follows:

```json theme={null}
{
  "success": true,
  "task_id": "0fa609a6-c8d9-4bb5-8574-e4c93bb55d02",
  "data": {
    "persona_id": "1ab79a71-a229-4350-8f02-402ff02eac16",
    "name": "VOICE_20260803037676",
    "is_public": false
  }
}
```

As you can see, the `persona_id` field in `data` is the ID of the created voice character. The `is_public` field is always `false` because the voice character created by uploading audio is private. Note that the returned `name` is automatically generated by the system; please use the `persona_id` to reference this voice character.

## Step 2: Use the Voice Character to Generate Music

With the voice character ID, we can use the [Suno Audios Generation API](https://platform.acedata.cloud/documents/suno-audios) to generate music. Set `action` to `generate`, and set `persona_id` to the voice character ID returned above; the generated song will be sung using the cloned voice.

> **Note:** Voice cloning only supports models `chirp-v4-5` and above (such as `chirp-v4-5`, `chirp-v5`, `chirp-v5-5`), and does not support `chirp-v4`.

```bash theme={null}
curl -X POST 'https://api.acedata.cloud/suno/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "model": "chirp-v5-5",
  "prompt": "A warm synth-pop song about city nights",
  "persona_id": "1ab79a71-a229-4350-8f02-402ff02eac16"
}'
```

The result is as follows:

```json theme={null}
{
  "success": true,
  "task_id": "53d8a334-a972-43c5-895e-60c4454e88d5",
  "data": [
    {
      "id": "16463960-077c-4700-bbb3-3c7897b943d3",
      "title": "Soft Neon on My Skin",
      "audio_url": "https://cdn1.suno.ai/16463960-077c-4700-bbb3-3c7897b943d3.mp3",
      "image_url": "https://cdn2.suno.ai/image_16463960-077c-4700-bbb3-3c7897b943d3.jpeg",
      "model": "chirp-v5-5",
      "state": "succeeded",
      "prompt": "A warm synth-pop song about city nights",
      "duration": 156.28
    }
  ]
}
```

As you can see, the generated song is sung using the cloned voice. The `persona_id` can also be used with the `cover` action to cover existing songs with the cloned voice.
