基于 faster-whisper(CTranslate2 优化的 Whisper)的转写与字幕翻译工具。
给 AI 看的执行细节在
SKILL.md;本文件是给人看的概览。
- 转写:视频/音频直接输入 → TXT + JSON + SRT,内置词级时间戳与 Silero VAD
- 字幕:AI 语义断句 → 翻译润色 → 硬字幕烧录,支持单语/双语
- 校验:机器校验字幕硬规则与时间轴一致性
- 99 种语言自动检测,GPU(CUDA)/ CPU 双模式
faster-whisper-transcribe/
├── SKILL.md # 流程总线:意图路由与强制规则(AI 入口)
├── init.md # 环境初始化与排错
├── subtitle.md # 断句 / 翻译 / 校验 / 烧录全流程
├── polish-rules.md # 翻译润色标准
├── scripts/
│ ├── transcribe.py # 转写:提音轨 → 转录 → TXT/JSON/SRT
│ ├── validate_srt.py # 字幕硬规则与时间轴校验
│ └── burn_subtitles.py # 硬字幕烧录
└── README.md
| 脚本 | 作用 | 关键说明 |
|---|---|---|
transcribe.py |
转写 | 视频自动提音轨(流式写盘);CUDA 不可用自动回退 CPU;本地模型自动发现 |
validate_srt.py |
校验 | 检查序号/时长/行宽/重叠/间隔/标点;--reference 比对译文与原文时间轴 |
burn_subtitles.py |
烧录 | 用 imageio-ffmpeg 的完整版 ffmpeg;不要手搓 ffmpeg 命令 |
subtitles= 滤镜用 filename:options 语法,Windows 盘符冒号会被当分隔符。脚本通过「cwd 切到 SRT 目录 + 只传文件名」规避,实测这是唯一兼容中文/空格/单引号路径的写法。详见脚本头注释。
落在与输入文件同名的同级子目录(可用 --output_dir 改):
| 文件 | 说明 |
|---|---|
transcription.txt |
纯文本,含元信息头 |
transcription.json |
含词级时间戳,断句与翻译的时间源 |
transcription.srt |
原始字幕(断句前) |
transcription.raw.srt |
原始字幕备份(断句前自动备份) |
transcription-<lang>.srt |
译文字幕 |
transcription-bilingual.srt |
双语字幕(译文在上、原文在下) |
<视频名>-字幕.mp4 |
烧录成片 |