
字幕提取工具完整上手指南把视频里的硬字幕一键变成可编辑的srt文件【免费下载链接】video-subtitle-extractor视频硬字幕提取生成srt文件。无需申请第三方API本地实现文本识别。基于深度学习的视频字幕提取框架包含字幕区域检测、字幕内容提取。A GUI tool for extracting hard-coded subtitle (hardsub) from videos and generating srt files.项目地址: https://gitcode.com/gh_mirrors/vi/video-subtitle-extractor你是不是也遇到过这样的场景网上下载了一部带硬字幕的剧集想把台词导出来做笔记却发现字幕是焊在画面里的既不能复制也不能翻译或者你是个剪辑博主好不容易找到一段珍贵素材视频里的字幕却成了干扰只能一帧一帧手动打轴。video-subtitle-extractor简称 VSE就是为解决这个痛点而生的它是一款完全本地运行的字幕提取工具无需申请任何第三方 API就能把视频中的硬字幕识别出来并生成 srt 字幕文件。先跑起来三分钟跑通第一个字幕文件在深入理解原理之前先让工具在你电脑上转起来。下面是最小可用的安装流程全程不需要写一行业务代码。第一步准备 Python 3.12 环境Windows 用户直接去官网下载 Python 3.12 安装包macOS 用户可以用brew install python3.12Ubuntu/Debian 用户执行sudo apt update sudo apt install python3.12 python3.12-venv。第二步克隆代码并创建虚拟环境git clone https://gitcode.com/gh_mirrors/vi/video-subtitle-extractor cd video-subtitle-extractor python -m venv videoEnv source videoEnv/bin/activate # Windows 用 videoEnv\Scripts\activate第三步按你的硬件装依赖没有独显的电脑直接装 CPU 版即可pip install paddlepaddle3.3.1 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/ pip install -r requirements.txtNVIDIA 显卡用户改成装 GPU 版CUDA 11.8pip install paddlepaddle-gpu3.3.1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/AMD/Intel 显卡走 DirectML追加执行pip install -r requirements_directml.txt。第四步运行python gui.py # 图形界面版 # 或 python ./backend/main.py # 命令行版打开 GUI 后点击【打开】选择一个视频用鼠标框出字幕出现的区域点【运行】。视频不长的话一两分钟内就能在输出目录里拿到xxx.srt文件。先把流程跑通具体原理我们往下看。能力全景图这个工具到底能做什么VSE 不是只能识别字幕这么简单它把整个链路都做成了开箱可用的功能先看一张全景表快速判断它适不适合你能力具体表现适合谁本地 OCR 识别全程不联网、不调 API隐私安全介意素材泄露的创作者、研究者多语言支持覆盖中英日韩、阿拉伯语、西里尔等 87 种语言外语学习者、多语言内容团队批量提取一次选中多个视频统一处理需要批量转字幕的影视搬运、课程录制去重与去水印自动去除重复字幕行配合 typoMap.json 删除台标/水印文本做二创剪辑、压制前处理多硬件加速CUDA / DirectML / ONNX / CPU 四套后端从核显笔记本到游戏显卡都覆盖最打动我的一点是它的识别模式设计三种模式对应三种不同需求快速模式用轻量模型跳帧采样速度快但可能丢少量字幕自动模式让程序根据 CPU/GPU 自动选模型是官方推荐的开箱选择精准模式逐帧检测几乎不丢字幕但速度非常慢只在字幕轴缺失严重时才建议启用。原理大白话给画面里的文字拍照、定位、念出来你不需要懂深度学习也能理解 VSE 的工作方式它本质上是一套三步走流水线。第一步挑帧。视频每秒有几十帧画面但字幕通常好几秒才换一行。VSE 不会傻乎乎地把每一帧都拿去识别而是按你设置的频率抽帧backend/config.py里的ExtractFrequency默认每秒抓 3 帧把有字幕变化的瞬间尽量捕捉到既省算力又不漏字幕。第二步定位。抽出来的帧进入文本检测环节由backend/tools/subtitle_detect.py里的检测模型找出画面中哪里像文字。这一步相当于给文字区域画一个绿色框你可以在运行界面里亲眼看到这个框选过程。用户手动圈定的字幕区域backend/bean/subtitle_area.py里的SubtitleArea会帮它排除掉水印、台标这些干扰。第三步认字。框出来的文字区域交给backend/tools/ocr.py里的 PaddleOCR 识别引擎念出内容再经过backend/tools/reformat.py做后处理把连在一起的英文单词切分开、去掉重复字幕行、按帧号对齐时间轴最终生成 srt 文件。你可以把这三步理解成先翻书挑帧、再圈重点检测、最后抄写OCR。说完了原理接下来看它在一个真实任务里能产出什么。实战案例把一部外语剧变成双语学习笔记目标把一段日剧视频的字幕提取出来整理成可用于跟读学习的文本。操作步骤把视频文件放到纯英文路径下例如D:/videos/anime_ep01.mp4原因见下文避坑指南。打开 GUI选择视频将字幕框拖到画面下方字幕出现的区域。右侧视频字幕的语言选日本語识别模式选快速。打开生成TXT文本字幕开关点运行。前后对比运行前你只有一段无法复制、无法搜索的视频运行后你会得到xxx.srt带时间轴的完整字幕和xxx.txt纯文本台词可以直接导入笔记软件做生词标注。效果评价官方演示数据里一段 3597 帧、帧率约 30 的视频在快速模式下约 40 秒完成处理demo 截图右上角日志可见这个速度对日常学习完全够用。如果识别出现个别错别字别急着换工具——编辑backend/configs/typoMap.json把常见的识别错误映射进去例如lm: Im、威筋: 威胁之后每次提取都会自动纠正。避坑指南新手最容易卡住的 4 个问题Q1为什么我运行后没有任何输出八成是环境问题。先确认你的 CUDA 版本和显卡驱动匹配NVIDIA 官网可查显卡支持的 CUDA 版本再确认 PaddlePaddle 装的是 GPU 版而非 CPU 版。命令python -c import paddle; print(paddle.is_compiled_with_cuda())可以一键验证。Q2视频和代码路径不能有中文和空格是真的吗是真的这是项目文档里明确标注的硬性要求。D:\下载\vse\运行程序.exe、E:\study\sanshang youya.mp4这类路径都可能触发编码相关未知错误。先把所有文件挪到纯英文路径下再运行能省掉 80% 的排查时间。Q3为什么快速模式会丢字幕轴因为快速模式是跳帧采样的字幕刚好在采样间隙内一闪而过就可能漏掉。解决办法很直接先试试自动模式GPU 下会自动换用大模型仍然缺失严重再上精准模式。Q4批量提取时有什么要注意的批量提取时确保所有视频的分辨率和字幕区域一致。比如统一是 1080p、字幕都在底部否则框选区域对不上提取质量会大打折扣。进阶调优不同场景下的推荐配置VSE 的参数都集中在backend/config.py调整后立即生效。下面这张对比表帮你理解参数之间如何取舍你的场景推荐配置取舍逻辑追求最快出稿、预览够用快速模式 ExtractFrequency3少抽帧少识别快接受少量漏字追求准确率、GPU 闲置自动模式 DropScore75大模型保识别质量置信度阈值兜底显存紧张的小卡RecBatchNumber从 6 调到 2~3每批同时识别的文本框减少显存占用下降字幕轴错乱严重精准模式 关闭跳帧逐帧检测不丢字幕代价是速度极慢核心逻辑就一句话速度、显存、准确率是三个互斥的旋钮先明确你的优先级再动参数。比如DropScore置信度阈值默认 75调高会更严格地过滤低质量识别但也可能把本来就模糊的字幕整行丢掉。社区与贡献怎么求助、怎么参与报 Bug 与提建议项目在 Issues 和 Discussion 区长期开放改进意见直接提即可如果你在 Linux/macOS 上用了未测试的 ONNX 后端记得在 Issues 里说明环境便于维护者复现。开发者交流官方维护有 QQ 交流群295894827新手遇到环境问题在群里求助通常比独自排查快得多。上手贡献代码结构很清晰——backend/tools/下每个模块职责单一想从subtitle_detect.py的文本检测或hardware_accelerator.py的硬件适配入手都比较友好backend/interface/下的 ini 文件是各语言界面翻译想做本地化贡献从这里改起门槛最低。联动生态VSE 常与它的姊妹项目 video-subtitle-removerVSR配合使用先用 VSE 提取字幕、再用 VSR 去除原硬字幕实现去水印留外挂字幕的完整工作流。结语你的下一步一句话总结 VSE 的价值把字幕在画面里变成字幕在文件里全程本地完成、隐私可控、零 API 成本。它可能不会比云端服务更聪明但它足够快、足够透明并且把选择权——识别模式、语言、硬件、纠错规则——全部交到了你手里。现在你只需要做一件事按上面的四步把它跑起来拿test/目录里现成的测试视频test_cn.mp4、test_en.mp4、test_japan.mp4等十几个样本试一次亲眼看看字幕从画面变成 srt 的全过程。跑通之后无论是做双语学习、批量整理素材还是动手改一改它的源码你都站在了一个非常扎实的起点上。【免费下载链接】video-subtitle-extractor视频硬字幕提取生成srt文件。无需申请第三方API本地实现文本识别。基于深度学习的视频字幕提取框架包含字幕区域检测、字幕内容提取。A GUI tool for extracting hard-coded subtitle (hardsub) from videos and generating srt files.项目地址: https://gitcode.com/gh_mirrors/vi/video-subtitle-extractor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考