Клонирование голоса в Suno API: как озвучить трек своим голосом через Ace Data Cloud
Клонирование голоса — одна из самых востребованных возможностей современных музыкальных генеративных моделей. Suno позволяет создать собственного «голосового персонажа» из короткой аудиозаписи и затем использовать этот голос для генерации новых треков. В этой статье разберём, как подключить эту функцию через единый endpoint Ace Data Cloud, какие требования предъявляются к исходному аудио и как связать клонированный голос с генерацией песни.
Зачем нужно клонирование голоса
Классический Persona API в Suno работает с уже сгенерированным audio_id — то есть голос должен сначала появиться внутри самой платформы Suno. Voice Clone API устроен иначе: он принимает публично доступный audio_url — то есть любую вашу запись, размещённую в интернете. Это удобно для разработчиков, которые хотят озвучивать треки конкретным голосом (например, для брендированного контента, подкастов с музыкальными вставками или персонализированных поздравлений) без необходимости работать с внутренними ID Suno.
Требования к исходному аудиофайлу
Перед тем как отправлять запрос, стоит убедиться, что аудио соответствует требованиям — от этого напрямую зависит качество клонирования:
- Формат файла —
WAVилиMP3; - Минимальная длительность — 10 секунд, но лучше использовать чистый фрагмент длиной 30–60 секунд;
- В записи должен звучать один голос — чётко и разборчиво, без наложения нескольких говорящих;
- Нужно избегать фонового шума, музыкального сопровождения, эха и реверберации;
- Тихая, невнятная или зашумлённая запись может привести к сбою клонирования или низкому качеству результата.
Важно понимать, что голосовой персонаж, созданный через загрузку аудио, — это приватный ресурс: он не поддерживает повторное использование между разными аккаунтами, и созданный персонаж рекомендуется использовать вскоре после генерации, так как долгое бездействие может привести к его недоступности.
Шаг 1. Создание голосового персонажа
Запрос принимает три параметра: обязательный audio_url (публичная ссылка на аудиофайл) и опциональные name и description.
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://example.com/my-voice-sample.mp3",
"name": "Мой голос",
"description": "Образец записи для клонирования"
}'
Ответ содержит идентификатор созданного персонажа:
{
"success": true,
"task_id": "b9150e51-d87c-4556-a55e-100947a63bdf",
"data": {
"persona_id": "e95013f8-eaee-4741-a42f-1d559a9d0b2b",
"name": "Мой голос",
"is_public": false
}
}
Поле persona_id — это то, что понадобится на следующем шаге. Поле is_public всегда равно false, так как персонаж, созданный из загруженного аудио, приватен по умолчанию.
Шаг 2. Генерация трека с клонированным голосом
Имея persona_id, можно вызвать API генерации музыки Suno, указав действие generate и передав идентификатор персонажа. Обратите внимание: клонирование голоса поддерживается только моделями chirp-v4-5 и новее (chirp-v4-5, chirp-v5, chirp-v5-5) — модель 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": "Тёплая синти-поп песня о ночном городе",
"persona_id": "e95013f8-eaee-4741-a42f-1d559a9d0b2b"
}'
Результат — сгенерированный трек, спетый клонированным голосом:
{
"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",
"model": "chirp-v5-5",
"state": "succeeded",
"duration": 156.28
}
]
}
Тот же persona_id можно передать и в действие cover, чтобы перепеть уже существующий трек клонированным голосом — это удобно для кавер-версий и локализации контента.
Пример на Python
Полный цикл — от клонирования до генерации — удобно обернуть в небольшой скрипт:
import requests
TOKEN = "your_token_here"
BASE_URL = "https://api.acedata.cloud"
HEADERS = {
"accept": "application/json",
"authorization": f"Bearer {TOKEN}",
"content-type": "application/json",
}
def clone_voice(audio_url, name, description=""):
resp = requests.post(
f"{BASE_URL}/suno/voices",
headers=HEADERS,
json={"audio_url": audio_url, "name": name, "description": description},
)
resp.raise_for_status()
return resp.json()["data"]["persona_id"]
def generate_track(persona_id, prompt, model="chirp-v5-5"):
resp = requests.post(
f"{BASE_URL}/suno/audios",
headers=HEADERS,
json={
"action": "generate",
"model": model,
"prompt": prompt,
"persona_id": persona_id,
},
)
resp.raise_for_status()
return resp.json()["data"]
if __name__ == "__main__":
pid = clone_voice("https://example.com/my-voice-sample.mp3", "Мой голос")
tracks = generate_track(pid, "Тёплая синти-поп песня о ночном городе")
for t in tracks:
print(t["title"], "->", t["audio_url"])
Практические рекомендации
Несколько моментов, которые стоит учитывать в продакшене:
- Проверяйте статус задачи по
task_id, если генерация выполняется асинхронно — это позволяет не блокировать основной поток приложения; - Храните
persona_idв базе данных вашего приложения вместе с идентификатором пользователя, чтобы повторно использовать голос без повторного клонирования; - Учитывайте ограничение по моделям — при попытке использовать
persona_idс модельюchirp-v4запрос завершится ошибкой; - Для продакшен-нагрузки создайте отдельный ключ приложения в консоли Ace Data Cloud, чтобы разделять лимиты между разными сервисами (Suno, Midjourney, GPT и другими моделями, доступными через тот же аккаунт).
Оплата и пополнение баланса
Ace Data Cloud — это единая точка входа к десяткам моделей (GPT, Claude, Gemini, Midjourney, Suno и другим) через один и тот же endpoint api.acedata.cloud. Для пополнения баланса приложения в консоли можно создать заказ на покупку пакета кредитов; помимо привычных способов оплаты доступно и списание в USDC — заказ можно оплатить по протоколу X402 в сетях Solana или Base. При оплате в USDC действует скидка 5% от суммы заказа, а сам процесс не требует международной банковской карты — что удобно для разработчиков, которые уже держат средства в стейблкоинах. Оплатить и управлять пополнением можно в разделе Console → Coin: пополнили один раз — и дальше каждый вызов API (в том числе клонирование голоса и генерация музыки) списывается с общего баланса приложения.
Заключение
Voice Clone API в Suno — простой в интеграции инструмент: два запроса, и голос из вашей аудиозаписи становится доступен для генерации новых треков и кавер-версий. Полную документацию по всем сервисам, включая описание параметров и лимитов, можно найти на странице документации, а актуальный список моделей и тарифов — в русскоязычном разделе платформы.
Comments
Post a Comment