ГлавнаяБлог → Как перейти с OpenAI Whisper API на альтернативный сервис

Как перейти с OpenAI Whisper API на альтернативный сервис

Опубликовано 2026-08-04 · 5 мин чтения

Команды переходят с публичного Whisper API по разным причинам: стоимость на больших объёмах, требования к обработке данных, недоступность сервиса в регионе. Хорошая новость — если API совместим по протоколу, миграция сводится к замене двух строк и занимает вечер.

Что именно меняется в коде

Ровно две вещи: адрес и ключ. Всё остальное — имена полей, форматы ответов, обработка ошибок — остаётся прежним.

# было
client = OpenAI(api_key="sk-…")

# стало
client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="vs_live_…")

Вызов распознавания не трогаем вовсе:

result = client.audio.transcriptions.create(model="whisper-1", file=f)

Параметр model сохраняем для совместимости: сервис принимает привычное значение и использует свою модель.

Совместимость по деталям

ЧтоСовпадает
Эндпоинт POST /v1/audio/transcriptionsда
Поле файла file, multipart-запросда
Параметры language, prompt, temperature, response_formatда
Форматы ответа: json, text, verbose_json, srt, vttда
Структура ошибки {"error": {"message", "type", …}}да

Последний пункт важнее, чем кажется: официальные SDK разбирают ошибки в типизированные исключения. Если сервер отвечает своим форматом, клиентский код падает не там, где ожидается, — совместимость по ошибкам избавляет от переписывания обработчиков.

Как сравнить качество перед переключением

Не переключайте продакшн вслепую. Разумный порядок:

  1. Соберите выборку. 20–50 реальных записей: чистые, шумные, короткие, на разных языках — как в бою.
  2. Прогоните через оба сервиса одним скриптом, сохранив результаты рядом.
  3. Сравните на своих критериях. Важны не абстрактные проценты, а ваши сценарии: правильно ли распознаются артикулы, имена, суммы.
  4. Переключайте частями. Направьте на новый сервис 10% трафика, через несколько дней — весь.
for path in samples:
    with open(path, "rb") as f:
        a = old_client.audio.transcriptions.create(model="whisper-1", file=f).text
    with open(path, "rb") as f:
        b = new_client.audio.transcriptions.create(model="whisper-1", file=f).text
    print(path, "\n  было:", a, "\n  стало:", b)

Что стоит проверить отдельно

Когда миграция оправдана

Смена провайдера имеет смысл, если выполняется хотя бы одно условие:

Если ничего из перечисленного не актуально, работающую интеграцию трогать незачем — совместимость всё равно позволит переехать позже за один вечер.

Попробуйте на своих записях. Регистрация занимает минуту, бесплатных минут хватает, чтобы оценить качество.

Получить ключ бесплатно

Частые вопросы

Придётся ли переписывать код при переходе?

Нет, если вы используете официальный openai-sdk: меняются только базовый адрес и ключ. Вызовы, параметры и разбор ответа остаются прежними.

Работают ли форматы srt и vtt?

Да, поддерживаются все привычные значения response_format: json, text, verbose_json, srt и vtt.

Что с обработкой ошибок в SDK?

Ошибки возвращаются в том же формате, что у OpenAI, поэтому SDK превращает их в типизированные исключения — существующие обработчики продолжат работать.

Можно ли работать с двумя сервисами одновременно?

Да. Создайте два клиента с разными base_url и направьте на новый сервис часть трафика — это удобный способ сравнить качество на реальных данных.

Нужно ли менять значение model?

Нет. Привычное значение принимается для совместимости, сервис использует собственную модель распознавания.

Читайте также