介绍

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

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

特色功能

"批量翻译"

  • 秒级翻译:利用字幕文本的分块压缩和并行处理技术,实现 1 秒翻译一集电视剧(GTX 接口稍慢)。
  • 批量翻译:支持一次性处理上百份字幕文件,极大提升翻译效率。
  • 翻译缓存:自动本地缓存翻译结果,避免重复调用,节省时间和 API 费用。
  • 格式兼容:自动匹配主流字幕格式(.srt / .ass / .vtt / .lrc),导出文件与原文件名一致,无需手动调整。
  • 字幕提取:支持提取字幕文本,方便后续用于 AI 总结、二次创作等应用场景。
  • 多接口选择:提供 3 种免费翻译方式、3 种商业级翻译 API,以及 5 种 AI LLM(大模型)接口,满足不同需求。
  • 多语言支持与国际化:支持 50+ 种主流语言(英语、中文、日语、韩语、法语、德语、西班牙语等),还可将同一字幕文件同时翻译成多种语言,满足国际化需求。

Subtitle Translator 提供了丰富的参数选项,以适应不同用户的需求。以下是各项参数的详细说明:

翻译 API

本工具集成了 5 种翻译 API 和 6 种主流大语言模型(LLM)接口,用户可根据需求选择合适的翻译方式:

翻译 API 对比

API 类型 翻译质量 稳定性 适用场景 免费额度
DeepL(X) ★★★★★ ★★★★☆ 适合长文本,翻译更流畅 每月 50 万字符
Google Translate ★★★★☆ ★★★★★ 适合 UI 界面、常见句子 每月 50 万字符
Azure Translate ★★★★☆ ★★★★★ 语言支持最广泛 前 12 个月 每月 200 万字符
GTX API(免费) ★★★☆☆ ★★★☆☆ 一般文本翻译 有调用频率限制(例如,每 3 小时约 500 万字符)
GTX Web(免费) ★★★☆☆ ★★☆☆☆ 适合小规模翻译 免费
  • DeepL:适用于长篇文本,翻译更加流畅自然,但不支持网页端 API,需本地或服务器代理调用。
  • Google Translate:翻译质量稳定,适用于短句、界面文本,支持网页端调用。
  • Azure Translate:支持语言最多,适合多语言翻译需求。
  • GTX API/Web:免费翻译选项,适合轻量级使用,但稳定性和调用频率有限。例如,mrfragger 在翻译一个约 200 万字符的字幕文件(约 2MB)时,仅执行两次翻译即触发了 GTX API 限制。

如果对翻译速度和质量有更高要求,可自行申请 API Key:Google TranslateAzure TranslateDeepL Translate。申请流程参考相关的接口申请教程

LLM 翻译(AI 大模型)

除传统翻译 API 外,本工具还支持调用多种 LLM 进行智能翻译,包括:DeepSeek、OpenAI、Azure OpenAI、Siliconflow、Groq,以及可自由配置的 Custom LLM。

  • 适用场景:适合处理语言理解要求较高的内容,如文学作品、技术文档、多语种资料等。
  • 高度可定制:支持配置系统提示词(System Prompt)与用户提示词(User Prompt),可灵活控制翻译风格、术语偏好等,满足多样化的翻译需求。
  • LLM 模型:一般情况下填写所选接口提供的模型名称;若使用 Azure OpenAI,则需填写对应的部署名称。
  • 温度参数(temperature):用于控制翻译结果的创造性与稳定性。数值越高,生成内容越具多样性和创造性,但可能降低准确性;数值越低,输出更稳定、一致,适合正式或技术性较强的场景。

本地模型连接说明

对于希望在本地部署大模型的用户(如 Ollama、LM Studio),可通过以下方式完成本工具的连接配置。为获得更优的翻译质量,推荐在自定义模型中使用 qwen2.5-14b-instruct 或性能更高的模型。

默认接口地址示例

  • Ollama:
http://127.0.0.1:11434/v1/chat/completions
  • LM Studio:
http://localhost:61234/v1/chat/completions

跨域访问配置方法(CORS)

如果在浏览器中调用本地部署的模型时出现连接失败,可能是由于浏览器的跨域策略导致。解决方式如下:

  • Ollama:需通过如下命令启动服务以允许所有来源访问:
OLLAMA_ORIGINS="*" ollama serve
  • LM Studio:

    1. 打开软件左侧菜单,点击「Developer」图标;
    2. 进入本地服务器设置页面,点击顶部「Settings」;
    3. 勾选“Enable CORS”复选框。

    LM Studio CORS 配置截图

完成以上配置后,本工具即可顺利调用你的本地 LLM 模型。(特别感谢 mrfragger 分享配置经验)

语言支持

本工具支持 50 多种语言之间的互译,覆盖广泛的欧洲、亚洲及部分非洲语言,适用于各类跨语言内容处理场景。支持的语言包括:英语、中文、繁体中文、葡萄牙语、意大利语、德语、俄语、西班牙语、法语、日语、韩语、阿拉伯语、土耳其语、波兰语、乌克兰语、荷兰语、希腊语、匈牙利语、瑞典语、丹麦语、芬兰语、捷克语、斯洛伐克语、保加利亚语、斯洛文尼亚语、立陶宛语、拉脱维亚语、罗马尼亚语、爱沙尼亚语、印尼语、马来语、印地语、孟加拉语、越南语、挪威语、希伯来语、泰语、菲律宾语(塔加拉语)、乌兹别克语、吉尔吉斯语、土库曼语、哈萨克语、博杰普尔语、卡纳达语、阿姆哈拉语、古吉拉特语、爪哇语、波斯语、泰米尔语、斯瓦希里语、豪萨语、泰卢固语和马拉地语等。

API 具体支持语言详见各服务的官方文档:

API 参数

分块翻译大小

对于字幕、Markdown 等具有上下文关联的文本文件,本工具会将多行文本自动合并为若干“块”进行翻译。分块翻译大小即指每个打包块的字符数上限。不同翻译服务的最大字符限制如下:

  • DeepL API:每个请求最多支持 128K 个字符。
  • DeepLX Free:每个请求最多支持 1,000 个字符。
  • Azure Translate:每个请求最多支持 10,000 个字符。
  • Google Translate
    • 网页端:每次翻译最多支持 5,000 个字符;
    • Cloud Translation API:每个请求最多支持 30,000 个字符。

注意:由于 Google 翻译在处理文本时会破坏换行符,因此未使用分块翻译方式。

延迟时间

延迟时间用于设置分块翻译之间的等待间隔。在处理大段文本时,某些翻译 API 响应速度较慢,尤其在网络环境较差或使用免费接口的情况下,延迟设置显得尤为重要。

例如,在使用 Azure Translate 的免费端口进行测试时,建议将延迟时间设置为 5,000 毫秒以上,以避免返回空值或出错。

翻译速率

翻译速率设置过高可能导致 API 返回空值,甚至被视为异常请求。建议根据实际使用的服务类型和稳定性,适当控制速率,以提升翻译的成功率和稳定性。

功能说明

字幕格式

Subtitle Translator 支持 .srt.ass.vtt.lrc 等多种字幕格式,并提供自动格式匹配功能:

  • 双语字幕:勾选后,翻译后的文本将插入原字幕下方,并可调整译文的显示位置(上/下)。
  • 时间轴兼容性:支持省略默认小时、超过 100 小时的时间格式,以及 1~3 位毫秒显示,确保兼容性。
  • 自动编码识别:无需手动选择编码格式,工具会自动识别字幕文件编码,避免乱码问题。

翻译模式

Subtitle Translator 支持批量翻译和单文件模式,适应不同使用需求:

批量翻译(默认):

  • 支持同时处理上百个文件,大幅提升工作效率。
  • 翻译后的文件将自动保存在浏览器默认下载目录,无需手动操作。

单文件模式(适用于小型任务):

  • 适用于单个字幕的快速翻译,支持直接粘贴文本翻译。
  • 翻译结果可在网页端实时查看,并手动复制或导出。
  • 若开启单文件模式,则上传新文件会覆盖上一个文件

翻译缓存

本工具引入可选的本地翻译缓存,提高翻译效率并降低资源消耗:

  • 缓存规则:每段翻译结果将以 源文本_目标语言_源语言_翻译 API_模型设置 作为唯一 key 进行存储。
  • 缓存命中条件:只有完全匹配相同参数的情况下,才会使用本地缓存结果,确保准确性。
  • 缓存作用:避免重复翻译,减少 API 调用次数,提高翻译速度。

如果不想使用缓存,可取消勾选“使用翻译缓存”,或在 API 设置中点击“清除翻译缓存”。

多语言翻译

支持将同一个文件一次性翻译为多种语言,特别适合需要国际化的视频内容:

  • 例如:将英文文件同时翻译为中文、日语、德语、法语,方便全球用户使用。
  • 支持 50 种主流语言,并将持续扩展。

常见问题

为什么翻译结果为空或显示为 null?

出现这种情况,可能有以下几种原因:

  • API 密钥(API Key)或相关设置不正确;
  • 账户的可用额度(Credits/Token)已用尽;
  • 翻译速率设置过高,或接口本身暂时不太稳定。

你可按 F12 打开浏览器开发者工具,切换至 “网络”(Network)标签页,检查 API 响应(Response)的具体报错信息。

如果只是部分内容未能成功翻译,尝试再次点击“翻译”按钮即可。在启用了翻译缓存的情况下,系统会跳过已翻译的内容,避免重复扣费或重复请求。

为什么要用第三方接口访问 DeepL?

因为 DeepL 的官方服务不允许直接从网页上调用,所以我们通过一个“中转通道”来帮你把请求发出去。

这个中转接口只是用来传输数据,不会收集你的任何信息,你可以放心使用。如果你对稳定性有更高要求,也可以自己搭建这个通道。

我的 API Key 会被保存吗?

不会的!你的 API Key 和其他设置都只保存在你自己的浏览器里,我们不会上传或记录任何信息。

为什么没有启用 GTX Web 接口?

GTX Web 对服务器压力比较大,所以默认没有开启。

如果你是在自己电脑上使用这个工具,可以手动开启。请避免在开启全局代理的网络环境下使用该接口,可能会导致翻译异常。