YaoFANGUK / video-subtitle-extractor
- среда, 27 апреля 2022 г. в 00:33:13
视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容提取。A GUI tool for extracting hard-coded subtitle (hardsub) from videos and generating srt files.
简体中文 | English
Video-subtitle-extractor (vse) 是一款将视频中的硬字幕提取为外挂字幕文件(srt格式)的软件。 主要实现了以下功能:
使用说明:
如:以下存放视频和代码的路径都不行
D:\下载\vse\运行程序.exe(路径含中文)
E:\study\kaoyan\sanshang youya.mp4 (路径含空格)
下载地址:
Windows 单文件版本(双击直接运行,每次打开时会有一点慢,推荐小白使用): vse.exe
Windows GPU版本: vse_windows_GPU.7z
Windows CPU版本: vse_windows_CPU.zip
MacOS CPU版本: vse_macOS_CPU.dmg
PS: 若无法下载,请前往 Release 下载
点击【打开】后选择视频文件,调整字幕区域,点击【运行】
有任何改进意见请在ISSUES中提出
PS: Google Colab只能运行CLI版本
conda create -n videoEnv python=3.8
conda activate videoEnv
请确保你已经安装 python 3.8+,使用conda创建项目虚拟环境并激活环境 (建议创建虚拟环境运行,以免后续出现问题)
CPU用户 (Mac用户) :
pip install -r requirements.txt
GPU用户(有N卡): 要达到高精度的识别率请使用GPU版
安装CUDA和cuDNN
wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run
sudo sh cuda_11.2.0_460.27.04_linux.run --override
1. 输入accept
2. 选中CUDA Toolkit 11.2(如果你没有安装nvidia驱动则选中Driver,如果你已经安装了nvidia驱动请不要选中driver),之后选中install,回车
3. 添加环境变量
在 ~/.bashrc 加入以下内容
# CUDA
export PATH=/usr/local/cuda-11.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
使其生效
source ~/.bashrc
国内:cudnn-11.2-linux-x64-v8.1.1.33.tgz
国外:cudnn-11.2-linux-x64-v8.1.1.33.tgz
tar -zxvf cudnn-11.2-linux-x64-v8.1.1.33.tgz
sudo cp ./cuda/include/* /usr/local/cuda-11.2/include/
sudo cp ./cuda/lib64/* /usr/local/cuda-11.2/lib64/
sudo chmod a+r /usr/local/cuda-11.2/lib64/*
sudo chmod a+r /usr/local/cuda-11.2/include/*
国内:cudnn-11.3-windows-x64-v8.2.1.32.zip
国外:cudnn-11.3-windows-x64-v8.2.1.32.zip
将cuDNN解压后的cuda文件夹中的bin, include, lib目录下的文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\对应目录下
如果你使用的是3050/3060/3070/3080等安培架构的显卡,请使用最新的paddlepaddle版本以及最新的cuda 11.6
安装paddlepaddle:
windows:
python -m pip install paddlepaddle-gpu==2.2.2.post112 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
Linux:
python -m pip install paddlepaddle-gpu==2.2.2.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
如果安装cuda 10.2,请对应安装7.6.5的cuDNN, 请不要使用cuDNN v8.x 和 cuda 10.2的组合
如果安装cuda 11.2,请对应安装8.1.1的cuDNN, 30系列以上的显卡驱动可能不支持 cuda 11.2的安装
安装其他依赖:
pip install -r requirements_gpu.txt
python gui.py
python ./backend/main.py
解决方案:根据自己的显卡型号、显卡驱动版本,安装对应的cuda与cudnn
将项目中的.condarc放在用户目录下(C:\Users\<你的用户名>),如果用户目录已经存在该文件则覆盖
解决方案:https://zhuanlan.zhihu.com/p/260034241
_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] 找不到指定的模块。
解决方案:
pip uninstall Shapely -y
conda install Shapely
使用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=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 --onefile .\gui.py
本项目开发所使用的IDE由Jetbrains支持。