Перейти до основного вмісту
У цій статті буде представлено інструкцію з інтеграції Producer Audios Generation API, який може генерувати офіційну музику Producer шляхом введення користувацьких параметрів.

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

Щоб використовувати Producer Audios Generation API, спочатку перейдіть до консолі Ace Data Cloud, щоб отримати ваш API Token і зберегти його для подальшого використання. Якщо ви ще не увійшли або не зареєструвалися, вас буде автоматично перенаправлено на сторінку входу, де вам буде запропоновано зареєструватися та увійти, після завершення ви автоматично повернетеся на поточну сторінку. Один API Token може викликати всі сервіси платформи, не потрібно подавати заявку окремо для кожного сервісу. Під час першого подання заявки буде надано безкоштовний ліміт для безкоштовного тестування; якщо ліміту недостатньо, ви можете поповнити загальний баланс у консолі.
📘 Повна документація: Producer Audios Generation API →

Базове використання

Які пісні ви хочете, можна довільно ввести текст, наприклад, якщо я хочу згенерувати пісню про Різдво, можна ввести a song for Christmas, як показано на зображенні:

Можна побачити, що тут ми налаштували Request Headers, зокрема:
  • accept: у якому форматі ви хочете отримати результат відповіді, тут указано application/json, тобто формат JSON.
  • authorization: ключ для виклику API, після подання заявки його можна безпосередньо вибрати зі спадного списку.
Крім того, параметри Request Body включають:
  • 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, на який потрібно повернути результат через callback.
  • async: необов’язково, якщо встановлено true, інтерфейс негайно повертає task_id, немає потреби надавати callback_url, після чого результат отримується шляхом опитування через відповідний інтерфейс запиту завдань.
  • instrumental: чи це режим без тексту пісні.
Після вибору можна побачити, що праворуч також згенеровано відповідний код, як показано на зображенні:

Натисніть кнопку «Try», щоб провести тестування, як показано вище, тут ми отримали такий результат:
Результат, що повертається, містить кілька полів, описаних нижче:
  • success, статус завдання з генерації музики на цей момент.
    • data, результат цього музичного завдання
      • id, ID завдання з генерації музики на цей момент.
      • sound, підказка завдання з генерації музики на цей момент.
      • seed, початкове значення завдання з генерації музики на цей момент.
      • audio_url, аудіопосилання завдання з генерації музики на цей момент.
      • image_url, посилання на обкладинку завдання з генерації музики на цей момент.
      • image_id, ID обкладинки завдання з генерації музики на цей момент.
      • state, стан завдання з генерації музики на цей момент.
      • duration, інформація про тривалість цієї музики.
      • progress, значення прогресу музичного завдання на цей момент.
      • model, інформація про модель, використану в завданні з генерації музики на цей момент.
      • lyric, інформація про текст пісні в завданні з генерації музики на цей момент.
Можна побачити, що ми отримали бажану інформацію про згенеровану музику, нам лише потрібно отримати згенеровану музику Producer за адресою посилання на музику в 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/; відкривши цей вебсайт, можна отримати 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:Внутрішня помилка сервера, щось пішло не так на сервері.

Приклад відповіді з помилкою

Висновок

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