speech-recognition
Войти
Практика

· 14 минут чтения

Что такое SRT и как создать файл субтитров

Площадка просит файл субтитров, монтажёр прислал ролик вместе с .srt, а в плеере появилась кнопка «Субтитры» — за всем этим обычно стоит один и тот же простой формат. Разбираемся, что внутри SRT, как создать его вручную и автоматически и что проверить, — на настоящем файле, который мы выгрузили из Speech Recognition.

Обложка статьи «Что такое SRT и как создать файл субтитров»

Коротко: что такое SRT и как его создать

SRT (SubRip Subtitle) — текстовый формат субтитров: для каждой реплики записаны номер, время появления и исчезновения на экране и сам текст. Файлы .srt читают многие плееры, видеоредакторы и видеоплатформы. Набрать его можно вручную, но для длинного ролика быстрее распознать речь, а потом проверить.

Наш 12-минутный ролик дал SRT на 211 реплик. В 72 местах, где мы сверили начало реплики с началом речи, расхождение не превысило 0,3 секунды, но примерно каждое 17-е слово распознано с ошибкой. Автоматический SRT — черновик для вычитки.

Видео или аудио → файл SRT

Видео или аудио

Распознавание речи

Текст + время начала и конца фраз

Нарезка на реплики субтитров

Файл .srt

Проверка — и в плеер, на площадку или в видеоредактор

Как выглядит файл SRT

Реплика из файла, выгруженного сервисом, строка за строкой:

Строка файлаЧто означает
85Порядковый номер реплики. Нумерация идёт подряд, с единицы
00:05:01,570 --> 00:05:06,177Когда показать и убрать текст: часы:минуты:секунды,миллисекунды
Как только ЖКХ включает отопление,Текст, который увидит зритель
в квартире начинается пустыня.Вторая строка той же реплики
(пустая строка)Конец реплики, дальше начинается № 86
Реплика № 85 из нашего файла: «жэ ка ха» по буквам распознано верно

Миллисекунды отделяются запятой, а не точкой — примета именно SRT. Заголовка, стилей и подписей спикеров в файле из сервиса нет: только такие блоки, 211 штук.

Фрагмент файла «Как_подготовить_комнатные_растения_к_зиме.srt», реплики с 83 по 89: «83, 00:04:53,892 --> 00:04:58,599, Коротко, реже, но основательно.»; «84, 00:04:58,599 --> 00:05:00,882, Пункт третий. Тепло и батареи.»; «85, 00:05:01,570 --> 00:05:06,177, Как только ЖКХ включает отопление, в квартире начинается пустыня.»; далее реплики 86–89, последняя — «тропических растений зимой от 18 до 22 градусов.»
Выгруженный SRT, открытый как обычный текст

Зачем нужны тайм-коды в SRT

Фраза «Как только ЖКХ включает отопление» сама по себе не говорит плееру, когда её показать и сколько держать. SRT привязывает текст к участку времени: реплику № 85 вывести на 5:01,570 и убрать на 5:06,177.

Тайм-код в SRT — техническая метка «показать / скрыть». Тайм-коды как оглавление ролика устроены иначе — о них статья как сделать тайм-коды для видео и выделить главы.

Где используется формат SRT

SRT нужен там, где текст должен идти вместе с речью:

  • ролики на видеохостингах и в соцсетях;
  • онлайн-курсы, вебинары, интервью, видеоподкасты;
  • видеоредакторы — файл добавляют дорожкой при монтаже;
  • медиаплееры с поддержкой внешних субтитров;
  • архив речи с привязкой ко времени.

Чем SRT отличается от обычного текстового файла

TXTSRT
Содержит текстСодержит текст и тайм-коды
Нет обязательной структуры репликРеплики разделены на блоки
Плеер не знает, когда показывать текстДля каждого блока задано время
Подходит для чтения текстаПредназначен в том числе для субтитров

В нашей TXT-выгрузке после саммари идут 17 абзацев вида «Ведущий [4:28]:» — одна метка примерно на 40–50 секунд речи. В SRT та же речь — 211 реплик по 0,35–7 секунд, у каждой начало и конец до миллисекунды.

Фраза «Пункт третий. Тепло и батареи.» в TXT спрятана посреди абзаца, начатого на полминуты раньше. В SRT это реплика № 84 со своим окном 00:04:58,599 — 00:05:00,882.

Слева файл «Как_подготовить_комнатные_растения_к_зиме.txt»: абзац «Ведущий [4:28]:», внутри которого подсвечена фраза «Пункт третий. Тепло и батареи.»; справа тот же фрагмент в «Как_подготовить_комнатные_растения_к_зиме.srt» — реплики с 77 по 86 с интервалами от 00:04:28,721 до 00:05:11,051, фраза «Пункт третий. Тепло и батареи.» подсвечена в реплике 84 с интервалом 00:04:58,599 --> 00:05:00,882
В TXT метка только у начала абзаца, в SRT у каждой фразы своё время

Если нужна просто расшифровка — хватит текстового документа: например, перевести видео в текст и скачать TXT или Word. Если текст должен появляться синхронно с видео — нужен формат субтитров, например SRT.

Как создать SRT-файл вручную

  1. Создайте текстовый файл в любом редакторе простого текста, хоть в «Блокноте».
  2. Поставьте номер реплики: 1, дальше по порядку, каждая — отдельным блоком.
  3. Строкой ниже — время: 00:00:10,000 --> 00:00:14,500. Часы, минуты, секунды по две цифры, миллисекунды — три после запятой.
  4. Ещё ниже — текст, одна-две строки.
  5. Пустая строка — и следующий блок.
  6. Сохраните файл с расширением .srt, например video-subtitles.srt, в кодировке UTF-8.

Стандарта кодировки у SRT нет, но для русского текста UTF-8 — самый практичный выбор: YouTube принимает SRT только в ней, FFmpeg читает её по умолчанию. Speech Recognition тоже выгружает UTF-8.

Почему вручную делать SRT для длинного видео неудобно

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

Как автоматически создать SRT из видео или аудио

Распознавание речи определяет, что сказано и когда: у каждого отрезка текста есть начало и конец (откуда берутся тайм-коды). Остаётся нарезать текст на реплики и записать в SRT.

Больше всего это экономит на лекциях, интервью, вебинарах, записях встреч и видеоподкастах. В Speech Recognition можно создать субтитры из видео и скачать их файлом SRT.

Сервис режет реплики по фразам: не больше двух строк по 42 знака и не дольше 7 секунд, короткие фразы подряд может склеить. В нашем файле ни одна реплика эти рамки не нарушила.

Как создать SRT в Speech Recognition

Чтобы получить SRT из аудио или видео:

  1. Загрузите видео или аудио файлом (mp4, mov, mkv, webm, mp3 и др.) или по ссылке: Яндекс.Диск, YouTube, VK Видео, МТС Линк. Первые 45 минут бесплатно.
  2. Дождитесь распознавания: наш ролик был готов за 1 мин 28 с.
  3. Проверьте текст во вкладке «По ролям»: клик по реплике перематывает плеер. Исходник хранится 7 дней — спорное переслушайте сразу.
  4. Исправьте ошибки кнопкой «Редактировать». Делить реплики и двигать тайминги в интерфейсе нельзя.
  5. Выгрузите файл: «Скачать» → «Субтитры (.srt)». VTT и ASS сервис не выгружает, на странице «Поделиться» — только TXT и PDF.

Мы исправили три места: «Мохортов» на «Мухортов» и дважды «Цвет» на «Свет». В новом SRT изменились ровно три строки текста, номера и все 211 таймингов остались прежними. Правка попала и в TXT.

Режим редактирования во вкладке «По ролям»: поле «Имена спикеров» с ролью «Ведущий» для SPEAKER_00, кнопки «Отмена» и «Сохранить»; два блока с метками 0:00 и 0:42; в первом уже исправлено «Всеволод Мухортов», во втором выделено слово «Свет» во фразе «Я разбил все на 6 пунктов. Свет, полив, тепло, влажность, подкормка с пересадкой и вредители. Поехали! Пункт 1. Свет.»
Правим фамилию и «Свет» до выгрузки

«Мохотов» в прощальной реплике № 209 мы нарочно не трогали: одна правка — одно место. Другие вхождения ищите через поле «Поиск по расшифровке» по основе слова, например «Мох».

На кадре ниже субтитры подключены к ролику в браузерном плеере отдельной дорожкой: тег <track> читает WebVTT, поэтому SRT перевели в VTT командой FFmpeg. Сервис субтитры в видео не вшивает.

Кадр ролика в браузерном видеоплеере на 0:52 из 12:38: слайд «Зимний сад на пятом этаже. Пункт первый. Свет. Окно, чистое стекло, фитолампа» и однострочный субтитр «Пункт 1. Свет.»; внизу панель плеера
Правка дошла до субтитров: «Свет» совпадает со слайдом

Нужно ли проверять автоматически созданные субтитры

Да. Ошибка распознавания попадает в субтитры один в один. В нашем SRT до правок доля ошибок в словах — 6,0% (без регистра и пунктуации, «ё» = «е», числа цифрами засчитаны; что это значит — в статье «Что такое WER»). Ошибки есть в 62 репликах из 211.

Из семи главных ловушек верно — три, частично — три, неверно — одна:

Что сказаноЧто в SRT до правокИтог
«жэ ка ха» по буквам«ЖКХ» (№ 85)Верно
«пролить, а не полить»Сохранено в трёх репликахВерно
«от восемнадцати до двадцати двух градусов», «трёх тысяч люкс»«от 18 до 22 градусов», «3000 люкс»Верно по значению
фитолампа «Лучевица»«эта лампа / лучевица» (№ 35)Частично
«фулл спектр»«фулл спектра» (№ 36)Частично
фаленопсис, дваждыВерно в № 146, «линопсис» в № 153Частично
Всеволод Мухортов, дважды«Мохортов» в № 1, «Мохотов» в № 209Неверно
Косая черта — перенос строки внутри реплики

Неожиданная зона риска — короткие заголовки после паузы: в 4 из 6 названий пунктов главное слово неверно — «Цвет», «Полев», «Важность», «Ведители». А это самые заметные субтитры, они совпадают со слайдом. Возможно, отчасти виноват синтезатор.

Проверяйте прежде всего:

  • имена, фамилии, названия — почему нейросеть в них ошибается;
  • термины, иностранные слова, аббревиатуры: «pH» у нас стал «PRH»;
  • числа и пунктуацию;
  • короткие ответы: «Сухо? Поливаем. Влажно? Ждём.» стало «Сова. Поливаем. Важно?» и «Взем.» (№ 59–60);
  • одновременную и плохо записанную речь.

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

Что делает субтитры удобными для чтения

Правильный файл ещё не значит удобные субтитры. Четыре предложения на три секунды или фраза, разрезанная посреди словосочетания, мешают сильнее опечатки. Принципы:

  • текст успевает прочитаться;
  • реплика не длиннее двух строк;
  • разрывы по смыслу: число не отрывается от единицы, предлог — от слова;
  • текст соответствует речи и появляется вместе с ней.

Наш файл близок к этим рамкам: медиана — 14,2 знака в секунду, быстрее 17 — 5 реплик из 211. Предложение в 34 слова разрезано на четыре реплики:

№ВремяТекст
15200:09:07,654 --> 00:09:09,800Так что если у вас на окне строится
15300:09:09,800 --> 00:09:12,899линопсис с цветоносом / или декабрист с бутонами,
15400:09:12,899 --> 00:09:16,893не переносите их с места на место / и не разворачивайте к свету,
15500:09:16,893 --> 00:09:19,675иначе они сбросят бутоны за пару дней.
Два разреза из трёх — по запятым, первый отрывает подлежащее от сказуемого. А сказано было «стоит фаленопсис». Косая черта — перенос строки

Есть и неудачи. В № 65 «…я беру полтора», а «литра воды» — уже в № 66. Реплика «Взем.» (№ 60) мелькает 0,35 секунды, и в ней ошибка: сказано «Ждём». Формально файл корректен, читать неудобно; разрезы правят в самом файле.

Что делать, если субтитры отстают или появляются раньше речи

Сначала определите тип сдвига:

  • Глобальный — все реплики смещены одинаково, скажем на две секунды. Съехала вся шкала: к видео добавили заставку или обрезали начало. Помогает сдвиг всех меток на одну величину.
  • Локальный — расходится отдельный участок, обычно из-за монтажа внутри ролика. Править нужно только его.

У нас реплика появлялась почти одновременно с речью: типичное расхождение — 0,07 секунды в ту или другую сторону, максимальное — 0,29 секунды (сверяли начала 72 реплик). Одна особенность: перед каждой из семи пауз последняя фраза держится на экране на 2,1–2,5 секунды дольше речи. Это не ошибка, но при проверке заметно.

Можно ли редактировать SRT-файл вручную

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

Например, перенесите «полтора» из № 65 в № 66 — время можно не трогать. Добавили или удалили реплику — перенумеруйте блоки. Сохраните снова как .srt в UTF-8. А слова удобнее исправить ещё в сервисе: время фраз из распознавания сохранится.

Чем открыть файл SRT

  • Посмотреть или исправить текст — текстовым редактором или редактором субтитров.
  • Увидеть субтитры с видео — в плеере с поддержкой внешних субтитров или в видеоредакторе.

Вместо кириллицы непонятные знаки — выберите кодировку UTF-8. Для плеера в браузере (тег <track>) SRT переводят в WebVTT.

Чем SRT отличается от других форматов субтитров

ФорматОсновная особенностьЧто внутри
SRTПростота и широкая совместимостьНомер, время 00:00:00,000, текст
VTT (WebVTT)Ориентирован на вебСтрока WEBVTT в начале, миллисекунды через точку, положение и стили
ASS/SSAРасширенные возможности оформленияШрифты, цвета, положение, караоке; время в сотых секунды

WebVTT вырос из SRT (так сказано в его спецификации), и одно переводится в другое почти механически. ASS выбирают ради оформления; в списке форматов YouTube его нет.

SRT и встроенные субтитры — в чём разница

Что сравниваемОтдельный файл SRTВшитые субтитры
Где текстВ отдельном файле или дорожкеВ самом изображении
ВыключитьМожно, если плеер это поддерживаетНельзя
Исправить опечаткуПоправить файл и загрузить зановоЗаново смонтировать видео

Speech Recognition создаёт файл субтитров и в видео их не вшивает. Вшить SRT можно в видеоредакторе или, например, фильтром subtitles в FFmpeg.

Можно ли создать SRT только из аудио

Да. Нужны речь и временная шкала, картинка не обязательна: MP3, WAV или другое аудио → распознавание → текст со временем → SRT.

Условие одно: шкала аудио должна совпадать с видео. Если у ролика заставка, которой нет в аудио, все реплики уедут на её длину.

Как проверить SRT перед публикацией

Чек-лист перед публикацией SRT

Файл
  • Файл открывается, расширение именно .srt

  • Кириллица читается, кодировка UTF-8

  • Реплики идут по порядку, нумерация без пропусков

  • Время в формате 00:00:00,000

Текст
  • Имена, фамилии и термины проверены во всех местах

  • Критичные ошибки распознавания исправлены

  • Нет пропущенных фрагментов речи

  • Реплики удобно читать

Синхронизация
  • Субтитры идут с речью в начале, середине и конце

  • SRT сделан по финальной версии видео

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

Пример: создаём SRT из реального видео

Шаг 1. Загружаем видео

Загрузили mp4 на 12:38, настройки по умолчанию.

Шаг 2. Получаем расшифровку

Через 1 мин 28 с карточка готова. Говорящего сервис определил одного и назвал «Ведущий» — верно.

Карточка расшифровки в Speech Recognition: файл «Как_подготовить_комнатные_растения_к_зиме.mp4», режим «По ролям + саммари», 12 мин 39 сек, списано 13 мин; аудиоплеер 0:00 / 12:38; вкладки «Текст», «По ролям», «Саммари», «Вопросы» и кнопки «Поделиться», «Причесать», «Редактировать», «Скачать»; поиск по расшифровке; текст начинается словами «Привет, с вами Всеволод Мохортов, и это канал «Зимний сад» на пятом этаже», во втором абзаце — «Я разбил все на 6 пунктов. Цвет, полив, тепло, влажность… Пункт 1. Цвет.»
Уже в первых абзацах «Мохортов» и «Цвет» вместо «Свет»

Шаг 3. Проверяем сложные места

Три ошибки из первых абзацев исправили в редакторе, остальные оставили.

Шаг 4. Выгружаем SRT

Имя файла — как у загруженного, с расширением .srt. Утилита ffprobe из FFmpeg опознала его как SubRip.

Открытое меню кнопки «Скачать» в карточке расшифровки: пункты «PDF (.pdf)», «Word (.docx)», «Текст (.txt)» и «Субтитры (.srt)»; слева вкладки «Текст», «По ролям», «Саммари», «Вопросы», кнопки «Поделиться», «Причесать», «Редактировать» и начало текста расшифровки
SRT — в том же меню «Скачать», что PDF, Word и TXT

Шаг 5. Открываем файл

Структура та же, что в начале статьи. Ошибки распознавания на месте: в № 86 «подопонником».

Шаг 6. Подключаем к видео

Перевели SRT в VTT и подключили в браузерном плеере. Реплика № 85 появилась вместе с речью. На видеохостингах и в видеоредакторах файл мы не проверяли.

Кадр ролика в браузерном видеоплеере на 5:03 из 12:38: слайд «Зимний сад на пятом этаже. Пункт третий. Тепло и батареи. Холодный подоконник, батарея, сквозняки» и субтитр в две строки «Как только ЖКХ включает отопление, в квартире начинается пустыня.»; внизу панель плеера
SRT отдельной дорожкой: реплика № 85 появляется вместе с речью

Частые ошибки при создании SRT

  • Неверное время: точка вместо запятой, пропущенные часы, стрелка из одного дефиса.
  • Нет пустой строки между блоками: программа может склеить реплики или не прочитать файл.
  • Двойное расширение: subtitles.srt.txt вместо subtitles.srt.
  • Не та кодировка: вместо кириллицы — набор знаков.
  • Тайм-коды от другой версии видео: ролик перемонтировали после субтитров.
  • Непроверенная расшифровка: ошибка уходит в субтитры, как «Мохотов» в нашем прощании (№ 209).

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

SubRip Subtitle — по названию программы SubRip. Это текстовый формат субтитров с временными метками.

Нумерованные блоки: номер, время «начало --> конец», одна-две строки текста и пустая строка. В нашем файле на 12:38 их 211.

Да, SRT — обычный текстовый файл. Если вместо русских букв видны непонятные знаки, откройте его в кодировке UTF-8.

Да: распознавание речи даёт текст и время фраз, из них собирается файл. У нас реплики появлялись не дальше 0,3 секунды от начала речи (сверили 72 из 211), но ошибки в словах остались — файл нужно вычитать.

Да, если сервис принимает этот формат и сохраняет привязку ко времени. Шкала аудио должна совпадать с роликом, к которому вы подключите файл.

TXT хранит только текст, SRT привязывает каждую реплику к интервалу времени. У нас в TXT одна метка примерно на 45 секунд речи, в SRT своё время у каждой из 211 реплик.

Да, в текстовом редакторе, сохраняя структуру блоков. В Speech Recognition слова удобнее поправить до выгрузки — время фраз сохранится.

Тайм-коды относятся к версии видео, по которой делали субтитры. Если что-то вырезали или добавили заставку, реплики сдвинутся. Делайте SRT по финальному монтажу.

В обиходе «SRT-субтитры» — это файл субтитров в формате SRT. В нём только текст и время показа, видео и звука внутри нет.


Сделать субтитры SRT из видео

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

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

Все статьи