Sapi5Organizer (Организатор SAPI5)
Автор:- Исходный код дополнения: Посетить Web-сайт sapi5Organizer
Краткое описание
Дополнение Sapi5Organizer превращает один неуправляемо длинный список голосов SAPI5 в три коротких и понятных списка: «Движок SAPI», «Язык SAPI» и «Вариант голоса SAPI».
Если в системе установлено несколько движков SAPI5, список голосов в настройках речи NVDA становится единым плоским перечнем всех голосов из всех движков на всех языках, и на хорошо укомплектованной машине он может содержать сотни записей.
Дополнение индексирует все голоса SAPI5 и добавляет три каскадных комбинированных списка в существующую категорию «Речь» в настройках NVDA.
• Выбор движка немедленно сужает список языков.
• Выбор языка немедленно сужает список вариантов голоса.
• Выбор варианта выбирает соответствующий голос, и встроенный список «Голос» в NVDA обновляется автоматически.
Изменение встроенного списка «Голос» также синхронизирует все три новых списка.
Элементы управления отображаются только при выборе синтезатора Microsoft Speech API version 5 (32 bit) или Microsoft Speech API version 5 (64 bit).
Sapi5Organizer охватывает все движки, включая голоса, создаваемые во время выполнения через перечислители токенов, и определяет движок по контейнеру идентификатора, а не по ключу реестра.
Каждый голос приписывается движку, который его фактически предоставляет, поэтому нет универсальной группы «прочее», а движок, зарегистрированный в нескольких категориях голосов, указывается один раз.
Три элемента управления ведут себя как обычные настройки речи NVDA и сохраняются при нажатии «ОК» или «Применить».
Настройки также сохраняются постоянно по NVDA+control+c и запоминаются в каждом профиле конфигурации.
Пункт меню «Инструменты», «Индекс голосов SAPI5» открывает отчёт о полном каталоге голосов с фильтрацией по мере ввода и возможностью копирования в буфер обмена, сохранения в текстовый файл или записи в журнал NVDA.
Дополнение не назначает жесты по умолчанию, поэтому не конфликтует с уже используемыми комбинациями.
Все доступные команды находятся в категории «Sapi5Organizer» в разделе «Жесты ввода» и позволяют показать индекс голосов, повторно просканировать систему, записать полный индекс в журнал NVDA и сообщить текущий движок, язык и вариант голоса.
Дополнение ведёт подробный журнал с префиксом SAPI5 Organizer:, что упрощает диагностику проблем с голосами и движками.
Основная информация
| Название | Версия | Совместимость с API NVDA | Последняя протестированная версия NVDA | Минимальная версия NVDA | Дата загрузки в каталог | Размер | Лицензия |
|---|---|---|---|---|---|---|---|
| sapi5Organizer | 2026.1.2 | 2026.1 | 2026.1.0 | 2026.1.0 | 14-09-2026 17:22:06 | 44 Кб. | GPL v2 |
Журнал изменений
Подробнее
Исправлена утечка языков и голосов между движками.
При выборе одного движка два других комбинированных списка по-прежнему показывали языки и голоса предыдущего движка, поэтому можно было выбрать Outloud, когда предлагались голоса Infovox.
Организатор всё это время выбирал правильные значения, но панель их не отображала. Метод NVDA AutoSettingsMixin._updateValueForControl изменяет только выделение в комбинированном списке. Он ищет новое выделение в списке параметров, зафиксированном один раз при первом создании элемента управления, и никогда не вызывает SetItems. Собственные строковые настройки NVDA никогда не меняют своё содержимое, поэтому для NVDA это никогда не имело значения, но сужение одного списка другим — это и есть весь смысл этих трёх списков.
Изменения:
• элементы каждого списка, сужаемого изменением, теперь заменяются, а не просто перевыбираются;
• собственный список параметров панели перезаписывается вместе с ними, чтобы следующее выделение по-прежнему соответствовало нужному голосу;
• выбор голоса из собственного комбинированного списка «Голос» NVDA заново сужает все три списка, поскольку этот голос может принадлежать другому движку.
Теперь выбор движка показывает именно языки этого движка, а выбор языка — именно голоса этого движка и языка, без чего-либо от любого другого движка.
Проверено с помощью точной копии панели настроек NVDA, управляемой видимым текстом комбинированных списков так же, как это делает пользователь, на всех 23 движках и каждом из их языков. При отключённом исправлении тестовый стенд воспроизводит сообщённую утечку, поэтому известно, что он её обнаруживает.
Скачать
Sapi5Organizer-V.2026.1.2.nvda-addon
⬇ Перейти к истории версий 🔝 Назад к оглавлениюИнформация о локализации на русский язык
🔝 Назад к оглавлениюРазделы
🔝 Назад к оглавлениюСправка
Подробнее
Sapi5Organizer (Организатор SAPI5)
Дополнение для NVDA, которое превращает один неуправляемо длинный список голосов SAPI5 в три коротких и осмысленных: движок SAPI, язык SAPI и вариант голоса SAPI.
- Автор: Josh Kennedy joshknnd1982@gmail.com
- GitHub: https://github.com/joshknnd1982
- Требуется: NVDA 2026.1 или более поздняя версия
- Лицензия: GNU General Public License версии 2
Что оно делает
Если у вас установлено несколько движков SAPI5, комбинированный список «Голос» в настройках речи NVDA превращается в единый плоский список всех голосов из всех движков на всех языках. На хорошо укомплектованной машине это могут быть сотни записей.
SAPI5 Organizer индексирует все голоса SAPI5 в системе и добавляет три каскадных комбинированных списка в существующую категорию «Речь» в настройках NVDA:
- Движок SAPI: каждый движок SAPI5, предоставляющий хотя бы один голос, который может загрузить текущий синтезатор.
- Язык SAPI: только языки, предоставляемые выбранным вами движком.
- Вариант голоса SAPI: только голоса этого движка на этом языке.
Выбор движка немедленно сужает список языков, а выбор языка немедленно сужает список вариантов. Выбор варианта выбирает соответствующий голос, и собственный комбинированный список «Голос» в NVDA обновляется соответственно. Это работает и в обратную сторону: измените комбинированный список «Голос», и три новых комбинированных списка последуют за ним.
Элементы управления отображаются только при выборе синтезатора Microsoft Speech API version 5 (32 bit) или Microsoft Speech API version 5 (64 bit). С любым другим синтезатором настройки речи NVDA выглядят точно так же, как всегда.
Все движки, а не только некоторые
SAPI5 публикует голоса двумя разными способами. Некоторые голоса имеют собственный ключ реестра. Другие создаются во время выполнения перечислителем токенов: COM-объект, зарегистрированный в TokenEnums, который изобретает свои голоса, когда SAPI запрашивает их, поэтому у таких голосов вообще нет ключей реестра. На хорошо укомплектованной машине второй тип может легко превосходить по количеству первый.
SAPI5 Organizer охватывает оба случая, определяя движок, стоящий за голосом, по контейнеру, в котором находится его идентификатор, а не по ключу реестра, который может не существовать. Каждый голос приписывается движку, который фактически его предоставляет, поэтому нет универсальной группы «прочее», и движок, зарегистрированный более чем в одной категории голосов, указывается один раз, а не дважды.
Сохранение настроек
Три элемента управления — это обычные настройки драйвера NVDA, поэтому они ведут себя как любые другие настройки речи:
- нажатие «ОК» или «Применить» в диалоге настроек сохраняет их;
- NVDA+control+c сохраняет их навсегда, поэтому они переживают перезапуск;
- каждый профиль конфигурации запоминает свой собственный выбор, поэтому при желании вы можете создать профиль для каждого движка или для каждого языка.
Индекс голосов
Меню NVDA, Сервис, Индекс голосов SAPI5 открывает отчёт о полном каталоге, который шире, чем может предложить любой отдельный синтезатор. Для каждого голоса он показывает имя голоса, движок, который его предоставляет, язык или языки, которые он объявляет, зарегистрирован ли этот движок для 32-битных программ, 64-битных программ или для обоих, категорию SAPI и ключ реестра, из которого происходит голос.
Список можно фильтровать по мере ввода, а весь отчёт можно скопировать в буфер обмена, сохранить в текстовый файл или записать в журнал NVDA. О движке, отображаемом как не зарегистрирован, стоит знать: обычно это объясняет голос, который появляется в списке, но отказывается говорить, потому что движок был удалён без удаления его голосов.
Команды
Дополнение не поставляет назначенных жестов, поэтому оно не может конфликтовать с тем, что вы уже используете. Чтобы назначить жест, откройте меню NVDA, Параметры, Жесты ввода и найдите категорию SAPI5 Organizer:
- показать индекс голосов SAPI5;
- повторно просканировать систему на наличие движков, языков и голосов SAPI5;
- записать полный индекс голосов в журнал NVDA;
- сообщить текущий движок, язык и вариант голоса SAPI5.
Устранение неполадок
Дополнение ведёт подробный журнал. Установите в меню NVDA, Параметры, Настройки, Общие, Уровень журналирования значение «Отладка», перезапустите NVDA, затем откройте журнал с помощью NVDA+f1. Каждая строка, записываемая дополнением, имеет префикс SAPI5 Organizer:, включая одну строку на каждый обнаруженный токен голоса, движок, в который был сгруппирован каждый голос, и каждое изменение голоса, выполняемое тремя комбинированными списками.
Лицензия
Copyright (C) 2026 Josh Kennedy. Выпущено под лицензией GNU General Public License версии 2.
История версий
История версий
| Версия файла | Тестируемая версия NVDA | Минимальная версия NVDA | Размер файла (КБ) | Ссылка на загрузку |
|---|---|---|---|---|
| 2026.1.2 | 2026.1.0 | 2026.1.0 | 44 | Sapi5Organizer-V.2026.1.2.nvda-addon |
| 2026.1.1 | 2019.2.1 | 2013.1.0 | 28 | Sapi5Organizer-V.2026.1.1.nvda-addon |
| 2026.1.0 | 2019.2.1 | 2013.1.0 | 24 | Sapi5Organizer-V.2026.1.0.nvda-addon |