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

Удалить таймкоды из текста субтитров

Текст и оформлениеЗамена по регулярному выражению
Или вставьте текст субтитров

Параметры

Регулярное выражение, сопоставляемое с текстом каждой реплики. Каждое совпадение заменяется. Две страницы этого раздела делят поле: одна открывает его пустым для вашего готового шаблона, другая начинает с шаблона, который можно править.

Чем становится каждое совпадение. Оставьте пустым, чтобы удалить все совпадения. В отличие от страницы буквальной замены, знак доллара здесь особенный: $1 — первая группа в скобках, $& — всё совпадение, $$ — буквальный доллар.

Буквы, с которыми компилируется шаблон. g и u включены по умолчанию: u заставляет читать текст по символам, а не по единицам кода, — именно поэтому \p{L} и подобные работают как заявлено. Добавьте i, чтобы игнорировать регистр, m — для якорей строк, s — чтобы точка совпадала с переносом строки. Очистите поле, чтобы компилировать без флагов. Любая другая буква отклоняется, а не игнорируется: шаблон, запущенный с флагами, которых вы не просили, тихо означает другое.

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

Эта страница удаляет отпечатки времени, напечатанные внутри текста реплики: [00:00:01], [00:01:02.500] и подобные, которые несут расшифровки, экспорт автосубтитров и черновые монтажи. Вместе с отпечатком уходят окружающие скобки и пробел после него, а время самой реплики, её номер и порядок не меняются. Страница намеренно не удаляет всё в скобках: звуковые пометки вроде [door slams] или (music) остаются, потому что это неречевая информация, которую обязана нести дорожка для слабослышащих.

Время суток 10:30 и кадровый таймкод 12:34:56:07 тоже остаются: у первого нет секунд, у второго четыре части, и оба не являются отметкой внутри записи. Шаблон в поле можно изменить; по краям стоят проверки, запрещающие начинать совпадение с середины более длинного числа, а реплика, целиком состоявшая из отпечатка, не удаляется — в ней просто не остаётся текста.

Примеры

Расшифровка с моментом каждой строки

Вход

[00:00:01] We should go.
[00:00:05] The train leaves at 10:30.

Выход

We should go.
The train leaves at 10:30.

Оба отпечатка уходят вместе со скобками и пробелом после них. Вторая строка важнее первой: 10:30 — время суток из двух частей без секунд, поэтому оно остаётся на месте. Именно ради этого различия страница работает шаблоном, а не удаляет всё в скобках.

Отпечатки внутри настоящего файла субтитров

Вход

1
00:00:01,000 --> 00:00:04,000
[00:00:12] (phone rings)

2
00:00:05,000 --> 00:00:08,000
(00:01:02.500) So I said yes.

Выход

1
00:00:01,000 --> 00:00:04,000
(phone rings)

2
00:00:05,000 --> 00:00:08,000
So I said yes.

Квадратные скобки, круглые скобки и миллисекунды — всё это одно правило. Звуковая пометка и фраза начинаются с левого края, а таймкоды реплик в начале блоков не тронуты, потому что это таймлайн файла, а не текст.

Всё, что похоже на отпечаток времени, но им не является

Вход

1
00:00:01,000 --> 00:00:04,000
SMPTE 12:34:56:07 and a ratio of 1:2:3 here.

2
00:00:05,000 --> 00:00:08,000
Call me at 10:30.

Выход

1
00:00:01,000 --> 00:00:04,000
SMPTE 12:34:56:07 and a ratio of 1:2:3 here.

2
00:00:05,000 --> 00:00:08,000
Call me at 10:30.

Файл возвращается байт в байт, и в этом весь смысл. Кадровый таймкод, пропорция и время суток без секунд остаются как были; кадровый случай самый острый, потому что шаблон без передней проверки начал бы с середины и съел 34:56:07, оставив строку «SMPTE 12:».

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

Меняются ли таймкоды реплик при удалении отпечатков времени?

Нет. Страница правит только слова на экране, а время начала и конца, номера и порядок реплик приходят обратно нетронутыми. Отметки вида [mm:ss.xx] в LRC — это собственный тайминг формата, а не текст, поэтому они тоже не трогаются.

Почему время вида 10:30 остаётся в тексте?

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

Удалит ли страница кадровый таймкод вроде 12:34:56:07?

Нет, и именно вокруг этого случая написан шаблон. Обе его стороны проверяют соседний символ: если перед кандидатом или после него стоит цифра либо двоеточие, кандидат считается частью более длинного числа и остаётся на месте. Без этой проверки движок начал бы с середины и съел 34:56:07, превратив строку в «SMPTE 12:» — правдоподобную на вид потерю информации.

Почему звуковые пометки вроде [door slams] уцелели?

Потому что это не отпечатки времени. Шаблон, который ищет [00:01:23], не имеет причин трогать [door slams], и это сделано намеренно: неречевая информация — главная задача дорожки для слабослышащих, а файлы с напечатанными отпечатками часто несут и её. Если нужно удалить любую пару скобок как класс, для этого есть отдельная страница.

Можно ли изменить шаблон под свой формат отпечатков?

Да, поле редактируемое и принимает полноценное регулярное выражение, поэтому сюда переносится всё с общей страницы регулярных замен. Стоит сохранить группу скобок, пробел после отпечатка и обе защитные проверки: без них более длинное число можно разрезать пополам. Если ваши отпечатки записаны как MM:SS без часов, уберите из шаблона группу часов.

Что происходит с репликой, которая состояла только из отпечатка времени?

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

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