将英文视频一键转为双语字幕视频,并生成结构化内容摘要。
Faster-Whisper 本地语音转文字 + LLM 智能翻译 + FFmpeg 字幕烧录,纯本地 ASR 零 API 成本,翻译费用低至几分钱。
市面上的视频翻译工具要么是纯云端(贵、慢、隐私顾虑),要么是纯本地(翻译质量差)。Video Translator 采用混合架构:本地 Whisper 做语音识别,云端 LLM 做翻译和摘要,兼顾成本、质量和速度。
实际测试:11 分钟英文技术访谈,端到端完成双语字幕视频 + 结构化摘要,翻译成本约 CNY 0.02-0.05。
- 6 步全自动流水线 — 音频提取 → 语音转写 → LLM 翻译 → 双语合并 → 字幕烧录 → 内容摘要,一条命令完成
- 本地 ASR 零成本 — Faster-Whisper large-v3(CTranslate2 加速),GPU/CPU 自适应,无需任何 API Key
- 多引擎翻译 — 支持 agicto 网关 / Gemini / OpenAI / DeepSeek / Kimi,切换引擎只改一个参数
- 工程级可靠性 — 断点续传、VAD 静音过滤、索引保护防 LLM 乱序、ASS 六层防线、27 个单元测试
- 术语表积累 — YAML 格式术语表,随用随长,确保技术名词翻译一致
- 结构化摘要 — 自动生成视频概述、核心主题、关键论点、金句摘录,直接作为内容素材
- Python 3.10+
- FFmpeg(含 ffprobe,需在 PATH 中)
- NVIDIA GPU(可选,CPU 也可运行但速度较慢)
- 至少一个 LLM API Key
git clone https://github.com/jie955/video-translator.git
cd video-translator
pip install -r requirements.txt# 1. 复制环境变量模板,填入你的 API Key
cp .env.example .env
# 编辑 .env,至少填一个引擎的 Key
# 2. 安装 FFmpeg(Windows)
winget install ffmpeg
# macOS: brew install ffmpeg
# Ubuntu: sudo apt install ffmpeg# 放入视频
cp your_video.mp4 input/video.mp4
# 一键运行(默认 agicto 网关 + Gemini 2.5 Flash)
python run.py --video input/video.mp4 --provider gemini完成后查看 output/ 目录:
output/
├── audio.wav # 提取的音频
├── english.srt # Whisper 生成的英文字幕
├── chinese.srt # LLM 翻译的中文字幕
├── bilingual.srt # 中英双语字幕
├── bilingual.ass # ASS 高级字幕(用于烧录)
├── final.mp4 # 压制完成的视频
└── summary.md # 结构化视频摘要
MP4 → FFmpeg → Audio.wav → Faster-Whisper → English SRT
→ LLM 翻译 → Chinese SRT
→ 合并双语 SRT → ASS 字幕
→ FFmpeg 烧录 → 最终视频
→ LLM 摘要 → summary.md
断点续传:run.py 在 output/.checkpoint/ 记录每步完成状态,中断后重跑自动跳过已完成步骤。
config.yaml 控制全部参数:
whisper:
model_size: "large-v3" # large-v3 | large-v2 | medium | base | small
device: "auto" # cuda | cpu | auto
vad_filter: true # 静音过滤,减少幻觉
initial_prompt: "..." # 注入背景信息,提升术语识别
translation:
provider: "agicto" # agicto | gemini | openai | deepseek | kimi
model: "gemini-2.5-flash" # 模型名
max_lines_per_chunk: 80 # 每块最大行数
temperature: 0.1 # 低温度 = 更一致
subtitles:
mode: "soft" # soft | hard | both命令行参数覆盖配置:
python run.py \
--video input/video.mp4 \
--provider deepseek \
--model deepseek-chat \
--subtitle-mode hard \
--glossary glossary/anthropic.yaml每个步骤可单独运行:
# 仅提取文字(语音转写)
python transcribe.py
# 仅翻译已有字幕
python translate.py
# SRT 转 ASS(高级字幕样式)
python srt_to_ass.py --srt output/bilingual.srt --zh-only --preset default --auto-font
# 烧录字幕
python burn_subtitle.py --video input/video.mp4 --srt output/bilingual.ass --mode hard
# 生成视频摘要
python summarize.py --input output/chinese.srt --output output/summary.md| 预设 | 风格 | 推荐场景 |
|---|---|---|
default |
白字 + 不透明黑底框 | PPT / 演讲 / 访谈(首选) |
compact |
小字号 + 半透明底框 | 信息密集视频 |
youtube |
白字描边 + 阴影 | 深色背景 / 游戏视频 |
| 引擎 | 环境变量 | 获取地址 |
|---|---|---|
| agicto 网关 | AGICTO_API_KEY |
agicto.com |
| Gemini | GEMINI_API_KEY |
ai.google.dev |
| OpenAI | OPENAI_API_KEY |
platform.openai.com |
| DeepSeek | DEEPSEEK_API_KEY |
platform.deepseek.com |
| Kimi | KIMI_API_KEY |
platform.moonshot.cn |
密钥通过 .env 文件或环境变量传入,不写进代码。
以 11 分钟视频为例:
| 环节 | 成本 |
|---|---|
| Whisper 转写 | CNY 0(本地运行) |
| LLM 翻译(Gemini 2.5 Flash) | CNY 0.02-0.05 |
| LLM 摘要 | CNY 0.005-0.01 |
| 合计 | 约 CNY 0.03-0.06 |
run.py 启动时会自动预估费用。
术语表位于 glossary/,YAML 格式,翻译时强制遵循:
# glossary/ai_tech.yaml
Agent: Agent
Tool Use: 工具调用 (Tool Use)
Chain of Thought: 思维链 (Chain of Thought)内置 ai_tech.yaml(通用 AI 技术)和 anthropic.yaml(Anthropic 专项),可按领域扩展。每遇到新术语追加一行,术语表质量随使用正向增长。
python -m pytest tests/ -v # 27 testsGolden Test 覆盖 6 类异常输入(BOM、控制字符、混排语言、特殊字符、畸形时间戳等),验收标准:全部生成合法 ASS。
┌─────────────┐
MP4 ───────► │ FFmpeg │ ──► audio.wav (16kHz mono)
└─────────────┘
│
┌──────▼──────┐
│ Faster- │ ──► english.srt
│ Whisper v3 │ (带时间戳)
│ (本地 GPU) │
└─────────────┘
│
┌──────▼──────┐
│ LLM 翻译 │ ──► chinese.srt
│ (智能分块 + │ (索引保护)
│ 术语表) │
└─────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
bilingual.srt bilingual.ass summary.md
│ │
▼ ▼
soft sub hard burn ──► final.mp4
Q: 没有 GPU 能用吗? 可以。自动退回 CPU + int8 量化,速度慢但功能完整。30 分钟视频 CPU 转写约 20-40 分钟,GPU 约 3-5 分钟。
Q: 支持中文视频转英文字幕吗?
Whisper 支持多语言识别,修改 config.yaml 中 language 参数即可。翻译方向需调整 translate.py 的 prompt。
Q: 视频画面中的文字能提取吗? 当前版本仅处理音轨语音,不做 OCR。OCR 可作为未来扩展方向。
Q: 支持实时流式转写吗? 当前为离线处理,不支持实时流。Faster-Whisper 的流式模式可作为扩展点。
欢迎提交 Issue 和 Pull Request。详见 CONTRIBUTING.md。
特别欢迎以下方向:
- 新的术语表(按领域:区块链、医学、法律等)
- 新的 LLM 引擎接入
- ASS 样式预设扩展
- 多语言翻译方向(日中、韩中等)