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).
Якщо ви бажаєте подякувати автору, а також підтримати розвиток проєкту, це можна зробити за такими реквізитами: