> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# 字幕翻译工具｜SRT/ASS/VTT/LRC 批量 AI 翻译指南

:::tip 快速介绍
Subtitle Translator 是一款免费的在线字幕批量翻译工具，支持 SRT、ASS、SSA、VTT、LRC、SBV 六种格式和 120+ 种语言。通过分块压缩和并行翻译，1 秒即可处理一集电视剧字幕，并支持上下文关联翻译、逐行实时上屏、本地缓存复用，以及免费与商用翻译 API 加 AI 大模型接口（含本地 Ollama / LM Studio / koboldcpp 与翻译专用的 TranslateGemma / MiLMMT）。
:::

:::tip 30 秒上手

1. **拖入** 或 **粘贴** 字幕文件（`.srt` / `.ass` / `.ssa` / `.vtt` / `.lrc` / `.sbv`）
2. 选 **目标语言**（源语言默认 Auto 自动检测）
3. 点 **翻译** —— 几秒导出，多语言时文件名自动带语言代码（如 `movie.zh.srt`、`movie.fr.srt`）

不需要 API Key 也能用——默认走免费的 **GTX**。要更高质量可在右上角 API 设置里切到 **DeepSeek**（性价比首选）/ DeepL / Claude，参考 [接口指南](/guide/translation/api.md)。
:::

近年来，随着在线视频的兴起，国外热门影视作品的翻译多由视频平台完成，而原本活跃的字幕组则逐渐淡出人们的视野。然而，对于冷门视频和自制视频的字幕需求却未能得到有效满足，导致未配字幕的视频数量持续增加。为解决这一问题，可以用 Whisper 工具为这些生肉视频自动生成字幕，并通过翻译接口将其翻译成中文。具体操作步骤可参考文章：[找不到字幕？Whisper 让不懂外语的你也能看懂日剧](https://newzone.top/posts/2022-11-18-whisper_ai_subtitles.html)。

针对市面上字幕翻译工具存在的翻译速度慢、不支持批量处理、需人工干预等问题，我开发了一款免费且功能全面的字幕翻译工具——[Subtitle Translator](https://tools.newzone.top/zh/subtitle-translator)。该工具支持 `.srt`、`.ass`、`.ssa`、`.vtt`、`.lrc`、`.sbv` 多种字幕格式，并具备秒级翻译速度，大幅提高翻译效率。我已成功转录超过 500 个视频，翻译后的字幕文件可在 [whisper-subtitles](https://github.com/rockbenben/whisper-subtitles) 查看。

## 特色功能

!["批量翻译"](/img/subtitle-translator-zh.webp "批量翻译")

- **秒级翻译**：利用字幕文本的分块压缩和并行处理技术，实现 1 秒翻译一集电视剧（GTX 接口稍慢）。
- **批量翻译**：支持一次性处理上百份字幕文件，结束时汇总成功 / 失败统计（如"已导出 (3/5)"），无须逐个核对。
- **翻译缓存**：自动本地缓存翻译结果，避免重复调用，节省时间和 API 费用。
- **上下文关联翻译**（仅限 AI 模型）：AI 将结合上下文进行翻译，提高字幕对话的连贯性和准确性。
- **格式兼容**：自动匹配主流字幕格式（.srt / .ass / .ssa / .vtt / .lrc / .sbv），导出文件与原文件名一致；翻译成多种语言时自动加语言代码后缀（如 `movie.zh.srt`、`movie.fr.srt`）。
- **逐行实时上屏**：翻译过程中，每译完一行立刻显示在进度条正下方的实时面板里（原文在上、译文在下，标物理源行号），不必等整批跑完才知道效果。未译出的行标琥珀色「未译出」，细节归下方的失败面板；面板跑完自动收起，中途上滚阅读也不会被拽回底部。
- **字幕提取**：一键提取去掉时间码和序号的原文对白（自动复制到剪贴板），方便用于 AI 总结、二次创作，或配合译文交给 AI 校对/修订等场景。
- **对照校对**：单文件、仅译文导出模式下，翻译完成后可逐行并排对照原文与译文，手动修改译文后一键「应用并下载」，适合人工逐句精修。
- **译后质检**：翻译完成后自动检查每条字幕的语速（CPS，每秒字符数）、每行字数、行数与时长，超标处高亮，帮助发现"一闪而过"或"读不完"的字幕，可切换通用 / 中日韩两套阈值。
- **多接口选择**：内置免费与商用翻译 API 以及 AI 大模型接口（含本地 Ollama / LM Studio / llama.cpp / koboldcpp，与翻译专用的 TranslateGemma / MiLMMT），按预算与隐私需求自由选择。
- **多语言支持与国际化**：支持 120+ 种主流语言（英语、中文、日语、韩语、法语、德语、西班牙语等），还可将同一字幕文件同时翻译成多种语言，满足国际化需求。

## 字幕格式支持

Subtitle Translator 支持 `.srt`、`.ass`、`.ssa`、`.vtt`、`.lrc`、`.sbv` 多种字幕格式，并提供自动格式匹配功能：

- **双语字幕**：翻译后的文本插入原字幕下方，可调整译文显示位置（上/下）；SRT / VTT 源还可在导出时选择 **ASS 输出**——原文与译文分别走 Default / Secondary 样式，样式可在工具内直接配置（见下方 [ASS 样式设置](#ass-样式设置)），无需另开字幕编辑器。
- **时间轴兼容性**：支持省略默认小时、超过 100 小时的时间格式，以及 1\~3 位毫秒显示，确保兼容性。
- **自动编码识别**：无需手动选择编码格式，工具会自动识别字幕文件编码，避免乱码问题。

## ASS 样式设置

导出双语 ASS 时，点击「ASS 样式」按钮打开设置抽屉，可视化调整字体、字号、颜色与位置，生成的 ASS 头部按 1920×1080 基准写入（`PlayResX/PlayResY`），在播放器里按分辨率等比缩放。

### 4 套预设

| 预设      | 译文 / 原文字号  | 特点                              |
| ------- | ---------- | ------------------------------- |
| **默认**  | 64 / 48 pt | 白字、描边 3、阴影 1，通用场景               |
| **大字号** | 80 / 60 pt | 白字、描边 4，适合投屏、电视等远距离观看           |
| **电影感** | 64 / 48 pt | 译文金色（`#FFD700`）、原文白色，观感接近院线片    |
| **底框**  | 64 / 48 pt | 白字 + 半透明黑色底框（约 62% 不透明），亮画面下也清晰 |

改动任意参数后预设自动切换为**自定义**，并持久保存，下次打开仍是你上次调好的样式。

### 可调参数

- **全局**：字体（留空 = 按目标语言自动选择，也可点「读取系统字体」从已装字体里挑）、对齐（底部居中 / 顶部居中）、垂直边距（0–500）
- **译文样式 / 原文样式**（两套各自独立）：字号（10–200）、字色、描边色、描边（0–10）、阴影（0–10）
- **底框颜色**：仅底框类样式显示，颜色与透明度都可调（底层写入 ASS 的 `BorderStyle=3`，用描边值当作框内边距）

### 原生 ASS 双语的两种排版

源文件本身就是 ASS / SSA 时，多出一个模式选择：

- **沿用源样式**（默认）：保留源文件自带的 `[V4+ Styles]` 与行内标签，只插入译文行。适合字幕组做过特效、样式的成品
- **重新排版**：丢弃源样式，用上面配置的「ASS 样式」重建头部，并剥离所有行内覆盖标签（`{\an8}`、`{\i1}`、`{\pos(...)}` 等）。仅适合纯对白字幕——有特效、卡拉 OK 的字幕会被抹平

无论源文件是 `.ass` 还是 `.ssa`，重新排版后统一输出 `.ass`。

## 翻译过程中的实时结果

点「翻译」之后，结果区上方会出现一条**内联进度条**（已处理行数 / 总行数、当前语言、当前文件），右边就是**取消**按钮；进度条正下方是**实时结果面板**——每译完一行立刻上屏，不必等整批跑完。

- 每条显示为两行：上面原文、下面译文，左侧标的是**原文件里的物理行号**（与下方失败面板报的坐标一致，照着跳能落到同一条字幕）
- 没译出来的行标琥珀色「未译出」，只显示原文、不再复读一遍——细节归下方的失败面板
- 面板只保留最近的一段窗口，长文件不会把页面撑爆；跑完自动收起，不占着结果区上方
- 中途上滚阅读时**不会被拽回底部**，想跟随最新行滚回底部即可恢复自动跟随

**运行中设置与输入一律锁定**（语言、Provider、prompt、导出格式、上传区、源文本框）：整轮翻译跑在你点「翻译」那一刻的快照上，改了要么不生效、要么坏结果。想改先点取消——取消 1 秒内落定，已译内容全在缓存里，改完再点「翻译」从断点继续，不重复扣费。只读动作（提取纯文本、复制、导出）不受影响。详见 [功能说明 → 取消翻译与运行中锁定](/guide/translation/info.md#取消翻译与运行中锁定)。

## 上下文关联翻译

_上下文关联翻译_（AI 模型专用）会把字幕按批次送入大模型，同时附带少量前后语境，让角色对话更连贯、语气更自然。

API 设置里提供两个参数用于调优：

- **并发行数（Concurrent Lines）**：每批送入大模型翻译的正文行数。
- **上下文行数（Context Lines）**：每批正文前后随行附带的上下文行数。

### 调参策略

- **提高数值**：吞吐更快、上下文更丰富，但请求更重，更容易碰到限速、token 或上下文上限，需要高配 API/LLM。
- **降低数值**：单次请求更轻、容错更高，但模型可参考的现场语境会缩短。
- **错误处理**：如果出现 429、空响应或「context length exceeded」等提示，先降低参数或增大请求间隔即可。

⚠️ **本地小模型提示**：14B 以下的本地模型在上下文模式下容易出现错位或漏行（漏译的行会回退成原文）。两种解法：

- **简单方案**：关闭"上下文关联翻译"开关，切换到逐行并发模式（默认 10 并发），速度快、不丢行，代价是上下句一致性略差。
- **保留上下文**：将"上下文行数"降至 20-30，并尽量使用 14B+ 指令模型（Qwen3-14B/32B、Gemma 3 27B-it 等）。

另外，纯翻译需求推荐使用服务列表里**独立的 TranslateGemma 或 MiLMMT**（不是在 Custom OpenAI-compatible 里填模型名）——它们是逐行翻译，无标记结构，对本地部署最稳定。选哪个看语种，见 [FAQ：本地部署怎么选模型](/guide/translation/faq.md#本地部署翻译怎么选模型)。

## 常见问题

### 支持哪些字幕格式？SRT、ASS、VTT、LRC 都能翻译吗？

支持 SRT、ASS、SSA、VTT、LRC、SBV 六种格式。SRT/VTT 适配 YouTube、B 站、HTML5 播放器（YouTube 用 yt-dlp 导出、B 站在创作中心下载）；ASS/SSA 适配 Aegisub 和动漫字幕组，行首位置标签（如 `\an8`）翻译后自动还原；LRC 适配音乐歌词文件；SBV 是 YouTube 字幕编辑器的导出格式。文件编码（UTF-8/UTF-16/GBK/Shift-JIS）通过 jschardet 自动识别。复杂的 ASS 内联特效标签（颜色、动画、卡拉 OK）会被简化。

### 字幕翻译用机器翻译还是 AI 大模型？哪个质量好、哪个便宜？

字幕对白优先选 AI 大模型——译文语感明显更自然。**DeepSeek** 性价比首选（整季剧集大批量适用）、**Claude Sonnet 5** 或 **GPT-5.6** 对白语感最强、**Gemini 3.1 Pro** 适合超长字幕。要免费快速预览用 **Google**，欧洲语言用 **DeepL**。完整引擎对比与申请教程见 [接口指南](/guide/translation/api.md)，配置在三个翻译工具间共享。

### 字幕里的人名、品牌名、专有名词怎么保持原文不被乱译？

在「系统提示词」里写一份术语保留表，AI 大模型引擎都会遵循。例如：「保持原文：iPhone、OpenAI、Premiere、人名 John Smith」。剧集翻译尤其推荐——整季对白共享同一份术语词典，避免「黑客帝国」第 1 集叫这个、第 8 集变那个。机器翻译（Google、DeepL、Qwen-MT）不支持 prompt 自定义，需要人工后处理。

### 系统提示词要不要加「保留行数、序号、时间轴」之类的格式指令？

不需要。工具在本地把时间轴、序号、ASS 头、VTT cue id 等结构信息剥离出来，只把对白文本发给翻译引擎，译完按原索引回填——模型从头到尾看不到时间轴和序号，自然也无法弄乱。系统提示词只写翻译风格、术语表（见上一条）、人物语气即可；加格式保留指令反而会占用 token、可能让模型自作主张往输出里加多余的编号或时间码。这一点和市面上把整份 SRT/VTT 整体塞给模型的工具不同，本工具是结构化分离架构，时间轴 100% 由本地代码控制。

### 怎么做 B 站、YouTube 的中英双语字幕？能用于语言学习吗？

选择「双语」导出模式，译文位置可选在原文上方（学英语推荐）或下方（看外语剧推荐）。导出 ASS 格式可为原文和译文设置不同颜色、字体大小和位置，直接上传至 B 站字幕系统或 YouTube 社区字幕，Premiere/DaVinci Resolve 也可直接嵌入。

### 翻译完想校对、修订译文怎么办？能逐句改吗？

工具提供两个功能，分别对应「自己改」和「让 AI 改」：

1. **对照校对（自己逐句改）**：单文件、仅译文导出模式下，翻译完成后页面下方会出现一个左右并排的面板——左边原文、右边译文，一行对一行。哪句译得不好，直接在译文列改，改完点「应用并下载」就拿到修订后的字幕，时间轴原样保留。适合亲手核对、修掉机翻的错，又不用自己去对时间轴。
2. **提取纯文本 + 外部 AI（让 AI 改）**：「提取纯文本」导出的是去掉时间码和序号的**原文对白**（自动复制到剪贴板）；译文则从翻译结果区的「复制」按钮取。把原文和译文一起贴进任意 AI，用自己的提示词让它对照原文润色/校对译文，想让它顺带列一份改动摘要也行，改好再自行整理或回填。工具只负责把干净文本递出去，怎么改由你和你的 AI 决定。

简单说：想自己逐句改用「对照校对」，想让 AI 按你的要求改用「提取纯文本」配合外部 AI。

### 一次能批量翻译几个字幕文件？整季剧集怎么处理？

支持批量上传整季字幕同时翻译，文件数无硬上限（实际受翻译引擎并发限制和 API 配额影响）。每个文件独立翻译并独立缓存（IndexedDB），中途刷新页面已译文件不丢失。剧集统一术语的写法见上文「人名、品牌名」那条。

### 怎么把 SRT 转成 VTT 或 ASS？需要单独的字幕格式转换器吗？

不需要。在翻译流程中选择目标语言和导出格式即可一键互转：SRT ↔ VTT、SRT/VTT → ASS、双语 ASS/SRT 均支持。VTT 转 SRT 时自动处理 `<c.classname>` 内联标签和 `<00:00:06.040>` 卡拉 OK 时间戳；转 ASS 会保留 `\an8` 等位置标签并套用默认样式。注意：源语言和目标语言相同时会被自动禁止，目前格式转换需要绑定一次实际翻译。

### 能不能把字幕转成纯文本剧本？或者只导出部分台词？

「提取纯文本」按钮可一键提取去掉时间码和序号的对白文本（自动复制到剪贴板），适合做语言学习材料、播客脚本回填、AI 喂料二次处理或转给配音演员。如需更精细的行级编辑（按关键词筛选、批量替换术语、加前后缀、去重排序），导出后用主站 [文本工具箱](https://tools.newzone.top/zh/text-toolbox) 的正则匹配和行操作功能配合更顺手；超长字幕想按时间或字数拆段，配合主站的 [文本分割](https://tools.newzone.top/zh/text-splitter) 处理。

### 翻译后字幕时间轴对不上或出现乱码（□□□）怎么办？

工具只翻译文本，时间轴完整保留不做任何修改。如翻译后时间对不上，通常是源文件帧率与目标视频不一致（23.976 vs 25 fps）所致，需用 Aegisub 或 Subtitle Edit 调整。乱码问题：工具通过 jschardet 自动识别 UTF-8/UTF-16/GBK/Shift-JIS 等编码，识别失败会回退到 UTF-8，此时请先用 Notepad++ 或 VS Code 另存为 UTF-8 再上传。

### 译后质检里的 CPS 是什么？字幕语速怎么算超标？

CPS（Characters Per Second，每秒字符数）衡量字幕的阅读速度，数值越高观众越来不及读完。翻译后的字幕往往比原文更长、容易超标，质检面板会逐条计算 CPS、每行字数、行数与时长，把超过阈值的标红。可切换「通用 / 中日韩」两套预设——中日韩字幕的每秒字数与每行字数阈值更低。质检是只读检查，不会改动你的字幕文件，发现问题后可在字幕编辑器或导出后用主站文本工具调整。

### 字幕翻译会上传到服务器吗？隐私安全吗？

完全前端处理：文件读取、解析、翻译请求都在浏览器内完成，原文不经过我们的服务器存储。LLM 引擎的请求直接从你的浏览器发往你配置的 API 端点（OpenAI、DeepSeek 等），API Key 仅保存在本地 localStorage。翻译缓存使用浏览器 IndexedDB，关闭页面也保留。

源代码开源于 [rockbenben/subtitle-translator](https://github.com/rockbenben/subtitle-translator)，可自部署或审查实现。

## 配置说明

应用提供了丰富的翻译配置选项，详细信息请参考：

- [功能说明](/guide/translation/info.md)：翻译缓存、多语言翻译等功能，配置分块大小、延迟时间等参数
- [翻译接口指南](/guide/translation/api.md)：了解支持的翻译接口和 AI 大模型
- [常见问题](/guide/translation/faq.md)：API Key 配置、本地模型连接、翻译速度等高频问答
