Об этом проекте

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. В целом, он позиционируется как локальный инструмент извлечения встроенных субтитров для индивидуальных пользователей и любителей субтитров, подходящий для восстановления редактируемых внешних субтитров для видео без субтитров или с встроенными субтитрами.