Перейти до основного вмісту
Цей API надає перетворення тексту на мовлення, виклик збережених голосів і одноразове миттєве клонування голосу за адресою POST https://api.acedata.cloud/fish/tts.

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

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

Заголовки запиту

Поля тіла запиту

Одноразове клонування приймає лише HTTPS URL аудіо, не приймає MessagePack, Base64, data URI або URL з обліковими даними. Рекомендована тривалість еталонного аудіо — 10–270 секунд; Studio використовує консервативніший діапазон 10–60 секунд.

Приклад 1: мінімальний запит (text + format=mp3)

Відповідь (перевірено):
audio_url вказує на CDN цієї платформи, його можна безпосередньо завантажити через GET або відтворити в <audio>. Остаточна успішна відповідь також повертає cost верхнього рівня, де amount — це фактично списані Credits за цей раз; якщо є знижка для облікового запису, list_amount означає ліміт до знижки. Посилання доступне протягом тривалого часу, але все ж рекомендується зберегти копію у власному сховищі.

Приклад 2: використання клонованого голосу reference_id

Нижче використовується публічний іспаномовний голос на платформі Fish (_id можна отримати через пошук у Fish Model Query):
Відповідь (перевірено):

Приклад 3: одноразове миттєве клонування голосу (references)

Розмістіть еталонне аудіо за публічною HTTPS-адресою та надайте точний фактично вимовлений у ньому текст. Цей голос використовується лише для цього синтезу та не створює довгострокову модель:
Фактично протестована успішна відповідь:

Приклад 3: регулювання швидкості мовлення / гучності (prosody)

Відповідь (фактично протестовано):
speed більше 1 прискорює, менше 1 уповільнює; одиниця volume — dB, 0 означає без змін, додатне значення — підсилення, від’ємне — послаблення.

Приклад 5: перемикання моделі + контроль бітрейту

Перемикайтеся на стабільну модель через HTTP-заголовок model: s1, додайте в тіло запиту mp3_bitrate: 128 для контролю бітрейту MP3:
Відповідь (фактично протестовано):

Приклад 6: необроблена PCM-хвиля

Для сценаріїв, де потрібно виконувати збирання в реальному часі в браузері або подальшу обробку на клієнті (мікшування, зміна швидкості), рекомендовано використовувати pcm:
Відповідь (фактично протестовано):
Розширення посилання відповідає format у запиті: для mp3 буде .mp3, для wav і pcm — .wav (контейнер WAV, 16-бітний PCM).

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

Синтез довгого тексту за раз може займати від десятків секунд, і в разі розриву з’єднання потрібна повторна спроба. Після передавання callback_url у тілі запиту інтерфейс одразу поверне {task_id, started_at}, а коли обробка справді завершиться, повний результат буде надіслано як POST JSON на цей URL, з тим самим task_id і верхньорівневим cost остаточної оплати цього разу. Початкове підтвердження завдання ще не завершило синтез, тому не містить cost.
Негайна відповідь (фактично протестовано):
Пізніше callback_url отримає приблизно таке:
Також можна активно отримувати результат за task_id через Fish Tasks API; response.cost запису в кінцевому стані відповідає cost у зворотному виклику, деталі дивіться в цій документації.

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

  • 400 token_mismatched: параметри запиту відсутні або некоректні (найчастіше text порожній або для format передано значення, відмінне від mp3/wav/pcm).
  • 401 invalid_token: токен автентифікації не існує або недійсний.
  • 429 too_many_requests: спрацьовує обмеження швидкості для облікового запису.
  • 500 api_error: внутрішня помилка сервера.
Приклад відповіді з помилкою:
Помилка валідації параметрів пояснює некоректне поле в полі message, наприклад:

Висновок

Мінімальна вартість інтеграції Fish TTS така: у наявному коді, що викликає api.fish.audio/v1/tts, замінити автентифікацію на токен цієї платформи й у тілі запиту явно вказати format: "mp3". Для сценаріїв із довгим текстом рекомендовано використовувати асинхронний зворотний виклик callback_url; для пошуку reference_id клонованих голосів використовуйте Fish Model Query разом із Fish Model Get.