Repository navigation
ScreenTale v0.5.0
Windows OCR Milestone & Парящий Мини-HUD
Версия 0.5.0 открывает новую главу в истории ScreenTale! Мы совершили грандиозный технологический скачок: распознавание текста ускорилось в 20 раз,, а панель управления превратилась в полноценный модульный HUD.
Нативный Windows OCR
- Молниеносный отклик:
Благодаря переходу на системный WinRT API Windows 10/11 задержка распознавания кадра рухнула с тяжёлых 500 мс до рекордных 15–25 мс! Авто-режим больше не дёргается — чтение текста с экрана происходит плавно и в реальном времени.
Системный OCR работает на ресурсах самой ОС, полностью освобождая VRAM и CPU для ваших игр. Никаких просадок FPS! - Выбор движка в Настройках:
В Настройки → «Перевод» добавлен удобный переключатель между быстрым Windows OCR и классическим EasyOCR (PyTorch) с индивидуальным статусом работы для каждого.
Автономный парящий мини-HUD
- Тулбар теперь свободный:
Панель управления больше не прибита намертво к окну перевода. Справа появилась удобная ручка⋮⋮, потянув за которую тулбар можно оторвать и утащить в любую точку экрана (хоть к миникарте, хоть на второй монитор). - Умный 4-сторонний магнит (Snap):
Тулбар можно пристегнуть снаружи к любому из 4 углов окна перевода (сверху-справа, снизу-справа, сверху-слева, снизу-слева). Поднесите его ближе к любому углу — и он "прищёлкнется" с идеальным зазором. - Физика коллизий (Защита текста):
Тулбар физически не может «провалиться» внутрь окна перевода и перекрыть текст или ресайз-грип. Если бросить его поверх текста — он сам мягко отскочит к ближайшему внешнему краю. - Защита от улетания за экран:
Тулбар и окно перевода теперь аппаратно ограничены границами рабочего стола. Они поддерживают мультимониторные связки (2–3 экрана), но ни при каких обстоятельствах не улетят в «чёрную пустоту» за пределы видимости.
Пауза авто-режима (Alt + P)
- Свободный обзор во время игровых битв и/или катсцен:
Начался бой или длинный ролик? НажмитеAlt + Pили кнопку⏸на тулбаре. Окно перевода мгновенно скроется с экрана, освободив 100% обзора игры, а на экране останется лишь аккуратный мини-пульт с горящей янтарной кнопкой▶. - Моментальное чтение при снятии с паузы:
Бой закончился? Нажимаем▶(илиAlt + P) — окно возвращается, и текущая реплика считывается без необходимости прокручивать экран или двигать мышь. - Железная пауза:
Запоздалые фоновые переводы больше не смогут самовольно открывать окно во время паузы.
Умная нормализация текста перед переводом
- Склейка разорванных строк:
Исправлена главная проблема токенизаторов нейросетей (Opus-MT / NLLB-200). Слова с переносом строки (infor-\nmation→information) автоматически сшиваются обратно, а одиночные разрывы строк превращаются в пробелы, сохраняя единый контекст предложения. - Чистка спецсимволов:
Разношёрстные типографические кавычки (“,”,«,»), кривые апострофы и длинные тире нормализуются в стандартный ASCII-вид, избавляя переводчик от мусорных токенов<unk>. - Защита цифр:
Сохранено фирменное исправление путаницы буквыOи цифры0внутри чисел (2O24→2024).
Backpressure: защита от перегрузки очереди
- Никаких зависаний при пропуске диалогов:
Если вы зажали пробел для быстрой перемотки текста или на экране бушует анимация, очередь не раздувается до бесконечности. Система мягко отсекает промежуточный шум, удерживая буфер актуальным и защищая от 15-секундных таймаутов. - Чистое переключение моделей:
При смене движков в Настройках (например, с Opus-MT на NLLB) очередь задач от старой модели моментально сбрасывается, исключая конфликты. Стоит учесть, что все переводы, которые не самоочистились, останутся в окне перевода.
За кулисами разработки
Интеграция системных C++ WinRT API, ускорение распознавания в 20 раз и оптимизация нейросетей заняли от силы час. Но вот битва с физикой парящего мини-тулбара (чтобы он не телепортировался, не тонул в текстурах окон, ровно магнитился к четырём углам и не перекрывал клики) — вымотала меня больше, чем весь исторический переезд проекта с CustomTkinter на PySide6 =)
Поэтому версия 0.5.0 официально закрыта, а я отправляюсь на пару недель заслуженного отдыха играть в игры. (но это не точно, а то меня вдруг опять индюк клюнет что-то доделать). Увидимся в v0.5.1, где я научу ScreenTale читать вертикальную мангу! 🎮🏖️
📦 Установка и запуск:
- Скачайте архив
ScreenTale_v0.5.0.zipиз раздела Assets ниже. - Распакуйте архив в любую удобную папку.
- Запустите
ScreenTale.exe.
💡 Совет для тех, кто обновляется с версии 0.4.4 или ранее:
Если ранее у вас была более старая версия и вы не хотите перекачивать по новой модели, то можете спокойно создать рядом с ScreenTale.exe папку data (если ее там еще нет) и закинуть туда папки easyocr_models и hf_cache, а так же config.json (чтобы настройки, которые были в предыдущей версии вами настроены, подтянулись в новой версии).