{"id":15130529,"url":"https://github.com/danily07/translumo","last_synced_at":"2025-05-14T20:08:38.190Z","repository":{"id":176019068,"uuid":"654569590","full_name":"Danily07/Translumo","owner":"Danily07","description":"Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc.","archived":false,"fork":false,"pushed_at":"2024-07-25T07:35:45.000Z","size":104775,"stargazers_count":3694,"open_issues_count":129,"forks_count":191,"subscribers_count":47,"default_branch":"master","last_synced_at":"2025-04-03T10:06:58.658Z","etag":null,"topics":["autotranslate","easyocr","game-translation","mlnet","ocr","translation"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Danily07.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-16T12:18:22.000Z","updated_at":"2025-04-02T19:43:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"edd44b54-9cc0-4480-9ae0-2fe5f40e3e2a","html_url":"https://github.com/Danily07/Translumo","commit_stats":null,"previous_names":["danily07/translumo"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danily07%2FTranslumo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danily07%2FTranslumo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danily07%2FTranslumo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danily07%2FTranslumo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Danily07","download_url":"https://codeload.github.com/Danily07/Translumo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248351649,"owners_count":21089318,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autotranslate","easyocr","game-translation","mlnet","ocr","translation"],"created_at":"2024-09-26T03:01:29.490Z","updated_at":"2025-04-11T06:18:53.938Z","avatar_url":"https://github.com/Danily07.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Github All Releases](https://img.shields.io/github/downloads/Danily07/Translumo/total.svg)]()\n\u003ca href=\"https://trello.com/b/MEHnLySw/translumo\"\u003e\u003cimg src=\"https://img.shields.io/badge/Trello-0052CC?style=for-the-badge\u0026logo=trello\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"670\" src=\"https://github.com/Danily07/Translumo/assets/29047281/8985049f-ea1c-428e-94be-042ece66cb54\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cb\u003eEN\u003c/b\u003e | \u003ca href=\"docs/README-RU.md\"\u003e\u003cb\u003eRU\u003c/b\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003eAdvanced screen translator. \u003cb\u003eTranslumo\u003c/b\u003e is able to detect and translate appearing in the selected area text in real-time (e.g. subtitles).\u003c/p\u003e\n\u003ch1\u003eMain features\u003c/h1\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003cb\u003eHigh text recognition precision\u003c/b\u003e\u003c/li\u003e\n  \u003cp\u003eTranslumo allows to combine the usage of several OCR engines simultaneously. It uses machine learning training model for scoring each recognized result by OCR and chooses the best one.\u003c/p\u003e\n  \u003cp align=\"center\"\u003e\n    \u003cimg width=\"740\" src=\"https://github.com/Danily07/Translumo/assets/29047281/649e5fab-a5de-4c54-a3d8-f7ea95b8f218\"\u003e\n  \u003c/p\u003e\n  \u003cli\u003e\u003cb\u003eSimple interface\u003c/b\u003e\u003c/li\u003e\n  The main idea was to make tool, that does not require manual adjustments for each case and convenient for everyday use. \n  \u003cli\u003e\u003cb\u003eLow latency\u003c/b\u003e\u003c/li\u003e\n  There are several implemented optimizations to reduce impact on system performance and minimize latency between the moment a text appears and actual translation. \n  \u003cli\u003e\u003cb\u003eIntegrated modern OCR engines:\u003c/b\u003e Tesseract 5.2, WindowsOCR, EasyOCR\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003eAvailable translators:\u003c/b\u003e Google Translate, Yandex translate, Naver Papago, DeepL\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003eAvailable recognition languages:\u003c/b\u003e English, Russian, Japanese, Chinese (simplified), Korean\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003eAvailable translation languages:\u003c/b\u003e English, Russian, Japanese, Chinese (simplified), Korean, French, Spanish, German, Portuguese, Italian, Vietnamese, Thai, Turkish, Arabic\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eSystem requirements\u003c/h1\u003e\n\u003cul\u003e\n  \u003cli\u003eWindows 10 build 19041 (20H1) / Windows 11\u003c/li\u003e\n  \u003cli\u003eDirectX11\u003c/li\u003e\n  \u003cli\u003e8 GB RAM \u003ci\u003e(for mode with EasyOCR)\u003c/i\u003e\u003c/li\u003e\n  \u003cli\u003e5 GB free storage space \u003ci\u003e(for mode with EasyOCR)\u003c/i\u003e\u003c/li\u003e\n  \u003cli\u003eNvidia GPU with CUDA SDK 11.8 support (GTX 750, 8xxM, 9xx series or later) \u003ci\u003e(for mode with EasyOCR)\u003c/i\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHow to use\u003c/h1\u003e\n\u003cimg src=\"https://github.com/Danily07/Translumo/blob/7f4a73ffba0e5a0090ea0bfc3d72acb99832a0f4/docs/preview-EN.gif\"\u003e\n\u003col\u003e\n  \u003cli\u003eOpen the Settings\u003c/li\u003e\n  \u003cli\u003eSelect Languages-\u003eSource language and Languages-\u003eTranslation language\u003c/li\u003e\n  \u003cli\u003eSelect Text recognition-\u003eEngines (please check Usage tips for recommendation modes)\u003c/li\u003e\n  \u003cli\u003eSelect capture area\u003c/li\u003e\n  \u003cli\u003eRun translation\u003c/li\u003e\n\u003c/ol\u003e \n\u003ch1\u003eUsage tips\u003c/h1\u003e\nGenerally, I recommend always keep Windows OCR turned on. This is the most effective OCR for the primary text detection with less impact on performance. \n\u003ch3\u003eRecommended combinations of OCR engines\u003c/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003cb\u003eTesseract-Windows OCR-EasyOCR\u003c/b\u003e - advanced mode with the highest precision\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003eTesseract-Windows OCR\u003c/b\u003e - noticeably less impact on system performance. It will be enough for cases when text has simple solid background and font is quite common\u003c/li\u003e\n  \u003cli\u003e\u003cb\u003eWindows OCR-EasyOCR\u003c/b\u003e - for very specific complex cases it makes sense to disable Tesseract and avoid unnecessary text noises\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSelect minimum capture area\u003c/h3\u003e\n\u003cp\u003eIt reduces chances of getting into the area random letters from background. Also the larger frame will take longer to process.\u003c/p\u003e\n\u003ch3\u003eUse proxy list to avoid blocking by translation services\u003c/h1\u003e\n\u003cp\u003eSome translators sometimes block client for a large number of requests. You can configure personal/shared IPv4 proxies (1-2 should be enough) on \u003cb\u003eLanguages-\u003eProxy tab\u003c/b\u003e. The application will alternately use proxies for requests to reduce number from one IP address.\u003c/p\u003e\n\u003ch3\u003eUse Borderless/Windowed modes in games (not Fullscreen)\u003c/h3\u003e\n\u003cp\u003eIt is necessary to display the translation window overlay correctly.\u003c/p\u003e\n\u003cp\u003eIf the game doesn't have such mode, you can use external tools to make it borderless (e.g. \u003ca href=\"https://github.com/Codeusa/Borderless-Gaming\"\u003eBorderless Gaming\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eInstall the application on SSD\u003c/h3\u003e\n\u003cp\u003eTo reduce cold launch time with enabled EasyOCR engine (loading large EasyOCR model into RAM).\u003c/p\u003e\n\u003ch1\u003eFAQ\u003c/h3\u003e\n\u003ch4\u003eI got error \"Failed to capture screen\" or nothing happens after translation starts\u003c/h4\u003e\n\u003cp\u003eMake sure that target window with text is active. Also try to restart Translumo or reopen target window.\u003c/p\u003e\n\u003ch4\u003eI got error \"Text translation is failed\" after successful using the translation\u003c/h4\u003e\n\u003cp\u003eThere is a high probability that translation service temporarily blocked requests from your IP. You can change translator or configure proxy list.\u003c/p\u003e\n\u003ch4\u003eCan't enable Windows OCR\u003c/h4\u003e\n\u003cp\u003eMake sure that the application is runned as an Administrator. Translumo each time tries check installed Windows language pack via PowerShell.\u003c/p\u003e\n\u003ch4\u003eI set borderless/windowed mode, but a translation window is still displayed under a game\u003c/h4\u003e\n\u003cp\u003eWhen game is running and focused use the hotkey (ALT+T by default) to hide and then show again translation window\u003c/p\u003e\n\u003ch4\u003ePackage downloading for EasyOCR failed\u003c/h4\u003e\n\u003cp\u003eTry to re-install it under VPN\u003c/p\u003e\n\u003ch4\u003eHotkeys don't work\u003c/h4\u003e\n\u003cp\u003eOther applications may intercept specific hotkeys handling\u003c/p\u003e\n\u003ch4\u003eI got error \"Text detection is failed (TesseractOCREngine)\"\u003c/h4\u003e\n\u003cp\u003eMake sure that the application path contains only latin letters.\u003c/p\u003e\n\u003ch1\u003eBuild\u003c/h1\u003e\n\u003cp\u003e\u003ci\u003eVisual Studio 2022 and .NET 7 SDK are required\u003c/i\u003e\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003eClone repository (\u003cb\u003emaster\u003c/b\u003e branch always equals last release version):\u003c/li\u003e\n  \n```bash\ngit clone https://github.com/Danily07/Translumo.git\n```\n  \u003cli\u003eRestore packages and build a solution. \u003cb\u003ebinaries_extract.bat\u003c/b\u003e will be executed during building, which will automatically download models and python binaries to target output directory.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eCredits\u003c/h1\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003ca href=\"https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit\"\u003eMaterial Design In XAML Toolkit\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://github.com/charlesw/tesseract\"\u003eTesseract .NET wrapper\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://github.com/shimat/opencvsharp\"\u003eOpencvsharp\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://github.com/pythonnet/pythonnet\"\u003ePython.NET\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://github.com/JaidedAI/EasyOCR\"\u003eEasyOCR\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://github.com/snakers4/silero-models\"\u003eSilero TTS\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanily07%2Ftranslumo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanily07%2Ftranslumo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanily07%2Ftranslumo/lists"}