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

Транскрибировать аудио в субтитры

Медиа на входеРечь в субтитры

При первом запуске скачивается речевая модель — около 45 МБ для быстрой и 81 МБ для точной, с этого сайта; дальше её кэширует браузер. Ничего не загружается, а транскрипт сделан машиной: вычитайте слова и тайминг, прежде чем публиковать.

Параметры

Два уровня одной модели. Быстрая весит около 45 МБ и расшифровывает примерно вдвое быстрее; точная весит около 81 МБ и лучше справляется с заглавными буквами и пунктуацией. Обе работают здесь, и загрузка происходит один раз на браузер. На длинной записи сначала попробуйте быстрый уровень, чтобы проверить, тот ли язык.

Язык, на котором говорят в записи. Автоматического варианта нет: эта сборка модели не определяет язык, а без выбора предполагает английский. Китайская запись, прочитанная как английская, не падает — она выдаёт беглую бессмыслицу, которую заметить гораздо труднее. Выбирайте язык, который действительно слышите.

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

Страница слушает запись и записывает услышанное субтитрами: одна реплика на предложение, а начало и конец каждой реплики стоят там, где слова действительно звучат. Слушание происходит во вкладке: речевая модель работает на WebAssembly через onnxruntime, файлы модели отдаются с этого сайта, и единственный сетевой трафик — эта загрузка, около 45 МБ для быстрой модели и около 81 МБ для точной, после чего браузер держит их в кэше, а сама запись не отправляется никуда.

На выходе — лучшая догадка машины, а не запись для протокола: неверно услышанные слова остаются неверными, а времена точны примерно до длины фразы, а не до кадра, поэтому результат нужно вычитывать, как первую версию, набранную быстрым человеком, не знающим темы. Запись режется на окна по 30 секунд с перекрытием в 5 секунд, и каждое окно распознаётся отдельно — это позволяет длинные файлы и объясняет, почему отмена срабатывает к началу следующего окна, а не мгновенно. Длинные предложения делятся по границам предложений, а затем по двум пределам: реплика не длиннее семи секунд и не шире 84 знаков, с переносом не более 42 знаков на строку — те же пределы, что задают вещатели, поэтому результат обычно проходит первую проверку на соответствие без правки.

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

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

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

Насколько точны времена по сравнению с субтитрами, сделанными руками?

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

Зачем на странице быстрая модель, если есть точная?

Потому что на длинном файле разница между ними — это разница между ожиданием и отказом от работы. На минуте чистой речи быстрая модель занимает около 3,7 секунды, точная — около 7,5, то есть примерно вдвое дольше за каждую минуту звука. Быстрая ещё и охотнее ставит заглавные буквы и иногда выдумывает знаки препинания; точная ближе к тому, что написал бы человек. Обычный приём — прогнать часовое интервью быстрой моделью, чтобы проверить язык и качество звука, а потом повторить точной, когда файл признан годным.

Что означает «речь не распознана», если я слышу, что там говорят?

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

Можно ли остановить распознавание, которое идёт слишком долго?

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

Сохраняет ли готовый файл субтитров метки говорящих и пунктуацию?

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

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