Транскрипция
POST/v1/audio/transcriptions
Речь в текст. Запрос и ответ как у OpenAI: multipart/form-data, SDK OpenAI работают с другим base_url без правок. Принимаем только модели с kind transcribe, например elevenlabs/scribe-v2, openai/gpt-4o-mini-transcribe, openai/whisper-large-v3-turbo; цена минуты у каждой своя, она в pricing.audio из GET /v1/models. Файл до 25 МБ: mp3, mp4, m4a, wav, webm, ogg, flac.
Платите за секунды аудио, которые насчитала модель, а не заявленные в запросе. На запрос уходит не меньше минуты: файл в 5 секунд стоит как минута, файл в 90 секунд как полторы, дальше посекундно с округлением вверх. Пока модель работает, резервируем цену минуты или длины файла по его заголовку, если она больше. Другие поля, например stream, дают 400 с именем поля в param.
- modelstringобязательно
- Модель с kind transcribe. Модель с kind chat даёт 404
model_not_found - filestringобязательно
- Аудиофайл, до 25 МБ. Больше даёт 413
request_too_large - languagestring
- Язык речи кодом ISO-639-1, например
ru. Без него язык определяет модель - promptstring
- Принимаем для совместимости с OpenAI, модели не передаём
- response_formatstring
json(по умолчанию),text,srt,vttилиverbose_json. Для srt, vtt и verbose_json нужны метки времени: уopenai/gpt-4o-mini-transcribeих нет, ответ 400. Субтитры из слов собираем сами, если модель отдаёт целый текст одним сегментом (так делает Scribe)- temperaturenumber
- От 0 до 1
- timestamp_granularitiesarray
- Только с
verbose_json:segment(по умолчанию) иword. SDK пишут поле какtimestamp_granularities[]
Ответ.
В json:text и usage с seconds, то есть секунды, за которые списали. В text, srt и vtt тело ответа и есть текст. В verbose_json ещё language, duration и segments, а с word в granularities ещё и words.Расшифровка идёт быстрее записи: на минуту звука уходит несколько секунд, файл в полчаса ждите две–три минуты, в том числе загрузку. Замеры на живых моделях: 40 минут в mp3 (9 МБ) принимают elevenlabs/scribe-v2 и openai/whisper-large-v3-turbo, до 25 МБ (26 минут в стерео mp3 128 кбит/с) прошёл Whisper; openai/gpt-4o-mini-transcribe принимает запись до 23 минут, дальше 400. Запись, которую модель не успела расшифровать, мы отдаём ответом 504 upstream_timeout, деньги за неё не списываются: разрежьте её на части и отправьте отдельными запросами.