Translumo:基于模块化架构的实时屏幕文本翻译系统
2026/6/22 12:55:29 网站建设 项目流程

Translumo:基于模块化架构的实时屏幕文本翻译系统

【免费下载链接】TranslumoAdvanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc.项目地址: https://gitcode.com/gh_mirrors/tr/Translumo

Translumo是一个面向Windows平台的实时屏幕文本翻译解决方案,采用C#和.NET技术栈构建。该系统通过集成OCR识别、翻译服务调用和文本处理流水线,实现了对屏幕任意区域文本的实时捕捉与翻译。项目采用工厂模式和多层架构设计,支持多种OCR引擎和翻译服务的可插拔式集成。

技术背景与核心挑战

实时屏幕文本翻译面临三个主要技术挑战:低延迟的屏幕捕捉、准确的多语言OCR识别,以及高效稳定的翻译服务集成。传统的屏幕翻译工具通常面临性能瓶颈和识别准确率问题,特别是在处理动态内容、特殊字体和复杂背景时表现不佳。

Translumo的技术方案通过以下方式解决这些挑战:

  1. 异步处理流水线:屏幕捕捉、OCR识别和翻译服务调用并行执行
  2. 多引擎协同:支持Windows OCR、Tesseract和EasyOCR三种识别引擎
  3. 智能缓存机制:避免重复翻译相同内容,提升响应速度
  4. 代理轮换策略:支持多代理服务器配置,避免服务限制

系统架构概览

Translumo采用分层架构设计,主要组件包括:

// 核心处理服务位于 src/Translumo.Processing/TranslationProcessingService.cs public class TranslationProcessingService : IProcessingService, IDisposable { private readonly ICapturerFactory _capturerFactory; private readonly IChatTextMediator _chatTextMediator; private readonly OcrEnginesFactory _enginesFactory; private readonly TranslatorFactory _translatorFactory; private readonly TtsFactory _ttsFactory; private readonly TextDetectionProvider _textProvider; private readonly TextResultCacheService _textResultCacheService; }

系统工作流程如下:

  1. 屏幕捕捉模块捕获指定区域图像
  2. OCR引擎工厂根据配置选择合适的识别引擎
  3. 文本检测提供器处理识别结果并提取有效文本
  4. 翻译器工厂调用相应的翻译服务API
  5. 文本到语音引擎(可选)生成语音输出
  6. 翻译结果显示在覆盖窗口中

核心模块实现原理

OCR引擎工厂模式

OCR引擎系统采用工厂模式设计,支持多种识别技术的动态选择:

// src/Translumo.OCR/OcrEnginesFactory.cs public class OcrEnginesFactory { public IEnumerable<IOCREngine> GetEngines(IEnumerable<OcrConfiguration> ocrConfigurations, Languages detectionLanguage) { foreach (var ocrConfiguration in ocrConfigurations) { var confType = ocrConfiguration.GetType(); if (confType == typeof(WindowsOCRConfiguration)) { // Windows OCR引擎实现 var engine = TryGetEngine(() => new WindowsOCREngine(langDescriptor), detectionLanguage); if (engine != null) yield return engine; } else if (confType == typeof(TesseractOCRConfiguration)) { // Tesseract引擎实现 var engine = TryGetEngine(() => new TesseractOCREngine(langDescriptor), detectionLanguage); if (engine != null) yield return engine; } // ... 其他引擎处理 } } }

每种OCR引擎都有其特定的适用场景:

引擎类型技术实现适用场景性能特点
Windows OCRWindows.Media.Ocr API标准字体、游戏界面原生集成,性能最佳
Tesseract 5.2开源OCR库复杂排版、特殊字体支持多语言,可定制
EasyOCR深度学习模型低对比度、模糊文字识别精度高,资源消耗大

翻译服务抽象层

翻译模块采用抽象工厂模式,支持多种翻译服务的无缝切换:

// src/Translumo.Translation/TranslatorFactory.cs public class TranslatorFactory { public ITranslator CreateTranslator(TranslationConfiguration translatorConfiguration) { switch (translatorConfiguration.Translator) { case Translators.Deepl: return new DeepLTranslator(translatorConfiguration, _languageService, _logger); case Translators.Yandex: return new YandexTranslator(translatorConfiguration, _languageService, _actionDispatcher, _logger); case Translators.Papago: return new PapagoTranslator(translatorConfiguration, _languageService, _logger); case Translators.Google: return new GoogleTranslator(translatorConfiguration, _languageService, _logger); default: throw new NotSupportedException(); } } }

每个翻译器都继承自BaseTranslator基类,实现了统一的翻译接口:

public abstract class BaseTranslator : ITranslator { public abstract Task<string> TranslateTextAsync(string sourceText, CancellationToken cancellationToken = default); }

配置管理系统

系统配置采用分层结构,位于src/Translumo/Configuration/目录:

  1. SystemConfiguration.cs:系统级配置,包含语言设置和全局参数
  2. ScreenCaptureConfiguration.cs:屏幕捕捉配置,定义捕捉区域和刷新率
  3. HotKeysConfiguration.cs:热键配置,支持键盘和游戏手柄输入
  4. ChatWindowConfiguration.cs:翻译结果显示窗口配置

配置系统支持运行时更新和持久化存储,通过MVVM模式实现界面与配置的绑定。

性能优化策略

异步处理流水线

系统采用异步编程模型,避免UI线程阻塞:

private async Task ProcessTranslationAsync(CancellationToken cancellationToken) { // 1. 异步捕捉屏幕 var capturedImage = await _capturer.CaptureScreenAsync(cancellationToken); // 2. 并行执行OCR识别 var ocrTasks = _engines.Select(engine => engine.DetectTextAsync(capturedImage, cancellationToken)); var results = await Task.WhenAll(ocrTasks); // 3. 文本处理和质量评估 var bestText = _textProvider.GetBestDetectionResult(results); // 4. 缓存检查 if (_textResultCacheService.TryGetCachedTranslation(bestText, out var cachedResult)) { // 使用缓存结果 return cachedResult; } // 5. 异步翻译调用 var translation = await _translator.TranslateTextAsync(bestText, cancellationToken); // 6. 更新缓存 _textResultCacheService.CacheTranslation(bestText, translation); }

智能缓存机制

文本结果缓存服务TextResultCacheService实现了LRU缓存策略,避免重复翻译相同内容:

public class TextResultCacheService { private readonly LimitedDictionary<string, string> _cache; public bool TryGetCachedTranslation(string sourceText, out string translation) { // 对文本进行标准化处理(去除空格、转换为小写等) var normalizedText = NormalizeText(sourceText); return _cache.TryGetValue(normalizedText, out translation); } }

代理轮换与容错

翻译服务集成代理支持,避免API限制:

// src/Translumo.Translation/Configuration/Proxy.cs public class Proxy { public string Host { get; set; } public int Port { get; set; } public string Username { get; set; } public string Password { get; set; } public ProxyType Type { get; set; } } // 代理轮换策略 private IHttpReader GetHttpReaderWithProxy() { var proxy = _proxyManager.GetNextAvailableProxy(); return new HttpReader(proxy); }

扩展机制与二次开发

自定义OCR引擎集成

开发者可以通过实现IOCREngine接口集成新的OCR引擎:

public interface IOCREngine { Task<TextDetectionResult> DetectTextAsync(Bitmap image, CancellationToken cancellationToken); OcrConfiguration Configuration { get; } }

翻译服务扩展

新的翻译服务需要继承BaseTranslator基类:

public class CustomTranslator : BaseTranslator { public override async Task<string> TranslateTextAsync(string sourceText, CancellationToken cancellationToken = default) { // 实现自定义翻译逻辑 var response = await _httpClient.PostAsync(apiEndpoint, content, cancellationToken); return ParseTranslationResponse(response); } }

配置系统扩展

系统配置支持运行时动态加载,新增配置类需要继承相应的基类并注册到DI容器中。

应用场景与技术实现

游戏实时翻译

游戏翻译场景对性能要求极高,Translumo采用以下优化策略:

  1. 最小化捕捉区域:通过SelectionAreaWindow精确选择对话区域
  2. DirectX屏幕捕捉:使用ScreenDXCapturer实现高性能屏幕捕捉
  3. 游戏手柄支持:集成GamepadService支持手柄热键操作

Translumo英文界面演示:实时翻译流程和快捷键操作指南

视频字幕翻译

针对视频硬字幕翻译的特殊需求:

  1. 动态区域跟踪:自动检测字幕区域变化
  2. 多语言识别:支持30+种语言的OCR识别
  3. 翻译质量评估:使用TextValidityPredictor评估翻译结果准确性

Translumo俄语界面演示:支持多语言界面切换和本地化操作

软件界面翻译

软件界面翻译需要处理静态文本和动态内容:

  1. 文本区域检测:识别界面中的文本元素
  2. 上下文感知:考虑界面元素的语义关系
  3. 批量处理:支持同时翻译多个相关文本区域

部署与配置指南

系统要求

  • 操作系统:Windows 10版本2004或更高,Windows 11
  • 运行环境:.NET 6.0 Runtime
  • 内存要求:2GB RAM(基本功能),8GB RAM(EasyOCR引擎)
  • GPU支持:可选NVIDIA GPU(CUDA 11.8)用于深度学习OCR

编译与构建

项目使用Visual Studio解决方案文件管理,支持多种构建配置:

# 克隆项目 git clone https://gitcode.com/gh_mirrors/tr/Translumo # 恢复NuGet包 dotnet restore Translumo.sln # 构建发布版本 dotnet build Translumo.sln -c Release

配置文件结构

主要配置文件位于项目根目录和用户配置目录:

📁 项目结构 ├── src/ │ ├── Translumo/Configuration/ # 系统配置类 │ ├── Translumo.OCR/Configuration/ # OCR引擎配置 │ ├── Translumo.Translation/Configuration/ # 翻译服务配置 │ └── Translumo.TTS/ # 语音合成配置 ├── appsettings.json # 应用设置 └── user.config # 用户个性化配置

性能调优建议

  1. 内存优化:调整TextResultCacheService缓存大小
  2. 网络优化:配置合适的代理服务器和超时设置
  3. 识别优化:根据内容类型选择合适的OCR引擎
  4. 显示优化:调整翻译窗口的透明度和刷新率

技术架构优势

Translumo的模块化架构提供了以下技术优势:

  1. 可扩展性:工厂模式和接口设计支持新功能的快速集成
  2. 可维护性:清晰的关注点分离和依赖注入设计
  3. 性能优化:异步处理和缓存机制确保实时响应
  4. 多平台支持:基于.NET技术栈,具备跨平台潜力

系统采用现代软件工程实践,包括单元测试、持续集成和代码质量检查,确保项目的长期可维护性。

总结

Translumo作为一个技术驱动的实时屏幕翻译解决方案,通过精心设计的架构解决了屏幕文本翻译中的关键技术挑战。系统的模块化设计、多引擎支持和性能优化策略使其能够适应各种应用场景,从游戏翻译到视频字幕处理,再到软件界面本地化。

项目的开源特性允许开发者根据特定需求进行定制和扩展,而清晰的代码结构和文档则降低了二次开发的门槛。随着人工智能和计算机视觉技术的发展,Translumo的架构设计为未来集成更先进的OCR和翻译技术提供了良好的基础。

【免费下载链接】TranslumoAdvanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc.项目地址: https://gitcode.com/gh_mirrors/tr/Translumo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询