AI字幕自动生成服务。视频播放时自动检测字幕,若缺失则自动生成原语言字幕 + 中文翻译字幕。
独立后端服务,不绑定任何播放器/NAS 平台。Jellyfin、Plex、Emby、网页播放器均可通过 API 接入。
- 🎬 自动提取视频音频(FFmpeg)
- 🗣️ 语音识别 + 语言检测(faster-whisper)
- 🌐 批量翻译(Gemini / OpenAI)
- 📝 生成双语字幕(SRT)
- 🔄 视频 Hash 缓存(相同视频不重复处理)
- 📂 目录监控自动扫描
- 🐳 Docker 一键部署
| 视频格式 | 语言 |
|---|---|
| MKV, MP4, AVI, MOV, FLV, WebM | 日语 → 中文 |
| 英语 → 中文 | |
| 韩语 → 中文 |
git clone https://github.com/awenstudio/awen-subtitle-engine.git
cd awen-subtitle-enginecp .env.example .env
# 编辑 .env,填入 Gemini API Keydocker compose up -d服务启动在 http://localhost:8000
创建字幕生成任务:
curl -X POST http://localhost:8000/api/subtitle/generate \
-H "Content-Type: application/json" \
-d '{"video_path": "/media/movie.mkv"}'查询任务进度:
curl http://localhost:8000/api/job/1获取字幕:
curl http://localhost:8000/api/subtitle/video/1| 端点 | 方法 | 说明 |
|---|---|---|
/api/health |
GET | 健康检查 |
/api/subtitle/generate |
POST | 创建字幕任务 |
/api/job/{id} |
GET | 查询任务进度 |
/api/subtitle/video/{id} |
GET | 获取字幕文件 |
/api/subtitles |
GET | 列出所有字幕状态 |
- 播放视频时,Jellyfin 插件调用
GET /api/subtitle/video/{id} - 若返回
status: processing,显示"AI字幕生成中..." - 若返回字幕路径,直接挂载到播放器
将视频文件放入 MEDIA_ROOT 目录,系统自动检测并创建字幕生成任务。
# 手动触发
cp movie.mkv /media/movies/
# 系统自动开始处理,字幕输出到 /data/subtitles//media/
├── movie.mkv
/data/subtitles/
├── movie.ja.original.srt # 日语原文字幕
├── movie.ja.chinese.srt # 中文字幕
└── movie.ja.bilingual.srt # 双语字幕
在绿联 DXP4800 Plus (Intel 8505) 上的预估:
| 模型 | 1小时视频转录耗时 | 内存占用 |
|---|---|---|
| tiny | ~3 分钟 | ~1GB |
| base | ~5 分钟 | ~1GB |
| small | ~10 分钟 | ~2GB |
| medium (推荐) | ~20 分钟 | ~2GB |
| large-v3 | ~50 分钟 | ~4GB |
翻译耗时:约 10-30 秒(Gemini API)
MIT