Перейти к основному содержимому
SubtitleMatrix

Сканировать субтитры на структурные проблемы

Проверка качестваПолная структурная проверка
Или вставьте текст субтитров

Параметры

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

Длительность — 1000, 1s, 1.5s и 00:00:01,000 подойдут. Это граница между субтитром, который висит достаточно долго, чтобы его прочитали, и тем, который мелькает. Что происходит по другую сторону, зависит от страницы: закрытие промежутков держит короткую реплику на экране дольше, забирая добавленное время из следующего промежутка, чтобы ни одна реплика не накрыла слова следующей (последняя реплика в файле просто удлиняется), а страница проверки перечисляет все реплики короче границы и файл не трогает.

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

В какой частоте кадров считается тайминг. На страницах форматов это то, что нужно MicroDVD: он хранит время в номерах кадров. На страницах частоты кадров это частота, по которой файл был рассчитан, — версия, для которой делались субтитры, — а второе поле страницы принимает частоту видео, с которым вы будете их использовать. Обычные значения: 23,976, 24, 25, 29,97, 30, 50, 59,94 и 60. Ошибка сдвигает весь таймлайн, а на страницах частоты кадров — на коэффициент, а не на фиксированную величину.

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

У каждой проверки свой словарь: пересечения измеряются общими миллисекундами, паузы — пустыми, длительности — двумя заданными пределами, а две проверки порядка дают находки уровня документа, потому что реплика, которую пришлось отсортировать или исправить, не оставляет в файле места, на которое можно указать. Счётчики разделов не складываются в число проблем файла и не должны складываться: одна реплика может быть одновременно короткой, пустой и пересекающейся, и о каждой из этих сторон сообщает та проверка, которая умеет её описать, так что отчёт даёт форму проблем, а не итог. Шапка — часть ответа: в ней имя файла, формат, число реплик, число выполненных проверок и всё, что читателю пришлось исправить по дороге, — таймкод, который не удержался в записанном виде, или реплики, которые пришлось переместить, чтобы файл устоял.

Примеры

Файл с несколькими видами проблем

Субтитры

1
00:00:01,000 --> 00:00:03,000
Where were you?

2
00:00:03,500 --> 00:00:04,000


3
00:00:04,500 --> 00:00:09,000
I was working late.

4
00:00:09,300 --> 00:00:12,000
Until when?

Что находит отчёт

Checks run   6
Cues         4

Overlapping cues — 1 found
Gaps between cues — 2 found
Cue duration outside the limit — 1 found
Cues with no words — 1 found
Cues out of sequence — Nothing found
Cues ending before they start — Nothing found

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

Чистый файл

Субтитры

1
00:00:01,000 --> 00:00:03,000
Where were you?

2
00:00:03,000 --> 00:00:05,000
I was working late.

Что находит отчёт

Checks run   6
Cues         2

Overlapping cues — Nothing found
Gaps between cues — Nothing found
Cue duration outside the limit — Nothing found
Cues with no words — Nothing found
Cues out of sequence — Nothing found
Cues ending before they start — Nothing found

Шесть проверок, шесть пустых разделов. Это ответ, который страница должна давать чаще всего, и только так видно, что «ничего не найдено» печатается для каждой проверки, а не один раз на файл: одна итоговая строка не сказала бы, какие пять проверок были пропущены.

Файл, который читателю пришлось исправлять

Субтитры

1
00:00:09,000 --> 00:00:11,000
I was working late.

2
00:00:01,000 --> 00:00:02,000
Where were you?

3
00:00:05,000 --> 00:00:05,000
Until when?

Что находит отчёт

Lost while reading   Timing × 1, Cue order × 2

Cues out of sequence — 1 found
Cues ending before they start — 1 found
Gaps between cues — 1 found
Cue duration outside the limit — 1 found

Три реплики и три проблемы, одну из которых читателю пришлось исправить до того, как что-либо можно было проверить. Шапка фиксирует обе правки, а миллисекунда, выдуманная для реплики 3, возвращается в разделе длительностей числом, измеренным относительно минимума в одну секунду: один и тот же дефект, описанный в одном отчёте с двух сторон.

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

Какие проверки выполняет эта страница над файлом субтитров?

Шесть: пересекающиеся реплики, паузы длиннее заданного порога, пустые реплики, реплики без слов, реплики, у которых время начала идёт назад, и реплики, чья длительность выходит за заданные минимум и максимум. У каждой свой раздел в отчёте, разделы печатаются всегда в одном порядке, и каждый появляется независимо от того, нашлось что-нибудь или нет.

Зачем чистому разделу место в отчёте?

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

Складываются ли счётчики разделов в число проблем в файле?

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

Какие пределы нужно задать перед запуском?

Два: порог паузы — самую длинную паузу, которую вы готовы принять, — и минимальную длительность реплики, то есть самый короткий допустимый показ. Максимум длительности не обязателен и по умолчанию равен семи секундам. Все три печатаются рядом с каждой находкой, которую они породили, поэтому отчёт говорит, с чем сравнивали, и не заставляет вас помнить числа.

Почему у некоторых находок нет номера реплики и таймкода?

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

Стоит ли пользоваться этой страницей вместо отдельных проверок?

Ею стоит выяснять, что не так, а отдельными страницами — действовать. Каждая из них подробно объясняет один дефект, задаёт свой предел и ведёт к операции, которая чинит именно эту проблему. Сканирование — вход, а не замена шести страниц за ним.

Какие форматы субтитров можно сканировать?

Десять, где хранятся и начало, и конец: SRT, WebVTT, ASS, SSA, SBV, SMI, MicroDVD, TTML, JSON и CSV. LRC и обычный текст не принимаются: четырём из шести проверок нужен конец, а двум другим — модель реплик, так что сканирование этих форматов могло бы вернуть только пустые разделы, которые читались бы как справка о полном здоровье файла.

Можно просканировать целый сериал за один запуск?

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

Похожие инструменты