Infovox 230 → Дополнение для NVDA 2026.1

Возвращает к жизни давно заброшенный движок синтеза речи Infovox 230 (Telia Promotor / Babel-Infovox, оба прекратили существование; движок является общественным достоянием) в качестве автономного дополнения-синтезатора для NVDA 2026.160 голосов на 12 языках, без аппаратного ключа, без CrypKey, без 16-битного менеджера лицензий и без прав администратора.

Языки: американский и британский английский, немецкий, французский, итальянский, кастильский испанский, нидерландский, датский, норвежский, шведский, финский, исландский — каждый с пятью формантными голосами (Мужской, Женский, Великан, Ребёнок, Зомби).

Установка

  1. В NVDA: Меню NVDA → Сервис → Магазин дополнений → Установить из внешнего источника и выберите infovox230-0.1.nvda-addon.
  2. Перезапустите NVDA, когда будет предложено.
  3. Меню NVDA → Параметры → Настройки → Речь, установите Синтезатор на Infovox 230 (Telia Promotor), затем выберите голос и настройте скорость / высоту / громкость.

При первом выборе синтезатора он создаёт таблицу голосов и запускает движок — это занимает несколько секунд один раз; в дальнейшем это происходит мгновенно. Запрос UAC не появляется.

Ничего не записывается в реестр Windows. Движок настаивает на чтении своей конфигурации из HKCU\Software\Babel-Infovox AB\Infovox 230, поэтому основная программа загружает частный файл куста (infovox230.hive, внутри папки дополнения) с помощью RegLoadAppKey и перенаправляет собственный HKEY_CURRENT_USER процесса на него с помощью RegOverridePredefKey. Операции чтения реестра движка попадают в этот файл; ваш реальный реестр никогда не читается и не записывается, а перенаправление исчезает при завершении основного процесса. Удаление папки дополнения удаляет все следы. Ключи, записанные более ранними версиями этого дополнения, автоматически удаляются при первом запуске.

Как это работает

NVDA 2026.1 является 64-разрядной и не может загружать 32-разрядный движок Infovox SAPI4 в своём процессе — именно поэтому все голоса SAPI4 замолчали в 2026.1. Дополнение устраняет этот разрыв:

NVDA 2026.1 (64-bit) встроенный хост (32-bit Python)
┌───────────────────────────┐ 127.0.0.1 TCP ┌────────────────────────────┐
│ synthDrivers/infovox230.py │ ───────────────► │ host/infovox_host.py │
│ • список 60 голосов │ управляющие │ • таблица голосов→частный │
│ • формирует размеченный │ кадры │ куст реестра │
│ текст │ │ • LoadLibrary Ivx230nt.dll│
│ • nvwave.WavePlayer │ ◄─────────────── │ • ITTSCentral.TextData │
│ • отправляет индекс/ │ PCM + метки │ • захват PCM (IAudioDest) │
│ завершение │ │ │
└───────────────────────────┘ └────────────────────────────┘

Всё упаковано внутри дополнения: движок и его 12 наборов правил, 32-разрядный Python с comtypes, хост, 64-разрядный драйвер и крошечная эмулированная Sx32w.dll. Полную обратную разработку смотрите в ARCHITECTURE.md.

Обход лицензирования + исправления движка (все в Ivx230nt.dll)

Движок работал только на Windows 95/98/XP и был защищён аппаратным ключом Rainbow Sentinel SuperPro + CrypKey, с 16-битным менеджером лицензий, который не запускается на Windows 11. Четыре минимальных бинарных исправления (документированы в ARCHITECTURE.md и воспроизводимы из оригиналов) делают его работающим свободно и автономно на Windows 11:

| Смещение | Что исправляет | Исправление | |--------|------|-----| | 0x15b50 | Проверка аппаратного ключа Rainbow SuperPro | всегда сообщать об авторизации | | 0x0a4c9 | GetUlexInstance считает отсутствие пользовательского лексикона фатальным | сделать нефатальным (лексикон необязателен) | | 0x09dec | Init отклоняет режим, если тип лицензии не 1/2/3 | принимать и продолжать | | 10 участков | движок читает конфигурацию/голоса/лексикон из HKLM | читать из пользовательского HKCU (без прав админа), который затем перенаправляется хостом в частный файл куста, чтобы реальный реестр оставался нетронутым |

Само определение голосов взято из собственного пробного установщика движка, который запускается на Windows 11 и предоставил правильные данные спикеров и формант.

Содержимое папки

nvda-infovox230/
infovox230-0.1.nvda-addon устанавливаемое дополнение ← установите это
README.md этот файл
ARCHITECTURE.md как это работает + заметки по обратной разработке
addon/ исходное дерево дополнения (движок, хост, драйвер, python32, modes.json)
host/ исходники хоста + интерфейса SAPI4 (зеркало addon/…/host)
sx32w_stub/ эмулятор ключа и его генератор
tools/ диагностика и тестовые обвязки, использованные для запуска
_run/ доказательные WAV-файлы и логи с этапа запуска (first_speech.wav, all_voices.wav, …)

Статус

Работает от начала до конца: движок загружается на Windows 11, перечисляются и синтезируют все 60 голосов (проверено как чистая речь 16 кГц), обход лицензий полностью выполнен, а мост 64↔32 бит проверен по точному протоколу, который использует NVDA. Единственный шаг, который выполняется на вашем компьютере, — это установка .nvda-addon и выбор синтезатора.