llm-subtrans

GitHub
583 58 简单 1 次阅读 今天NOASSERTION语言模型插件
AI 解读 由 AI 自动生成,仅供参考

llm-subtrans 是一款开源字幕翻译工具,利用大语言模型(LLM)自动将 SRT、SSA/ASS 及 VTT 格式的字幕文件在多种语言间进行互译。它主要解决了传统机器翻译在处理字幕时语境缺失、句式生硬的问题,借助先进的 AI 模型显著提升了翻译的流畅度与自然感,同时通过插件化架构灵活支持多种主流字幕格式。

这款工具非常适合需要频繁处理多语言视频内容的普通用户、字幕组志愿者以及影视创作者。对于希望自定义工作流的开发者或技术人员,它也提供了命令行模式和源码安装选项,便于集成到自动化流程中。用户无需具备深厚的编程背景,下载预编译包即可在 Windows 或 macOS 上通过图形界面轻松上手。

llm-subtrans 的独特亮点在于其开放的模型接入能力。它不仅支持 Google Gemini、OpenAI GPT 等知名模型,还能通过 OpenRouter 聚合平台调用数百种不同的大模型,让用户根据成本、速度或特定语言优势自由选择最佳翻译引擎。此外,项目还提供了一个基于 Gemini 的免费网页版供轻度用户使用。需要注意的是,由于翻译过程需联网并将内容发送至服务商服务器,使用时请留意相关隐私政策及区域限制。

使用场景

一位独立开发者需要将一部热门开源教程的英文 SRT 字幕快速本地化为中文,以便社区成员学习,但面临专业术语多、时间紧迫的挑战。

没有 llm-subtrans 时

  • 只能依赖传统机器翻译接口,导致技术术语(如"API 端点”、“异步回调”)翻译生硬甚至错误,严重影响观看体验。
  • 手动逐行校对和修正字幕格式耗时极长,处理一小时视频往往需要数天人工投入,严重拖慢发布进度。
  • 难以灵活切换翻译模型,若某家服务商对特定内容有限制或效果不佳,缺乏便捷的替代方案来优化结果。
  • 缺乏批量处理能力,面对多集系列视频时,重复的文件格式转换和上传操作让工作流程变得繁琐且易出错。

使用 llm-subtrans 后

  • 通过配置 OpenRouter 或 Gemini 等高性能 LLM,准确识别并地道翻译专业技术词汇,确保字幕内容与原意高度一致。
  • 直接导入原始 SRT 文件一键完成翻译,自动保留时间轴和样式标签,将原本数天的工作量压缩至几分钟内完成。
  • 支持自由切换 DeepSeek、OpenAI 等多种后端模型,遇到敏感词拦截时可立即更换模型或调整策略,保证任务连续不中断。
  • 利用其插件化架构轻松处理 SSA/ASS 等复杂格式字幕,实现多集视频批量化流水线作业,大幅提升本地化效率。

llm-subtrans 通过引入大语言模型的语义理解能力,将繁琐的字幕本地化工作从“人工修补”转变为“智能生成”,极大降低了开源内容的跨国传播门槛。

运行环境要求

操作系统
  • Windows
  • macOS
  • Linux
GPU

未说明 (主要基于云端 API,本地运行自定义服务器时依赖用户自有硬件,无特定型号要求)

内存

未说明

依赖
notes该工具主要调用云端大模型 API(如 OpenRouter, Gemini, OpenAI 等),因此必须保持网络连接。官方提供 Windows 和 macOS (Apple Silicon) 的预打包版本,Linux 及 Intel Mac 用户需从源码安装。若使用本地模型(如通过 LM Studio),性能取决于本地硬件,但官方不建议用于生产环境。安装时可选择仅命令行或包含图形界面 (GUI) 的版本。
python3.10+
未明确列出具体库及版本 (通过 pip install -e . 自动安装)
llm-subtrans hero image

快速开始

LLM-Subtrans

LLM-Subtrans 是一款开源字幕翻译工具,它利用大语言模型(LLM)作为翻译服务。该工具支持在语言模型所支持的任意语种对之间进行字幕翻译。

应用程序通过插件式架构支持多种字幕格式。目前支持 .srt.ssa/.ass.vtt 文件。

注意:LLM-Subtrans 需要有效的互联网连接。字幕会被发送到提供商的服务器进行翻译,因此适用其隐私政策。

安装

对于大多数用户来说,使用打包发布的版本是最简单的方式。请从 发布页面 下载一个压缩包,解压到任意文件夹并运行 gui-subtrans。首次运行时,程序会提示您进行一些基本设置。

如果您希望使用命令行工具、修改源代码,或者更倾向于对安装过程有更多控制权,则需要 从源码安装

Windows

每个发布版本都为 Windows 打包成 (gui-subtrans-x.x.x.zip)。

MacOS

通常会为搭载 Apple Silicon 芯片的 Mac 提供打包好的构建版本 (gui-subtrans-x.x.x.macos-arm64.zip)。如果您使用的是 Intel 芯片的 Mac,则需要 从源码安装

Linux

不提供预编译的 Linux 包,因此您需要 从源码安装

LLM-Subtrans Web

基于 Gemini 的 LLM-Subtrans Web 可免费使用,但由于这对我个人而言会产生费用,现在需要注册邮箱地址,并且每位用户每天仅限 2 次翻译。

翻译提供商

OpenRouter

https://openrouter.ai/privacy

OpenRouter 是一项聚合了来自众多提供商的 模型 的服务。您需要一个 OpenRouter API 密钥 才能使用该服务,并且账户需有一定余额(尽管也有一些功能相当强大的模型是免费提供的)。

您可以选择让 OpenRouter 自动选择模型(GUI 中的“使用默认模型”选项或命令行中的 --auto 参数),也可以指定特定的模型。模型偏好还可以在 OpenRouter 控制面板中进行设置。

由于可用的模型多达数百种,它们被按模型家族分组。默认情况下,可用模型列表是从“Translation”类别中提取的,但这排除了许多完全具备翻译能力的模型(包括大多数免费选项)。

Google Gemini

https://ai.google.dev/terms

请注意,可能存在地区限制:https://ai.google.dev/available_regions

截至撰写本文时,Gemini 2.5 Flash 或许是翻译速度和流畅性方面的领先模型,尽管存在一定的内容审查;而 Preview 版本通常可以免费使用。

您需要从 https://ai.google.dev/ 或者在 https://console.cloud.google.com/ 上创建的项目中获取 Google Gemini API 密钥。务必确保为该 API 密钥和项目启用生成式 AI 功能。

遗憾的是,Gemini 有时会拒绝翻译包含某些特定词汇或短语的内容,即使安全设置已调至最低。如果遇到这种情况,您需要改用其他提供商,或者将字幕分批处理,手动翻译那些含有违禁内容的行。

OpenAI

https://openai.com/policies/privacy-policy

您需要从 https://platform.openai.com/account/api-keys 获取 OpenAI API 密钥,才能使用 OpenAI 的 GPT 模型。如果该 API 密钥关联的是免费试用账户,翻译速度将会 严重 受限。

您可以使用自定义的 api_base 参数来接入自定义的 OpenAI 实例(或任何其他兼容 OpenAI 协议的端点),不过使用“自定义服务器”选项能提供更多的控制。

您也可以将 OpenAI Azure 部署作为翻译提供商,但只有在您非常熟悉相关配置的情况下才建议这样做——在这种情况下,相信您已经清楚如何设置 Azure 提供商的相关参数。

DeepSeek

https://platform.deepseek.com/downloads/DeepSeek%20Open%20Platform%20Terms%20of%20Service.html

您需要从 https://platform.deepseek.com/api_keys 获取 DeepSeek API 密钥才能使用该提供商。

  • API 基础 URL:您可以选择指定自定义的 URL,例如当您自行托管 DeepSeek 实例时。若未设置,则将使用官方的 DeepSeek API 端点。

  • 模型:默认模型为 deepseek-chat,推荐用于翻译任务。对于存在 OCR 或转录错误的源字幕,deepseek-reasoner 可能会给出更好的结果,因为它会花更多时间尝试推断错误所在。

DeepSeek 的配置相对简单,性能尚可且价格低廉,不过翻译并非其强项。

Anthropic

https://support.anthropic.com/en/collections/4078534-privacy-legal

您需要从 https://console.anthropic.com/settings/keys 获取 Anthropic API 密钥,才能使用 Claude 作为翻译提供商。翻译并不是 Claude 的强项,而且与其他提供商相比,它的 API 费用较高。

该 API 根据您的信用等级设定了严格的 速率限制,分别针对每分钟请求数和每日令牌数。

Mistral

https://mistral.ai/terms/

您需要从 https://console.mistral.ai/api-keys/ 获取 Mistral API 密钥才能使用该提供商。

  • 服务器 URL:如果您使用的是自定义部署的 Mistral API,可以通过 --server_url 参数指定服务器 URL。

  • 模型:推荐使用 mistral-large-latest 进行翻译。较小的模型表现通常较差,可能无法很好地遵循系统指令。

Mistral AI 的设置较为简单,但其作为翻译工具的表现并不算出色。

自定义服务器

LLM-Subtrans 可以直接与任何支持 OpenAI 兼容 API 的服务器对接,包括本地托管的模型,例如 LM Studio

这主要用于研究目的,不应期望本地模型能带来特别好的翻译效果。大语言模型的强大能力很大程度上源于其规模,因此您在消费级 GPU 上运行的小型量化模型,很可能会产生质量不佳的翻译、无法生成有效响应,甚至陷入无限循环。如果您发现某个模型能够稳定地生成高质量翻译,请在讨论区分享相关信息!聊天和完成端点均受支持——请根据服务器上运行的模型类型来配置设置和端点(例如,经过指令微调的模型可能更适合使用完成端点而非聊天端点)。如果使用的模型需要特定的格式,可以在 GUI 中编辑提示模板;务必在模板中至少包含 {prompt} 标记,因为每一批次待翻译的字幕都会被填充到此处!

Amazon Bedrock

https://aws.amazon.com/service-terms/

不建议大多数用户使用 Bedrock:其设置过程较为复杂,需要 AWS 凭证、正确的 IAM 权限以及区域配置。此外,并非 Bedrock 上的所有模型都支持翻译任务或能提供可靠的结果。预打包版本将不会包含 Bedrock 支持——如果您能够自行配置 AWS,那么您也可以从源代码安装 llm-subtrans。

要使用 Bedrock,您必须:

  1. 创建一个具有适当权限的 IAM 用户角色(例如 bedrock:InvokeModelbedrock:ListFoundationModels)。
  2. 确保您希望使用的模型在所选的 AWS 区域中可用,并且已为该 IAM 用户启用访问权限(参阅 AWS 官方文档)。

从源代码安装

如果您希望使用命令行工具或对程序进行修改,您需要在系统上安装 Python 3.10 及以上版本和 pip,然后按照以下步骤操作。

使用以下命令或您偏好的工具将 LLM-Subtrans 仓库克隆到本地:

```sh
git clone https://github.com/machinewrapped/llm-subtrans.git
```

设置脚本

最简单的设置方法是运行统一的安装脚本:

  • Windows:运行 install.bat
  • macOS/Linux:运行 install.sh

这些脚本会创建一个虚拟环境,并提供“带 GUI 的安装”或“仅命令行安装”选项,同时还可选择添加对特定提供商的支持。脚本会引导您完成设置,并生成用于启动应用程序的命令脚本。

在安装过程中,您可以根据提示为每个选定的提供商输入 API 密钥,这些密钥将保存在 .env 文件中,这样您每次运行程序时就不必重复输入。不过,如果您只打算使用 GUI,这一步就显得有些多余,因为密钥可以直接保存在应用设置中。

手动配置

如果您已经运行了安装脚本,则可以跳过剩余步骤。仅当您希望手动配置环境时,才继续阅读以下内容。

  1. 在项目的根目录下创建一个名为 .env 的文件。将您选择的提供商所需的所有设置添加到 .env 文件中,格式如下:

    OPENROUTER_API_KEY=<您的 OpenRouter API 密钥>
    OPENAI_API_KEY=<您的 OpenAI API 密钥>
    GEMINI_API_KEY=<您的 Gemini API 密钥>
    AZURE_API_KEY=<您的 Azure API 密钥>
    CLAUDE_API_KEY=<您的 Claude API 密钥>
    

    如果您使用的是 Azure:

    AZURE_API_BASE=<您的 API 基础地址,例如 https://something.openai.azure.com>
    AZURE_DEPLOYMENT_NAME=<部署名称>
    

    如果您使用的是 Bedrock:

    AWS_ACCESS_KEY_ID=您的访问密钥 ID
    AWS_SECRET_ACCESS_KEY=您的秘密访问密钥
    AWS_REGION=您的区域
    

    对于 OpenAI 的推理模型,您可以设置推理力度(默认为低):

    OPENAI_REASONING_EFFORT=low/medium/high
    
  2. 在项目根目录下运行以下命令创建一个虚拟环境,为 Python 解释器提供一个本地环境(可选,但强烈建议这样做以避免与其他 Python 应用程序发生依赖冲突):

    python -m venv envsubtrans
    
  3. 根据您的操作系统运行相应的命令激活虚拟环境。每次运行应用程序前都需要执行此操作。

    .\envsubtrans\Scripts\activate      # Windows
    source ./envsubtrans/bin/activate   # Mac/Linux
    
  4. 安装项目(如果您想修改代码,可以添加 -e 参数以进行可编辑安装):

    pip install -e .                   # 仅安装命令行工具,支持 OpenRouter 或自定义服务器
    pip install -e ".[gui]"            # 核心模块及默认提供商,附带 GUI 模块
    pip install -e ".[gui,openai,gemini,claude,mistral,bedrock]"   # 完整安装,包含可选提供商(可根据需求删减)
    

使用方法

该程序的工作原理是将字幕分成若干批次,依次发送至翻译服务。

根据批次大小的不同,它可能会为每个字幕文件发起多次 API 调用。速度主要取决于所选的模型。

默认情况下,翻译后的字幕会写入同一目录下的新文件,文件名会在原文件名后附加目标语言标识。

GUI

Subtrans GUI 是使用该程序的最佳且最简单的方式。

安装完成后,通过 gui-subtrans 命令或 shell 脚本启动 GUI,其余操作应该都非常直观易懂。

有关如何使用该程序的更多详细信息,请参阅项目 Wiki。

命令行

LLM-Subtrans 可以作为控制台命令或 shell 脚本使用。安装脚本会在项目根目录下为每个提供商创建一个 cmd 或 sh 文件,这些文件会负责激活虚拟环境并调用相应的翻译脚本。

最基本的用法如下:

# 使用 OpenRouter 并自动选择模型
llm-subtrans --auto -l <语言> <字幕文件路径>

# 使用 OpenRouter 并指定模型
llm-subtrans --model google/gemini-2.5-flash -l <语言> <字幕文件路径>

# 在翻译的同时转换格式(本例中将 ASS 转换为 SRT)
llm-subtrans -l <语言> -o output.srt input.ass

# 使用任何兼容 OpenAI API 的服务器
llm-subtrans -s <服务器地址> -e <端点> -k <API 密钥> -l <语言> <字幕文件路径>

# 使用特定提供商
gpt-subtrans --model gpt-5-mini --target_language <目标语言> <字幕文件路径>
gemini-subtrans --model gemini-2.5-flash-latest --target_language <目标语言> <字幕文件路径>
claude-subtrans --model claude-3-5-haiku-latest --target_language <目标语言> <字幕文件路径>

# 列出支持的字幕格式
llm-subtrans --list-formats

# 批量处理文件夹中的文件(请先激活虚拟环境)
python scripts/batch_translate.py ./subtitles ./translated --provider openai --model gpt-5-mini --apikey sk-... --language Spanish

输出文件的格式由文件扩展名推断得出。如需在不同格式之间转换,请提供带有目标扩展名的输出路径。

如果未指定目标语言,默认为英语。

其他可在命令行中指定的选项详见下文。

项目文件

注意:GUI 中默认已启用项目文件。

--project 参数或 .env 文件中的 PROJECT_FILE 设置控制是否为命令行创建项目文件并保存到磁盘。

如果启用,当加载字幕文件时,将创建一个扩展名为 .subtrans 的文件,其中包含项目的详细信息。随着翻译的进行,该文件会不断更新。编写项目文件的好处之一是允许恢复中断的翻译任务。强烈建议使用此功能。

# 使用 OpenRouter 并创建持久化项目
llm-subtrans --project --auto -l <语言> <字幕文件路径>

# 使用 OpenRouter 并恢复持久化项目
llm-subtrans --project --auto -l <语言> <subtrans 项目文件路径>
llm-subtrans --project --auto -l <语言> <字幕文件路径>  # 如果项目文件在同一目录下,将自动检测到

格式转换

LLM-Subtrans 主要是一个翻译应用程序,格式转换最好由专门的工具来处理。不过,该工具也支持读取一种格式并输出另一种格式。

# 使用 OpenRouter 将 .ass 转换为 .srt
llm-subtrans --project --auto -l <语言> -o <输出文件.srt路径> <输入字幕文件.ass路径>

高级用法

命令行提供了一些参数,可以更精细地控制翻译过程。

要使用这些参数,只需在源文件路径之后添加即可。例如:

llm-subtrans path/to/my/subtitles.srt --moviename "我的精彩电影" --ratelimit 10 --substitution cat::dog

许多设置的默认值可以在 .env 文件中以大写形式(NAME_IN_CAPS)进行配置。完整的参数列表请参阅 Options.py 和各个 Provider_XXX 文件。

  • -l, --target_language: 指定要翻译成的目标语言。

  • -o, --output: 指定翻译后字幕的输出文件名。

  • --project: 读取或写入当前翻译字幕的项目文件(详情见上文)。

  • --ratelimit: 每分钟向翻译服务发送的最大请求数(主要适用于使用 OpenAI 免费试用账户的情况)。

  • --moviename: 可选地指定源素材名称,为翻译者提供上下文信息。

  • --description: 对源素材的简要描述,提供更多背景信息。通常内容越简洁越好,否则 AI 可能会开始自行发挥。

  • --name, --names: 可选地提供用于翻译的人名列表(更强大的 AI 模型更有可能实际使用这些名字)。

  • --substitution: 由 :: 分隔的字符串对,用于在原文或译文中进行替换;也可以指定包含此类替换对的文件。

  • --scenethreshold: 认为属于新场景的两行字幕之间的时间间隔(秒数)。

  • --minbatchsize: 开始向翻译器发送新批次所需的最小字幕行数。较高的值通常会使翻译更快且成本更低,但也会增加不同步的风险。

  • --maxbatchsize: 强制开始新批次之前的最大字幕行数。此值需要考虑所用模型的令牌限制,但“最佳”值取决于多种因素,因此建议多做实验。较大的批次更具成本效益,但也增加了 AI 出现不同步、导致昂贵重试的风险。

  • --preprocess: 在分批之前对字幕进行预处理。此操作会执行多种步骤,以使字幕更适合高效翻译,例如将过长的字幕行拆分为多行。主要用于通过 Whisper 等工具自动生成的字幕。

  • --postprocess: 对翻译后的字幕进行后处理。例如,在过长的字幕行中添加换行符,并在翻译请求完成后规范化对话标签。

  • --instruction: 向 AI 提供的额外指令,指示其如何进行翻译。

  • --instructionfile: 从指定文件加载 AI 系统指令(若未指定,则使用默认的 instructions.txt)。

  • --maxlines: 最多处理的批次数量。可用于在达到一定行数后结束翻译,例如检查结果。

  • --temperature: 较高的温度会增加翻译结果的随机性。默认值为 0。

  • --reload: 将从源文件重新加载字幕,而不是使用项目文件中保存的字幕(注意:此选项要求同时启用 --project)。

  • --retranslate: 忽略现有翻译,重新翻译所有字幕(注意:此选项要求同时启用 --project)。

  • --reparse: 不会再次将现有翻译发送给翻译器,而是重新处理翻译器的响应以提取翻译结果。这在修复错误版本后非常有用,也可用于重置已被手动编辑过的翻译(注意:此选项要求同时启用 --project)。

  • --preview: 字幕将被加载并分批,翻译流程也会运行,但不会向翻译器发起任何调用。仅适用于调试目的。

供应商特定参数

某些特定供应商还提供额外的参数。

OpenRouter

  • -k, --apikey: 您的 OpenRouter API 密钥(如果未提供此参数,程序将从环境变量中查找 OPENROUTER_API_KEY

  • --auto 自动选择要使用的模型(选择标准可在 OpenRouter 控制面板 中配置)

OpenAI

  • -k, --apikey: 您的 OpenAI API 密钥(如果未提供此参数,程序将从环境变量中查找 OPENAI_API_KEY

  • -b, --apibase: 如果您使用的是自定义实例,则指定 API 基础 URL。若未设置,则使用默认 URL。

  • -httpx: 使用 HTTPX 库 发起请求(仅在指定了 apibase 时支持)

  • -m, --model: 指定用于翻译的 AI 模型

Gemini

  • -k, --apikey: 您的 Google Gemini API 密钥(如果未提供此参数,程序将从环境变量中查找 GEMINI_API_KEY

  • -m, --model: 指定用于翻译的 AI 模型

Claude

  • -k, --apikey: 您的 Anthropic API 密钥(如果未提供此参数,程序将从环境变量中查找 ANTHROPIC_API_KEY

  • -m, --model: 指定用于翻译的 AI 模型。应使用完整的模型名称,例如 claude-3-haiku-20240307

DeepSeek

  • -k, --apikey: 您的 DeepSeek API 密钥(如果未提供此参数,程序将从环境变量中查找 DEEPSEEK_API_KEY

  • -b, --apibase: 如果您使用的是 DeepSeek 的自定义部署,则指定基础 URL。若未设置,则使用官方 URL。

  • -m, --model: 指定用于翻译的 模型。通常情况下,deepseek-chat 是唯一合理的选择(也是默认值)。

Mistral AI

  • -k, --apikey: 您的 Mistral API 密钥(如果未提供此参数,程序将从环境变量中查找 MISTRAL_API_KEY

  • --server_url: 如果您使用的是 Mistral 的自定义部署,则指定 URL。若未设置,则使用官方 URL。

  • -m, --model: 指定用于翻译的 模型。推荐使用 mistral-large-latest,小型模型的可靠性较低。

OpenAI Azure

  • --deploymentname: Azure 部署名称

  • -k, --apikey: 您的 Azure 部署 API 密钥

  • -b, --apibase: API 后端基础地址。

  • -a, --apiversion: Azure API 版本。

Amazon Bedrock

  • -k, --accesskey: 您的 AWS 访问密钥 ID。如果已在 .env 文件中设置,则无需提供。

  • -s, --secretkey: 您的 AWS 秘密访问密钥。如果已在 .env 文件中设置,则无需提供。

  • -r, --region: Bedrock 可用的 AWS 区域。您可以在此处查看区域列表:AWS 全球基础设施区域和可用区。例如:us-east-1eu-west-1

  • -m, --model: 指定用于翻译的 Bedrock 模型 ID。示例包括 amazon.titan-text-lite-v1amazon.titan-text-express-v1

自定义服务器特定参数

  • -s, --server: 服务器运行的地址,包含端口(例如:http://localhost:1234)。应由服务器提供。

  • -e, --endpoint: 要在服务器上调用的 API 函数,例如 /v1/completions。请根据服务器上运行的模型选择合适的端点。

  • -k, --apikey: 如果需要 API 密钥,则提供。本地服务器通常不需要 API 密钥。

  • -m, --model: 如果需要,指定用于翻译的模型(对于本地服务器,这通常由服务器决定)。

  • --chat: 如果端点期望以对话格式接收请求,则指定此参数;否则,默认为完成端点。

  • --systemmessages: 如果使用对话端点,且指定了此标志,则会将翻译指令作为“系统”用户发送。

代理支持

LLM-Subtrans 支持大多数供应商的代理功能。

配置

您可以通过以下参数配置代理:

  • --proxy <URL>: 指定代理 URL。支持 HTTP 和 SOCKS 代理。 示例--proxy http://127.0.0.1:8888--proxy socks5://127.0.0.1:1080

  • --proxycert <PATH>: 自定义 CA 证书包的路径(PEM 格式)。当使用拦截式代理(如 mitmproxyFiddler)且该代理使用自签名证书时,需要此参数。 示例--proxycert C:\Users\name\.mitmproxy\mitmproxy-ca-cert.pem

使用示例

# 对 OpenRouter 使用 SOCKS 代理
llm-subtrans --auto -l Spanish input.srt --proxy socks5://127.0.0.1:1080

# 使用 mitmdump 并指定自定义证书
llm-subtrans --auto -l French input.srt --proxy http://127.0.0.1:8080 --proxycert ./mitmproxy-ca-cert.pem

批量处理

您可以按照以下目录结构处理文件:

  #   -SRT
  #   --fold1
  #   ---1.srt
  #   ---2.srt
  #   ...
  #   --fold2
  #   ---1.srt
  #   ---2.srt
  #   ...

使用 batch_translate.py 脚本来处理多个字幕文件:

您可以在脚本文件中直接修改 DEFAULT_OPTIONS 的值,也可以结合脚本默认值与命令行覆盖来使用。

# 预览模式,测试设置而不进行 API 调用
python scripts/batch_translate.py --preview

# 基本用法,通过命令行参数指定
python scripts/batch_translate.py ./subtitles ./translated --provider openai --model gpt-5-mini --apikey sk-... --language Spanish

# 覆盖输出格式
python scripts/batch_translate.py ./subtitles ./translated --provider openai --output-format srt

# 使用附加选项
python scripts/batch_translate.py ./subtitles ./translated --provider openai --option max_batch_size=40 --option preprocess_subtitles=false

开发者

建议从源代码安装后,使用 Visual Studio Code 等 IDE 运行程序,并设置 launch.json 文件以指定参数。 注意:每次处理项目时,请务必激活虚拟环境。

贡献

我们欢迎社区的贡献!要参与贡献,请按照以下步骤操作:

  1. 将仓库 Fork 到您自己的 GitHub 账户。
  2. 使用以下命令将仓库克隆到您的本地机器:
    git clone https://github.com/your_username/llm-subtrans.git
    
  3. 使用以下命令为您的更改创建一个新分支:
    git checkout -b feature/your-new-feature
    
  4. 安装 pyright 作为 pre-commit 钩子(可选但推荐):
    # 安装 pyright 进行类型检查
    pip install pyright
    
    # 安装 Git 钩子(在提交前运行类型检查)
    # Windows:
    hooks\install.bat
    
    # Linux/Mac:
    ./hooks/install.sh
    
  5. 对代码进行修改,并使用描述性的提交信息提交更改。
  6. 将您的更改推送到您 Fork 的仓库。
  7. 向 LLM-Subtrans 主仓库提交 Pull Request。

本地化

LLM-Subtrans 使用 GNU gettext 进行 UI 本地化。

  • 模板文件 (POT):locales/gui-subtrans.pot
  • 各语言目录:locales/<lang>/LC_MESSAGES/gui-subtrans.po
  • 编译后的目录:locales/<lang>/LC_MESSAGES/gui-subtrans.mo

代码中的字符串使用辅助函数标记:

  • _("text") 用于简单字符串
  • tr("context", "text") 用于上下文相关的字符串

非常欢迎本地化贡献——您可以在几分钟内添加一种新的本地化语言!详细说明(工具、工作流程等)请参阅 docs/localization_contributing.md

致谢

本项目使用了多个有用的库:

翻译服务提供商:

GUI 相关:

打包版本相关:

版本历史

  • 1.3 版 添加了 OpenRouter 作为默认的翻译服务,从而开放了更多选择。
  • 1.2 版 增加了 GUI 的本地化支持,并引入了对 GPT-5 系列模型的支持。
  • 1.1 版 支持更灵活的翻译格式,方便用户使用自定义指令。
  • 1.0 版 是一次小更新,但由于项目已稳定运行了一段时间,因此将主版本号提升至 1.0。
  • 0.7 版 引入了可选的翻译字幕后处理功能,以尝试修复 LLM 翻译字幕中常见的问题(如添加换行符),并提供了新的默认指令,以减少错误率。
  • 0.6 版 将架构改为基于服务提供商的系统,允许使用多种 AI 服务作为翻译工具。每个服务提供商的设置被独立管理。首次发布时,仅支持 OpenAI
  • 0.5 版 增加了对 gpt-instruct 模型的支持,并重构了代码库以适应不同的翻译引擎。对于大多数用户来说,仍然建议使用 gpt-3.5-turbo-16k 模型,批量大小控制在 10 到 100 行之间,以获得最佳的性能、成本和翻译质量。
  • 0.4 版 对 GUI 进行了显著优化,使其响应更快、更易用,并修复了许多 bug。
  • 0.3 版 大力提升了 GUI 的功能性和可用性,增加了选项对话框等功能,并修复了大量 bug。
  • 0.2 版 采用了一种新的提示方法,大大减少了由于 GPT 在翻译过程中合并源文本行而导致的字幕不同步问题。虽然这种方法可能会降低源语言与目标语言语法差异较大时的自然度,但它为人工润色输出提供了更好的基础。 此外,指令变得更加详细,提供了多个正确输出示例供 GPT 参考,并改进了摘要生成机制,使 GPT 更好地理解当前批次的上下文。现在,双击场景或批次即可手动编辑摘要,这可以显著提高重新翻译以及后续批次或场景的效果。单个字幕行也可以通过双击进行编辑。

许可证

LLM-Subtrans 采用 MIT 许可证授权。第三方库的许可证信息请参阅 LICENSE 文件。

版本历史

v1.5.82026/02/12
v1.5.72025/11/23
v1.5.62025/10/11
v1.5.42025/10/09
v1.5.22025/09/29
v1.4.02025/09/14
v1.3.22025/08/27
v1.3.12025/08/16
v1.3.02025/08/15
v1.2.02025/08/12
v1.1.22025/05/10
v1.1.12025/04/23
v1.1.02025/04/18
v1.0.92025/03/03
v1.0.82025/02/19
v1.0.72025/02/15
v1.0.62025/02/13
v1.0.52025/02/03
v1.0.42025/02/03
v1.0.32025/01/26

常见问题

相似工具推荐

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

152.6k|★★☆☆☆|今天
开发框架Agent语言模型

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|3天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|6天前
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|1周前
语言模型图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|1周前
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|3天前
图像数据工具视频