Транскрибация
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=ruwith open("meeting.m4a", "rb") as audio:
t = client.audio.transcriptions.create(model="whisper-large-v3-turbo", file=audio, language="ru")
print(t.text)import fs from "node:fs";
const t = await client.audio.transcriptions.create({
model: "whisper-large-v3-turbo",
file: fs.createReadStream("meeting.m4a"),
language: "ru",
});
console.log(t.text);Звук
Форматы 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), расшифровка — файлом результата задачи.