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 в дБ, 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.
