视频硬字幕提取:本地离线 OCR 几分钟生成 srt 的完整方案
你手头有一段教学视频,字幕烧死在画面上,想做笔记却一个字都复制不了。video-subtitle-extractor(VSE)就是为此而生:它在本地定位视频里的字幕区域,用深度学习模型识别文字,最后直接产出 srt 字幕文件——全程离线,不需要申请任何第三方 OCR API。
🚀 上手体验:从导入视频到拿到 srt
- 导入视频文件:打开软件后点「打开」按钮,选一个或多个视频,多选就是批量任务。注意视频路径和程序安装路径都不要带中文与空格,否则容易出玄学报错。
- 框定字幕区域:在预览画面里把字幕检测框拖到正确位置。区域框得准,后面识别才稳;批量提取时保持每个视频分辨率与区域一致。
- 选择识别模式:日常优先「快速」或「自动」;确认丢字较多时再切「精准」。有独立显卡就顺手打开硬件加速开关。
- 运行并取走结果:点「运行」,进度跑完后在输出位置拿到 srt,也可以勾选生成 txt 文本字幕。
🔍 三个值得展开的功能
自动框出字幕区域:把水印和台标挡在 srt 外
它做了什么:内置的 VideoSubFinder 检测引擎(源码在 backend/subfinder/)分析关键帧,自动标记帧内文本位置,并过滤掉非字幕区域的文字。你得到什么:画面角落的台标、侧边水印不会混进结果,导出的 srt 里基本只剩真实台词;区域框还支持手动微调,双保险。
本地 OCR 引擎:87 种语言离线跑,隐私攥在自己手里
它做了什么:识别环节完全跑在本地深度学习模型上(模型文件位于 backend/models/,基于 PP-OCRv5 系列),覆盖简繁中文、英文、日语、韩语、越南语等 87 种语言。你得到什么:不用联网、不用注册 API、没有按量计费,视频文件始终不离开你的电脑,隐私和成本都可控。
typoMap 纠错与水印删除:输出内容还能二次加工
它做了什么:编辑 backend/configs/typoMap.json,把某个识别错字映射成正确写法,或映射为空字符串直接删除。你得到什么:OCR 难免出几个错别字,用这份小配置就能让 srt 变干净,还能顺手把字幕里的固定水印文字清掉。
🛟 常见坑位问答
Q:路径带中文或空格,程序报错或行为异常? A:这是项目明确的硬性要求——视频存放路径和程序目录都要纯英文、无空格,换个目录重跑即可。
Q:没有独立显卡,视频字幕提取还能跑吗? A:能。「自动」模式在 CPU 环境会自动选择轻量模型,「快速」模式也完全可用;GPU 加速属于加成项(更快更准),不是前置条件。
Q:快速或自动模式偶尔丢几行字幕怎么办? A:先确认字幕区域有没有框准、字幕有没有跑出框外;确认无误后切「精准」模式,它逐帧检测几乎不丢字,代价是速度很慢。
Q:识别出来一堆错别字? A:用上面的 typoMap 机制批量修正;另外界面上的「重新分词」开关可以解决句子缺少空格的问题。
👥 按人群给的使用建议
| 人群 | 典型诉求 | 建议玩法 |
|---|---|---|
| 语言学习者 | 保存外语视频台词辅助学习 | 快速模式,选对视频语言,输出 txt 便于背诵 |
| 内容创作者 | 把素材台词变成可编辑文本 | 批量提取,再配合 typoMap 清理 |
| 教育工作者 | 提取课程重点做讲义 | 自动模式,保留 srt 时间轴方便定位 |
| 字幕/翻译团队 | 拿带时间轴的原始字幕 | 精准模式跑一遍,人工校对后交付 |
⚙️ 硬件档位与运行模式
硬件方面:4GB 内存 + 双核处理器是基础档,能跑起来;8GB 内存 + 四核是推荐档,体验流畅;有 NVIDIA 独显并开启硬件加速,速度和准确率都能再上一档。
三种模式的差异可以这样理解:
| 模式 | 模型 | 特点 |
|---|---|---|
| 快速 | 轻量模型 | 速度最快,可能丢少量字幕、有少量错字 |
| 自动 | GPU 用大模型、CPU 用轻量模型 | 官方推荐,速度与质量折中 |
| 精准 | 大模型逐帧检测 | 几乎不丢字、极少错字,但非常慢 |
video-subtitle-extractor 的定位很单纯:在本地把视频硬字幕变成 srt,不联网、不调用任何在线识别服务。它适合学习存档、素材文字化、课程讲义整理这类场景。如果你从源码部署,装好 Python 3.12+ 与依赖后,一条 python gui.py 即可启动界面。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




