machinewrapped/llm-subtrans
Open Source project using LLMs to transcribe and translate subtitles (SRT, SSA/ASS, VTT)
TL;DR
LLM‑Subtrans 是一款桌面风格的应用,让您可以使用您偏好的任何大型语言模型 API 翻译字幕文件(SRT、ASS/SSA、VTT)——OpenRouter、OpenAI、Gemini、Claude、Mistral、Bedrock,或自托管的 OpenAI 兼容服务器。它还可以转录音频/视频(可选说话人分离),然后翻译生成的字幕。您可以通过预构建的 Windows/Mac 包或从源代码安装,配置 API 密钥,并运行 GUI(gui-subtrans)或命令行工具(llm-subtrans)。
功能
- 批量翻译字幕文件 – 将文件拆分为块,将每个块发送到所选 LLM,并以目标语言写入新的字幕文件。
- 通过插件系统支持多种字幕格式(
.srt、.ass/.ssa、.vtt)。 - 可选的转录 – 从视频/音频中提取语音,可选添加说话人标签,然后将转录文本送入翻译流程。
- 多种提供商 – OpenRouter、Requesty、Opper、Google Gemini、OpenAI(包括 Azure)、DeepSeek、Anthropic、Mistral、自定义 OpenAI 兼容服务器以及 Amazon Bedrock。还提供本地转录(Qwen-3-ASR)。
- GUI 和 CLI – 为大多数用户提供点击界面;为脚本和批处理作业提供全功能命令行。
- 项目文件(
.subtrans) – 存储进度、设置,并允许恢复中断的翻译。
适用人群
- 影视爱好者、翻译人员或内容创作者,需要快速生成另一种语言的字幕。
- 开发人员或高级用户,希望编写批量字幕转换脚本或将 LLM 翻译集成到流程中。
- 能够提供云 LLM 服务 API 密钥的用户;该工具不在本地运行模型(除可选的 Qwen ASR 用于转录外)。
工作原理(高级概述)
- 加载字幕文件(或拖入媒体文件以触发转录)。
- 选择提供商并输入相应的 API 密钥(保存在
.env文件或 GUI 设置中)。 - 应用将字幕拆分为批次,并使用提供商的聊天/补全端点将每个批次发送到 LLM。提示模板插入字幕文本(
{prompt})和任何说话人标签。 - LLM 返回翻译后的行,应用将其写入新的字幕文件(相同格式或转换为另一种格式)。
- 对于转录,应用调用语音转文本模型(云端或 Qwen-Local),可选添加说话人分离,然后将结果送入步骤 2。
入门指南
快速安装(Windows/Mac)
- 从 Releases 页面下载相应的 zip 文件。
- 解压并运行
gui-subtrans。 - 首次启动时,输入您计划使用的提供商的 API 密钥。
- 打开字幕文件,选择目标语言,然后点击 翻译。
从源代码(Linux 或自定义设置)
git clone https://github.com/machinewrapped/llm-subtrans.git
cd llm-subtrans
# 运行安装程序(创建 venv 和可选的 GUI)
./install.sh # 或在 Windows 上使用 install.bat
将您的密钥添加到 .env 文件(例如 OPENAI_API_KEY=…)。如果您希望本地转录,请安装可选附加组件,如 qwen-asr。
关键技术细节(来自 README)
- Python ≥3.10;可选部分需要 Python 3.12(Qwen ASR)。
- 基于虚拟环境的安装;
pip install -e .用于可编辑的开发安装。 - 提供商特定注意事项 – 例如,Gemini 可能阻止某些内容,Claude 较昂贵,Bedrock 需要复杂的 AWS IAM 设置。
- 转录依赖项 –
ffmpeg/ffprobe必须在 PATH 中。 - 速率限制处理 –
--ratelimit参数用于限制每分钟 API 调用次数。 - 自定义提示 – 您可以为需要特殊格式的服务器编辑模板,但必须保留
{prompt}占位符。
优点与缺点(总结)
| 优点 | 缺点 |
|---|---|
| 可与任何具有 OpenAI 兼容 API 的 LLM 配合使用,灵活选择最便宜或最快的模型。 | 依赖外部 API – 您按令牌付费,您的字幕/音频会发送到第三方服务器。 |
| GUI 使非技术用户易于使用;CLI 支持自动化。 | 不支持本地模型推理进行翻译(仅可选本地 ASR)。 |
| 支持多种字幕格式,并可在它们之间转换。 | 某些提供商(例如 Gemini、Bedrock)有内容或速率限制,可能中断批处理作业。 |
| 项目文件允许恢复翻译。 | 在 Linux/macOS 上设置需要从源代码构建并安装 Python/ffmpeg 依赖项。 |
总结
LLM‑Subtrans 是一个真正实用的工具,将字幕文件与现代 LLM 翻译服务连接起来。对于需要生成多语言字幕而无需编写自己的 API 调用脚本的人来说非常有用,同时为高级用户提供足够的可配置性。
快速参考速查表
| 功能 | 使用方法 |
|---|---|
| 翻译文件(CLI) | llm-subtrans --auto -l es movie.srt |
| 选择特定模型 | llm-subtrans --model gemini-2.5-flash -l fr subtitles.ass |
| 翻译时转换格式 | -o out.srt 更改输出扩展名 |
| 转录视频 | python scripts/transcribe.py film.mkv --language ja |
| 运行 GUI | gui-subtrans(或双击打包的 exe) |
| 恢复中断的作业 | llm-subtrans --project --auto -l de movie.subtrans |
| 本地存储设置 | 在安装脚本或启动命令中添加 --portable |
以上所有信息均直接取自存储库的 README;未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目
- 项目