Клонирование голоса в 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

Popular posts from this blog

Artistic QR Code API Integration Guidance

How to Configure Claude Code with CC Switch and Ace Data Cloud