Об этом проекте
Video-subtitle-extractor (VSE) — это инструмент с открытым исходным кодом для извлечения встроенных (жёстко зашитых) субтитров из видео во внешние файлы субтитров (SRT или TXT). Распространяется под лицензией Apache 2.0, разработан на Python 3.12+ и поддерживает три платформы: Windows, macOS и Linux.
Основной процесс обработки включает: извлечение ключевых кадров из видео, обнаружение положения текста в кадрах, распознавание содержимого текста, фильтрацию не-субтитровых областей, удаление повторяющихся строк субтитров и, наконец, вывод файла субтитров SRT с выровненными временными метками. В проект также входит сопутствующий инструмент video-subtitle-remover (VSR), который можно использовать для удаления водяных знаков, логотипов телеканалов и встроенных субтитров из исходного видео.
Ключевые возможности:
- Полностью локальный OCR, без необходимости запрашивать или вызывать сторонние онлайн-OCR API, такие как Baidu или Alibaba, что обеспечивает лучший контроль над конфиденциальностью и затратами.
- Поддержка GPU-ускорения (CUDA, DirectML, ONNX) и чисто CPU-режима, охватывающая такие аппаратные средства, как NVIDIA, AMD, Intel и Apple Silicon.
- Три режима распознавания: быстрый (лёгкая модель, высокая скорость, но возможны редкие пропуски или ошибки символов), автоматический (автоматический выбор модели на основе оборудования, рекомендуется) и точный (покадровое обнаружение, почти без пропусков, но очень медленно).
- Поддержка извлечения субтитров на 87 языках, включая упрощённый китайский, традиционный китайский, английский, японский, корейский, вьетнамский, арабский, французский, немецкий, русский, испанский, португальский, итальянский и другие.
- Поддержка пакетного извлечения, при этом требуется, чтобы разрешение видео и область субтитров в одном пакете были одинаковыми.
- Предоставляется конфигурация typoMap.json, которая позволяет выполнять замену текста или полное удаление фрагментов в результатах распознавания, например, заменять «威筋» на «威胁» или очищать рекламный текст, такой как «性感荷官在线发牌».
- Предоставляются два способа использования: графический интерфейс (python gui.py) и командная строка (python ./backend/main.py). В GUI можно напрямую выделить область субтитров и запустить одним щелчком.
Что касается развёртывания, проект предоставляет сжатый пакет Release, который можно распаковать и запустить напрямую; для установки из исходного кода необходимо сначала создать виртуальную среду Python, а затем выбрать одну из четырёх сред выполнения — CUDA 11.8 + cuDNN 8.6.0, DirectML, ONNX или CPU — в зависимости от оборудования, и установить соответствующую версию PaddlePaddle 3.3.1 и зависимости. Следует учитывать, что пути к видео и программе не должны содержать китайские символы или пробелы, иначе могут возникнуть непредвиденные ошибки; для видеокарт NVIDIA серии 50, поскольку Paddle 3.3.1 ещё не поддерживает CUDA 12.8, рекомендуется использовать универсальную версию DirectML.
Проект также поддерживает несколько QQ-групп для общения и ответов на вопросы, а также поощряет пользователей оставлять предложения по улучшению в Issues и Discussions. В целом, он позиционируется как локальный инструмент извлечения встроенных субтитров для индивидуальных пользователей и любителей субтитров, подходящий для восстановления редактируемых внешних субтитров для видео без субтитров или с встроенными субтитрами.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.