Suno Voice Clone API. Create a custom voice persona from an uploaded audio file for voice cloning in music generation.
Suno Voice Cloning API Integration Instructions
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
WAVorMP3- The audio duration should be no less than
10 seconds, preferably using clean single-voice material of30-60 seconds- The audio should contain clear, recognizable single speech or singing voice
- Please avoid background noise, accompaniment, echo, reverb
- Do not include multiple speakers or multiple voices
- Material with low volume, unclear speech, or excessive noise may result in 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 lead to expiration or unavailability
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 result 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 character. The is_public field is always false, as the voice character created by uploading audio is private.
¶ Step 2: Use the Voice Character to Generate Music
With the voice character ID, we can use the Suno Audios Generation API to generate music. Set the action to generate, and set the 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-5and above (such aschirp-v4-5,chirp-v5,chirp-v5-5), and does not supportchirp-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 result 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 cover existing songs with the cloned voice.
Request Headers
Request Body
Response

Integration guide
Kind reminder: For streaming requests, the above code may not be fully applicable. Please refer to the integration documentation for changes.
When 'Allow General Balance' is enabled, the general balance is used automatically if an app's balance is insufficient.