К содержимому
Base URLМодель в примерах
APItranscriptions.md

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

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[]
1curl https://api.polyapi.ru/v1/audio/transcriptions \
2 -H "Authorization: Bearer $POLYAPI_KEY" \
3 -F model="openai/whisper-large-v3-turbo" \
4 -F file="@audio.mp3"
{
"text": "Привет, это проверка расшифровки.",
"usage": {
"type": "duration",
"seconds": 60
}
}

Ответ.

В 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, деньги за неё не списываются: разрежьте её на части и отправьте отдельными запросами.