Гайды

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

Изображение демонстрирует процесс создания субтитров нейросетью: звуковая волна преобразуется в текст с тайм-кодами и нарезается на реплики для видео.

Коротко

Нейросеть для субтитров выполняет три шага: распознавание речи, расстановку тайм-кодов и нарезку текста в форматы SRT или VTT. Основные ошибки возникают на этапе таймингов, которые можно исправить с помощью фонемных моделей, таких как wav2vec2 в WhisperX. При переводе важно сохранять структуру файла и проверять длину реплик, так как автоматика не учитывает изменения объёма текста.

Содержание
  1. Что делает нейросеть для субтитров?
  2. Как устроен файл субтитров?
  3. SRT или VTT: что выбрать под площадку?
  4. Почему тайминги разъезжаются и как это чинят?
  5. Как перевести дорожку, не сломав тайм-коды?
  6. Вшивать субтитры в кадр или отдавать файлом?
  7. Где нейросети чаще всего ошибаются в субтитрах?
  8. Субтитры, транскрибация и озвучка: в чём разница?
  9. Источники

Что делает нейросеть для субтитров?

Нейросеть делает три разные вещи подряд, и путать их не стоит. Сначала модель распознавания превращает звуковую дорожку в слова. Потом алгоритм расставляет тайм-коды: когда какая фраза появляется и когда исчезает. И только третьим шагом текст режут на реплики нужной длины и сохраняют в файл формата 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 и WebVTT с настройками положения реплик

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 года.
Поделиться: TelegramVKWhatsApp

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

Как нейросеть делает субтитры?+

Нейросеть для субтитров работает в три этапа. Сначала модель распознавания преобразует звуковую дорожку в текст. Затем алгоритм расставляет тайм-коды для каждой фразы. Наконец, текст нарезается на реплики нужной длины и сохраняется в файл формата SRT или VTT.

Чем отличаются форматы SRT и VTT?+

SRT — простой текстовый файл без оформления, используемый для YouTube, плееров и монтажных программ. VTT — более богатый формат, поддерживающий позицию, выравнивание и размер текста, необходимый для HTML5-видео и веб-плееров. Различия также есть в разделителях миллисекунд: запятая для SRT и точка для VTT.

Почему тайминги субтитров разъезжаются?+

Тайминги субтитров разъезжаются, потому что стандартный Whisper выдаёт границы на уровне реплики, а не слова, и может промахиваться на несколько секунд. Это лечится отдельным шагом выравнивания, например, с помощью фонемной модели wav2vec2 в WhisperX. Также тишина и одновременная речь нескольких людей могут приводить к ошибкам в тайм-кодах.

Можно ли перевести субтитры нейросетью?+

Да, можно перевести субтитры нейросетью, но важно явно запретить ей трогать что-либо, кроме текста реплик. Например, при использовании Gemini 2.5 Pro нужно указать, чтобы номера блоков и тайм-коды копировались без изменений. После автоматического перевода необходимо просмотреть дорожку по репликам, так как их длина может измениться.

Попробуйте прямо сейчас

Без VPN и зарубежных карт — оплата в рублях, первый шаг за минуту.

Попробовать модели в Trackly