Перейти до основного вмісту
У цій статті буде представлено інструкцію з інтеграції Fish Audios Generation API, яка дозволяє клонувати свій голос за допомогою введення підказок.

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

Щоб використовувати API, спочатку потрібно перейти на відповідну сторінку Fish Audios Generation API для подачі заявки на відповідну послугу. Після переходу на сторінку натисніть кнопку «Acquire», як показано на малюнку: Якщо ви ще не увійшли в систему або не зареєструвалися, вас автоматично перенаправлять на сторінку входу, щоб запросити реєстрацію та вхід. Після входу або реєстрації ви автоматично повернетеся на поточну сторінку. При першій подачі заявки вам буде надано безкоштовний ліміт, який дозволяє безкоштовно використовувати цей API.

Основне використання

Спочатку потрібно ознайомитися з основним способом використання, а саме: введення підказки prompt, дії action, ID голосу voice_id та моделі model, щоб отримати оброблений результат. Спочатку потрібно просто передати поле action, значення якого буде generate, потім потрібно ввести модель model, наразі основною є модель fish-tts, конкретний зміст наведено нижче:

Ми можемо бачити, що тут ми налаштували заголовки запиту, включаючи:
  • accept: формат відповіді, який ви хочете отримати, тут вказано application/json, тобто формат JSON.
  • authorization: ключ для виклику API, після подачі заявки ви можете вибрати його зі списку.
Крім того, налаштовано тіло запиту, яке включає:
  • model: модель для клонування голосу, основною є модель fish-tts.
  • action: дія для цього завдання клонування голосу.
  • prompt: підказка, яку потрібно клонувати.
  • voice_id: ID голосу для клонування.
  • callback_url: URL для отримання результатів.
Після вибору ви можете помітити, що праворуч також згенеровано відповідний код, як показано на малюнку:

Натисніть кнопку «Try», щоб провести тестування, як показано на малюнку, ми отримали наступний результат:
{
  "success": true,
  "task_id": "5872ab00-3cf4-4040-a798-8510aaa16756",
  "trace_id": "5eda3694-448a-4b72-af33-2acb3851ffe1",
  "data": [
    {
      "audio_url": "https://platform.r2.fish.audio/task/8a72ff9840234006a9f74cb2fa04f978.mp3"
    }
  ]
}
У повернутому результаті є кілька полів, описаних нижче:
  • success, статус завдання клонування голосу.
    • data, результат завдання клонування голосу
      • audio_url, аудіо посилання результату завдання клонування голосу.
Ми отримали задовільну інформацію про голос, нам потрібно лише отримати клонований голос за адресою музичного посилання в data. Крім того, якщо ви хочете згенерувати відповідний код інтеграції, ви можете просто скопіювати його, наприклад, код CURL виглядає так:
curl -X POST 'https://api.acedata.cloud/fish/audios' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "speech",
  "prompt": "a white siamese cat",
  "model": "fish-tts",
  "voice_id": "d7900c21663f485ab63ebdb7e5905036"
}'

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

Оскільки час генерації Fish Audios Generation API відносно тривалий, приблизно 1-2 хвилини, якщо 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/4815f79f-a40f-4078-ac85-1cc126b6bb34. Далі ми можемо налаштувати поле callback_url на вказаний Webhook URL, одночасно заповнивши відповідні параметри, конкретний зміст наведено на малюнку:

Натиснувши «Запустити», ви відразу отримаєте результат, як показано нижче:
{
  "task_id": "2725a2d3-f87e-4905-9c53-9988d5a7b2f5"
}
Через деякий час ми можемо спостерігати результати генерації завдання на https://webhook.site/4815f79f-a40f-4078-ac85-1cc126b6bb34, як показано на малюнку: Зміст такий:
{
    "success": true,
    "task_id": "2725a2d3-f87e-4905-9c53-9988d5a7b2f5",
    "trace_id": "e2d308bc-4df8-4c69-9369-a60f3c54f2b3",
    "data": [
        {
            "audio_url": "https://platform.r2.fish.audio/task/b627c2f7d38a4083a837570ba6d0962f.mp3"
        }
    ]
}
Ми можемо бачити, що в результаті є поле task_id, інші поля подібні до наведених вище, за допомогою цього поля можна реалізувати зв’язок завдань.

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

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

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

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Висновок

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