RSTGameTranslation
游戏实时翻译工具,OCR捕获+AI多后端翻译,Windows端侧覆盖层/语音播报
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
游戏实时翻译工具,OCR捕获+AI多后端翻译,Windows端侧覆盖层/语音播报
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你打开了一款心仪已久的日文 RPG,却发现满是看不懂的对话文本和菜单选项。传统解决方案是查阅词典、搜索攻略,但每遇到一段新文本都要反复切换窗口,游戏体验支离破碎。RSTGameTranslation 正是为解决这一痛点而生——它在后台默默捕获游戏画面中的文字,实时翻译成本地语言,以覆盖层或聊天框的形式呈现在屏幕上,让玩家可以近乎无缝地继续游戏。

图1:RST 的 Gemini 翻译配置界面,支持自定义 API Key 和模型参数
RSTGameTranslation 由越南开发者 thanhkeke97 创建于 2025 年 5 月,项目首个 commit 就直奔 v4.6.0 正式版(源码中的 AssemblyVersion 显示),说明这是一个已经过相当程度迭代的产品。该开发者同时维护越南语版 README,表明项目初期就面向国际化社区。
这个项目的诞生背景代表了近年来一个显著趋势:全球化游戏与玩家语言能力之间的鸿沟日益扩大。随着 Steam、Epic 等平台让全球游戏触手可及,大量日语、韩语、中文游戏涌入海外市场,但普通玩家的语言储备难以覆盖。机械翻译工具(如 Google Translate)的屏幕取词能力有限,而专业的游戏翻译工具要么付费,要么闭源。RSTGameTranslation 以开源 GPL-3.0 许可证填补了这一空白。
RSTGameTranslation 的技术架构分为清晰的三个层次:
展示层(.NET WPF):主程序使用 C# WPF(Windows Presentation Foundation)构建,目标框架 .NET 9,目标平台 Windows 10+(Build 19041 及以上)。WPF 提供了硬件加速的 2D 图形渲染能力,用于绘制取景框、覆盖层、聊天窗口等 UI 组件。源码中包含大量 .xaml.cs 配对文件(App.xaml、MainWindow.xaml、ChatBoxWindow.xaml 等),说明项目采用了标准的 MVVM 相近模式,XAML 负责界面声明,C# 负责逻辑绑定。
OCR 层(Python HTTP Server):WPF 程序本身不执行图像识别,而是通过 HTTP IPC 机制调用独立部署的 Python OCR 服务。项目内置了四个可选 OCR 后端:
oneocr.onemodel 约数十 MB,随 GitHub 仓库分发,推理完全本地化,是默认选项。app/webserver/RapidOCR/ 下以 Python 脚本形式提供,支持 GPU 加速。这种「C# 主程序 + Python OCR 服务」的架构设计有其合理性:WPF 擅长桌面 UI 和系统交互,而 Python 在 CV/ML 领域生态成熟、模型丰富,两者通过 socket(RapidOCR server 使用 9997 端口)或 HTTP REST 通信解耦。OCR Server Manager(OcrServerManager.cs)负责启动、监控和关闭这些 Python 子进程。
翻译层(多后端聚合):翻译服务通过 ITranslationService 接口抽象,具体实现包括 GeminiTranslationService、ChatGptTranslationService、GroqTranslationService、OllamaTranslationService、MistralTranslationService、LMStudioTranslationService、GoogleTranslateService、YandexTranslationService 等,涵盖商业 API(Gemini/ChatGPT/Groq)、自托管大模型(Ollama/LM Studio)和免费翻译 API(Google/Yandex)。TranslationServiceFactory 根据用户配置动态创建对应实例。此外,项目还支持自定义 API 端点(CustomApiTranslationService),允许用户接入任意兼容 OpenAI-Chat 格式的翻译接口,包括开源本地模型。
RST 不仅处理文本,还支持语音。localWhisperService.cs 负责将游戏音频中的语音转录为文字(Speech-to-Text),这意味着部分没有硬字幕的游戏也能使用。生成的文字经翻译后,再通过 TTS(Text-to-Speech)模块读出来。项目支持四种 TTS 后端:
| 后端 | 费用 | 网络需求 | 隐私 | 适用场景 |
|---|---|---|---|---|
| ElevenLabs | 免费额+付费 | 必须联网 | 云端 | 最高自然度 |
| Google Cloud TTS | 按量付费 | 必须联网 | 云端 | 语种覆盖广 |
| Windows TTS | 免费 | 不需要 | 本地 | 零配置,Windows 自带 |
| Supertonic | 免费 | 不需要 | 100%本地 | 离线多语种(31种),基于 ONNX Runtime |
Supertonic 是最新加入的选项,由 Supertone 开发,基于 OpenRAIL-M 许可的模型,通过 ONNX Runtime 在 CPU 上运行,无需 GPU,无需网络,模型约 400MB,首次使用后完全离线工作。这代表了 RST 在隐私保护方向上的持续投入。
游戏内文字捕获是整个工具的核心入口。WPF 程序使用 GraphicsCaptureService.cs 实现 Windows 10+ 的原生窗口捕获 API(Windows.Graphics.Capture),配合 Direct3D11Helper.cs 实现 GPU 加速的帧获取。TranslationAreaSelectorWindow 允许用户在屏幕上拖拽选择翻译区域,WindowSelectorPopup 用于指定目标游戏窗口,BlockDetectionManager 负责智能识别画面中的文字区域,避免捕获空白或无关区域。
对于普通玩家,RSTGameTranslation 提供了开箱即用的体验:
rst.exe 及所有依赖),解压即用,无需安装 .NET SDK(自包含发布)。对于进阶用户,RST 提供了丰富的自定义选项:覆盖层样式(字体、颜色、透明度)、聊天窗口皮肤、快捷键绑定(用于呼出翻译/暂停 TTS)、上下文感知翻译(识别角色名并维护记忆以保持一致性)等。开发者则可以在 Visual Studio 中打开 RST.sln 解决方案,源码结构清晰,可以针对性地修改或扩展翻译后端。
尽管功能丰富,RSTGameTranslation 也面临几个客观限制:
RSTGameTranslation 的走红(552 Stars,83 Forks,自 2025 年 5 月起不到一年内)反映了一个更大的趋势:游戏本地化的需求正从专业翻译行业向终端用户下沉。随着 AI 翻译质量提升,「机器翻译+人工校对」的半自动化本地化正在向「AI 实时翻译」的端侧工具演进。
项目在技术选型上的务实态度值得关注:WPF+Python OCR 的组合兼顾了 UI 开发效率和 ML 模型生态;多后端设计让用户可以根据预算灵活选择;Supertonic 的引入表明开源本地 AI TTS 已经成熟到可以在实际产品中使用。
从代码质量角度看,项目源码结构规范、接口设计清晰(ITranslationService、TranslationServiceFactory 等),采用了 WPF 桌面应用的主流模式。虽然未在仓库中找到单元测试文件(69 个 .cs 文件均无对应 .csproj 中的 TestProject 引用),文档质量(README 详尽、多语言版本)弥补了这一点。
如果你是一个热爱外文游戏的玩家、RAG 开发者、或对 AI + 桌面工具交叉领域感兴趣的工程师,RSTGameTranslation 值得一试——无论是作为使用者还是学习参考。