Translumo基于模块化架构的实时屏幕文本翻译系统【免费下载链接】TranslumoAdvanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc.项目地址: https://gitcode.com/gh_mirrors/tr/TranslumoTranslumo是一个面向Windows平台的实时屏幕文本翻译解决方案采用C#和.NET技术栈构建。该系统通过集成OCR识别、翻译服务调用和文本处理流水线实现了对屏幕任意区域文本的实时捕捉与翻译。项目采用工厂模式和多层架构设计支持多种OCR引擎和翻译服务的可插拔式集成。技术背景与核心挑战实时屏幕文本翻译面临三个主要技术挑战低延迟的屏幕捕捉、准确的多语言OCR识别以及高效稳定的翻译服务集成。传统的屏幕翻译工具通常面临性能瓶颈和识别准确率问题特别是在处理动态内容、特殊字体和复杂背景时表现不佳。Translumo的技术方案通过以下方式解决这些挑战异步处理流水线屏幕捕捉、OCR识别和翻译服务调用并行执行多引擎协同支持Windows OCR、Tesseract和EasyOCR三种识别引擎智能缓存机制避免重复翻译相同内容提升响应速度代理轮换策略支持多代理服务器配置避免服务限制系统架构概览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; }系统工作流程如下屏幕捕捉模块捕获指定区域图像OCR引擎工厂根据配置选择合适的识别引擎文本检测提供器处理识别结果并提取有效文本翻译器工厂调用相应的翻译服务API文本到语音引擎可选生成语音输出翻译结果显示在覆盖窗口中核心模块实现原理OCR引擎工厂模式OCR引擎系统采用工厂模式设计支持多种识别技术的动态选择// src/Translumo.OCR/OcrEnginesFactory.cs public class OcrEnginesFactory { public IEnumerableIOCREngine GetEngines(IEnumerableOcrConfiguration 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 Taskstring TranslateTextAsync(string sourceText, CancellationToken cancellationToken default); }配置管理系统系统配置采用分层结构位于src/Translumo/Configuration/目录SystemConfiguration.cs系统级配置包含语言设置和全局参数ScreenCaptureConfiguration.cs屏幕捕捉配置定义捕捉区域和刷新率HotKeysConfiguration.cs热键配置支持键盘和游戏手柄输入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 LimitedDictionarystring, 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 { TaskTextDetectionResult DetectTextAsync(Bitmap image, CancellationToken cancellationToken); OcrConfiguration Configuration { get; } }翻译服务扩展新的翻译服务需要继承BaseTranslator基类public class CustomTranslator : BaseTranslator { public override async Taskstring TranslateTextAsync(string sourceText, CancellationToken cancellationToken default) { // 实现自定义翻译逻辑 var response await _httpClient.PostAsync(apiEndpoint, content, cancellationToken); return ParseTranslationResponse(response); } }配置系统扩展系统配置支持运行时动态加载新增配置类需要继承相应的基类并注册到DI容器中。应用场景与技术实现游戏实时翻译游戏翻译场景对性能要求极高Translumo采用以下优化策略最小化捕捉区域通过SelectionAreaWindow精确选择对话区域DirectX屏幕捕捉使用ScreenDXCapturer实现高性能屏幕捕捉游戏手柄支持集成GamepadService支持手柄热键操作Translumo英文界面演示实时翻译流程和快捷键操作指南视频字幕翻译针对视频硬字幕翻译的特殊需求动态区域跟踪自动检测字幕区域变化多语言识别支持30种语言的OCR识别翻译质量评估使用TextValidityPredictor评估翻译结果准确性Translumo俄语界面演示支持多语言界面切换和本地化操作软件界面翻译软件界面翻译需要处理静态文本和动态内容文本区域检测识别界面中的文本元素上下文感知考虑界面元素的语义关系批量处理支持同时翻译多个相关文本区域部署与配置指南系统要求操作系统Windows 10版本2004或更高Windows 11运行环境.NET 6.0 Runtime内存要求2GB RAM基本功能8GB RAMEasyOCR引擎GPU支持可选NVIDIA GPUCUDA 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 # 用户个性化配置性能调优建议内存优化调整TextResultCacheService缓存大小网络优化配置合适的代理服务器和超时设置识别优化根据内容类型选择合适的OCR引擎显示优化调整翻译窗口的透明度和刷新率技术架构优势Translumo的模块化架构提供了以下技术优势可扩展性工厂模式和接口设计支持新功能的快速集成可维护性清晰的关注点分离和依赖注入设计性能优化异步处理和缓存机制确保实时响应多平台支持基于.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),仅供参考