POST https://api.acedata.cloud/fish/tts.
Процесс получения
Чтобы использовать Fish TTS API, сначала получите ваш API Token в консоли Ace Data Cloud и сохраните его для дальнейшего использования.
Если вы ещё не вошли в систему или не зарегистрировались, вы будете автоматически перенаправлены на страницу входа, где вам будет предложено зарегистрироваться и войти в систему; после завершения вы автоматически вернётесь на текущую страницу.
Один 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 — дБ, 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.
