Сравнение моделей Whisper для субтитров: tiny, small, turbo и large-v3
Сравнение моделей Whisper для субтитров: параметры, реальный размер загрузки и скорость tiny, small, turbo и large-v3 — и почему больше не всегда лучше.
Самая крупная модель Whisper не обязательно лучший выбор для субтитров. У large-v3-turbo примерно вдвое меньше параметров, чем у large-v3, а работает она почти в восемь раз быстрее, и на обычном материале разница в готовом файле субтитров настолько мала, что решающим фактором становится именно скорость. Бывают и случаи, когда меньшая модель выдаёт транскрипт лучше, чем более крупная.
Дальше — цифры, что они значат именно для работы с субтитрами, и типичные сбои, из-за которых модель выглядит хуже, чем есть на самом деле.
Модели в сравнении
Параметры и относительная скорость взяты из карточки модели Whisper от OpenAI; размеры — это реальный суммарный вес сборок CTranslate2, которые скачивает Sablate, а не округлённые оценки.
| Модель | Параметры | Загрузка | Скорость относительно large-v3 | Тариф в Sablate |
|---|---|---|---|---|
tiny | 39 млн | ~78 МБ | ~10× | Fast |
small | 244 млн | ~486 МБ | ~4× | Balanced |
medium | 769 млн | ~1,53 ГБ | ~2× | Упразднена |
large-v3-turbo | 809 млн | ~1,62 ГБ | ~8× | Accurate |
large-v3 | 1550 млн | ~3,09 ГБ | 1× | Best |
Строка, которая выбивается из общей закономерности, — turbo. У неё больше параметров, чем у medium, а работает она всё равно примерно в четыре раза быстрее — то, что одно число параметров никак не предсказывает.
Почему turbo меняет рекомендацию
Turbo — это не меньшая модель, обученная с нуля. Это тот же large-v3, у которого декодер урезали с 32 слоёв до 4, а затем дообучили ещё две эпохи на тех же многоязычных данных для транскрипции. Whisper проводит большую часть времени именно в декодере, поэтому такое жёсткое урезание даёт очень большой прирост скорости, а энкодер — та часть, которая, собственно, «слушает», — остаётся нетронутым.
У этого есть два предупреждения, и оба задокументированы самим OpenAI, а не являются народным поверьем:
- Её дообучали без данных для перевода. Turbo — это модель транскрипции. Если нужна встроенная в Whisper задача перевода речи на английский, turbo — не тот инструмент; транскрибируйте на языке оригинала и переводите текст уже потом — так и правильнее в принципе.
- На некоторых языках качество падает сильнее. По большинству языков turbo держится на уровне
large-v2, но заметно теряет на тайском и кантонском. Если работаете с этими языками, проверьте модель, прежде чем на неё переходить.
Во всех остальных случаях turbo — разумный выбор по умолчанию для субтитров: качество почти как у large, но на скорости, которая делает двухчасовую запись реально выполнимой задачей.
Даёт ли самая большая модель лучшие субтитры?
Не всегда, и это исключение стоит знать заранее, потому что на практике оно выглядит как баг.
Мы измерили это на 101-секундном турецком клипе, на RTX 3060 Ti с float16, через собственный путь транскрипции приложения. По тому, сколько речи модель реально уловила, первым оказался medium. large-v3 пропустил речь, которую medium распознал верно, — первые слова клипа и несколько коротких междометий просто не появились в тексте. Ни один из обычных рычагов их не вернул: ни отключение фильтра голосовой активности, ни повышение порога отсутствия речи, ни снятие порога log-probability, ни фиксация температуры. Снятие порога log-probability сделало всё заметно хуже, урезав транскрипт с примерно 1110 до 429 символов.
Мы также проверили распространённый в сообществе совет использовать large-v2 вместо large-v3. На этом клипе она оказалась худшей из всех: она полностью выбросила непрерывный 30-секундный отрезок речи — с 28,7 до 58,7 секунды, — выдав 106 слов против 178 у medium.
Один клип — это не бенчмарк, и этот к тому же был коротким, турецким и разговорным. Берите не рейтинг, а метод: транскрибируйте один и тот же файл двумя моделями, смотрите не на опечатки, а на пропуски, и выбирайте ту, что услышала всё. В субтитрах пропуски обходятся куда дороже, чем опечатки, — неверное слово зритель домыслит, а строку, которой просто нет, прочитать невозможно.
Когда хорошая модель выглядит плохой
Есть три типа сбоев, из-за которых возникают жалобы «большая модель хуже», хотя сама модель тут ни при чём.
1. Совпадающие таймкоды слов ломают разбивку на строки. Whisper выдаёт таймкод на каждое слово, и соседние слова часто делят границу ровно поровну — в изученном нами клипе 172 из 177 промежутков между словами составили ровно 0,000 секунды. Разделитель, который режет длинную реплику по самому большому промежутку, в этом случае находит одинаковые кандидаты, берёт первый и повторяет операцию рекурсивно, отрезая по одному слову за раз. Результат — транскрипт, изрубленный на однословные субтитры, и чем больше слов выдаёт модель, тем хуже эффект. Исправление правила на случай равенства в пользу середины временного промежутка сократило один клип с 90 реплик (78 из них однословных) до 28 реплик с единственной однословной строкой. Модель при этом не менялась.
2. Выбранная модель — не та, что реально запустилась. Реестры загрузок и библиотеки инференса называют репозитории моделей по-разному. Скачанная модель лежит на диске под одним именем репозитория, а загрузчик ищет её под другим — и в итоге происходит либо тихий откат на другую модель, либо ошибка, которая выглядит как проблема сети, хотя нужные 1,6 ГБ уже лежат на диске.
3. Неудачная повторная транскрипция оставляет на экране старый транскрипт. Если повтор задачи не удался, а приложение откатывает её, но сохраняет имя запрошенной модели, вы смотрите на результат прежней модели, подписанный как новый. Любое сравнение, сделанное в этом состоянии, будет неверным. Если вы устраиваете бенчмарк, сначала убедитесь, что текст действительно изменился, — одинаковый результат у двух разных моделей — это повод насторожиться, а не находка.
VRAM, диск и что потянет ваша машина
Размер загрузки из таблицы выше — это ещё и неплохой ориентир для нагрузки на память во время транскрипции. Практические рекомендации:
- 4 ГБ VRAM или меньше, либо без дискретного GPU — оптимальный выбор
small.tiny— для черновиков и проверки тайминга, не для финальной доставки. - 6–8 ГБ VRAM —
large-v3-turboбез проблем. Это конфигурация, на которой стоит сидеть большинству. - 10 ГБ VRAM и больше —
large-v3, если аудио этого действительно требует: сильный акцент, перекрывающиеся голоса, плохие микрофоны. - Только CPU —
smallдля всего, что нужно сегодня,turbo— если можно оставить его работать в фоне.
Точность вычислений важна здесь не меньше, чем размер модели. Сборки CTranslate2, на которых работает Whisper, поддерживают float16 и int8, а снижение точности заметно снижает расход памяти — ценой, которая невелика для int8 и обычно незаметна для float16 на GPU.
На GPU ожидайте ускорения примерно в пять-десять раз по сравнению с той же машиной на CPU. В Sablate на Windows среда выполнения NVIDIA CUDA загружается при первом запуске на GPU, а не идёт в комплекте с установщиком, — это оставляет установщик компактным для тех, кто GPU вообще не использует.
Какую модель выбрать на практике?
| Ситуация | Модель | Почему |
|---|---|---|
| Проверка тайминга или пробный стиль субтитров | tiny | Готово за секунды; точность здесь не важна |
| Чистая речь, один говорящий, хороший микрофон | small | Быстро, а остальное поправит редактор |
| По умолчанию для финальных субтитров | large-v3-turbo | Точность почти как у large при скорости примерно 8× |
| Акценты, шум, перекрывающиеся голоса | large-v3 | Здесь лишние параметры оправдывают потраченное время |
| Тайский или кантонский | large-v3 | Задокументированное слабое место turbo |
| Исходник для перевода на другие языки | Самая точная модель, которую вы можете себе позволить | Каждая ошибка расходится по всем языкам |
Именно последняя строка меняет весь расчёт. Когда транскрипт — это исходник для восьми переводов, ошибка — это не одна ошибка, а сразу восемь. Работа с несколькими языками объясняет, почему исходный транскрипт заслуживает и медленной модели, и внимательной вычитки.
В Sablate Fast и Balanced (tiny и small) доступны на бесплатном тарифе; Accurate и Best входят в Pro — разовый платёж $29, подробности на странице тарифов. Какую бы модель вы ни запустили, результат попадает в один и тот же редактор и экспортируется в те же форматы — SRT, VTT и ASS, — так что выбор модели влияет на объём последующей правки, а не на то, что вообще можно получить.
Как проверить это на своём материале
Пять минут метода бьют любой опубликованный бенчмарк, включая этот:
- Возьмите клип на 60–120 секунд, который показателен: ваш худший микрофон, привычные акценты, реальная комната.
- Транскрибируйте его двумя моделями-кандидатами, не меняя больше ничего.
- Сравнивайте сначала пропуски, и только потом опечатки.
- Посчитайте однословные реплики. Если их много — дело в сегментации, а не в модели.
- И только после этого сравнивайте реальное время работы и решайте, чего оно вам стоит.
Лучшая модель для вас — та, что услышала всё на вашем материале, и это не обязательно самая крупная из них.