
Как я написал свой overlay-переводчик на python
yanchino 10 минут назад Как я написал свой overlay-переводчик на python Простой 4 мин 463 Python * Windows * Open source * Интерфейсы * Кейс Из песочницы Бывало у вас такое: находите крутую инди-игру или визуальную...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Вот важная новость с фронта ИИ: yanchino 10 минут назад Как я написал свой overlay-переводчик на python Простой 4 мин 463 Python * Windows * Open source * Интерфейсы * Кейс Из песочницы Бывало у вас такое: находите крутую инди-игру или визуальную новеллу, а официальной русской локализации нет? Сидеть со смартфоном в руках и переводить экран через Google Переводчик - удовольствие сомнительное. Переключаться по Alt+Tab в браузер каждые две минуты - ломает всё погружение.
Посмотрев на существующие экранные переводчики, я понял, что они либо перегружены лишним функционалом, либо просят денег, либо просто неудобно сворачивают игру. В итоге я решил за пару вечеров собрать свой велосипед на Python: легковесную утилиту, которая по горячей клавише делает скриншот области, распознает текст, переводит его и выводит в красивом, прозрачном для кликов оверлее прямо поверх игры. Скрытый текстНа тот момент я еще не знал куда я вообще лезу и лучше бы не зналВ этой статье я расскажу, как устроен проект, с какими болями Windows API пришлось столкнуться и как заставить графическое окно пропускать сквозь себя клики мыши.
Технические детали
Из чего собирался велосипед Мне нужен был быстрый MVP, поэтому выбор пал на Python. Архитектура приложения состоит из четырех простых шагов: Захват экрана ➔ Распознавание (OCR) ➔ Перевод ➔ Вывод на экран. Для реализации этого мини-конвейера я выбрал следующие библиотеки: MSS (Multiple Screen Shots): Очень быстрая библиотека для создания скриншотов.
В отличие от стандартного PIL, она делает снимки экрана за считанные миллисекунды, что критично для динамики. EasyOCR: Готовый движок для распознавания текста на базе PyTorch. EasyOCR из коробки гораздо лучше справляется со сложными игровыми шрифтами и стилизованным текстом новелл прямо на локальной машине.
Deep Translator: Простая обертка для интеграции с переводчиками. Для первой версии я взял интеграцию с Google Translate (работает бесплатно и без ключей API). Tkinter + ctypes (Win32 API): Стандартный GUI-движок Python для создания окна и низкоуровневая магия Windows для создания того самого «игрового оверлея».
Отраслевые последствия
Главная техническая боль: ограничения полноэкранного режима и магия Win32 Изначально я целился в перевод абсолютно любых игр, но столкнулся с суровой реальностью: в полноценном Fullscreen-режиме стандартные окна Windows поверх неё просто не отображаются. Я так и не смог добиться адекватной работы приложения в «тяжелых» полноэкранных 3D-играх — в целом оно и понятно, ведь проект собран на коленке за один вечер. Но всё же я получил результат, который меня полностью устроил.
Если рассматривать стандартную работу за ПК и использование различных программ, у которых не всегда есть русская локализация, то утилита показывает себя отлично, а главное - удобно. Запустил нужную прогу на английском, нажал хоткей, выделил текст и через 2-3 секунды получил перевод прямо перед глазами.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.




