Конвертируйте субтитры WebVTT в обычный текст
Приведите экспорт .vtt из Zoom, Microsoft Teams, Google Meet или YouTube в читаемую расшифровку. Теги говорящих и метаданные реплик удаляются автоматически, ничего не загружается на сервер.
Ваши файлы никогда не попадают на сервер. Каждое преобразование на этой странице выполняется локально в вашем браузере с помощью JavaScript API FileReader. Ничего не загружается, не регистрируется и не сохраняется. Подходит для конфиденциальных записей Zoom/Teams, ещё не вышедшего видео и юридических интервью.
Как работает конвертация VTT в TXT
WebVTT (Web Video Text Tracks) — это стандартный формат субтитров W3C для видео HTML5, и именно его экспортируют Zoom, Microsoft Teams, Google Meet и YouTube, когда вы скачиваете расшифровку встречи или файл субтитров к видео. Каждый файл .vtt начинается со строки заголовка WEBVTT, за которой следуют реплики с тайм-кодами, где миллисекунды отделены точкой (00:00:03.500, а не запятой, как в SRT). WebVTT также поддерживает более богатые метаданные, чем SRT: настройки реплик вроде align:start position:10% в строке тайм-кода, теги говорящего вроде <v Speaker Name> для обозначения того, кто говорит, и блоки NOTE / STYLE / REGION, которые несут комментарии или CSS-подобное оформление, а не реплики.
Ничего из этого не нужно в обычной текстовой расшифровке. Парсер SubToolDesk читает ваш файл локально через API FileReader браузера, отбрасывает заголовок и блоки метаданных, убирает теги говорящих и оформления и, если вы попросите, собирает оставшиеся реплики в настоящие абзацы.
Пошаговая инструкция
- Экспортируйте или найдите файл субтитров
.vtt(и Zoom, и Teams предлагают опцию «Скачать расшифровку» или «Скачать субтитры» после встречи). - Перетащите его в конвертер выше или вставьте исходный текст VTT в левую панель.
- Убедитесь, что значок формата показывает VTT.
- Оставьте включённым «Удалять теги форматирования», чтобы убрать теги говорящих и настройки реплик.
- Оставьте включённым «Удалять метки говорящих», если субтитры также добавляют имя текстом перед строкой (часто встречается в автоматически сгенерированных расшифровках Teams).
- Нажмите «Копировать» или «Скачать», чтобы получить готовую расшифровку
.txt.
Зачем конвертировать WebVTT в обычный текст
Файл .vtt создан для видеоплеера, а не для чтения человеком. Упрощение его до обычного текста почти всегда связано с тем, что происходит дальше:
- Вставка в заметки встречи или документ проекта, где тайм-коды и теги говорящих — просто шум.
- Передача расшифровки ИИ-суммаризатору или чат-боту, который гораздо лучше воспринимает связный текст, чем сотни двухсекундных фрагментов.
- Публикация обзора в блоге или заметок к выпуску по записанному звонку, вебинару или подкасту.
- Повышение доступности и возможности поиска по видео через текстовую страницу, без публикации отдельного файла субтитров.
- Архивирование расшифровки как читаемой записи, когда исходная запись уже не нужна.
- Отправка расшифровки на перевод или редактуру, где переводчики и редакторы работают со связным текстом, а не с блоками реплик.
До и после: реальный пример
Короткий экспорт в стиле Zoom — с тегами говорящих, настройками реплик, блоком NOTE и всем прочим — конвертированный с включёнными «Объединять в абзацы», «Удалять метки говорящих» и «Удалять теги форматирования» (состояние по умолчанию на этой странице):
WEBVTT NOTE Расшифровка создана Zoom 00:00:01.200 --> 00:00:03.900 align:start position:10% <v Jordan>Всем привет, спасибо, что подключились сегодня к звонку. 00:00:03.900 --> 00:00:06.450 <v Priya>Конечно! Давайте начнём. 00:00:06.450 --> 00:00:09.800 <v Jordan>Отлично, итак, первое в повестке — план на третий квартал.
Всем привет, спасибо, что подключились сегодня к звонку. Конечно! Давайте начнём. Отлично, итак, первое в повестке — план на третий квартал.
Заголовок WEBVTT, блок NOTE, все строки тайм-кодов и настройки реплик, а также оба тега говорящего <v Jordan> исчезли. Осталось только то, что было сказано, собранное в читаемые предложения.
Формат WebVTT подробно
Типичная реплика VTT с несколькими говорящими выглядит так:
00:00:03.500 --> 00:00:06.120 align:start position:10% <v Jordan>Спасибо, что присоединились к сегодняшнему звонку.
В отличие от SRT, начальная строка идентификатора реплики в WebVTT необязательна и может быть любой строкой, а не только последовательным номером. Парсер SubToolDesk определяет строку тайм-кода напрямую (она всегда содержит -->), а не полагается на фиксированный порядок строк, поэтому корректно разбирает файлы как с идентификаторами, так и без них.
Почему это особенно важно для расшифровок встреч
Автоматическое субтитрирование в Zoom и Teams хорошо справляется с тайм-кодами, но экспортированный файл оптимизирован под видеоплеер, а не под читателя. Часовая встреча может породить сотни двухсекундных реплик, каждая из которых — фрагмент предложения с прикреплённым тегом говорящего. Пропустив это через конвертер с включённым объединением в абзацы, вы получаете текст, который можно вставить прямо в заметки встречи, обзор в блоге или запрос для ИИ-суммаризатора, при этом исходная запись или расшифровка ни разу не покидают ваш компьютер.
Откуда на самом деле берутся файлы WebVTT
Помимо видеоконференций, WebVTT — это формат субтитров, который YouTube позволяет скачать для любого видео с субтитрами, формат, который по умолчанию используют большинство сервисов ИИ-расшифровки (включая экспорт OpenAI Whisper), и формат, который требует элемент HTML5 <track> для любого видео с субтитрами, встроенного прямо на веб-странице. Если за последние несколько лет вы скачивали файл субтитров практически откуда угодно в интернете, велика вероятность, что это WebVTT, а не более старый формат SRT — отчасти поэтому важен именно специализированный инструмент очистки, понимающий VTT, а не универсальный скрипт для вырезания текста: универсальные подходы изначально не умеют искать теги говорящих или пропускать блоки NOTE.
Как инструмент работает с расшифровками нескольких говорящих
Инструменты автоматического субтитрирования обозначают говорящих двумя разными способами, иногда даже в одном файле: через нативный тег WebVTT <v Speaker Name> или обычным текстом в начале строки (Jordan: Спасибо, что присоединились.). Переключатель «Удалять теги форматирования» убирает первый вид; «Удалять метки говорящих» — второй. Включив оба одновременно (состояние по умолчанию на этой странице), вы получите расшифровку без следов обоих форматов обозначения, независимо от того, какой из них использовался в исходном файле.
Что этот конвертер сохраняет и что удаляет
Сохраняется:
- Каждое слово произнесённого текста в исходном порядке и с исходной пунктуацией.
- Разбиение на абзацы — либо исходная структура «одна реплика на строку», либо абзацы по предложениям, если включено «Объединять в абзацы».
Удаляется:
- Строка заголовка
WEBVTT. - Блоки метаданных
NOTE,STYLEиREGION. - Строки идентификаторов реплик и все диапазоны тайм-кодов.
- Настройки реплик в строке тайм-кода, такие как
align:start position:10%. - Теги говорящего вроде
<v Speaker Name>, если включено «Удалять теги форматирования». - Текстовые префиксы говорящих вроде
Jordan:, если включено «Удалять метки говорящих».
Частые проблемы и способы их решения
- В результате всё ещё остаются тайм-коды или стрелки
-->: проверьте, что значок формата над конвертером действительно показывает VTT, а не Unknown; сильно обрезанная вставка текста может нарушить определение реплик. - Теги
<v Speaker Name>всё ещё в тексте: включите «Удалять теги форматирования» — оно выключено только в том случае, если вы сами это изменили. - Обычный текст вроде
Jordan:по-прежнему стоит перед строками: это отдельный переключатель, «Удалять метки говорящих», включите и его — он отлавливает другой шаблон, чем удаление тегов говорящего выше. - Расшифровка выглядит как одно предложение на строку, а не связным текстом: включите «Объединять в абзацы».
- Абзацы получаются слишком длинными, без признаков смены говорящего: вместо этого выключите «Объединять в абзацы» и оставьте по одной строке на реплику; после удаления меток говорящих обычный текст никак не может обозначить смену говорящего посреди абзаца.
- Буквы с диакритикой или нелатинский текст отображаются как искажённые символы вроде
é: исходный.vttне был сохранён в кодировке UTF-8; экспортируйте или пересохраните его в UTF-8 и загрузите заново.
Что проверить перед тем, как доверять результату
Автоматически сгенерированные субтитры иногда неверно распознают имена, технические термины или речь с акцентом — это ограничение самой системы субтитрирования, а не то, что может исправить текстовый форматтер. SubToolDesk переформатирует ровно то, что есть в исходном файле; прежде чем использовать расшифровку в чём-то официальном — протоколе встречи или юридическом документе, — стоит быстро сверить панель результата с исходной записью.
Часто задаваемые вопросы
Я экспортировал субтитры из Zoom/Teams. Это сработает?
Да. Zoom, Microsoft Teams, Google Meet и YouTube экспортируют файлы субтитров в формате WebVTT (.vtt), а парсер здесь следует стандартной спецификации WebVTT, которую генерируют эти платформы, включая теги говорящих для каждого участника и метаданные позиционирования.
Что такое теги <v Speaker>, которые я постоянно вижу в файле VTT, и стоит ли их удалять?
Это встроенный в WebVTT способ пометить, кто произнёс реплику, — им пользуются программы экранного чтения и некоторые плееры, чтобы подписывать диалог. Включите «Удалять теги форматирования», чтобы убрать их при конвертации в обычный текст. Как только тайм-код исчезает, от них нет никакой пользы.
В моих субтитрах есть блоки NOTE или STYLE. Попадут ли они в расшифровку?
Нет. Блоки NOTE, STYLE и REGION — это метаданные WebVTT, а не произнесённый текст, и парсер полностью пропускает их ещё до извлечения текста реплик.
Обрабатывает ли инструмент настройки реплик VTT вроде align или position?
Да. Настройки реплик (например, align:start position:10%), следующие за строкой тайм-кода, игнорируются при разборе, поскольку влияют только на положение текста на экране, а не на сам текст реплики.
Можно ли конвертировать файл WebVTT, где используется формат ММ:СС.ммм вместо ЧЧ:ММ:СС.ммм?
Да. WebVTT допускает тайм-коды без компонента часов для коротких файлов, и парсер автоматически приводит оба варианта к единому виду.
Почему моя расшифровка Zoom разбивается на новый фрагмент каждые несколько секунд, даже когда говорящий не меняется?
Zoom расставляет тайм-коды короткими фрагментами независимо от того, сменился ли говорящий, иногда каждые две-три секунды, из-за чего необработанный файл .vtt читается рвано. Именно для исправления этого и создано «Объединять в абзацы»: оно сшивает эти короткие частые фрагменты обратно в полные предложения и абзацы, используя пунктуацию, чтобы найти естественные границы.