YaoFANGUK / video-subtitle-extractor

视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容提取。A GUI tool for extracting hard-coded subtitle (hardsub) from videos and generating srt files.
Apache License 2.0
6.19k stars 675 forks source link
deep-learning extract hardsub ocr ripper srt subrip subtitles

简体中文 | English

项目简介

License python version support os

Video-subtitle-extractor (VSE) 是一款将视频中的硬字幕提取为外挂字幕文件(srt格式)的软件。 主要实现了以下功能:

请优先使用快速/自动模式,如果前两种模式存在较多丢字幕轴情况时,再使用精准模式

demo.png

项目特色

使用说明

{
    "l'm": "I'm",
    "l just": "I just",
    "Let'sqo": "Let's go",
    "Iife": "life",
    "威筋": "威胁",
    "性感荷官在线发牌": ""
}

这样就可以把文本中出现的所有“威筋”替换为“威胁”,所有的“性感荷官在线发牌”文本删除

下载地址

推荐使用,启动速度较快

双击直接运行,每次打开时会有一点慢,若出现误报毒,使用绿色版

仅供具有Nvidia显卡的用户使用(AMD的显卡不行),提取速度非常快

PS: 若无法下载,请前往 Release 下载

有任何改进意见请在ISSUES和DISCUSSION中提出

演示

demo.gif

GPU版本安装教程

在线运行

PS: Google Colab只能运行CLI版本

源码使用说明

1. 下载安装Miniconda

2. 创建并激活虚机环境

(1)切换到源码所在目录:

cd <源码所在目录>

例如:如果你的源代码放在D盘的tools文件下,并且源代码的文件夹名为video-subtitle-extractor,就输入 cd D:/tools/video-subtitle-extractor-main

(2)创建激活conda环境

conda create -n videoEnv python=3.12
conda activate videoEnv

3. 安装依赖文件

请确保你已经安装 python 3.12+,使用conda创建项目虚拟环境并激活环境 (建议创建虚拟环境运行,以免后续出现问题)

请确保有拥有Nvidia的显卡,30系列以上的显卡驱动可能不支持 cuda 11.2及以下版本的安装

如果安装cuda 10.2,请对应安装7.6.5的cuDNN,并使用对应cuda版本的paddlepaddle,请不要使用cuDNN v8.x 和 cuda 10.2的组合

如果安装cuda 11.2,请对应安装8.1.1的cuDNN,并使用对应cuda版本的paddlepaddle

如果安装cuda 11.6,请对应安装8.4.0的cuDNN,并使用对应cuda版本的paddlepaddle

如果安装cuda 11.8,请对应安装8.6.0的cuDNN,并使用对应cuda版本的paddlepaddle

如果安装cuda 12.0,请对应安装8.9.1的cuDNN,并使用对应cuda版本的paddlepaddle

Linux用户
(1) 下载CUDA 11.7
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
(2) 安装CUDA 11.7
sudo sh cuda_11.7.0_515.43.04_linux.run

1. 输入accept

2. 选中CUDA Toolkit 11.7(如果你没有安装nvidia驱动则选中Driver,如果你已经安装了nvidia驱动请不要选中driver),之后选中install,回车

3. 添加环境变量

在 ~/.bashrc 加入以下内容

# CUDA
  export PATH=/usr/local/cuda-11.7/bin${PATH:+:${PATH}}
  export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

使其生效

source ~/.bashrc
(3) 下载cuDNN 8.4.1

国内:cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz 提取码:57mg

国外:cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz

(4) 安装cuDNN 8.4.1
 tar -xf cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz
   mv cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive cuda
   sudo cp ./cuda/include/* /usr/local/cuda-11.7/include/
   sudo cp ./cuda/lib/* /usr/local/cuda-11.7/lib64/
   sudo chmod a+r /usr/local/cuda-11.7/lib64/*
   sudo chmod a+r /usr/local/cuda-11.7/include/*
Windows用户
(1) 下载CUDA 11.7
cuda_11.7.0_516.01_windows.exe
(2) 安装CUDA 11.7
(3) 下载cuDNN 8.4.0

cudnn-windows-x86_64-8.4.0.27_cuda11.6-archive.zip

(4) 安装cuDNN 8.4.0

将cuDNN解压后的cuda文件夹中的bin, include, lib目录下的文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\对应目录下

4. 运行程序

python gui.py
python ./backend/main.py

常见问题与解决方案

1. 运行不正常/没有结果/cuda及cudnn问题

解决方案:根据自己的显卡型号、显卡驱动版本,安装对应的cuda与cudnn

2. CondaHTTPError

将项目中的.condarc放在用户目录下(C:\Users\<你的用户名>),如果用户目录已经存在该文件则覆盖

解决方案:https://zhuanlan.zhihu.com/p/260034241

3. Windows下出现geos_c.dll错误

    _lgeos = CDLL(os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll'))
  File "C:\Users\Flavi\anaconda3\envs\subEnv\lib\ctypes\__init__.py", line 364, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 找不到指定的模块。

解决方案:

(1) 卸载Shapely

pip uninstall Shapely -y

(2) 使用conda重新安装Shapely

conda install Shapely             

4. 7z文件解压错误

解决方案:升级7-zip解压程序到最新版本

5. Nuitka打包代码闪退

使用Nuitka版本0.6.19,将conda虚拟环境Lib文件夹下site-packages的所有文件复制到dependencies文件夹中,把paddle库dataset下image.py的有关subprocess代码全部注释了,使用以下打包命令:

 python -m nuitka --standalone --mingw64 --include-data-dir=D:\vse\backend=backend --include-data-dir=D:\vse\dependencies=dependencies  --nofollow-imports --windows-icon-from-ico=D:\vse\design\vse.ico --plugin-enable=tk-inter,multiprocessing --output-dir=out .\gui.py

编译成单个文件(pip安装zstandard可以减小体积)

python -m nuitka --standalone --windows-disable-console --mingw64 --lto no --include-data-dir=C:\Users\Yao\Downloads\vse\backend=backend --include-data-dir=C:\Users\Yao\Downloads\vse\design=design --include-data-dir=C:\Users\Yao\Downloads\vse\dependencies=dependencies  --nofollow-imports --windows-icon-from-ico=C:\Users\Yao\Downloads\vse\design\vse.ico --plugin-enable=tk-inter,multiprocessing --output-dir=C:\Users\Yao\Downloads\out --onefile .\gui.py

社区支持

Jetbrains 全家桶支持

本项目开发所使用的IDE由Jetbrains支持。

JetBrains Logo (Main) logo.

赞助

捐赠者 累计捐赠金额 赞助席位
**伟 300.00 RMB 金牌赞助席位
周学彬 200.00 RMB 金牌赞助席位
爱东 100.00 RMB 金牌赞助席位
ysjm 100.00 RMB 金牌赞助席位
ischeung 100.00 RMB 金牌赞助席位
neoyxm 50.00 RMB 银牌赞助席位
50.00 RMB 银牌赞助席位
周昊 50.00 RMB 银牌赞助席位
玛卡巴卡 35.00 RMB 银牌赞助席位
净心 30.00 RMB 银牌赞助席位
ysjm 30.00 RMB 银牌赞助席位
生活不止眼前的苟且 30.00 RMB 银牌赞助席位
迷走神经病 30.00 RMB 银牌赞助席位
AcelXiao 20.00 RMB 银牌赞助席位
又是李啊 10.00 RMB 铜牌赞助席位
匿名 8.80 RMB 铜牌赞助席位
落墨 6.00 RMB 铜牌赞助席位
未闻花名 5.00 RMB 铜牌赞助席位
sky 5.00 RMB 铜牌赞助席位