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

Редактор текста с таймингом

Медиа на входеРедактор текста с таймингом

Текст песни

Пустые строки отбрасываются. Строка, уже начинающаяся с [мм:сс.хх], сохраняет это время.

Перетащите аудиофайл, вставьте текст, затем нажмите воспроизведение и ставьте метку в начале каждой строки. Из этой вкладки ничего не уходит.

Сдвинуть все размеченные строки

Экспортированный .lrc

Строка появится здесь, когда у неё будет время.

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

Клавиши

  • K или пробел — воспроизведение / пауза
  • Стрелка влево / вправо — на 5 секунд назад / вперёд
  • R — поставить метку и перейти к следующей строке
  • T — вставить строку после этой
  • Delete — убрать время этой строки
  • Стрелка вверх / вниз — к предыдущей / следующей строке

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

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

Четыре операции покрывают то, что действительно идёт не так при разметке: поставить метку, снять метку, вставить забытую строку и сдвинуть все размеченные строки на одно и то же число миллисекунд, — и сдвиг сохраняет взаимные расстояния, останавливаясь на нуле вместо отрицательного таймкода, которого плееры не читают. Модель времени — та же, что у самого LRC: строка длится до начала следующей, а последней даются две секунды, и при экспорте в .srt концы берутся оттуда же, откуда их берёт конвертация .lrc, поэтому оба пути дают один таймлайн; точность .lrc — сотые доли секунды, поэтому метка в 12,346 секунды записывается как 12,34, и перечитанный файл может отличаться от редактора на несколько миллисекунд; аудиофайл открывается встроенным в браузер звуковым элементом и никогда не читается, не разбирается и не загружается этой страницей; черновик списка строк хранится в локальном хранилище браузера, чтобы случайная перезагрузка не стоила сессии работы, а очистка данных сайта удаляет его.

Примеры

Обычный текст песни, размеченный за один проход

Текст песни

First line of the song
Second line of the song
Third line of the song

Экспортированный .lrc

[00:12.00]First line of the song
[00:15.30]Second line of the song
[00:18.75]Third line of the song

Каждая размеченная строка — одна реплика. Экспорт .lrc пишет сотые доли секунды, поэтому 18,75 секунды — ровно то, что записало нажатие; метка в 18,754 была бы записана как 18,75.

Повторная разметка готового .lrc

Текст песни

[00:12.00]First line of the song
[00:14.00]Second line of the song
Third line of the song

Экспортированный .lrc

[00:12.00]First line of the song
[00:14.00]Second line of the song
[00:17.75]Third line of the song

Вставка .lrc сохраняет времена, которые в нём уже есть. Третья строка пришла без метки, оставалась неразмеченной, пока её не проиграли, и получила метку на 17,75 секунды.

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

Попадут ли в .lrc строки, которые я ещё не разметил?

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

Как долго последняя строка текста держится на экране в экспорте .srt?

Две секунды после своего начала. У .lrc времени конца нет вовсе — строка длится до начала следующей, — поэтому последней строке не от кого унаследовать конец. Две секунды — та же ширина, которую сайт использует для любого формата без времени конца, поэтому экспорт .srt из этого редактора и конвертация .lrc в SRT дают одинаковый таймлайн для одинаковых меток. Если песня действительно держит последнюю строку восемь секунд, сдвиг или правка длительности потом будут честнее, чем догадка, спрятанная в экспортере.

Что будет, если сдвинуть таймлайн назад за первую строку?

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

Можно вставить готовый .lrc и исправить только неверные строки?

Да, ради этого редактор и читает метки LRC при вставке. Строки, у которых уже есть тег [mm:ss.xx], сохраняют время; текст после тега — то, что вы правите; строка без тега начинается неразмеченной. Строки метаданных вроде [ti:], [ar:] и [offset:] при импорте игнорируются, а не считаются текстом песни, потому что их никто не поёт. Если у строки несколько тегов, берётся первый: модель редактора — одно время начала на строку.

Загружается ли аудиофайл, чтобы страница узнала длительность или построила волну?

Нет, и волны тоже нет. Аудио проигрывает встроенный в браузер звуковой элемент из локального файла; страница никогда не читает его байты, не декодирует его и не отправляет запрос с ним. Метки берутся из текущей позиции воспроизведения в момент нажатия клавиши — то же число, которое дала бы волна. Декодирование полного трека ради волны стоило бы памяти и времени, не улучшая метку.

Почему экспортированный .lrc отличается от редактора на несколько миллисекунд?

Потому что .lrc записывает сотые доли секунды, а редактор хранит целые миллисекунды. Метка в 12,346 секунды записывается как [00:12.34] — округление до ближайшей сотой, а не отбрасывание. Чтение файла обратно даёт 12,340 секунды, то есть разница не больше пяти миллисекунд на строку, много меньше того, что умеет показать плеер. Если нужна точная метка, экспортируйте .srt: он несёт миллисекунды, и обе файла строятся из одной и той же модели реплик.

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