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

В этой статье нет фиксированных ставок: цены меняются, а правила у разных моделей и шлюзов отличаются. Важнее понять структуру тарификации и факторы затрат; конкретные ставки смотрите на странице цен на модели.

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

1. Базовая единица — длительность аудио

Классическая whisper-1 тарифицируется по числу минут отправленного аудио. Более новые модели семейства gpt-4o-transcribe считают входные и выходные токены аудио, а на странице цен обычно приводится эквивалентная оценка за минуту; способ расчёта новых моделей вроде gpt-transcribe тоже развивается.

И при расчёте по минутам, и при расчёте по токенам основа — «длина отправленного аудио», а не «длина полезной речи». Начало и конец записи, долгая тишина, перерыв в совещании могут попасть в счёт. Первое правило контроля затрат: перед загрузкой отрежьте всё лишнее.

2. Как размер и формат файла влияют на счёт

Официальный лимит на один файл — 25 МБ; поддерживаются mp3, mp4, mpeg, mpga, m4a, wav, webm. Ограничение размера косвенно влияет на стоимость:

  • WAV с высоким битрейтом занимает много места, длинное аудио чаще превышает лимит и требует больше нарезок.
  • Чем больше файл, тем медленнее загрузка и выше вероятность тайм-аутов и повторов.
  • Несовместимый формат приводит к сбою и впустую расходует запросы и время на диагностику.
  • Транскодирование обычно не входит в счёт API, но расходует ресурсы сервера и хранилища.

Приведение к 16 кГц моно в MP3 или WAV обычно заметно уменьшает объём при приемлемом качестве. До сжатия убедитесь, что бизнес допускает потерю качества; для диалектов и имён собственных оставляйте более высокий битрейт.

3. Какие операции незаметно увеличивают стоимость

Статья затрат Входит в счёт API Как контролировать
Длительность аудио Да Удалять тишину, обрезать начало и конец, отправлять только полезные фрагменты
Повторы после сбоев Возможно двойное списание Ограничить число повторов, фиксировать результат запроса
Перекрытие при нарезке Да, перекрытие транскрибируется повторно Держать перекрытие 0,5–1 с и дедуплицировать при сборке
Транскодирование и хранение Обычно не входит в счёт API Настроить жизненный цикл объектов и своевременную очистку
Исходящий трафик Зависит от поставщика и архитектуры Обрабатывать в том же регионе, избегать повторных скачиваний
Ручная вычитка Не входит в счёт API Выборочная проверка, замена по словарю, уровни проверки

Самая частая потеря — не ставка, а повторная работа: один и тот же фрагмент отправляется трижды из-за тайм-аута или всё аудио транскрибируется заново ради тайм-кодов.

4. Повторы, тайм-ауты и двойное списание

Сетевой тайм-аут не означает, что сервер не обработал запрос. Если запрос уже тарифицирован, а клиент не получил результат, повтор приведёт ко второй оплате. В инженерии нужны три вещи:

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

Для пакетных задач задайте разумные тайм-ауты соединения и чтения. Слишком короткий тайм-аут «убивает» нормальное длинное аудио, слишком длинный задерживает очередь.

5. Нарезка длинного аудио и параллелизм

Аудио больше 25 МБ нужно нарезать. Чем мельче нарезка, тем больше запросов; чем крупнее, тем дороже сбой и повтор. Порядок может быть таким:

  1. Через ffprobe посчитать длительность и битрейт каждого файла, оценить суммарные минуты.
  2. Привести всё к 16 кГц моно и контролировать размер фрагмента.
  3. Сначала резать по паузам, затем — фиксированными блоками по 10 минут.
  4. Записывать смещение каждого фрагмента и восстанавливать тайм-коды при сборке.
  5. Держать параллелизм в пределах лимита аккаунта и корректировать его по доле 429.
  6. После сборки дедуплицировать текст и выборочно проверять стыки.
  7. Сверять фактически отправленные минуты со счётом и искать отклонения.

Параллелизм сам по себе не меняет ставку за объём, но влияет на долю повторов и общее время. Максимальный параллелизм вызывает массовые 429, а вместе с задержками повторов часто обходится дороже, чем умеренный темп.

6. Хранение и исходящий трафик

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

  • Исходное аудио: хранить период, достаточный для разбора, затем удалять или переводить в холодное хранилище.
  • Текст транскрибации: хранить по проектам, шифровать чувствительное и ограничивать доступ.
  • Журналы запросов: не писать полные URL аудио и ключи, сохранять необходимые request ID.
  • Резервные копии: копировать только результаты, не дублировать исходное аудио.

Если аудио и сервис транскрибации находятся в разных регионах, загрузка и скачивание создают исходящий трафик. Размещение обработки ближе к хранилищу снижает эту статью.

7. Как оценить бюджет

Не умножайте придуманную ставку на общую длительность. Надёжнее формула:

Месячная стоимость ≈ полезные минуты аудио × ставка × коэффициент повторов + хранение и трафик + ручная вычитка

Коэффициент повторов можно оценить по фактическому мониторингу: например, при успешности 97% заложите запас на сбои. Скрипт ниже читает только длительность и ставку и не содержит зашитой цены:

import os, subprocess, json

UNIT_PRICE = float(os.environ["AUDIO_UNIT_PRICE"])  # взять со страницы цен, за минуту
files = ["meeting-01.mp3", "meeting-02.mp3"]
total_minutes = 0.0

for path in files:
    out = subprocess.check_output([
        "ffprobe", "-v", "error", "-show_entries", "format=duration",
        "-of", "json", path,
    ])
    total_minutes += float(json.loads(out)["format"]["duration"]) / 60

estimate = total_minutes * UNIT_PRICE * 1.1  # запас на повторы и перекрытие
print(f"Аудио {total_minutes:.1f} мин, оценка {estimate:.2f}")

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

8. Сверка после запуска и отслеживание цен

  1. Разделяйте расход по проектам или ключам, чтобы все направления не смешивались в одном счёте.
  2. Раз в неделю выгружайте расход и сравнивайте с внутренним числом отправленных минут.
  3. По проектам с отклонением выше порога ищите причины: повторная отправка, аномальные повторы, неверные параметры нарезки.
  4. Настройте оповещения о бюджете и реагируйте до достижения лимита.
  5. Следите за обновлениями моделей и цен; перед переходом сравнивайте качество и стоимость на реальных образцах.

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

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

Whisper API тарифицируется по минутам или по токенам?

whisper-1 считается по минутам аудио; более новые модели семейства gpt-4o-transcribe — по входным и выходным токенам аудио, а страница цен даёт эквивалентную оценку за минуту. Ориентируйтесь на цены на модели и официальную документацию.

Тишина тоже оплачивается?

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

Повтор после сбоя списывается дважды?

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

Чем выше параллелизм, тем дешевле?

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

Почему в статье нет конкретных цен?

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

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

Начните с регистрации в ZSQH AI Gateway, прогоните транскрибацию на коротком аудио и посчитайте реальные минуты, а затем стройте бюджет. Модели и актуальные цены — на странице цен на модели.

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