Как измерить скорость Whisper, качество текста и стоимость

См. также — глоссарий

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

Соберите небольшой набор

Выберите несколько записей и подготовьте проверенные эталонные тексты. Не меняйте исходные файлы; отметьте язык, длительность, шум, каналы и необычные термины. Добавьте длинную запись для проверки RAM и тишину для поиска выдуманных фраз.

За раз меняйте одну величину: модель, CPU/GPU, precision, beam или VAD. Для каждой конфигурации используйте отдельный выходной каталог. Сохраняйте версии пакетов и ревизии моделей. Повторите замеры, чтобы увидеть влияние соседней нагрузки и прогретого кеша.

Что именно измерено

processing_seconds охватывает декодирование файла, VAD и получение всех сегментов ASR. model_load_seconds измеряется один раз при инициализации модели в запуске и повторяется в метаданных; не складывайте его по одному разу на каждый файл. Проверка хешей, запись результатов, подготовка окружения, передача файлов и простой в processing-таймер не входят.

python - <<'PYCODE'
import json
from pathlib import Path
for path in sorted(Path('output').glob('*/transcript.json')):
    result = json.loads(path.read_text())
    print(path.parent.name, result['audio_seconds'], result['processing_seconds'], result['rtf'])
PYCODE

RTF = processing_seconds / audio_seconds. Чем меньше, тем быстрее. RTF 0,25 означает, что измеренный файл длиной 60 минут обработан за 15 минут в этой фазе; это арифметический пример, не результат бенчмарка. RTF пакета — сумма времени обработки, делённая на сумму длительностей аудио, а не простое среднее отношений. Последовательно используйте исходную длительность, а не длительность после VAD.

Вместе со скоростью проверяйте ошибки и память

Проверяйте пропуски, выдуманные слова, имена, числа и таймкоды. Для подходящих языков считайте WER по одинаково нормализованному эталону, а также время ручной правки. Вероятность определения языка не гарантирует точность каждого слова.

Во время длинного фрагмента записывайте пиковую RAM процесса/системы и память GPU. Ошибки нехватки памяти тоже относятся к результатам сравнения. Размер batch, число процессов и beam могут менять баланс скорости и памяти; наш обработчик папки намеренно последовательный.

Стоимость запуска

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

Используйте текущие цены, калькулятор и методику стоимости сессии. Здесь дана методика измерения, а не бенчмарки провайдеров или фиксированный тариф транскрибации.

Все инструкции по Whisper · Скачать пример

Готовы запустить?

Запустить GPU-сервер