Распознавание речи превращает аудиозапись в текст: звонок, интервью, голосовое сообщение, дорожку из видео. Эндпоинт — /v1/audio/transcriptions.
Файл отправляется формой, а не в JSON. Кроме файла нужна только модель.
curl "https://api.proxyapi.ru/v1/audio/transcriptions" \ -H "Authorization: Bearer <КЛЮЧ>" \ -F "model=openai/gpt-4o-mini-transcribe" \ -F "file=@interview.mp3"
Язык определяется автоматически. Если он известен заранее, его лучше указать в поле language — распознавание получится точнее. Поле prompt помогает с именами собственными и терминами: список ожидаемых слов подсказывает модели правильное написание.
За форму ответа отвечает response_format:
| Значение | Что возвращается |
|---|---|
json | Только текст. Значение по умолчанию |
verbose_json | Текст, разбитый на фрагменты с таймкодами, и длительность записи |
diarized_json | То же с разделением по говорящим |
Другие значения не поддерживаются: на text, srt или vtt придёт ошибка 400. Субтитры собираются из таймкодов verbose_json на своей стороне.
Разделение по говорящим — задача отдельной модели, openai/gpt-4o-transcribe-diarize. В паре с response_format=diarized_json она размечает, какая реплика кому принадлежит. Обычные модели распознавания этого не делают: они вернут сплошной текст без разделения.
/v1/audio/translations работает так же, но выдаёт текст сразу на английском, минуя исходный язык. Запрос устроен идентично, с одним отличием: response_format обязателен и должен быть verbose_json.
Считается не по токенам, а по длительности записи — оплачиваются секунды звучания, независимо от того, сколько в них слов. Тишина и паузы оплачиваются наравне с речью, поэтому длинные записи имеет смысл заранее чистить от пустых участков.
- Синтез речи — обратная задача: озвучить текст.
- Генерация текста — например, чтобы сделать из расшифровки краткое содержание.
Частые вопросы
Почему приходит ошибка про response_format?
Поддерживаются только json, verbose_json и diarized_json. Значения text, srt и vtt вернут ошибку 400 — субтитры нужно собирать из таймкодов, которые приходят в verbose_json.
Как получить текст с разделением по говорящим?
Нужна модель с поддержкой этой возможности — openai/gpt-4o-transcribe-diarize — и response_format со значением diarized_json. Остальные модели вернут сплошной текст.
Как считается стоимость?
По длительности аудио в секундах, а не по количеству слов или токенов. Паузы и тишина оплачиваются так же, как речь.
Нужно ли указывать язык записи?
Необязательно, язык определяется автоматически. Но если он известен, поле language повышает точность — особенно на коротких записях и при плохом качестве звука.
Последняя редакция: 3 сентября 2026 г.