Pages

Saturday, 2 October 2021

video-subtitle-extractor

视频字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容提取。A GUI tool for extracting hard-coded subtitle (hardsub) from videos and generating srt files.

简体中文 | English

项目简介

License python version support os

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

  • 提取视频中的关键帧
  • 检测视频帧中文本的所在位置
  • 识别视频帧中文本的内容
  • 过滤非字幕区域的文本
  • 去除重复字幕行,去除水印(台标)文本
  • 生成srt字幕文件
  • 多语言:支持中文日语韩语法语德语字幕的提取
  • 多模式:
    • fast - 快速提取字幕但时间轴不准确
    • accurate - 时间轴准确但提取速度较慢

下载地址

项目特色

  • 采用本地进行OCR识别,无需设置调用任何API,不需要接入百度、阿里等在线OCR服务即可本地完成文本识别
  • 支持GPU加速,GPU加速后可以获得更高的准确率与更快的提取速度
  • (CLI版本) 无需用户手动设置字幕区域,项目通过文本检测模型自动检测字幕区域
  • (GUI版本) 图形化界面

点击【打开】后选择视频文件,调整字幕区域,点击【运行】

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

在线运行

  • 使用Google Colab Notebook(免费GPU): Open In Colab

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] 找不到指定的模块。

解决方案:

  1. 卸载Shapely
pip uninstall Shapely -y
  1. 使用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