ГлавнаяБлог → Стоимость распознавания речи: за что вы платите на самом деле

Стоимость распознавания речи: за что вы платите на самом деле

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

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

Единица счёта — минута аудио, а не слово

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

Следствия, которые стоит усвоить:

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

Откуда берутся лишние минуты

ИсточникТипичные потериЧто делать
Тишина в начале и конце записи разговора10–30%Обрезать через ffmpeg перед отправкой
Музыка ожидания и голосовое меню5–20%Вырезать всё до момента ответа
Тот же файл, отправленный дважды после сбоядо 100%Идемпотентный конвейер, пропуск готовых файлов
Тестовые прогоны, забытые в боевом кодепо-разномуОтдельный ключ, наблюдение в кабинете
Записи, которые никто не открываетчаще всего большинствоРасшифровывать по запросу, а не всё подряд

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

Как посчитать свой расход

Не экстраполируйте со страницы тарифов — измерьте собственный звук. Весь расчёт — это два числа:

ffprobe -v error -show_entries format=duration -of csv=p=0 sample.mp3
import pathlib, subprocess

def minutes(p):
    out = subprocess.run(["ffprobe", "-v", "error", "-show_entries",
                          "format=duration", "-of", "csv=p=0", str(p)],
                         capture_output=True, text=True).stdout
    return float(out) / 60

month = sum(minutes(p) for p in pathlib.Path("recordings").glob("*.mp3"))
print(f"{month:.0f} мин в месяц")

Умножьте на свою ставку — вот месячная сумма. Ориентиры, которые держатся на практике: линия поддержки с 200 звонками в день по четыре минуты — это примерно 16 000 минут в месяц; еженедельный подкаст — около четырёх часов; команда из десяти человек с ежедневными получасовыми встречами — порядка 600 минут.

Пакет плюс перерасход и зачем так сделано

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

счёт = абонплата + max(0, израсходовано - включено) * ставка

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

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

API или собственная видеокарта

Честное сравнение — это не «ставка за минуту против нуля». Своя установка переносит стоимость из строки в счёте в набор вещей, о которых легко забыть:

СтатьяAPIСвоя видеокарта
За минуту аудиоставка0
Железо0карта и машина, в рассрочку по сроку службы
Электричество и размещение0постоянно, независимо от загрузки
Настройка и сопровождение0время инженера, регулярно
Простойбесплатнопо полной цене

Точка безубыточности определяется загрузкой, а не объёмом. Видеокарта, работающая пару часов в день, проигрывает API, потому что за двадцать простаивающих часов вы платите тоже. Карта, загруженная круглосуточно, выигрывает. Между этими крайностями решает обычно другое: готовы ли вы отвечать за машину в три часа ночи.

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

Как срезать счёт, не потеряв качество

  1. Обрежьте тишину. Самое дешёвое изменение на записях разговоров — часто минус 10–30% без всякого влияния на качество.
  2. Не расшифровывайте то, что не читают. Расшифровывайте по запросу или только разговоры длиннее порога и смотрите, что люди реально открывают.
  3. Сделайте конвейер идемпотентным. Повторение уже сделанной работы после сбоя — чистые потери, пропуск готовых файлов их убирает.
  4. Заведите отдельный ключ для разработки. Тестовый трафик, смешанный с боевыми цифрами, прячет обе проблемы разом.
  5. Проверяйте расход еженедельно, а не раз в месяц. Цикл, отправляющий один и тот же файл, очевиден на первый день и дорог к тридцатому.
# срезаем тишину с обоих концов
ffmpeg -i call.mp3 -af silenceremove=start_periods=1:start_threshold=-45dB:stop_periods=-1:stop_threshold=-45dB:stop_duration=2 short.mp3

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

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

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

Оплата идёт за минуты аудио или за слова текста?

За минуты загруженного аудио. Длина получившегося текста ни на что не влияет — поэтому тишина и музыка ожидания стоят ровно столько же, сколько речь.

Платить ли за запись, которая оказалась пустой?

Да, звук всё равно был обработан, хотя ответ и пустой. Прямое лекарство — обрезать тишину до отправки.

Списываются ли неудачные запросы?

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

Дешевле ли держать Whisper на своей видеокарте?

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

Как не получить неожиданный счёт?

Оцените объём через ffprobe до первого пакета, держите жёсткий лимит пакета включённым на время разработки и смотрите расход в кабинете раз в неделю, а не в конце месяца.

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