Fish Audio Docs
API СсылкаПреобразование текста в речь
Back to site

Асинхронные задания

Создание и опрос асинхронных заданий TTS.

Асинхронные задания

Используйте асинхронные задания TTS для длинного текста, пакетной генерации, рабочих процессов в стиле веб-перехватчика и потоков пользовательского интерфейса, где пользователи могут покинуть страницу, пока аудио еще обрабатывается.

Создать задание

POST /api/open/v1/speech/tts/jobs
Authorization: Bearer FISHAUDIO_API_KEY
Content-Type: application/json

Запрос

{
  "text": "Hello from Fish Audio.",
  "voiceId": "00a1b221-6137-4b73-ad62-b0cbce134167",
  "modelId": "fishaudio-s2pro",
  "format": "mp3"
}

Сохраните хэш текста, запрошенный голос и возвращенный идентификатор задачи в своей базе данных. Если ваш рабочий процесс выходит из строя после создания, опрос по идентификатору задачи безопаснее, чем создание второго задания.

В примере используется голосовой тест общедоступной системы 00a1b221-6137-4b73-ad62-b0cbce134167. Замените его предпочитаемым голосовым идентификатором после проверки соединения.

curl https://fishaudio.org/api/open/v1/speech/tts/jobs \
  -H "Authorization: Bearer FISHAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello from Fish Audio.","voiceId":"00a1b221-6137-4b73-ad62-b0cbce134167","modelId":"fishaudio-s2pro","format":"mp3"}'

Ответ

Конечная точка создания возвращает 202 Accepted с объектом задачи. Конкретные поля задач могут меняться, но клиенты должны, по крайней мере, хранить идентификатор и статус.

{
  "id": "task_123",
  "status": "queued"
}

Получить работу

GET /api/open/v1/speech/tts/jobs/{taskId}
Authorization: Bearer FISHAUDIO_API_KEY

Успешные задачи включают audioUrl, когда можно создать кратковременный URL-адрес аудио. Невыполненные задачи включают код ошибки или сообщение. Рассматривайте queued и processing как нетерминальные состояния и опрашивайте с отсрочкой.

Выставление счетов и кредиты

Асинхронные задания могут резервировать или потреблять кредиты во время создания или завершения задачи в зависимости от включенной модели. Не создавайте повторяющиеся задания в качестве стратегии повторной попытки, если только пользователь явно не запросил второй результат. Сохраните идентификатор задачи и восстановитесь после него.

Для пакета регулируйте параллелизм на своей стороне и проверьте Профиль перед добавлением большого количества задач. Если одна задача не удалась из-за недостаточного количества кредитов, приостановите выполнение rest пакета, пока владелец учетной записи не разрешит баланс.

Ошибки

СтатусЗначениеДействие
400Неверный текст, голос, модель или формат выводаИсправьте полезную нагрузку
401Аутентификация не удаласьОстановить опрос и обновить учетные данные
402Недостаточно кредитов или квотыПриостановить очередь
404Идентификатор задачи для этого ключа API неизвестенУбедитесь, что вы сохранили возвращенный идентификатор для той же учетной записи
429Слишком много запросов на создание или опросОтойдите и сохраните идентификатор задачи