Асинхронные задания
Создание и опрос асинхронных заданий 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 | Слишком много запросов на создание или опрос | Отойдите и сохраните идентификатор задачи |