Suno Voices API
POSThttps://api.acedata.cloud/suno/voices

Suno Voice Cloning API Integration Guide

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

Step 1: Create a Voice Persona

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

Audio file requirements:

  • Format: MP3 or WAV
  • Duration: At least 10 seconds
  • Content: Single clear voice, with minimal background noise or music
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": "http://cos.aitutu.cc/mp4/ru-user-voice.mp3",
  "name": "RU User Voice Test",
  "description": "User voice recording example"
}'

The response is as follows:

{
  "success": true,
  "task_id": "b9150e51-d87c-4556-a55e-100947a63bdf",
  "data": {
    "persona_id": "e95013f8-eaee-4741-a42f-1d559a9d0b2b",
    "name": "RU User Voice Test",
    "is_public": false
  }
}

As you can see, the persona_id field in data is the ID of the created voice persona. The is_public field is always false because voice personas created by uploading audio are private.

Step 2: Generate Music Using the Voice Persona

Once you have the voice persona ID, you can use the Suno Audios Generation API to generate music. Set action to generate and set persona_id to the voice persona 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.

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": "e95013f8-eaee-4741-a42f-1d559a9d0b2b"
}'

The response is as follows:

{
  "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 have the cloned voice cover existing songs.

Request Headers

acceptstring
Specify the format of the response returned by the server. If not specified, the default format is `application/json`; if specified as `application/x-ndjson`, the response will be returned in a chunked streaming format separated by newline characters in JSON format.
Please select
authorizationstring
Bearer token

Request Body

descriptionstring
Description information for custom voice personality.
namestring
Custom voice personality name.
audio_urlstringRequired parameter
Publicly accessible URL for audio files used to create sound. Must be in MP3 or WAV format, at least 10 seconds long, and must contain clear human voice of a single speaker, without background noise or background music.

Response

Suno Music Generation
Allow Use General Balance

When 'Allow General Balance' is enabled, the general balance is used automatically if an app's balance is insufficient.

Shell

Python

JavaScript

Java

Go

PHP

Kind reminder: For streaming requests, the above code may not be fully applicable. Please refer to the integration documentation for changes.