Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
190 changes: 114 additions & 76 deletions docs/README-RU.md
Original file line number Diff line number Diff line change
@@ -1,80 +1,118 @@
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Github All Releases](https://img.shields.io/github/downloads/ramjke/Translumo/total.svg)]()

<p align="center">
<img width="670" src="https://github.com/Danily07/Translumo/assets/29047281/8985049f-ea1c-428e-94be-042ece66cb54">
<img width="670" src="https://github.com/ramjke/Translumo/assets/29047281/8985049f-ea1c-428e-94be-042ece66cb54">
</p>
<p align="center"><a href="https://github.com/Danily07/Translumo/blob/master/README.md"><b>EN</b></a> | <b>RU</b></p>
<p align="center">Продвинутый экранный переводчик. <b>Translumo</b> способен переводить появляющийся текст в выбранной области в режиме реального времени (например, субтитры).</p>
<h1>Главные особенности</h1>
<ul>
<li><b>Высокая точность распознавания текста</b></li>
<p>Translumo использует сразу несколько OCR движков для распознавания текста. За счет обученной модели машинного обучения механизм выбирает лучший результат на каждой итерации.</p>
<p align="center">
<img width="740" src="https://github.com/Danily07/Translumo/assets/29047281/649e5fab-a5de-4c54-a3d8-f7ea95b8f218">
</p>
<li><b>Простой интерфейс</b></li>
Основным принципом разработки было сделать предельно универсальное приложения без необходимости подгонки настроек под каждый отдельный случай изображения.
<li><b>Низкая задержка</b></li>
В реализации используются различные механизмы оптимизации и кэширования результатов между фреймами, чтобы минимизировать задержку перевода в реальном времени.
<li><b>Доступные OCR движки:</b> Tesseract 5.0, WindowsOCR, EasyOCR.</li>
<li><b>Доступные переводчики:</b> Google Translate, Yandex translate, Naver Papago, DeepL.</li>
<li><b>Доступные языки для распознавания:</b> русский, английский, японский, китайский (упрощенный), корейский.</li>
<li><b>Доступные языки для перевода:</b> английский, русский, японский, китайский (упрощенный), корейский, французский, испанский, немецкий, португальский, итальянский, вьетнамский, тайский, турецкий, арабский, греческий, португальский (бразильский), польский, белорусский, персидский, индонезийский</li>
</ul>
<h1>Системные требования</h1>
<ul>
<li>Windows 10 build 19041 (20H1) / Windows 11</li>
<li>DirectX11</li>
<li>8 GB ОЗУ <i>(для режима с EasyOCR)</i></li>
<li>5 GB свободного места на диске <i>(для режима с EasyOCR)</i></li>
<li>Nvidia GPU с поддержкой CUDA SDK 11.8 (GTX 750, 8xxM, 9xx серия или новее) <i>(для режима с EasyOCR)</i></li>
</ul>
<h1>Как использовать</h1>
<img src="https://github.com/Danily07/Translumo/blob/c1dc35c8f7e074bfcddb5b840deb9534dde581b7/docs/preview-RU.gif">
<ol>
<li>Откройте Настройки</li>
<li>Выберите нужные Языки->Исходный язык and Языки->Язык перевода</li>
<li>Выберите Распознавание текста->необходимые движки (см. Советы по использованию)</li>
<li>Выберите область захвата текста</li>
<li>Включите перевод</li>
</ol>
<h1>Советы по использованию</h1>
Рекомендую всегда держать включенным Windows OCR. Он наиболее эффективен в качестве движка для первичного распознавания текста на каждом фрейме (в целях оптимизации далеко не на каждой итерации используется полный цикл с задействованием всех движков)
<h3>Рекомендованные комбинации OCR движков</h3>
<ul>
<li><b>Tesseract-Windows OCR-EasyOCR</b> - продвинутый режим с наибольшей точностью распознавания</li>
<li><b>Tesseract-Windows OCR</b> - значительно менее затратный вариант по производительности. Его будет достаточно для простых ситуаций, когда текст имеет простой однотонный фон, а шрифт хорошо читается</li>
<li><b>Windows OCR-EasyOCR</b> - для отдельных наиболее сложных случаев, когда Tesseract полностью бесполезен и добавляет лишь лишний шум в результаты</li>
</ul>
<h3>Выбирайте минимальную область захвата текста</h3>
<p>Это снижает шанс того, что в область попадут случайные символы с фона изображения. Также фрейм с большим размером обрабатывается дольше.</p>
<h3>Используйте прокси список для избежания блокировок со стороны переводчиков</h1>
<p>Некоторые переводчики способны временно блокировать клиент по IP за слишком большое число запросов. Вы можете избежать этого, включив в <b>Языки->Прокси</b> личные IPv4 прокси (1-2 должно быть достаточно). Приложение будет равномерно распределять доступные прокси между запросами, чтобы уменьшить число запросов в момент с одного IP.</p>
<h3>Используйте Безрамочный/Оконный режимы в играх (не Полноэкранный)</h3>
<p>Это необходимо, чтобы окно оверлея с переводом корректно отображалось поверх.</p>
<p>Если в игре не предусмотрена такая настройка, можете использовать сторонние программы (например, <a href="https://github.com/Codeusa/Borderless-Gaming">Borderless Gaming</a>)</p>
<h3>Устанавливайте приложение на SSD</h3>
<p>В случае, если пользуетесь режимом с EasyOCR. Это существенно снизит время холодного старта перевода после запуска приложения.</p>
<h1>FAQ</h3>
<h4>Получаю ошибку "Failed to capture screen" или ничего не происходит после старта перевода</h4>
<p>Убедитесь, что нужное окно с текстом активно (и в фокусе). Также можете попробовать перезапустить Translumo или переоткрыть нужное окно.</p>
<h4>Получаю ошибку "Text translation is failed" после некоторого времени успешной работы переводчика</h4>
<p>Велика вероятность, что вы получили временную блокировку (~30 мин. у DeepL) за большое число запросов. Переключитесь на другой переводчик или используйте список прокси.</p>
<h4>Не могу включить Windows OCR</h4>
<p>Убедитесь, что приложение запущено под Администратором. Translumo каждый раз проверяет наличие установленных системных языковых пакетов через PowerShell.</p>
<h4>Установил безрамочный/оконный режим, но окно перевода все еще не видно из под игры</h4>
<p>Когда игра запущена и ее окно в фокусе, используйте горячую клавишу (ALT+T по-умолчанию), чтобы сначала скрыть, а затем показать заново окно перевода.</p>
<h4>Установка/скачивание пакетов для EasyOCR упала с ошибкой</h4>
<p>Попробуйте установить их под VPN</p>
<h4>Некоторые горячие клавиши не работают</h4>
<p>Вероятно, их перехватывают другие приложения</p>
<h4>Получаю ошибку "Text detection is failed (TesseractOCREngine)"</h4>
<p>Проверьте, что в пути расположения приложения нет кириллицы</p>
<h1>Сборка</h1>
<p><i>Требуются Visual Studio 2022 и .NET 7 SDK</i></p>
<ul>
<li>Склонируйте репозиторий (<b>master</b> ветка всегда равнозначна релизной версии):</li>

<h2 align="center" style="border: 0">Продвинутый экранный переводчик для 🎮игр и 🎬субтитров</h2>

<p align="center"><a href="https://github.com/ramjke/Translumo"><strong>English</strong></a> | <strong>Русский</strong></a></p>

## Статус проекта
У Translumo появился новый мейнтейнер. Разработка ведется активно, внедряются улучшения, и любые вклады приветствуются. Ожидайте новую версию совсем скоро.

## Основные функции

- **Высокая точность распознавания текста**
Translumo позволяет одновременно использовать несколько OCR движков. Специальный алгоритм оценивает результаты каждого движка и выбирает лучший.

![OCR Example](https://github.com/ramjke/Translumo/assets/29047281/649e5fab-a5de-4c54-a3d8-f7ea95b8f218)

- **Ориентирован на игры**
Разработан для перевода в реальном времени в ПК-играх, но работает в любой области экрана и с любым приложением.

- **Низкая задержка**
Оптимизации минимизируют нагрузку на систему и задержку между появлением текста и его переводом.

- **OCR движки**: Tesseract 5.2, Windows OCR, EasyOCR.

- **Переводчики**: Google Translate, DeepL, Яндекс Переводчик, Naver Papago.

- **Поддерживаемые языки распознавания**: английский, русский, японский, китайский (упрощенный), корейский.

- **Поддерживаемые языки перевода**: английский, русский, японский, китайский (упрощенный), корейский, французский, испанский, немецкий, португальский, итальянский, вьетнамский, тайский, турецкий, арабский, греческий, бразильский португальский, польский, белорусский, персидский, индонезийский.

## Системные требования

### Минимальные требования для Tesseract и WindowsOCR
- Windows 10 версии 2004 (build 19041) или новее, или Windows 11
- GPU совместимый с DirectX 11
- 2 ГБ ОЗУ

### Минимальные требования для EasyOCR
- NVIDIA GPU с поддержкой CUDA SDK 11.8 (GTX 750, 8xxM, 9xx серия или новее)
- 8 ГБ ОЗУ
- Не менее 5 ГБ свободного места на диске

## Как использовать
![Превью](https://github.com/ramjke/Translumo/blob/c1dc35c8f7e074bfcddb5b840deb9534dde581b7/docs/preview-RU.gif)

1. Откройте Настройки (**Alt+G**).
2. Выберите языки: исходный язык для OCR и язык перевода.
3. Выберите движки распознавания текста (см. Советы по использованию).
4. Определите область захвата: нажмите **Alt+Q** и выделите область на экране.
5. Запустите перевод (нажмите **~**).

## Советы по использованию
- Всегда держите включенным Windows OCR — это самый быстрый и эффективный движок для первичного распознавания текста с минимальной нагрузкой на систему.

### Рекомендуемые комбинации OCR движков
- **Tesseract + Windows OCR + EasyOCR** — продвинутый режим с максимальной точностью.
- **Tesseract + Windows OCR** — меньше нагрузки на систему; подходит для простых фонов и распространенных шрифтов.
- **Windows OCR + EasyOCR** — для сложных случаев; отключение Tesseract в таком случае уменьшает шум текста.

### Выбирайте минимальную область захвата
Меньшая область уменьшает вероятность захвата случайных символов с фона. Кроме того, распознавание текста будет идти быстрее.

### Используйте прокси, чтобы избежать блокировок переводчиков
Некоторые переводчики, такие как DeepL или Google Translate, могут временно блокировать ваш IP при слишком большом числе запросов. Чтобы этого избежать, добавьте один или два личных или общих IPv4-прокси в **Языки → Прокси**. Translumo будет автоматически чередовать прокси между запросами, снижая запросы с каждого отдельного IP и предотвращая блокировки.

### Используйте безрамочный или оконный режим в играх (не полноэкранный)
Эти режимы необходимы для корректного отображения окна перевода. Если игра не поддерживает их, используйте утилиты вроде [Borderless Gaming](https://github.com/Codeusa/Borderless-Gaming).

### Для EasyOCR установите Translumo на SSD
Снижает время первого запуска при использовании EasyOCR, так как большие модели загружаются в ОЗУ.

## FAQ

**Q: Появляется "Failed to capture screen" или ничего не происходит после запуска перевода**
A: Убедитесь, что целевое окно активно. Перезапустите Translumo или откройте окно заново.

**Q: "Text translation failed" после успешного перевода**
A: Сервис перевода мог временно заблокировать запросы с вашего IP. Смените переводчик или настройте прокси.

**Q: Не удается включить WindowsOCR**
A: Запустите приложение от имени администратора. Translumo проверяет установленные языковые пакеты Windows через PowerShell.

**Q: Безрамочный/оконный режим включен, но окно перевода под игрой**
A: С фокусом на игре нажмите горячую клавишу (**Alt+T** по умолчанию), чтобы скрыть и показать окно перевода.

**Q: Не удалось скачать EasyOCR пакет**
A: Попробуйте установить через VPN.

**Q: Горячие клавиши не работают**
A: Другие приложения могут перехватывать клавиши.

**Q: Ошибка "Text detection is failed (TesseractOCREngine)**
A: Убедитесь, что путь установки приложения содержит только латинские буквы.

**Q: Кажется, в программе вирус**
A: В программе нет вирусов. Вы можете сами это проверить, посмотрев весь код и собрав программу самостоятельно. Иногда антивирусы или Virustotal могут выдавать предупреждение, потому что в программе есть скрипт для PowerShell, который нужен, чтобы Windows OCR работал. Но это безопасно.


## Сборка

*Необходимы Visual Studio 2022 и .NET 8 SDK.*

1. Клонируйте репозиторий:

```bash
git clone https://github.com/Danily07/Translumo.git
git clone https://github.com/ramjke/Translumo.git
```
<li>Восстановите пакеты и запустите сборку солюшена. При сборке будет вызван <b>binaries_extract.bat</b> скрипт, который автоматически скачает и поместит в выходную директорию файлы моделей и компоненты от Python.</li>
</ul>

> Примечание: Во время сборки **binaries_extract.bat** автоматически скачает модели и Python-библиотеки (~400 МБ) в output.

## Альтернативные решения

- [Lookupper](https://lookupper.ru) — экранный словарь и переводчик для изучения языков
- [ScreTran](https://github.com/PavlikBender/ScreTran) — простой экранный переводчик
Loading