Skip to main content
У цьому документі буде представлено інструкцію з інтеграції API генерації аудіо продюсера, яка дозволяє генерувати офіційну музику продюсера за допомогою введення користувацьких параметрів.

Процес подачі заявки

Щоб використовувати API генерації аудіо продюсера, спочатку перейдіть до консолі Ace Data Cloud для отримання вашого API токена, зберігайте його для подальшого використання. Якщо ви ще не увійшли в систему або не зареєстровані, вас автоматично перенаправлять на сторінку входу, щоб запросити реєстрацію та вхід, після чого ви будете автоматично повернені на цю сторінку. Один API токен дозволяє викликати всі послуги платформи, не потрібно окремо подавати заявку на кожну послугу. Перший запит на отримання токена надає безкоштовний ліміт, щоб ви могли безкоштовно протестувати; якщо ліміт вичерпано, ви можете поповнити загальний баланс в консолі.
📘 Повна документація: 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, значення насіння для завдання генерації музики на даний момент.
      • 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, для цього каверу використовується параметр 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 пісні. Заповніть приклад нижче:

Після заповнення автоматично згенерувався код, як показано нижче:

Відповідний код:
Тестування дозволено, згенерований ефект буде подібним.

Асинхронний зворотний виклик

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

Натиснувши “Запустити”, ви можете помітити, що відразу отримаєте результат, як показано нижче:
Почекавши деякий час, ви можете спостерігати результати згенерованого завдання на https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1, як показано на малюнку: Зміст наступний:
Можна побачити, що в результаті є поле task_id, інші поля схожі на наведені вище, через це поле можна реалізувати зв’язок завдань.

Обробка помилок

При виклику API, якщо виникає помилка, API поверне відповідний код помилки та інформацію. Наприклад:
  • 400 token_mismatched: Неправильний запит, можливо, через відсутні або недійсні параметри.
  • 400 api_not_implemented: Неправильний запит, можливо, через відсутні або недійсні параметри.
  • 401 invalid_token: Неавторизовано, недійсний або відсутній токен авторизації.
  • 429 too_many_requests: Занадто багато запитів, ви перевищили ліміт запитів.
  • 500 api_error: Внутрішня помилка сервера, щось пішло не так на сервері.

Приклад відповіді на помилку

Висновок

Завдяки цьому документу, ви вже зрозуміли, як використовувати API Генерації Аудіо Продюсера, щоб генерувати музику за допомогою введення підказок. Сподіваємося, що цей документ допоможе вам краще інтегрувати та використовувати цей API. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої команди технічної підтримки.