Skip to main content
Цей інтерфейс надає можливість перетворення тексту в мову, виклику збережених звуків та одноразового миттєвого клонування звуку, адреса 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 отримає щось на зразок:
Також можна використовувати Fish Tasks API для активного отримання результату за 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.