VideoSubtitleGenerator:本地视频字幕自动化生成与翻译工具详解
VideoSubtitleGenerator:本地视频字幕自动化生成与翻译工具详解
VideoSubtitleGenerator 是一款专为本地视频设计的字幕自动生成与翻译工具,具备跨平台兼容性(支持 Windows 和 macOS),能够高效地批量处理视频文件并输出对应的字幕内容。该工具适用于语言学习材料整理、在线课程制作以及国际化视频内容开发等场景。
功能亮点
- 隐私优先的本地处理机制:所有操作均在本地执行,避免敏感数据外泄。
- 高效的批量任务管理:可对整个文件夹内的多个视频同时进行识别与转录。
- 灵活选用语音识别模型:基于 OpenAI Whisper 技术栈,提供从轻量级 tiny 到高精度 large-v3 的多种模型选项。
- 多样化的机器翻译接口:集成了包括百度翻译、火山引擎在内的主流第三方翻译服务。
- 高度可定制的字幕样式:允许调整字幕展示顺序及命名规范。
- 开箱即用的完整封装:预置 ffmpeg 和 whisper.cpp 环境,减少部署复杂度。
可用的 Whisper 模型列表
tiny.en, tiny, base.en, base, small.en, small, medium.en, medium, large-v1, large-v2, large-v3
安装与初始化流程
获取源码
git clone https://gitcode.com/gh_mirrors/vi/VideoSubtitleGenerator
进入目录并加载依赖
cd VideoSubtitleGenerator
npm install
基础配置说明
git clone https://gitcode.com/gh_mirrors/vi/VideoSubtitleGenerator
cd VideoSubtitleGenerator
npm install
若需启用翻译能力,请先创建环境变量配置文件:
cp .env.local .env
随后编辑 .env 文件,填入所选翻译平台的认证凭据。例如接入百度翻译时应填写如下字段:
BAIDU_KEY=your_baidu_api_key
BAIDU_SECRET=your_baidu_secret
进一步个性化设置可通过修改 config.js 实现,其中包括输入路径设定、模型选择、语种映射关系、翻译服务供应商选取等内容。
实际应用示例
启动主程序
完成上述准备后,运行以下指令即可触发字幕提取流程:
npm start
首次执行时会根据配置自动下载所需 Whisper 模型;后续调用则跳过此步骤直接开始分析音频流。
切换翻译引擎
可在 config.js 中更改当前激活的服务商,如:
// 当前采用火山翻译作为默认翻译渠道
export const translateServiceProvider = supportedService.volc;
// 若改为百度翻译,则取消下行注释并注释掉上一行:
// export const translateServiceProvider = supportedService.baidu;
控制字幕文本布局
通过设定不同的模板规则来决定最终 SRT 文件的内容排版方式:
- 仅保留译文内容
contentTemplateRule = contentTemplateRuleMap.onlyTranslate;
- 原文置于上方,译文居下
contentTemplateRule = contentTemplateRuleMap.sourceAndTranslate;
- 译文在前,原始文字在后
contentTemplateRule = contentTemplateRuleMap.translateAndSource;
进阶优化策略
自定义输出名称格式
通过调整 config.js 内的相关参数,使输出的字幕文件符合特定播放器要求:
// 源语言字幕保存命名规则
export const sourceSrtSaveName = '${fileName}.${sourceLanguage}';
// 目标语言字幕命名模式
export const targetSrtSaveName = '${fileName}.${targetLanguage}';
模型性能权衡建议
| 使用目的 | 推荐模型 | 备注 |
|---|---|---|
| 快速响应 | tiny / base | 适合短片段或实时演示 |
| 准确性与效率兼顾 | small / medium | 通用场景首选方案 |
| 极致精确度 | large-v3 | 占用内存较大,需高性能设备支撑 |
核心架构概览
关键组件分布如下:
service/: 各类翻译接口的具体实现模块
baidu.js: 百度翻译对接逻辑volc.js: 火山翻译 API 接口封装deeplx.js: DeepLX 翻译服务调用方法ollama.js: Ollama 本地大模型推理接入点
index.js: 应用程序主入口translate.js: 多语言互译中枢逻辑utils.js: 辅助函数库集合
常见故障排查
- 模型下载缓慢:考虑手动下载模型压缩包至指定缓存位置
- 翻译失败报错:确认 API Key 是否有效且网络通畅
- 长视频处理延迟过高:尝试降级模型规格或将视频拆分为小段处理
VideoSubtitleGenerator 提供了一个完整的本地化视频字幕工作流,涵盖从语音识别到双语文本同步输出全过程,在保障信息安全的同时显著提升工作效率。无论你是教育资源制作者、自媒体运营者还是个人用户,都能借助这一开源方案轻松应对多语言字幕挑战。

项目地址:https://gitcode.com/gh_mirrors/vi/VideoSubtitleGenerator