Для китайских команд вызов Whisper API для транскрибации не сложен по интерфейсу: multipart-запрос, аудиофайл и текст в ответе. Опыт определяет сетевой путь: дневной трансграничный канал, потери пакетов в вечерний пик, обрыв загрузки файла в десятки мегабайт на середине — всё это превращает простой интерфейс в эксплуатационную проблему.

Ниже сравниваем три схемы — прямое подключение, прокси и шлюз — и отдельно разбираем загрузку больших файлов, тайм-ауты и повторы, нарезку и чек-лист проверки перед запуском.

Примечание: OpenAI и Whisper — товарные знаки соответствующих правообладателей. Статья носит технический характер и не подразумевает аффилированность, агентские или партнёрские отношения с OpenAI. Ограничения интерфейса, доступные модели и правила тарификации определяются официальной документацией и материалами на сайте.

1. Три пути — три границы ответственности

  • Прямое подключение: код обращается к api.openai.com без промежуточного слоя.
  • Прокси: собственный обратный прокси на VPS или сторонний адрес пересылки.
  • Шлюз: OpenAI-совместимый вход вроде ZSQH AI Gateway с едиными ключами, балансом, счётом и документами.
Критерий Прямое подключение Собственный прокси Шлюз
Управляемость канала Зависит от оператора Выше Отвечает поставщик
Стабильность Заметные колебания Зависит от сервера и линии Обычно несколько маршрутов
Стоимость обслуживания Низкая Высокая, нужно дежурство Низкая
Биллинг и документы Доллары, всё самостоятельно Счёт upstream, тоже самостоятельно Юани, документы от платформы
Подходящие сценарии Низкая частота, допустимы повторы Команды с эксплуатационной экспертизой Китайские команды и production

Ключевое различие не в том, «работает или нет», а в том, кто локализует проблему и кто страхует сбой. Понять это до выбора полезнее, чем сравнивать цифры задержки.

2. Прямое подключение: доступность не равна стабильности

Прямая схема убирает промежуточный слой, но качество трансграничного канала вам не подконтрольно. Типичные явления:

  • днём нормально, в вечерний пик растёт доля тайм-аутов;
  • DNS иногда отвечает медленнее, TLS-рукопожатие затягивается;
  • при загрузке большого файла соединение сбрасывается, и передача начинается с нуля;
  • один и тот же код работает в офисе, но не работает на облачном сервере.

Не ограничивайтесь ping с домашнего интернета. Запустите набор реальных запросов на production-сервере, зафиксируйте успешность, задержки p50 и p95, время загрузки и наблюдайте несколько дней. Для асинхронных задач прямое подключение допустимо, если бизнес переживает повторный запуск; для онлайн-субтитров и совещаний в реальном времени колебания канала сразу превращаются в заметные пользователю задержки.

3. Прокси: сервер дешёвый, обслуживание — нет

Собственный прокси обычно означает nginx на VPS с доменом и сертификатом. Он фиксирует путь запроса, но добавляет новые точки отказа:

  • не хватает исходящей полосы, и параллельные загрузки аудио встают в очередь;
  • не поднят лимит тела запроса, и файл в десятки мегабайт сразу получает 413;
  • тайм-аут прокси короче времени транскрибации: backend ещё работает, а соединение уже закрыто;
  • истёк сертификат, IP попал под лимит, upstream изменил интерфейс — всё требует ручного вмешательства.

В конфигурации как минимум проверьте client_max_body_size, proxy_read_timeout и настройки буферизации. У общего адреса прокси есть дополнительный риск: вы не знаете, кто ещё выходит через тот же IP, и лимиты или блокировки могут затронуть всех. Если ключ передаётся на уровне прокси, убедитесь, что заголовок авторизации не пишется в журнал в открытом виде.

4. Шлюз: сетевую проблему превращает в сервисную

Шлюз даёт OpenAI-совместимый base URL; обычно достаточно заменить base_url и ключ. Для китайских команд практическая ценность в трёх вещах: канал обслуживает поставщик; текст, аудио и embeddings используют общий баланс; оплата и документы в юанях.

При выборе шлюза не ограничивайтесь фразой «поддерживает Whisper», уточните:

  • полностью ли поддержан аудиоинтерфейс транскрибации, включая response_format и тайм-коды;
  • лимиты на размер файла, параллелизм и тайм-аут;
  • как тарифицируются неудачные запросы и выдаётся ли request ID;
  • политика хранения журналов и способ удаления;
  • указана ли на странице цен методика тарификации.

Шлюз решает канал и биллинг, но не все инженерные задачи. Аудио сверх лимита всё равно нужно нарезать, при сетевых колебаниях — повторять. Относитесь к нему как к инфраструктуре с обязательствами по сервису, а не как к универсальному ускорителю.

5. Загрузка больших файлов: почему сбоит даже в пределах 25 МБ

Частый лимит Whisper на файл — 25 МБ, точное значение смотрите в официальной документации. Многие думают, что файл меньше лимита загрузится без проблем, но сбой часто происходит на этапе передачи.

При исходящей полосе 1 Мбит/с передача 25 МБ занимает около 200 секунд; добавьте TLS-рукопожатие, очередь на сервере и время транскрибации — легко упереться в тайм-аут прокси или клиента. Мобильная сеть, трансграничный канал и общая полоса увеличивают это время.

Порядок снижения доли сбоев: сначала сжатие, затем нарезка, и только потом повторы.

  • Привести к 16 кГц моно: для транскрибации речи высокая частота не нужна.
  • Использовать MP3 64 кбит/с: в 25 МБ помещается более пятидесяти минут речи.
  • Аудио длиннее 10 минут резать на фрагменты по 5–10 минут с перекрытием 0,5–1 секунды.
  • Точки реза выбирать по тишине, чтобы не разрывать слова.

Эти цифры — инженерный опыт, а не обязательства интерфейса; ориентируйтесь на результаты тестов в своей среде.

6. Тайм-ауты, повторы и нарезка

Для нарезки можно использовать ffmpeg:

ffmpeg -i input.mp3 -f segment -segment_time 600 \
  -ac 1 -ar 16000 -b:a 64k part_%03d.mp3

Стратегию повторов выстраивайте так:

  1. Повторять только сетевые ошибки, 408, 429 и 5xx; для 400, 401 и 413 повтор бессмысленен.
  2. Использовать экспоненциальную задержку со случайным разбросом, например 1, 2, 4, 8 секунд, максимум три–пять попыток.
  3. Для каждого запроса фиксировать имя файла, номер фрагмента и request ID для сверки.
  4. При сборке склеивать текст по порядку фрагментов и прибавлять начальное смещение к тайм-кодам.
  5. Дедуплицировать перекрытие, сохраняя более полную фразу.
  6. Ограничивать параллелизм пакетных задач, оставляя запас на восстановление после 429.

У аудиоинтерфейса обычно нет ключа идемпотентности, поэтому после тайм-аута сервер мог уже завершить транскрибацию и списать средства. Перед повтором проверьте журнал расхода и решите, допустимо ли небольшое двойное списание. Для чувствительных к затратам команд можно сохранять неудачные фрагменты отдельно и запускать их повторно после ручной проверки.

7. Оплата, документы и комплаенс

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

В комплаенсе обратите внимание на три момента:

  • аудио может содержать имена, телефоны, диагнозы и данные сделок; до загрузки сообщите об обработке и получите согласие;
  • чувствительные материалы сначала обезличьте или используйте решение с приватным развёртыванием;
  • уточните, передаются ли данные за границу, и как поставщик хранит и удаляет их.

Права на результат транскрибации зависят от содержания аудио и условий платформы. Записи совещаний, курсы и звонки поддержки затрагивают права других людей; до коммерческого использования подтвердите разрешение.

8. Чек-лист проверки перед запуском

  • Прогнать десятисекундное аудио и получить ответ 200.
  • Проверить пятиминутное аудио на распознавание языка и пунктуацию.
  • Загрузить файл близко к 25 МБ и замерить время и тайм-аут.
  • Смоделировать 429 и 5xx и убедиться, что задержка работает.
  • Смоделировать обрыв сети и убедиться, что повторы не уходят в бесконечный цикл.
  • Проверить смещение тайм-кодов после сборки фрагментов.
  • Проверить лимит параллелизма и длину очереди.
  • Подтвердить оповещения о балансе, выставление счетов и сверку.
  • Убедиться, что ключ хранится только на сервере и поддерживает ротацию и отзыв.

Список небольшой, но каждый пункт соответствует реальному сбою. Неделя на малом трафике, затем постепенное увеличение параллелизма надёжнее, чем сразу выйти на максимум.

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

Стабильно ли прямое подключение к Whisper API из Китая?

Единого ответа нет: зависит от оператора, времени и расположения сервера. Тестируйте несколько дней в production и смотрите успешность и p95, а не один запрос.

Чем шлюз отличается от прокси?

Прокси обычно только пересылает трафик, биллинг и обслуживание остаются на upstream; шлюз, как правило, добавляет аккаунт, баланс, управление ключами, оплату в юанях и документы, то есть более полную границу ответственности.

Что делать с аудио больше 25 МБ?

Сначала сжать в MP3 16 кГц моно, затем нарезать по 5–10 минут. Резать по тишине, при сборке возвращать смещение тайм-кодов.

Повтор после тайм-аута приводит к двойному списанию?

Возможно. Сервер мог уже завершить транскрибацию. Перед повтором проверьте журнал расхода и задайте предел попыток.

Какие комплаенс-вопросы важны при доступе из Китая?

Персональные данные в аудио, трансграничная передача, политика хранения поставщика и права на контент. При чувствительных данных предпочтительны обезличивание или приватное развёртывание.

Следующий шаг

Сначала проверьте канал на коротком аудио, затем протестируйте нарезку и сборку на реальной длинной записи и только после этого подключайте пакетные задачи. Командам, которым нужны пополнение в юанях, единый счёт и документы, можно начать с регистрации в ZSQH AI Gateway; аудиомодели и тарификация — на странице цен на модели.

Что читать дальше: