master
- 选择文件夹/单文件 → SenseVoice 转录 → LLM 修正 → 多路线翻译 → 双语 SRT - 路线:直译中文 / 英转中 / 仅转录 - 并发流水线:转录(可调) + LLM 并发(可调),降噪拆锁并发 - 断点续跑:.subtitle-work/ 中间产物,三阶段独立续跑 + 翻译段级续跑 - 去重:history 跟随视频文件夹,防重复任务保护 - 实时进度:SSE 推送 + 耗时显示 + 子任务状态 + 重新生成按钮 - 时间戳调优:VAD silence_schedule + noisereduce 降噪 + 完整性校验
subtitle-studio 字幕生成系统
选择文件夹或单个视频 → 自动生成多路线双语字幕,实时查看进度。
快速开始
# 方式一(推荐):后台启动,无窗口,日志写 logs/server.log
scripts\start_hidden.bat
# 方式二:前台启动(关窗口即停止)
scripts\start.bat
# 停止后台服务
scripts\stop.bat
浏览器打开 http://127.0.0.1:8788(start_hidden.bat 会自动打开)
功能
- 选择视频:浏览文件系统(支持盘符切换/上级目录),或直接输入路径;选文件夹批量处理
- 选择路线:
- 路线 A 直译中文:转录 → LLM 修正 → 日文直译中文 →
.ja.zh.srt+.zh.srt - 路线 B 英转中:转录 → LLM 修正 → 日→英→中 →
.r2.zh.en.srt+.r2.zh.srt - 仅转录:只做语音识别 →
_transcript.json
- 路线 A 直译中文:转录 → LLM 修正 → 日文直译中文 →
- 实时进度:SSE 推送任务状态(等待/转录/修正/翻译/生成字幕/完成/失败)
- 完成列表:已生成字幕文件可直接下载,失败任务可一键重试
技术栈
| 组件 | 说明 |
|---|---|
| 前端 | 原生 HTML/JS,SSE 实时进度 |
| 后端 | FastAPI + uvicorn(:8788) |
| 转录 | SenseVoiceSmall + fsmn-vad(GPU,py312_cuda 环境) |
| 修正 | LLM 分块并发(4 worker) |
| 翻译 | DeepSeek V4 Flash 全文一次请求(1M 上下文,不指定 max_tokens) |
| LLM | OCG Router(192.168.1.246:19878,自动选 key) |
目录
subtitle-studio/
├── src/substudio/
│ ├── main.py # FastAPI 入口
│ ├── taskmanager.py # 任务队列 + 状态机 + SSE
│ ├── llm.py # OCG Router 客户端(流式兼容)
│ ├── config.py # 配置
│ └── pipeline/
│ ├── transcribe.py # SenseVoice 转录
│ ├── fix.py # 分块并发修正
│ ├── translate.py # 路线翻译
│ └── srt.py # SRT 生成
├── templates/index.html
├── static/app.js
├── output/ # 任务输出(含副本)
└── scripts/start.bat
架构文档
Languages
Python
65.2%
JavaScript
20.8%
HTML
10.3%
Batchfile
3.7%