Перейти к содержимому

OpenAI-совместимый режим

Синхронная транскрибация файла

POST https://gptunnel.ru/v1/audio/transcriptions

Эндпоинт совместим с OpenAI POST /v1/audio/transcriptions: вы загружаете файл как multipart/form-data и получаете расшифровку в ответе на тот же запрос, без задач и поллинга. Это позволяет использовать официальный OpenAI SDK, поменяв только base_url и ключ.

Headers

ПараметрТипОписание
Authorization*stringAPI ключ. Поддерживается формат "Bearer YOUR_API_KEY" (как в OpenAI SDK)
Content-Type*stringmultipart/form-data

Form Data

ПараметрТипОписание
file*fileАудиофайл до 25 МБ, длительностью от 1 секунды до 2 часов
model*stringwhisper-1
languagestringКод языка (например, "ru", "en"). Если не указан — язык определяется автоматически
response_formatstringjson (по умолчанию) | text | verbose_json | srt | vtt
promptstringПодсказка со стилем или словарём терминов
temperaturenumberОт 0 до 1

Поддерживаемые форматы

flac, m4a, mp3, mp4, mpeg, mpga, oga, ogg, wav, webm.

Формат определяется по реальному содержимому файла, а не по расширению в имени — файл без расширения тоже будет принят. Неподдерживаемый контейнер (например, aiff или wma) отклоняется с ошибкой unsupported_format до обращения к провайдеру и без списания средств.

Пример запроса

Окно терминала
curl --request POST \
--url https://gptunnel.ru/v1/audio/transcriptions \
--header 'Authorization: Bearer YOUR_API_KEY' \
--form 'file=@/path/to/audio.mp3' \
--form 'model=whisper-1' \
--form 'language=ru'

Пример ответа

{
"text": "Привет мир. Как дела?"
}

Ошибки

Ошибки возвращаются в формате OpenAI:

{
"error": {
"message": "Insufficient quota. Your account balance is too low to complete this request.",
"type": "insufficient_quota",
"param": null,
"code": "insufficient_quota"
}
}
HTTPcodeПричина
400missing_required_parameterНе передан file
400file_too_largeФайл больше 25 МБ — используйте асинхронный режим
400invalid_valueНевалидный model или другой параметр
400invalid_audioФайл не удалось декодировать (повреждён или это не аудио)
400unsupported_formatФормат контейнера не поддерживается
400audio_too_longДлительность больше 2 часов
400audio_too_shortДлительность меньше 1 секунды
400provider_rejectedПровайдер отклонил файл
401Неверный API ключ
404model_not_foundМодель неизвестна или недоступна ключу
429insufficient_quotaНедостаточно средств на балансе
429api_key_limit_exceededПревышен лимит трат по API ключу
500internal_errorВнутренняя ошибка