NeuralVoicesUA — драйвер NVDA для нейронных естественных голосов Microsoft (Azure Embedded Speech SDK). После установки голосовых пакетов он работает полностью офлайн, без интернета.
Внимание, если вы обновляетесь с версии 1.13.0 или более старой. Дополнение сменило имя с «NeuralVoices» на «NeuralVoicesUA» — чтобы его не путали со сторонним драйвером с таким же названием. Для NVDA это новое дополнение, поэтому старое останется установленным рядом: удалите «NeuralVoices» в управлении дополнениями после установки этого. Ваши настройки — голоса, пары голосов, параметры каждого голоса, профили — переносятся автоматически.
Далее сам синтезатор настраивается в обычном диалоге NVDA «Голос синтезатора» — Ctrl+Insert+V (те же параметры доступны и в кольце настроек, NVDA+Ctrl+стрелки). Там есть такие опции:
Чтобы разные языки автоматически звучали разными голосами, настройте пару голосов или автоматическое определение языка (см. ниже).
Меню NVDA → Параметры → Настройки NeuralVoicesUA открывает диалог настроек этого дополнения с пятью разделами: Языки (отметьте галочками языки, которые планируете настраивать — отмеченные появляются в разделе «Голоса», остальные скрыты, чтобы длинный список установленных языков не мешал), Голоса (ниже), Пары голосов (ниже), Ударение слова (ниже) и Разное (кнопка «Справка», открывающая эту страницу в браузере).
Для каждого отмеченного в разделе «Языки» языка раздел «Голоса» позволяет выбрать, какой из установленных голосов озвучивает его по умолчанию, и настроить его скорость, высоту тона и громкость отдельно от других голосов.
Пара голосов — это именованная группа соответствий «язык → голос» (например, «Женские голоса»: английский озвучивается женским голосом Дженни, украинский — женским голосом Полины; не обязательно ровно два языка). Пару можно переключить одним пунктом вместо изменения каждого языка по отдельности.
Чтобы быстро переключаться между парами без открытия диалога настроек, в меню NVDA → Параметры → Жесты ввода (категория «NeuralVoicesUA») можно назначить горячую клавишу команде «Переключить на следующую пару голосов NeuralVoicesUA». По умолчанию клавиша не назначена.
Голосовой профиль — это нумерованный слот, в который кладётся одна пара голосов вместе с её скоростью, высотой тона и громкостью. Слотов десять, и у каждого своя комбинация клавиш: NVDA+Ctrl+1 … NVDA+Ctrl+9, а десятый — NVDA+Ctrl+0.
Отличие профиля от жеста «следующая пара голосов» — в двух вещах. Во-первых, профиль открывает нужную пару сразу, а не после нескольких нажатий подряд. Во-вторых, и это главное: профиль срабатывает даже тогда, когда синтезатор NeuralVoicesUA сейчас не активен в NVDA — комбинация сама переключает NVDA на него и поднимает его уже с голосами профиля. Жест «следующая пара» в такой ситуации лишь сообщает, что синтезатор не активен.
Чтобы настроить профиль:
Кнопка «Очистить профиль» освобождает слот; сама пара при этом остаётся.
Комбинации клавиш можно изменить: меню NVDA → Параметры → Жесты ввода → категория «NeuralVoicesUA». По умолчанию выбраны NVDA+Ctrl+цифра, а не Ctrl+Alt+цифра, поскольку последние в Microsoft Word означают стили заголовков.
Если пара, на которую ссылался профиль, удалена, слот показывает это в списке, а нажатие его клавиши сообщает, что пары больше нет — сам профиль при этом не исчезает, достаточно назначить ему другую пару.
Флажок «Определять язык текста на основе Unicode-письменностей» в настройках голоса NVDA (Ctrl+Insert+V) включает переключение голоса по письменности символов (латиница, кириллица и т.д.) прямо внутри одного предложения — удобно сочетать с парами голосов, чтобы текст на смешанном языке сразу звучал нужными голосами.
Украинский и русский используют одну и ту же кириллицу, поэтому по одной только письменности их не различить. Если пара голосов настроена сразу на украинский и русский, драйвер включает отдельный режим: украинский имеет приоритет по умолчанию, а на русский текст переключается только тогда, когда в нём встречается что-то характерное именно для русского письма (отдельные буквы, слова, грамматические сочетания). Этот режим можно включить и отдельно — флажок «Автоматически определять русский текст в кириллице» там же, в настройках голоса (Ctrl+Insert+V), при условии, что установлен хотя бы один украинский и хотя бы один русский голосовой пакет.
Это эвристика, поэтому редкий ложный случай возможен; полный перечень признаков и способ добавить свои — в файле russianMarkers.txt в папке драйвера, с подробным описанием каждого правила прямо там. Защита от ложного срабатывания: если в предложении есть буквы і, ї, є, ґ (их нет в русском алфавите), оно всегда остаётся украинским, независимо от каких-либо маркеров.
Так же устроено распознавание польского языка в латинице (флажок «Автоматически определять польский текст в латинице») и немецкого языка в латинице (флажок «Автоматически определять немецкий текст в латинице»), каждое при условии установленных соответствующих голосовых пакетов. Немецкие твёрдые буквы ä, ö, ü, ß однозначно определяют немецкий текст независимо от маркеров. Полные списки — в файлах polishMarkers.txt и germanMarkers.txt.
По умолчанию цифры при автоопределении языка считаются частью текста, в котором находятся: число внутри предложения озвучивается языком этого предложения, а число в начале фразы берёт язык следующего за ним текста — «5 з десяти» прозвучит полностью по-украински, даже если активен английский голос.
Пункт «Язык чисел» позволяет не полагаться на эту догадку и закрепить за цифрами кириллицу или латиницу навсегда: «Автоматически (по окружению)» — поведение по умолчанию, «Всегда кириллицей», «Всегда латиницей» (в режиме «Всегда кириллицей» число в русском предложении всё равно прозвучит русским голосом).
Флажок «Игнорировать цифры при определении языка текста» полностью отключает эту привязку: цифры становятся полностью нейтральными для определения языка, как пробелы или знаки препинания. Имеет смысл включать его, если числа в тексте сбивают автоопределение языка на соседних словах.
Модель Microsoft иногда неправильно ставит ударения в украинских словах. NeuralVoicesUA позволяет исправить это самостоятельно, не дожидаясь обновления от Microsoft.
NVDA+Alt+U работает поверх любой программы и открывает короткое окно:
Украинский язык сильно изменяет слова по падежам, поэтому вписывать каждую форму отдельной строкой неудобно. Список предлагает четыре варианта, от самого узкого до самого широкого:
Приставка может менять ударение — в отличие от окончаний, которые почти всегда его сохраняют. Особенно это касается приставки «ви-» (укр. «вы-»), которая почти всегда перетягивает ударение на себя. Поэтому варианты с разрешённой приставкой никогда не применяются к слову, которое начинается ровно с «ви» перед основой, — это сделано намеренно: лучше не исправить произношение, чем исправить его неправильно. Если нужно именно такое исключение, добавьте это конкретное «ви-»-слово отдельной записью с вариантом «Только это слово»: точная запись всегда имеет приоритет над основой. Основа с разрешённой приставкой должна быть не короче 4 букв — более короткая совпадала бы со слишком многими несвязанными словами; на вариант «только окончание» это ограничение не распространяется.
Кнопка «Открыть настройки словаря…» в быстром окне (как и раздел «Ударение слова» в диалоге настроек напрямую) открывает полный список слов: там можно просмотреть, изменить или удалить любую запись, а не только только что добавленное слово. Флажок «Исправлять ударение украинских слов из словаря» включает или выключает всю эту поправку.
Словарь хранится в файле в папке конфигурации NVDA, поэтому не исчезает при обновлении дополнения.
По нажатию NVDA+Alt+E озвучивание эмодзи включается и выключается. NVDA сразу сообщает результат: «Эмодзи не озвучиваются» или «Эмодзи озвучиваются».
Зачем это. В лентах соцсетей, мессенджерах и на сайтах эмодзи встречаются пачками, и каждый NVDA озвучивает описанием — «улыбающееся лицо с улыбающимися глазами», «тон кожи 3». Чтобы добраться до двух слов текста, приходится выслушать описание двух десятков значков. Флажок убирает их из речи ещё до синтеза.
Тот же переключатель есть и как обычная настройка голоса — «Не озвучивать эмодзи» в диалоге «Голос синтезатора» (Ctrl+Insert+V) и в кольце настроек, поэтому его состояние сохраняется между запусками NVDA.
Список состоит примерно из 1635 правил и охватывает сами значки, модификаторы тона кожи и служебные символы. Каждый эмодзи заменяется пробелом, а не пустой строкой: иначе слова, написанные вплотную к значку, слиплись бы в одно.
Если нужен свой список, положите файл neuralVoicesEmoji.dic в папку конфигурации NVDA — он полностью заменит встроенный. Формат тот же, что и у словарей речи NVDA: шаблон, замена, учёт регистра, тип, разделённые табуляцией. Правила с регулярными выражениями (тип 2) не применяются.
Фильтрация действует только когда активный синтезатор — NeuralVoicesUA: в чужую речь дополнение не вмешивается.
Автор дополнения — Александр Николайчук (alexandrnikolaychuk@gmail.com).
Если вы хотите поблагодарить автора, а также поддержать развитие проекта, это можно сделать по следующим реквизитам: