WordPredictor )Предсказатель слов)
- Дополнение NVDA для упреждающего предсказания слов
Дополнение NVDA, которое отслеживает ваш ввод и предсказывает следующее слово с помощью n-граммного анализа. Предсказания озвучиваются через речевой движок NVDA и могут быть приняты с помощью сочетаний клавиш.
Зачем это нужно
Существующие инструменты предсказания слов, такие как Lightkey Pro AT, имеют значительные барьеры доступности при использовании с NVDA:
- Жесты конфликтуют с командами NVDA
- Для общесистемного предсказания требуется использование мыши
- Слова искажаются при вставке вместе с NVDA
Это дополнение решает данные проблемы, работая внутри самой NVDA. Не требуется внешний синтезатор речи, буфер обмена или мышь. Предсказания озвучиваются через речевой движок NVDA и вставляются непосредственно через систему ввода клавиатуры NVDA.
Возможности
- Упреждающее предсказание: После завершения слова (нажатие пробела или знака препинания) NVDA озвучивает до 5 предсказанных следующих слов.
- Предсказание по части слова: Начните вводить слово и нажмите NVDA+Alt+O, чтобы получить варианты завершения слова.
- Звуковой сигнал: Короткий звуковой сигнал воспроизводится перед озвучиванием предсказаний (настраивается).
- Выбор с клавиатуры: Нажмите 1-5, чтобы принять предсказание. Слово будет введено автоматически.
- Обучение на вашем письме: N-граммная модель обновляется в реальном времени по мере вашего ввода, изучая вашу лексику и речевые обороты.
- Постоянное обучение: Изученные данные сохраняются в папке конфигурации NVDA и накапливаются между перезапусками.
- Предварительное обучение: Поставляется с n-граммными данными, обученными на опубликованных текстах и распространённых английских словосочетаниях, включая сокращения.
- Включение/выключение: Нажмите NVDA+Alt+P, чтобы включить или выключить предсказание.
- Панель настроек: Настройте количество предсказаний, звуковой сигнал и обучение в диалоге настроек NVDA.
- Переназначаемые клавиши: Все сочетания клавиш отображаются в разделе «Word Predictor» в диалоге «Жесты ввода» NVDA.
- Работает везде: Будучи глобальным плагином, предсказание работает в любом приложении, где вы вводите текст.
- Поддержка терминалов: Автоматически отключает предсказание в терминальных приложениях (Windows Terminal, PowerShell, CMD, WSL, PuTTY и более 25 других). Можно отключить в настройках.
- Пользовательское исключение приложений: Добавляйте свои приложения, в которых не хотите получать предсказания (MUD-клиенты, редакторы кода, чат-приложения со слешами и т.д.) в меню «Настройки» > «Word Predictor». По одному имени приложения на строку.
- Вставка с учётом пунктуации: Когда вы принимаете предсказание после точки, вопросительного или восклицательного знака, оно автоматически вставляет пробел и делает первую букву заглавной. После запятой, точки с запятой или двоеточия вставляется пробел без заглавной буквы.
Сочетания клавиш
| Клавиша | Действие |
|---------|----------|
| NVDA+Control+1 – NVDA+Control+0 | Принять предсказание 1–10 (активируется только при наличии активных предсказаний) |
| NVDA+Alt+P | Включить/выключить предсказание слов |
| NVDA+Alt+O | Запросить предсказания по запросу (частичное или полное слово) |
| NVDA+Alt+L | Сохранить изученные данные вручную |
Все сочетания клавиш можно переназначить в диалоге «Жесты ввода» NVDA в категории «Word Predictor».
Установка
- Скачайте последний файл
.nvda-addon с страницы релизов.
- Откройте файл из проводника Windows, чтобы установить его через установщик дополнений NVDA.
- Перезапустите NVDA.
Использование
- Начните вводить текст в любом поле ввода.
- Когда вы нажмёте пробел после слова, вы услышите короткий звуковой сигнал, а затем до 5 предсказаний.
- Нажмите NVDA+Control+1, чтобы принять первое предсказание, NVDA+Control+2 для второго и т.д.
- Предсказанное слово вводится автоматически с пробелом после него.
- Для предсказания по части слова начните вводить слово и нажмите NVDA+Alt+O.
- Нажмите NVDA+Alt+P, чтобы включить или выключить предсказание.
- Настройте параметры в меню NVDA > «Настройки» > «Word Predictor».
Как это работает
Дополнение использует n-граммное языковое моделирование со сглаживанием Кнезера-Нея:
- Биграммы: Отслеживают, какие слова обычно следуют за другими (например, «the» -> «system»)
- Триграммы: Отслеживают, какие слова обычно следуют за комбинациями из двух слов (например, «I am» -> «not»)
- Сглаживание Кнезера-Нея: Вместо ранжирования предсказаний по сырой частоте используется интерполяционная вероятность Кнезера-Нея. Это поощряет слова, которые встречаются во многих различных контекстах (например, «the», «is», «and»), перед словами, которые часто встречаются, но только в определённых фразах (например, «York» после «New»). Корректно обрабатывает невидимые n-граммы, понижаясь до n-грамм младших порядков со скорректированными вероятностями.
- Трёхуровневая интерполяция: Вероятность триграммы смешивается с вероятностью биграммы, которая, в свою очередь, смешивается с вероятностью продолжения униграммы. Это означает, что даже слова, никогда не встречавшиеся в точном контексте, получают вероятность, основанную на том, насколько часто они используются как продолжения.
- Частичное сопоставление: Когда вы вводите часть слова, дополнение ищет во всех n-граммах слова, начинающиеся с введённого фрагмента, и ранжирует их по вероятности KN.
- Обучение в реальном времени: Каждое введённое вами слово обновляет n-граммные счётчики и производные статистики, поэтому модель адаптируется к вашему стилю письма.
- Постоянное хранение: Результаты обучения сохраняются в файл
wordPredictor_learned.json в папке конфигурации пользователя NVDA.
- Обратная совместимость: Существующие изученные данные из версии 1.1.0 загружаются без миграции. Сглаживание можно отключить в настройках, чтобы восстановить исходное поведение на основе частоты.
N-граммные данные хранятся в виде JSON-файла и загружаются при запуске. Дополнительные внешние зависимости Python не требуются.
Технические детали
- Версия NVDA: Требуется NVDA 2026.1 или новее (Python 3.13, 64-бит)
- Архитектура: Глобальный плагин, использующий
event_typedCharacter для отслеживания ввода
- Движок предсказания: Пользовательская n-граммная реализация, без зависимости от NLTK во время выполнения
- Файл данных: ~1.6 МБ JSON-файл со счётчиками биграмм и триграмм
- Конфигурация: Настройки хранятся в конфигурации NVDA по ключу
wordPredictor
Список изменений
Полную историю версий см. в CHANGELOG.md.
Лицензия
GPL v2, как и NVDA.
Автор
Лани Кармело-Молинар – lanie.work
Невидящий пользователь NVDA, который создал это дополнение, потому что существующие инструменты предсказания слов не работают с экранными диктофонами.