KingMouse

Это новая реализация говорящей мыши.

Внимание!!!

Для реализации были взяты компоненты, лежащие в открытых источниках, в частности на этом сайте лежит бесплатная версия.

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

Также в реализации использовались некоторые вещи из ruTTS.

Немного о настройках

Ниже будет немного кратких пояснений по настройкам.

ChunkBefore

Тишина в начале синтеза в миллисекундах. Если у вас съедается начало фразы, увеличивайте этот параметр от 0 до 100.

ChunkDelay

Тишина в конце синтеза в миллисекундах. Если у вас съедается конец фразы, увеличивайте этот параметр от 0 до 100.

SampleRate

Частота выходного сигнала самого синтезатора.

CommaDelay

Пауза пунктуации в миллисекундах для символов, заданных в CommaSymbol

PointDelay

Пауза пунктуации в миллисекундах для символов, заданных в PointSymbol

DecimalPoint

Задаёт произношение десятичной точки в числах; пустое значение сохраняет старое поведение, тоесть это вообще никак не будет определяться. Можно написать "." и на месте числового разделителя вы ее услышите. Например 3.14 будет звучать как 3 точка 14. Можно написать даже какую-нибудь букву, например "и".

MaxSpeed

Верхняя внутренняя граница скорости. Минимально 30, максимально 1000.

MinSpeed

Минимальная внутренняя граница скорости. Тоже минимально 30, максимально 1000.

Change_speed_mode

Это новый параметр. Он имеет три значения:
0- скорость будет изменяться самим движком.
1 - скорость будет меняться исключительно через Sonic.
2 - смешанный режим- экспериментально.
Смешанный режим работает следующим образом.
Если величина параметра MaxSpeed < 500, то внутренними средствами движка скорость будет установлена в значение, вдвое ниже от этого значения, дальше будет разгонять уже Sonic.
Пример: максимальная скорость 300. Нативными средствами движка скорость устанавливается в 150, дальше до трехсот скорость поднимается через Sonic.
Если значение параметра MaxSpeed будет больше пятисот, скорость в движке установится на 500, а дальше через Sonic будет увеличиваться до установленного значения.
Пример:
MaxSpeed=800. внутренними средствами движка скорость будет равна 500, дальше до 800 ее увеличивает Sonic.

Pause

Общая пауза между словами. Меняется от 0 до 100.

SingleCyr

Параметр управляет фонетическим чтением букв "Б", "В", "К" и "С". 0 - без изменений, 1 - одиночные буквы произносятся фонетически (ввод текста, посимвольное чтение), 2 - одиночные буквы в тексте заменяются на фонетическое произношение, 3 - тоже что 1 и 2 вместе.

PrepositionsRus

Предлоги, которые будут сливаться с последующим словом для русского языка.

PostpositionsRus

Постлоги, которые будут сливаться с предыдущим словом для русского языка.

FirstDictionary

Последовательность обработки аббревиатур и словаря. 0 - сначала аббревиатуры, далее словарь. Такое поведение соответствует старому драйверу, 1 - сначала словарь, далее аббревиатуры- новое поведение.

Abbreviations

Параметр включает чтение аббревиатур. 0 выключено, 1 - включено.

WordIntonation

0 - всем привычное поведение, 1 - голос станет слишком монотонным, ну может это кому- то нравится...

Dictionary

Включение / отключение использования словаря для русского языка. Словарь лежит в файле kingmouse.dic.

секция Unicode

В этой секции можно задать чтение в словах и одиночное чтение некоторых юникод символов.

секция Latin

Секция с заменами латинских букв на русские. Обрабатывается после словаря.

Секция SingleLatin

Секция с описанием одиночных латинских букв. То что будет слышно при вводе текста и посимвольном чтении.

Файлы словаря и настроек расположены в sapi-версии по пути "%localappdata%\KingMouse", в NVDA эти файлы лежат в профиле пользователя. Открыть можно через "Просмотреть папку пользовательских настроек NVDA", там найти ту же самую папку KingMouse. Для портабельных сборок это папка userConfig.

Графические настройки

Пока хардкорщики правят ручками ini- файл, у тех, кто не хочет заморачиваться с параметрами, а потом вручную все это перезапускать, есть возможность править конфиги подругому. Разработан конфигуратор, в котором удобненько можно поредактировать словарь, быстро поменять настройки, внести какие-нибудь символы и т.д. При неудачной настройке можно скинуть все до завода отдельной кнопкой. Конфигуратор разбит на вкладки, отражающие их суть: "Основные", "Предлоги", "Постлоги" и т.д. В nvda конфигуратор живет в настройках отдельной веткой, в sapi- версии появляется прямо на рабочем столе, в Android появится в приложениях.

# Имеющиеся Проблемы

Для начала sapi- драйвер плохо работает с JAWS, что, на мой взгляд, неудивительно, т.к. у него вообще какие-то проблемы с sapi5x. Проверено на JAWS 2026. Хоть и пользовать это с JAWS я не рекомендую, вы можете:

1. найти файл sapi5x.ini по пути C:\Program Files\Freedom Scientific\JAWS\<номерверсии>\ и открыть его с правами администратора.

2. Найти строку

{Unsupported SAPI 5 Speech Engines]

И выше этой строки дописать:

; KingMouse SAPI
[{9D5C552A-9E92-4C6E-BC8D-3AD7C5285D6E}]
Output=10
3. Сохранить изменения и перезагрузиться.

Версия под Android сырая, там нужно доделать конфигуратор и оптимизировать работу движка, но в целом оно работает. О проблемах с интерфейсом конфигуратора для sapi и NVDA тоже известно.
Синтезатор находится в активной разработке.

Немного про версию под Android

В android- версии этого замечательного синтезатора тоже есть своего рода конфигуратор. Кроме вышеописанных параметров есть и параметры, которые, на мой взгляд являются специфичными именно для этой платформы. Так, в Android- версии имеются параметры "Читать эмодзи", "Читать телефонные номера" и "Произношение символов в тексте". Параметр "Читать эмодзи", думаю, в описании не нуждается. параметр "Читать телефонные номера" произносит эти самые номера по цифрам (например, 424242 будет произноситься как четыре два четыре два четыре два). Параметр "Произношение символов в тексте" заставляет мышь произносить символы, которые вы можете задать в списке произносимых символов (сразу следующий пункт от вышеозначенного параметра). По нажатию на этот пункт будет открыт список с имеющимися символами. Сперва идет сам символ, потом его произношение в тексте, например + = будет произноситься как плюс и т.д. Все это можно изменять и удалять. Можно также добавлять свои символы с их описанием.

Обратная связь

Обо всех замеченных ошибках, а также предложениях и изменениях просьба писать на адрес nikkov95@mail.ru с темой "KingMouse: предложение" или "KingMouse: ошибка". В остальных случаях сообщение может быть пропущено. Также можете оставлять свои пожелания/предложения в этом репозитории, в разделе issues.

Дальнейшие планы

История версий

v1.1 beta.2

Воизбежание путаницы и недопониманий проект переименован в kingmouse

Оптимизация приложения под Android.
Добавлена сборка под старые устройства.
В Android- версии появился новый параметр: "Произношение символов в тексте". Суть этого параметра в том, чтобы заставить мышь читать символы, заданные в списке произносимых символов (следующий пункт после новой настройки).
Параметр UseSonic удален, вместо него имеется параметр Change_speed_mode.

v1.1 beta.1

Первый публичный релиз