video-subtitle-generator 视频字幕生成器:Windows 本地 Whisper 批量转录与双语字幕工具

一句短对白被 Whisper 误写成几十秒时,字幕会一直挂在空白画面上——视频字幕生成器把这种「拖影」当成默认要处理的问题:它启用词级时间对齐,检查每条字幕的最大可读时长,超出就把显示结束时间截断。视频字幕生成器是面向个人创作者的 Windows 图形工具,用本地 Whisper 把视频或音频转成原声字幕,需要时再交给兼容 OpenAI 接口的大模型翻译,一次产出原声版、中外版和目标语言版三种 SRT。

整套流程跑在本机:转录走本地 Whisper,清理、质量检查和时间轴修复都是本地 Python 脚本,只有翻译这一步需要用户自己接入的 API,属于典型的本地AI 用法。项目基本由 Python 实现,Windows 下用 .vbs 脚本启动图形界面,属于开源开源软件,采用 GPL-3.0 许可证。发布包不含模型,Whisper-GPT 文件夹与 FFmpeg 需要用户自备,首次使用由图形化的环境配置助手指定路径。

场景痛点

给一批外语视频配字幕,通常要拆成三件事做:先用转录工具出原文字幕,再把文本整段丢给翻译服务,最后回到字幕软件里修时间轴。中间任何一步断了,前两步的产出基本白费——翻译请求超时一次,整批字幕就得重来;Whisper 把一句短对白拉成几十秒,画面已经切走,上一句字幕还赖在屏幕上。

另一头是参数。网课要保住专业术语和数字,动画片的口癖和喊叫不该被当成噪声滤掉,动作片里低声和无线电通话又必须留下。这些差别散在一次次试错里,能把它固定成可复用设置的 效率工具 并不好找。

核心功能

本地转录与三种字幕版本

媒体文件夹里的视频或音频由 FFmpeg / FFprobe 读取探测,交给本地 Whisper 转录,再经清理、质量检查和时间轴修复输出原声字幕。之后可按需要勾选三种 SRT:原声版 视频名_原声版.srt、中外版 视频名_中外版.srt,以及目标语言版(例如 视频名_中文版.srt)。中文视频只要原声版时不需要配置 API。这套 字幕工具 归档在 jamecling 的 影音编辑 分类下。

设备可选 autoGPUCPU 三档:默认优先 GPU(CUDA / float16),CUDA 不可用时自动改用 CPU int8;auto 在 GPU 失败后会弹窗并切到 CPU。性能模式对应各自的解码参数——均衡为 large-v3、beam 3、宽松 VAD;精确为 beam 5、关闭 VAD;快速为 beam 1、较积极 VAD。

内容预设与语言模式

内容预设针对六类素材做了参数特调:普通电影、动画片(加强口癖、拟声词、喊叫和语气词)、动作片(保留短促对白、低声、喘息和无线电通话)、NSFW、网课(侧重专业术语、数字、公式和完整论述)、互联网短视频(侧重快速口播、网络用语和中英混说)。字幕内容分「对白优先(过滤拟声词)」与「完整转录(包含语气声)」两种,前者会在写入原声版前删掉纯语气声、损坏字符和连续重复。

语言模式分两类。纯单语言适用于同一个文件夹基本只有一种语言,可直接指定中文、英语、日语等,或选「自动检测并整批锁定」——程序根据第一段确定语言,后续 30 分钟一段全部沿用。一句或一个视频里出现多种语言时选「中外文混合(不锁定语言)」,Whisper 用 multilingual 模式识别代码切换,分段缩短到 5 分钟并逐段重新检测。自动语言检测会先用 VAD 跳过开头空白,再综合最多 5 个有效语音窗口,低于 0.75 的结果不锁定。

时间轴防拖影

除词级时间对齐和最长可读时长截断外,程序还处理字幕提前出现:允许首句使用完整 30 秒解码窗口的真实时间位置、关闭跨长静音区的上一段文本继承、跳过可能的静音区幻觉字幕。该策略只在重新转录后生效,优先保证时间同步,极少数没把握的字幕可能被省略。已有原声版在重新翻译时会另外生成 _原声版_时间轴已修复.srt,不覆盖原文件。

翻译分段与断点续译

翻译走兼容 OpenAI 的通用接口,由用户自己接入模型,属于 AI工具 范畴的本地用法,配合 AI翻译 完成双语输出。默认每小时字幕作为一个上下文块上传,超过约 24000 字符会提前切块;并发范围 1–5(默认 3),超时默认 300 秒,可设 60–900。模型返回 JSON 不完整、ID 缺失或大分段超时,程序会自动二分后继续,最小可拆到单条;当小块只剩 10 条或更少仍失败时,立即整块用原文回填,日志列出降级的字幕序号。每个成功的小批次都会写入输出目录下的 .translation_cache 断点缓存,任务失败或重启后只补译缺失条目,缓存只有在原字幕、目标语言和模型都一致时才复用。

已有字幕与质量检查

发现已存在 视频名_原声版.srt 时不再运行 Whisper,改为询问是否重新翻译。旧版本的 视频名_字幕.srt 会自动转换为原声版。识别质量由程序自行把关:检查损坏字符、内容唯一率、异常重复和媒体时长覆盖率,不合格时不覆盖已有原声版、也不调用 API,而是存成 _质量不合格.srt 供人工检查。

文件整理与播放器适配

勾选整理后,字幕和转录文本直接写入输出目录中的视频同名文件夹,只有视频本身从输入目录复制一份过来,原始媒体不会被移动或删除。作为 实用软件,它在文件安全上的取舍很明确:宁可多占一份空间,也不动输入目录。生成中外版时程序会处理 PotPlayer 的双语显示限制:不足约 1.2 秒的连续短字幕合并或延长,过宽的双语句子按时间拆短。字幕统一采用 UTF-8 BOM,中日韩文本通常不会乱码。

安装与使用

详细的 使用教程 写在仓库的《使用文档》里,这里给出主线步骤。

前置条件

  • Windows 图形环境,程序通过 .vbs 脚本启动,不走命令行
  • 自备 Whisper-GPT 文件夹(含 scripts\transcribe.py),发布包不含模型
  • 自备 FFmpeg / FFprobe,可在配置助手中手动指定 ffmpeg.exe
  • 需要中外版或目标语言版时,准备一个兼容 OpenAI 接口的 API

安装与首次配置

  1. 双击 启动环境配置助手.vbs,或在主程序顶部点击「环境配置助手」。
  2. 依次确认项目目录、Whisper-GPT 文件夹、venv\Scripts\python.exe、FFmpeg / FFprobe 路径。
  3. 按需填入中转站 Base URL 与 Key,测试 /models 连通性;Key 不会写入项目配置文件。
  4. 点击「保存配置」,在程序目录生成 project_config.json
  5. 双击 启动双语字幕工具.vbs 开始使用。

启动失败时程序目录会生成 startup_error.log。保存路径与旧路径都失效时,启动脚本会尝试用系统 pyw -3 打开界面,此时应优先重新运行环境配置助手。

日常使用

  1. 选择媒体文件夹与输出文件夹,需要时勾选「扫描子文件夹」以保留原相对目录结构。
  2. 选内容预设、语言模式、字幕内容、设备与性能模式。
  3. 勾选要生成的字幕版本,至少选一个。
  4. 需要翻译时配置 API:Base URL 支持根地址、带版本地址或完整端点,接口格式默认「自动(优先 Responses)」。
  5. 点击开始,等待转录与翻译完成。

API Key 默认只保存在当前程序内存中;勾选「保存 Key(本机明文)」后写入 %LOCALAPPDATA%\WhisperBilingualSubtitleGUI\settings.json

推荐配置

场景推荐参数
普通单语言影片纯单语言、普通电影、每段 60 分钟、并发 3
中英混合短视频中外文混合、互联网短视频、每段 20–30 分钟、并发 3
需要保留语气声纯单语言、NSFW、完整转录、每段 60 分钟、并发 2–3
出现 HTTP 429并发降到 1 或 2

支持 MP4、MKV、AVI、MOV、WebM、MP3、WAV、M4A、AAC、FLAC、OGG、Opus 等格式。

我的使用感受

最实用的两处是断点续译和质量把关。翻译中断后重启只补译缺失条目,长视频不必从头再来;原声版质量不合格时程序宁可存成 _质量不合格.srt 也不覆盖、不调用 API,省掉一轮无效翻译。内容预设把网课、动画、动作片的参数差异摊成了可选项,比每次手动试参数省事。作为一份 工具推荐,它属于装上就得先花十分钟配环境的那类 软件工具,也够得上 GitHub精选 的标准。它只做字幕这一件事,不做剪辑;模型与 FFmpeg 要自备。

官方网站

https://github.com/cleverbo01/video-subtitle-generator

下载地址

https://pan.quark.cn/s/50b07ba78394

相关推荐

Avatar photo

JameCling

我是 格律诗的软件世界 的作者,一名专注于软件工具、AI 技术和数字效率领域的独立研究者。
多年来,我持续关注互联网工具的发展趋势,体验不同平台的软件产品,并研究它们如何帮助用户提升效率。
我的工作不仅是整理软件信息,而是通过实际测试、功能分析和使用场景研究,帮助用户判断一个工具是否真正值得使用。
格律诗的软件世界 的每一篇文章都希望提供真实、有价值的信息,包括工具特点、使用方法、优缺点分析以及适合的人群。
我相信,好的工具能够改变工作方式,而准确的信息能够帮助用户做出更好的选择。