# subtitle-studio 字幕生成系统 选择文件夹或单个视频 → 自动生成多路线双语字幕,实时查看进度。 ## 快速开始 ```powershell # 方式一(推荐):后台启动,无窗口,日志写 logs/server.log scripts\start_hidden.bat # 方式二:前台启动(关窗口即停止) scripts\start.bat # 停止后台服务 scripts\stop.bat ``` 浏览器打开 **http://127.0.0.1:8788**(start_hidden.bat 会自动打开) ## 功能 1. **选择视频**:浏览文件系统(支持盘符切换/上级目录),或直接输入路径;选文件夹批量处理 2. **选择路线**: - 路线 A 直译中文:转录 → LLM 修正 → 日文直译中文 → `.ja.zh.srt` + `.zh.srt` - 路线 B 英转中:转录 → LLM 修正 → 日→英→中 → `.r2.zh.en.srt` + `.r2.zh.srt` - 仅转录:只做语音识别 → `_transcript.json` 3. **实时进度**:SSE 推送任务状态(等待/转录/修正/翻译/生成字幕/完成/失败) 4. **完成列表**:已生成字幕文件可直接下载,失败任务可一键重试 ## 技术栈 | 组件 | 说明 | |------|------| | 前端 | 原生 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 ``` ## 架构文档 见 [ARCHITECTURE.md](ARCHITECTURE.md)