LION (Живое, интеллектуальное распознавание текста для NVDA)

LION — это дополнение, которое выполняет автоматическое оптическое распознавание символов (OCR) в определённых областях экрана через заданные интервалы времени.

Почему оно называется «умным»? Не потому, что его разработал я, и не потому, что буква «i» создаёт умную аббревиатуру.

Поскольку оно выполняет повторяющиеся сканирования OCR в одной и той же области экрана, оно обычно будет считывать один и тот же текст несколько раз — что не идеально. Чтобы решить эту проблему, я реализовал механизм, который предотвращает речевой вывод, когда вновь распознанный текст близко совпадает с предыдущими результатами.

Для чего я могу его использовать?

Моей основной целью при разработке этого дополнения было чтение субтитров. Его принцип работы позволяет читать различные типы экранных субтитров, включая субтитры на YouTube, Netflix, Bilibili, встроенные субтитры в AVI-файлах и даже субтитры в прямом эфире телепередач!

При использовании всегда устанавливайте видео в полноэкранный режим, так как это имитирует человеческое зрительное восприятие. Крупный текст даёт лучшие результаты распознавания, хотя точность не идеальна. Для оптимальной производительности:
- По возможности увеличивайте шрифт субтитров
- Используйте дисплеи с высоким разрешением
Движок OCR не безупречен и может испытывать трудности с определённой графикой.

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

Как его использовать?

Чтобы начать работу с настройками по умолчанию: Нажмите NVDA+ALT+N. LION будет выполнять полноэкранное OCR каждую 1 секунду и говорить только при изменении текста.

Для настройки:
1. Перейдите в Меню NVDA > Параметры > Настройки LION
2. Пример использования: видеофайлы могут отображать логотипы в верхнем левом углу, которые считываются вместе с субтитрами. В следующем разделе объясняются решения.

Доступные настройки:
1. Интервал OCR: Частота операций OCR (0,1–10 секунд)
2. Цель OCR: Область экрана для сканирования (Варианты: Текущий элемент управления/Текущее окно/Навигационный объект/Полный экран)
3. Обрезка пикселей (Сверху/Снизу/Справа/Слева): Обрезает нежелательные области в режимах Полный экран/Текущее окно. Полезно для игнорирования постоянных логотипов — например, обрезка 10% сверху уберёт логотипы в верхнем левом углу. Для эффективности можно обрезать 70% сверху, так как субтитры обычно занимают нижнюю треть экрана.

Перевод

Журнал изменений

Версия 2.0

  1. Полная переработка движка OCR с использованием PaddleOCR-json для повышения точности
  2. Реализован шаблон дополнения для упрощения компиляции

Версия 1.15

  1. Адаптировано для совместимости с NVDA 2022.1
  2. Завершён перевод интерфейса
  3. Добавлена возможность настройки сочетания клавиш в диалоге Жесты ввода
  4. Добавлены предупреждения при запуске OCR во время заставки/чёрного экрана
  5. Изменено сочетание клавиш по умолчанию на NVDA+ALT+N

Версия 1.12

  1. Обеспечена совместимость с NVDA 2021.1
  2. Исправлены различные ошибки
  3. Обновлены звуки активации/деактивации

Версия 1.11

Исправлена серьёзная ошибка в полноэкранном режиме YouTube

Версия 1.1

  1. Настройки обрезки теперь влияют на режим Текущее окно
  2. Добавлен порог схожести (0–1) для игровых сценариев:

Версия 1.0

Первоначальный выпуск

Кто написал это, как часто я буду видеть обновления?

Меня зовут Стефан Мойсей, я слепой программист, пытающийся выжить в восточноевропейской стране, Румынии, которому нужно многое наверстать, чтобы достичь окцидентального уровня.
LION и другие программы для слепых - это просто мое хобби, которое я разрабатываю в свободное время. Поэтому, боюсь, обновления не будут приходить слишком часто.
Но если вы умеете кодить, это NVDA, так что исходники прямо здесь. :)