Процесс подачи заявки
Чтобы использовать Producer Audios Generation API, сначала получите ваш API Token в консоли Ace Data Cloud и сохраните его для дальнейшего использования.
Если вы ещё не вошли в систему или не зарегистрировались, вы будете автоматически перенаправлены на страницу входа, где вам будет предложено зарегистрироваться и войти в систему; после завершения вы автоматически вернётесь на текущую страницу.
Один API Token позволяет вызывать все сервисы платформы, нет необходимости подавать отдельную заявку для каждого сервиса. При первой заявке предоставляется бесплатный лимит для бесплатного ознакомления; при недостатке лимита вы можете пополнить общий баланс в консоли.
📘 Полная документация: Producer Audios Generation API →
Базовое использование
О какой песне вы думаете — можно произвольно ввести текст. Например, если я хочу сгенерировать песню о Рождестве, можно ввестиa song for Christmas, как показано на рисунке:

accept: в каком формате вы хотите получить результат ответа; здесь указываетсяapplication/json, то есть формат JSON.authorization: ключ для вызова API, после подачи заявки его можно непосредственно выбрать из выпадающего списка.
action: действие этой задачи генерации музыки; для генерации песни используетсяgenerate.model: модель, используемая для создания песни; в настоящее время основные модели: FUZZ-2.0 Pro, FUZZ-2.0, FUZZ-2.0 Raw,FUZZ-1.1 Pro, FUZZ-1.0 Pro, FUZZ-1.0, FUZZ-1.1, FUZZ-0.8.lyric: содержание текста песни.custom: использовать ли пользовательский способ генерации песни.prompt: подсказка в режиме вдохновения.title: информация о названии песни.audio_id: ID эталонной песни, используется для таких операций, как продолжение/кавер и т. д.continue_at: начать продолжение песни с указанной секунды.replace_section_start/replace_section_end: время начала и окончания заменяемого фрагмента в секундах.lyrics_strength: сила текста песни, обозначает степень влияния текста на генерацию аудио; доступно значение от 0 до 1, по умолчанию 0.7.sound_strength: сила подсказки аудио; доступно значение от 0.2 до 1, по умолчанию 0.7.cover_strength: сила кавера — от 0.2 до 1, по умолчанию 1.weirdness: степень необычности стиля; доступно значение от 0 до 1, по умолчанию 0.5.callback_url: URL, на который необходимо отправить результат обратного вызова.async: необязательно; если установлено значениеtrue, интерфейс немедленно возвращаетtask_id, без необходимости предоставлятьcallback_url, после чего результат можно получить путём опроса соответствующего интерфейса запроса задач.instrumental: является ли это режимом без текста песни.

success: статус текущей задачи генерации музыки.data: результат этой музыкальной задачи.id: ID текущей задачи генерации музыки.sound: подсказка текущей задачи генерации музыки.seed: значение seed текущей задачи генерации музыки.audio_url: ссылка на аудио текущей задачи генерации музыки.image_url: ссылка на обложку текущей задачи генерации музыки.image_id: ID обложки текущей задачи генерации музыки.state: статус текущей задачи генерации музыки.duration: информация о длительности текущей музыки.progress: значение прогресса текущей музыкальной задачи.model: информация о модели, используемой текущей задачей генерации музыки.lyric: информация о тексте песни текущей задачи генерации музыки.
data результата.
Кроме того, если вы хотите сгенерировать соответствующий код интеграции, можете непосредственно скопировать сгенерированный код, например, код CURL выглядит следующим образом:
Пользовательская генерация
Если вы хотите пользовательским образом сгенерировать текст песни, можно ввести текст: В это время в полеlyric можно передать содержимое, аналогичное следующему:
- lyric:текст песни
- custom:укажите
true, что означает пользовательскую генерацию; по умолчанию данный параметр имеет значение false, что означает генерацию с использованиемprompt. - title:название песни.


Кавер-версии песен
Если вы хотите выполнить операцию создания кавер-версии для уже сгенерированной песни, вы можете ввести сгенерированную выше песню для создания кавер-версии; далее мы будем пользовательски генерировать песню на основе текста и названия. Если вы хотите продолжить создание кавер-версии для самостоятельно загруженной песни, можно установить параметрaction в значение upload_cover и ввести ID самостоятельно загруженной песни, для которой необходимо продолжить создание кавер-версии. ID песни получается с помощью Producer Upload API, как показано на рисунке ниже:

- action:действие задачи данной песни; в настоящее время поддерживаются: generate、cover、extend、upload_cover、upload_extend、replace_section、swap_vocals、swap_instrumentals、variation; для данной кавер-версии используется параметр
cover. - lyric:текст песни
- title:название песни.
- custom:использовать ли пользовательский режим для генерации; по умолчанию — false.
- audio_id:ID песни, для которой необходимо создать кавер-версию.


Продолжение песни
Если вы хотите продолжить песню, нам нужно передать значение параметраaction: extend, далее мы можем пользовательски генерировать песню на основе текста, названия и стиля.
Если вы хотите продолжить песню, загруженную вами самостоятельно, можно установить для параметра action значение upload_extend и ввести ID самостоятельно загруженной песни, которую необходимо продолжить. ID песни получается с помощью Producer Upload API, как показано на рисунке ниже:



Вариация музыки
Если вы хотите сгенерировать новую музыку с похожим эффектом на основе значения seed предыдущей композиции, нам нужно передать значение параметраaction: variation, после чего можно пользовательски сгенерировать новую музыку с похожим эффектом.
Пример заполнения приведён ниже:


Замена фрагмента
Если вы хотите выполнить замену фрагмента в песне, нам необходимо передать значение параметраaction как: replace_section, далее мы можем создавать песни по своему усмотрению на основе текста и названия.
Если вы хотите продолжить заменять фрагменты в песне, загруженной вами самостоятельно, вы можете установить параметр action в значение upload_replace_section и ввести ID самостоятельно загруженной песни, для которой необходимо продолжить замену. ID песни получается с помощью Producer Upload API, как показано на рисунке ниже:



Версия с заменой инструментала
Если вы хотите использовать официальную операцию создания версии с заменой инструментала, можно установить значение параметраaction в: swap_instrumentals, далее мы будем пользовательски генерировать песню на основе текста и названия.
Пример заполнения:


Версия с заменой вокала
Если вы хотите использовать официальную операцию создания версии с заменой вокала, можно установить значение параметраaction в: swap_vocals, далее мы будем пользовательски генерировать песню на основе текста, названия и стиля.
Пример заполнения:


Разделение вокала и музыки
Если вы хотите использовать официальную операцию разделения вокала и музыки, можно установить значение параметраaction в: stems, далее мы будем выполнять разделение вокала и музыки на основе ID песни.
Пример заполнения выглядит следующим образом:


Асинхронный обратный вызов
Поскольку время генерации Producer Audios Generation API иногда может быть относительно долгим, если API долго не отвечает, HTTP-запрос будет постоянно поддерживать соединение, что приводит к дополнительному потреблению системных ресурсов, поэтому данный API также предоставляет поддержку асинхронных обратных вызовов. Общий процесс таков: когда клиент инициирует запрос, он дополнительно указывает полеcallback_url, после того как клиент инициирует API-запрос, API немедленно вернёт результат, содержащий информацию о поле task_id, которое представляет ID текущей задачи. После завершения задачи результат задачи генерации будет отправлен в формате POST JSON на указанный клиентом callback_url, который также включает поле task_id, таким образом результаты задачи можно связать по ID.
Ниже мы на примере узнаем, как именно это сделать.
Прежде всего, обратный вызов Webhook — это сервис, который может принимать HTTP-запросы, разработчик должен заменить его URL-адресом собственного развёрнутого HTTP-сервера. Здесь для удобства демонстрации используется публичный пример сайта Webhook https://webhook.site/, открыв этот сайт, можно получить URL Webhook, как показано на рисунке:
Скопировав этот URL, его можно использовать в качестве Webhook, пример здесь: https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1.
Далее мы можем установить для поля callback_url указанный выше URL Webhook и одновременно заполнить соответствующие параметры, конкретное содержимое показано на рисунке:

Содержимое следующее:
task_id, остальные поля аналогичны приведённым выше, и с помощью этого поля можно реализовать связь задач.
Обработка ошибок
При вызове API, если возникает ошибка, API возвращает соответствующий код ошибки и информацию. Например:400 token_mismatched:Неверный запрос, возможно, из-за отсутствующих или недопустимых параметров.400 api_not_implemented:Неверный запрос, возможно, из-за отсутствующих или недопустимых параметров.401 invalid_token:Не авторизован, недопустимый или отсутствующий токен авторизации.429 too_many_requests:Слишком много запросов, вы превысили ограничение по частоте запросов.500 api_error:Внутренняя ошибка сервера, на сервере что-то пошло не так.

