Нейросеть для субтитров: как работает

Коротко
Нейросеть для субтитров выполняет три шага: распознавание речи, расстановку тайм-кодов и нарезку текста в форматы SRT или VTT. Основные ошибки возникают на этапе таймингов, которые можно исправить с помощью фонемных моделей, таких как wav2vec2 в WhisperX. При переводе важно сохранять структуру файла и проверять длину реплик, так как автоматика не учитывает изменения объёма текста.
Содержание
- Что делает нейросеть для субтитров?
- Как устроен файл субтитров?
- SRT или VTT: что выбрать под площадку?
- Почему тайминги разъезжаются и как это чинят?
- Как перевести дорожку, не сломав тайм-коды?
- Вшивать субтитры в кадр или отдавать файлом?
- Где нейросети чаще всего ошибаются в субтитрах?
- Субтитры, транскрибация и озвучка: в чём разница?
- Источники
Что делает нейросеть для субтитров?
Нейросеть делает три разные вещи подряд, и путать их не стоит. Сначала модель распознавания превращает звуковую дорожку в слова. Потом алгоритм расставляет тайм-коды: когда какая фраза появляется и когда исчезает. И только третьим шагом текст режут на реплики нужной длины и сохраняют в файл формата SRT или VTT.
Ошибки на разных шагах выглядят по-разному. Плохое распознавание даёт опечатки и выдуманные слова. При плохих таймингах реплика висит на экране, пока герой уже говорит следующую. Плохая нарезка даёт четыре строки мелким шрифтом на пол-экрана.
Большинство онлайн-генераторов делают все три шага за вас и показывают только результат. Это удобно ровно до момента, когда результат надо поправить. Дальше приходится открывать файл и разбираться, что там внутри.
Как устроен файл субтитров?
Это обычный текстовый файл, и его можно открыть блокнотом. Разница между форматами — в том, что именно там записано помимо текста.
| Формат | Разделитель миллисекунд | Оформление | Где нужен |
|---|---|---|---|
| SRT | запятая: 00:02:17,440 | нет | YouTube, плееры, монтажки |
| VTT | точка: 00:02:17.440 | позиция, выравнивание, размер | HTML5-видео, веб-плееры |
| ASS/SSA | точка, две цифры | шрифты, караоке, позиционирование | аниме, фан-сабы, сложная типографика |
| TXT | нет | нет | черновик расшифровки |
Блок SRT устроен просто. По документации Matroska, в нём четыре части: номер по порядку, строка с временем показа, сам текст и пустая строка перед следующим блоком. Оформления там нет вовсе: в спецификации Matroska прямо сказано, что поле служебных настроек для SRT остаётся пустым, потому что настраивать нечего.
VTT устроен богаче. Спецификация W3C в редакции Candidate Recommendation Draft от 20 мая 2026 года требует, чтобы файл начинался со слова WEBVTT и был закодирован строго в UTF-8. MIME-тип у него — text/vtt. Каждой реплике можно задать настройки: line отодвигает блок от края кадра, position двигает по горизонтали, size задаёт ширину, align выравнивает текст, vertical включает вертикальное письмо.

SRT или VTT: что выбрать под площадку?
Для загрузки на видеоплощадку берите SRT, для своего сайта — VTT: причина здесь техническая.
Браузерный тег <track> понимает только WebVTT. Справочник MDN описывает WebVTT как формат текстовых дорожек для HTML5-видео, а SRT в этом качестве не упоминает. Положите рядом с плеером файл .srt — браузер просто не покажет ничего.
Там же разделены два значения атрибута kind, которые в быту сливают в одно слово «субтитры». subtitles — это перевод или запись реплик для зрителя, который звук слышит. captions — версия для тех, кто не слышит: туда добавляют звуковые эффекты, музыку и пометки о том, кто именно говорит. Разные задачи, разные файлы.
Конвертация между SRT и VTT почти тривиальна: заменить запятую на точку в тайм-кодах и дописать заголовок WEBVTT в начало. Обратно — так же, только оформление VTT потеряется.
Почему тайминги разъезжаются и как это чинят?
Потому что штатный Whisper ставит границы неточно. README проекта WhisperX предупреждает: тайм-коды даются на уровне высказывания, не по словам, и могут ошибаться на несколько секунд. Для сплошного текста расшифровки это неважно. Для субтитров — приговор.
Лечится это отдельным шагом выравнивания. WhisperX прогоняет распознанный текст через фонемную модель wav2vec2 и заново прикрепляет каждое слово к своему участку звука. Оттуда же берутся «караоке»-субтитры, где слова подсвечиваются по одному. Проект распространяется по лицензии BSD-2-Clause; последняя версия 3.8.6 вышла 25 мая 2026 года.
Сдвиг создаёт и тишина. На паузах модель дописывает несуществующие фразы, и они занимают место на таймлинии. WhisperX ставит перед распознаванием детектор речи: в README сказано, что такой предварительный детектор (VAD) снижает галлюцинации и при этом не ухудшает точность.
Особняком стоят субтитры в реальном времени, и здесь Whisper не помощник. В таблице сценариев Microsoft напротив строки про расшифровку и субтитры в режиме реального времени у Whisper стоит «Недоступно»: модель работает с готовым файлом, для прямого эфира нужны потоковые модели.

Как перевести дорожку, не сломав тайм-коды?
Явно запретить модели трогать всё, кроме текста реплик. Звучит очевидно, но без этого запрета файл разваливается — мы проверили.
Тестовый SRT из пяти блоков прогнали через Gemini 2.5 Pro — модель, которая стоит за нашим чатом с Gemini Pro. Обычная просьба «переведи субтитры на английский» дала на выходе вежливое вступление, заголовок «Вариант 1» и два варианта перевода подряд — десять блоков вместо пяти. Как файл субтитров это мусор.
Второй запрос содержал три условия: номера блоков и строки тайм-кодов скопировать без изменений, символ в символ; блоки не объединять и не разбивать; вернуть только SRT без пояснений. Результат: пять блоков из пяти, тайм-коды совпали посимвольно.
Есть и другой эффект, который автоматика не ловит. Длина реплик при переводе гуляет: в нашем тесте одна строка стала короче на 20 символов, другая длиннее на 10, а суммарно текст вырос всего на 3%. По всему файлу всё выглядит ровно, а отдельная реплика уже не успевает прочитаться за отведённые ей секунды. После автоперевода дорожку нужно просматривать по репликам, а не сверять итоговый объём.
Собственно перевод текста — задача текстовой модели; как её выбрать, мы разобрали в обзоре нейросетей для перевода. Сам Whisper переводить на русский не умеет: в документации OpenAI сказано, что эндпоинт перевода работает только в сторону английского.

Вшивать субтитры в кадр или отдавать файлом?
Отдавать файлом — почти всегда; вшивать — когда площадка не оставляет выбора.
Отдельный файл зритель может выключить, а поисковики и площадки — прочитать. YouTube по загруженному SRT строит транскрипт и включает поиск по видео. Ошибку в тексте вы правите сразу: открыли файл, поменяли слово, загрузили заново.
Вшитые субтитры становятся частью картинки. Их нельзя выключить, нельзя перевести и нельзя исправить — только перекодировать ролик целиком. Зато они выглядят одинаково везде, и это единственный работающий вариант для вертикальных площадок, где своей дорожки субтитров нет. Технически это одна команда ffmpeg с фильтром subtitles; рецепт есть в вики проекта.
Практичный компромисс: хранить исходный SRT даже тогда, когда для публикации вы вшиваете текст в кадр. Через полгода при перемонтаже он сэкономит вам вечер.
Где нейросети чаще всего ошибаются в субтитрах?
На именах, терминах и цифрах. Такую ошибку зритель замечает сразу.
Собственные имена модель угадывает по звучанию и часто мимо: фамилия коллеги превращается в похожее нарицательное слово. Отраслевой жаргон и англицизмы в русской речи она пишет то кириллицей, то латиницей, вперемешку внутри одного файла.
Отдельная история с числами. При расшифровке русской речи крупные модели пишут «2,3%» и «12 июня» цифрами, мелкие — словами. Мы столкнулись с этим на замере точности и разобрали случай подробно в статье про нейросеть Whisper и её версии. Для субтитров вывод простой: перед публикацией прогоните файл поиском по цифрам и приведите написание к одному виду.
Отдельно портят дело два человека, говорящих одновременно. Модель распознавания склеивает реплики в одну строку, и субтитр получается бессмысленным. Здесь помогает только разделение говорящих на этапе расшифровки; как это устроено, показано в материале про транскрибацию встреч и интервью.
Субтитры, транскрибация и озвучка: в чём разница?
Три соседние задачи, которые часто заказывают одной фразой: «сделайте текст к видео».
Субтитры привязаны ко времени. Главное требование: попасть в реплику и уложиться в две строки, поэтому текст здесь сокращают.
Транскрибация ко времени не привязана. Нужен полный, читаемый текст с абзацами и пометками о том, кто говорит; тайм-коды необязательны.
Озвучка — обратное направление: из текста получается звук. У нас это озвучка голосом, 20 токенов за запуск.
Распознавания речи в каталоге нет, и обещать его мы не станем. Whisper и его сборки вы запускаете у себя или берёте у сторонних сервисов.
Источники
- WebVTT: The Web Video Text Tracks Format, W3C — заголовок файла, UTF-8, MIME-тип, настройки реплик. Проверено 7 августа 2026 года.
- Subtitles, Matroska — структура блока SRT, отсутствие оформления. Проверено 7 августа 2026 года.
- WebVTT API, MDN — тег
<track>, значенияkind, разница subtitles и captions. Проверено 7 августа 2026 года. - WhisperX — тайм-коды на уровне реплики, выравнивание wav2vec2, VAD. Проверено 7 августа 2026 года.
- Speech to text, OpenAI — форматы srt и vtt, перевод только на английский. Проверено 7 августа 2026 года.
- Модель Whisper из OpenAI, Microsoft Learn — субтитры в реальном времени недоступны. Проверено 7 августа 2026 года.
- How to burn subtitles into video, FFmpeg Wiki — вшивание дорожки в кадр. Проверено 7 августа 2026 года.
Частые вопросы
Как нейросеть делает субтитры?+
Нейросеть для субтитров работает в три этапа. Сначала модель распознавания преобразует звуковую дорожку в текст. Затем алгоритм расставляет тайм-коды для каждой фразы. Наконец, текст нарезается на реплики нужной длины и сохраняется в файл формата SRT или VTT.
Чем отличаются форматы SRT и VTT?+
SRT — простой текстовый файл без оформления, используемый для YouTube, плееров и монтажных программ. VTT — более богатый формат, поддерживающий позицию, выравнивание и размер текста, необходимый для HTML5-видео и веб-плееров. Различия также есть в разделителях миллисекунд: запятая для SRT и точка для VTT.
Почему тайминги субтитров разъезжаются?+
Тайминги субтитров разъезжаются, потому что стандартный Whisper выдаёт границы на уровне реплики, а не слова, и может промахиваться на несколько секунд. Это лечится отдельным шагом выравнивания, например, с помощью фонемной модели wav2vec2 в WhisperX. Также тишина и одновременная речь нескольких людей могут приводить к ошибкам в тайм-кодах.
Можно ли перевести субтитры нейросетью?+
Да, можно перевести субтитры нейросетью, но важно явно запретить ей трогать что-либо, кроме текста реплик. Например, при использовании Gemini 2.5 Pro нужно указать, чтобы номера блоков и тайм-коды копировались без изменений. После автоматического перевода необходимо просмотреть дорожку по репликам, так как их длина может измениться.
Попробуйте прямо сейчас
Без VPN и зарубежных карт — оплата в рублях, первый шаг за минуту.
Попробовать модели в Trackly