视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容提取。A GUI tool for extracting hard-coded subtitle (hardsub) from videos and generating srt files.
简体中文 | English
Video-subtitle-extractor (VSE) 是一款将视频中的硬字幕提取为外挂字幕文件(srt格式)的软件。
主要实现了以下功能:
若需要生成txt文本,可以在backend/config.py中设置
GENERATE_TXT=True
请优先使用快速/自动模式,如果前两种模式存在较多丢字幕轴情况时,再使用精准模式
项目特色:
使用说明:
有使用问题请加群讨论,QQ群:210150985、816881808
点击【打开】后选择视频文件,调整字幕区域,点击【运行】
去除水印文本/替换特定文本:
如果视频中出现特定的文本需要删除,或者特定的文本需要替换,可以编辑
backend/configs/typoMap.json
文件,加入你要替换或去除的内容
{
"l'm": "I'm",
"l just": "I just",
"Let'sqo": "Let's go",
"Iife": "life",
"威筋": "威胁",
"性感荷官在线发牌": ""
}
这样就可以把文本中出现的所有“威筋”替换为“威胁”,所有的“性感荷官在线发牌”文本删除
如:以下存放视频和代码的路径都不行
D:\下载\vse\运行程序.exe(路径含中文)
E:\study\kaoyan\sanshang youya.mp4 (路径含空格)
下载地址:
推荐使用,启动速度较快
双击直接运行,每次打开时会有一点慢,若出现误报毒,使用绿色版
仅供具有Nvidia显卡的用户使用(AMD的显卡不行),提取速度非常快
PS: 若无法下载,请前往 Release 下载
有任何改进意见请在ISSUES和DISCUSSION中提出
预构建包对比说明:
预构建包名 | Python | Paddle | 环境 | 支持的计算能力范围 |
---|---|---|---|---|
vse-windows-cpu.7z |
3.12 | 3.0rc1 | 无 GPU,CPU 运行 | 通用 |
vse-windows-directml.7z |
3.12 | 3.0rc1 | Windows 非Nvidia显卡 | 通用 |
vse-windows-nvidia-cuda-10.2.7z |
3.11 | 2.5.2 | CUDA 10.2 | 3.0 – 7.5 |
vse-windows-nvidia-cuda-11.8.7z |
3.12 | 3.0rc1 | CUDA 11.8 | 3.5 – 8.9 |
vse-windows-nvidia-cuda-12.3.7z |
3.12 | 3.0rc1 | CUDA 12.3 | 5.0 – 9.0 |
NVIDIA官方提供了各GPU型号的计算能力列表,您可以参考链接: CUDA GPUs 查看你的GPU适合哪个CUDA版本
识别模式选择说明:
模式名称 | GPU | OCR模型尺寸 | 字幕检测引擎 | 备注 |
---|---|---|---|---|
快速 | 有/无 | 迷你 | VideoSubFinder | |
自动 | 有 | 大 | VideoSubFinder | 推荐 |
自动 | 无 | 迷你 | VideoSubFinder | 推荐 |
精准 | 有/无 | 大 | VSE | 非常慢 |
Windows/Linux环境下字幕检测引擎都是VideoSubFinder
PS: Google Colab只能运行CLI版本
请确保您已经安装了 Python 3.12+。
brew install [email protected]
sudo apt update && sudo apt install python3.12 python3.12-venv python3.12-dev
请使用虚拟环境来管理项目依赖,避免与系统环境冲突。
(1)创建虚拟环境并激活
python -m venv videoEnv
videoEnv\\Scripts\\activate
source videoEnv/bin/activate
切换到源码所在目录:
cd <源码所在目录>
例如:如果您的源代码放在 D 盘的 tools 文件夹下,并且源代码的文件夹名为 video-subtitle-extractor,则输入:
cd D:/tools/video-subtitle-extractor-main
本项目支持 CUDA(NVIDIA显卡加速)、CPU(无 GPU)、DirectML(AMD、Intel等GPU/APU加速)、ONNX四种运行模式。
请确保您的 NVIDIA 显卡驱动支持所选 CUDA 版本。
推荐 CUDA 11.8,对应 cuDNN 8.6.0。
安装 CUDA:
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run
安装 cuDNN(CUDA 11.8 对应 cuDNN 8.6.0):
安装 PaddlePaddle GPU 版本(CUDA 11.8):
pip install paddlepaddle-gpu==3.0.0rc1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
pip install -r requirements.txt
pip install paddlepaddle==3.0.0rc1 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
pip install -r requirements.txt
pip install -r requirements_directml.txt
pip install paddlepaddle==3.0.0rc1 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
pip install -r requirements.txt
# 阅读文档 https://onnxruntime.ai/docs/execution-providers/
# 根据你的设备选择合适的执行后端, 参考requirements_directml.txt文件修改成合适你环境的依赖
# 例如:
# requirements_coreml.txt
# paddle2onnx==1.3.1
# onnxruntime-gpu==1.20.1
# onnxruntime-coreml==1.13.1
pip install -r requirements_coreml.txt
pip install paddlepaddle==3.0.0rc1 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
pip install -r requirements.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] 找不到指定的模块。
解决方案:
(1) 卸载Shapely
pip uninstall Shapely -y
(2) 使用conda重新安装Shapely
conda install Shapely
解决方案:升级7-zip解压程序到最新版本
使用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
本项目开发所使用的IDE由Jetbrains支持。
捐赠者 | 累计捐赠金额 | 赞助席位 |
---|---|---|
**伟 | 300.00 RMB | 金牌赞助席位 |
周学彬 | 200.00 RMB | 金牌赞助席位 |
轻抖哥 | 200.00 RMB | 金牌赞助席位 |
爱东 | 100.00 RMB | 金牌赞助席位 |
**迪 | 100.00 RMB | 金牌赞助席位 |
ysjm | 100.00 RMB | 金牌赞助席位 |
ischeung | 100.00 RMB | 金牌赞助席位 |
明 | 88.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 | 铜牌赞助席位 |