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.
