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 - це фактично зняті кредити; якщо є знижка на рахунок, 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}, а коли завдання буде завершено, повний результат буде повернуто на цей URL у форматі POST JSON, з тим же task_id і верхнім cost для остаточного рахунку. Початкове завдання підтверджує, що синтез ще не завершено, тому не містить cost.
callback_url отримає щось на зразок:
task_id; фінальний запис 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.
