Справка NeuralVoicesUA

NeuralVoicesUA — драйвер NVDA для нейронных естественных голосов Microsoft (Azure Embedded Speech SDK). После установки голосовых пакетов он работает полностью офлайн, без интернета.

Содержание

Начало работы

Внимание, если вы обновляетесь с версии 1.13.0 или более старой. Дополнение сменило имя с «NeuralVoices» на «NeuralVoicesUA» — чтобы его не путали со сторонним драйвером с таким же названием. Для NVDA это новое дополнение, поэтому старое останется установленным рядом: удалите «NeuralVoices» в управлении дополнениями после установки этого. Ваши настройки — голоса, пары голосов, параметры каждого голоса, профили — переносятся автоматически.

  1. Установите сам драйвер (это дополнение), а также одно или несколько дополнений с голосовыми данными — отдельные надстройки с названием вида «NeuralVoices-voice-Ostap-Natural-Ukrainian-Ukraine» или «NeuralVoices-voice-Polina-Natural-Ukrainian-Ukraine».
  2. Нажмите Ctrl+Insert+S, чтобы открыть диалог выбора синтезатора речи, и выберите в списке «NeuralVoicesUA».

Далее сам синтезатор настраивается в обычном диалоге NVDA «Голос синтезатора» — Ctrl+Insert+V (те же параметры доступны и в кольце настроек, NVDA+Ctrl+стрелки). Там есть такие опции:

Чтобы разные языки автоматически звучали разными голосами, настройте пару голосов или автоматическое определение языка (см. ниже).

Меню NVDA → Параметры → Настройки NeuralVoicesUA открывает диалог настроек этого дополнения с пятью разделами: Языки (отметьте галочками языки, которые планируете настраивать — отмеченные появляются в разделе «Голоса», остальные скрыты, чтобы длинный список установленных языков не мешал), Голоса (ниже), Пары голосов (ниже), Ударение слова (ниже) и Разное (кнопка «Справка», открывающая эту страницу в браузере).

Голоса и пары голосов

Отдельные голоса

Для каждого отмеченного в разделе «Языки» языка раздел «Голоса» позволяет выбрать, какой из установленных голосов озвучивает его по умолчанию, и настроить его скорость, высоту тона и громкость отдельно от других голосов.

Пары голосов

Пара голосов — это именованная группа соответствий «язык → голос» (например, «Женские голоса»: английский озвучивается женским голосом Дженни, украинский — женским голосом Полины; не обязательно ровно два языка). Пару можно переключить одним пунктом вместо изменения каждого языка по отдельности.

  1. Откройте диалог настроек NeuralVoicesUA, перейдите в раздел «Пары голосов».
  2. В поле «Название пары» введите произвольное название.
  3. В списке «Участники пары» выберите язык и голос, нажмите «Добавить в пару» — и повторите для каждого языка, который хотите включить (не обязательно ровно два).
  4. Нажмите «Сохранить пару».
  5. Чтобы создать ещё одну пару, обязательно нажмите «Новая пара», прежде чем вводить название и добавлять языки, — иначе следующее сохранение перезапишет только что созданную пару.
  6. Закройте окно. Только что созданная пара появится прямо в списке «Голос» (Ctrl+Insert+V) рядом с обычными голосами: выбор пары сразу назначает все её голоса соответствующим языкам.

Чтобы быстро переключаться между парами без открытия диалога настроек, в меню NVDA → Параметры → Жесты ввода (категория «NeuralVoicesUA») можно назначить горячую клавишу команде «Переключить на следующую пару голосов NeuralVoicesUA». По умолчанию клавиша не назначена.

Голосовые профили

Голосовой профиль — это нумерованный слот, в который кладётся одна пара голосов вместе с её скоростью, высотой тона и громкостью. Слотов десять, и у каждого своя комбинация клавиш: NVDA+Ctrl+1NVDA+Ctrl+9, а десятый — NVDA+Ctrl+0.

Отличие профиля от жеста «следующая пара голосов» — в двух вещах. Во-первых, профиль открывает нужную пару сразу, а не после нескольких нажатий подряд. Во-вторых, и это главное: профиль срабатывает даже тогда, когда синтезатор NeuralVoicesUA сейчас не активен в NVDA — комбинация сама переключает NVDA на него и поднимает его уже с голосами профиля. Жест «следующая пара» в такой ситуации лишь сообщает, что синтезатор не активен.

Чтобы настроить профиль:

  1. Сначала создайте нужные пары голосов в разделе «Пары голосов» — профиль ссылается на готовую пару, а не заменяет её.
  2. Если хотите сохранить в профиле и параметры речи, выставьте их на панели «Голоса».
  3. Откройте меню NVDA → Параметры → Настройки NeuralVoicesUA, перейдите в раздел «Голосовые профили».
  4. В списке «Голосовые профили» выберите слот. Каждая строка показывает номер слота, его комбинацию клавиш и то, что в нём лежит.
  5. В списке «Пара голосов для этого профиля» выберите пару.
  6. Галочка «Запомнить также текущие скорость, высоту и громкость» (включена по умолчанию) сохраняет в профиле текущие параметры каждого голоса пары отдельно — именно так их хранит драйвер, поэтому для пары из трёх языков запомнится три набора.
  7. Нажмите «Назначить профилю».

Кнопка «Очистить профиль» освобождает слот; сама пара при этом остаётся.

Комбинации клавиш можно изменить: меню 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 работает поверх любой программы и открывает короткое окно:

  1. Слово подставляется автоматически — из курсора обзора (если вы только что услышали ошибку, проще всего сразу встать на это слово) или из буфера обмена; можно также ввести или исправить вручную.
  2. В списке «Ударная гласная» выберите, какая гласная должна быть ударной.
  3. В списке «Применить к» выберите, насколько широко применять исправление (см. ниже).
  4. Нажмите «Прослушать», чтобы проверить результат на слух, — транскрипция всегда приближение, поэтому проверять стоит каждый раз.
  5. Нажмите «ОК», чтобы сохранить.

Список «Применить к»

Украинский язык сильно изменяет слова по падежам, поэтому вписывать каждую форму отдельной строкой неудобно. Список предлагает четыре варианта, от самого узкого до самого широкого:

Приставка может менять ударение — в отличие от окончаний, которые почти всегда его сохраняют. Особенно это касается приставки «ви-» (укр. «вы-»), которая почти всегда перетягивает ударение на себя. Поэтому варианты с разрешённой приставкой никогда не применяются к слову, которое начинается ровно с «ви» перед основой, — это сделано намеренно: лучше не исправить произношение, чем исправить его неправильно. Если нужно именно такое исключение, добавьте это конкретное «ви-»-слово отдельной записью с вариантом «Только это слово»: точная запись всегда имеет приоритет над основой. Основа с разрешённой приставкой должна быть не короче 4 букв — более короткая совпадала бы со слишком многими несвязанными словами; на вариант «только окончание» это ограничение не распространяется.

Управление всем словарём

Кнопка «Открыть настройки словаря…» в быстром окне (как и раздел «Ударение слова» в диалоге настроек напрямую) открывает полный список слов: там можно просмотреть, изменить или удалить любую запись, а не только только что добавленное слово. Флажок «Исправлять ударение украинских слов из словаря» включает или выключает всю эту поправку.

Словарь хранится в файле в папке конфигурации NVDA, поэтому не исчезает при обновлении дополнения.

Другие настройки

Эмодзи

По нажатию NVDA+Alt+E озвучивание эмодзи включается и выключается. NVDA сразу сообщает результат: «Эмодзи не озвучиваются» или «Эмодзи озвучиваются».

Зачем это. В лентах соцсетей, мессенджерах и на сайтах эмодзи встречаются пачками, и каждый NVDA озвучивает описанием — «улыбающееся лицо с улыбающимися глазами», «тон кожи 3». Чтобы добраться до двух слов текста, приходится выслушать описание двух десятков значков. Флажок убирает их из речи ещё до синтеза.

Тот же переключатель есть и как обычная настройка голоса — «Не озвучивать эмодзи» в диалоге «Голос синтезатора» (Ctrl+Insert+V) и в кольце настроек, поэтому его состояние сохраняется между запусками NVDA.

Список состоит примерно из 1635 правил и охватывает сами значки, модификаторы тона кожи и служебные символы. Каждый эмодзи заменяется пробелом, а не пустой строкой: иначе слова, написанные вплотную к значку, слиплись бы в одно.

Если нужен свой список, положите файл neuralVoicesEmoji.dic в папку конфигурации NVDA — он полностью заменит встроенный. Формат тот же, что и у словарей речи NVDA: шаблон, замена, учёт регистра, тип, разделённые табуляцией. Правила с регулярными выражениями (тип 2) не применяются.

Фильтрация действует только когда активный синтезатор — NeuralVoicesUA: в чужую речь дополнение не вмешивается.

Советы

Об авторе и поддержке проекта

Автор дополнения — Александр Николайчук (alexandrnikolaychuk@gmail.com).

Если вы хотите поблагодарить автора, а также поддержать развитие проекта, это можно сделать по следующим реквизитам: