视频字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容提取。A GUI tool for extracting hard-coded subtitle (hardsub) from videos and generating srt files.
简体中文 | English
项目简介
video-subtitle-extractor是一款将视频中的字幕提取为外挂字幕文件(srt格式)的软件。 主要实现了以下功能:
- 提取视频中的关键帧
- 检测视频帧中文本的所在位置
- 识别视频帧中文本的内容
- 过滤非字幕区域的文本
- 去除重复字幕行,去除水印(台标)文本
- 生成srt字幕文件
- 多语言:支持中文、日语、韩语、法语、德语字幕的提取
- 多模式:
- fast - 快速提取字幕但时间轴不准确
- accurate - 时间轴准确但提取速度较慢
下载地址:
Windows GPU版本:
Windows CPU版本:
MacOS CPU版本:
项目特色
- 采用本地进行OCR识别,无需设置调用任何API,不需要接入百度、阿里等在线OCR服务即可本地完成文本识别
- 支持GPU加速,GPU加速后可以获得更高的准确率与更快的提取速度
- (CLI版本) 无需用户手动设置字幕区域,项目通过文本检测模型自动检测字幕区域
- (GUI版本) 图形化界面
点击【打开】后选择视频文件,调整字幕区域,点击【运行】
有任何改进意见请在ISSUES中提出
在线运行
PS: Google Colab只能运行CLI版本
使用说明
1. 下载安装Anaconda
https://www.anaconda.com/products/individual#Downloads
2. 使用conda创建项目虚拟环境并激活环境 (建议创建虚拟环境运行,以免后续出现问题)
conda create --name videoEnv python=3.8
conda activate videoEnv
3. 安装依赖文件
请确保你已经安装 python 3.8+
CPU用户 (mac用户) :
安装依赖:
pip install -r requirements.txt
GPU用户(有N卡): 要达到高精度的识别率请使用GPU版
安装CUDA 10.2和cuDNN 7.6.5
Linux用户
Windows用户
安装paddlepaddle:
conda install -y paddlepaddle-gpu==2.1.0 cudatoolkit=10.2 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
如果安装cuda 10.2,请对应安装7.6.5的cuDNN, 请不要使用cuDNN v8.x 和 cuda 10.2的组合
安装其他依赖:
pip install -r requirements_gpu.txt
4. 运行程序
- 运行图形化界面版本(GUI)
python gui.py
- 运行命令行版本(CLI)
python main.py
常见问题与解决方案
1. 运行不正常/没有结果
解决方案:如果你使用的是3060/3070/3080等安培架构的显卡,请使用最新的paddlepaddle版本以及最新的cuda 11+
2. CondaHTTPError
解决方案: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] 找不到指定的模块。
解决方案:
- 卸载Shapely
pip uninstall Shapely -y
- 使用conda重新安装Shapely
conda install Shapely
from https://github.com/YaoFANGUK/video-subtitle-extractor
(视频字幕提取工具:video-subtitle-extractor
video-subtitle-extractor是一款国人开源的视频硬字幕提取工具,可自动生成 srt 文件,无需申请第三方 API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容提取。基于Python编写,遵守Apache2.0开源协议。
功能特色:
采用本地进行OCR识别,无需设置调用任何API,不需要接入百度、阿里等在线OCR服务即可本地完成文本识别
支持GPU加速,GPU加速后可以获得更高的准确率与更快的提取速度
(CLI版本) 无需用户手动设置字幕区域,项目通过文本检测模型自动检测字幕区域
(GUI版本) 图形化界面
提取视频中的关键帧
检测视频帧中文本的所在位置
识别视频帧中文本的内容
过滤非字幕区域的文本,去除水印(台标)文本
去除重复字幕行,生成srt字幕文件
支持视频字幕批量提取(打开文件的时候选择多个视频)
多语言:支持中文/英文、日语、韩语、阿拉伯语、繁体中文、法语、德语、俄语、西班牙语、葡萄牙语、意大利语字幕的提取
多模式:
快速 – 快速提取字幕但可能丢字幕(推荐)
精准 – 不丢字幕但速度较慢
源码:https://github.com/YaoFANGUK/video-subtitle-extractor)
No comments:
Post a Comment