Транскрибация

POST /v1/audio/transcriptions — звук в текст, результат сразу. Тело — multipart/form-data: file, model, по желанию language, response_format, timestamp_granularities. Поля — схема TranscriptionRequest. Поля SDK OpenAI prompt, temperature (0–1), chunking_strategy и include принимаются и на результат не влияют. stream=true — ответ text/event-stream: transcript.text.delta с текстом, затем transcript.text.done.

curl https://api.souz.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $SOUZ_API_KEY" \
  -F model=whisper-large-v3-turbo \
  -F file=@meeting.m4a \
  -F language=ru

Звук

Форматы wav, mp3, flac, m4a, ogg, webm, aac — до 25 МиБ и до 4 часов; формат определяется по самим байтам. Длина измеряется до вызова: файл, длину которого не прочитать, отвергается до списания (400 invalid_input).

Язык

Код ISO 639-1 в нижнем регистре (ru, en, схема LanguageCode) — и в запросе, и в ответе. language запроса — подсказка; без неё модель определит язык сама. Другое написание (RU, ru-RU, russian) — 400 со списком кодов в allowed. language ответа — язык, который назвала модель, иначе ваша подсказка.

Формат ответа

  • json (по умолчанию) и verbose_json — объект задачи с text, duration и language.
  • verbose_json у моделей с таймкодами добавляет segments — фразы (start, end, text) до 30 секунд; с timestamp_granularities[]=word (или JSON-массивом ["word"]) — ещё words (word, start, end).
  • srt — те же фразы субтитрами, text — только расшифровка; у текстовых ответов id задачи — в заголовке X-Job-Id.

usage.characters — число символов расшифровки. Присланный файл становится загрузкой аккаунта (GET /v1/files), расшифровка — файлом результата задачи.