callback_url), структура тіла запиту відповідає upstream. Адреса: POST https://api.acedata.cloud/fish/tts.
Процес подачі заявки
Щоб використовувати Fish TTS API, спочатку перейдіть до консолі Ace Data Cloud для отримання вашого API токена, зберігайте його для подальшого використання.
Якщо ви ще не увійшли в систему або не зареєстровані, вас автоматично перенаправлять на сторінку входу, щоб запросити реєстрацію та вхід, після чого ви будете автоматично повернені на цю сторінку.
Один API токен дозволяє викликати всі послуги платформи, не потрібно окремо подавати заявку на кожну послугу. Перший запит на отримання токена надає безкоштовний ліміт для тестування; при недостатньому ліміті ви можете поповнити загальний баланс у консолі.
📘 Повна документація: Fish TTS API →
Заголовки запиту
Параметри тіла запиту
Імена полів повністю відповідають upstream. За винятком callback_url, інші поля мають значення та значення, що наведені в Fish офіційній TTS документації.
Приклад 1: Мінімальний запит (text + format=mp3)
audio_url вказує на CDN цієї платформи, його можна безпосередньо завантажити за допомогою GET або відтворити в <audio>. Посилання доступне на тривалий термін, але все ж рекомендується зберегти копію у вашому власному сховищі.
Приклад 2: Використання клонованого голосу reference_id
Нижче наведено приклад публічного іспанського голосу на платформі Fish (_id можна отримати через Fish Model Query):
Приклад 3: Регулювання швидкості / гучності (prosody)
speed більше 1 прискорює, менше 1 сповільнює; volume в дБ, 0 означає без змін, позитивне число - підвищення, негативне - зниження.
Приклад 4: Перемикання моделі + контроль бітрейту
Через HTTP заголовокmodel: s1 перемикаємося на стабільну модель, в тілі запиту додаємо mp3_bitrate: 128 для контролю бітрейту MP3:
Приклад 5: PCM сирцевий сигнал
Необхідно в браузері виконати реальне з’єднання або на клієнті виконати подальшу обробку (міксування, зміна швидкості) - рекомендується використовуватиpcm:
Розширення посилання слідує заformatу запиті:mp3отримує.mp3,wavтаpcmотримують.wav(контейнер WAV, 16 біт PCM).
Асинхронний зворотний виклик (callback_url)
Довгий текст може потребувати від десяти до кількох десятків секунд для синтезу, якщо з’єднання переривається, потрібно повторити спробу. Передавши callback_url у тілі запиту, інтерфейс відразу поверне {task_id, started_at}, а коли завдання буде завершено, повний результат буде надіслано POST JSON формою на цей URL, з тим же task_id у тілі запиту.
callback_url отримає у вигляді:
task_id, деталі дивіться в цій документації.
Обробка помилок
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.
