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

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

Щоб використовувати 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, на який потрібно повернути результати.
  • 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, 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 пісні. Заповніть приклад нижче:

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

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

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

Оскільки час генерації 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/, відкривши цей сайт, ви отримаєте URL Webhook, як показано на малюнку: Скопіюйте цей URL, і ви зможете використовувати його як Webhook, приклад тут https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1. Далі ми можемо встановити поле callback_url на вказаний URL Webhook, одночасно заповнивши відповідні параметри, конкретний зміст, як показано на малюнку:

Натиснувши “Запустити”, ви можете виявити, що негайно отримаєте результат, як показано нижче:
Зачекайте хвилинку, ми можемо спостерігати результати генерації завдання на 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. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої команди технічної підтримки.