Псевдо-белорусская речь при помощи русских голосов синтезатора rhvoice

Мы будем работать со свободнораспространяемым синтезатором речи rhvoice и бесплатной же программой экранного доступа NVDA.
Здесь можно Скачать любую версию NVDA.
Официальный сайт Ольги Яковлевой, создательницы rhvoice.
Лаборатория голосов, помогающая Ольге и активно создающая новые голоса под RHVoice.
На всякий случай, здесь можно скачать RHVoice_2.161.
Для самых ленивых, занятых, или же не слишком опытных, здесь можно взять портативную версию NVDA, где все голоса уже установлены и все необходимые настройки уже сделаны. Просто скачивайте, запускайте программу и пользуйтесь.
Если настройки портативной программы вам понравятся, то вы легко можете сделать эту версию системной, установочной. Для этого пройдите по пути:
Сервис/ Установить NVDA…
Если вы любознательны или обожаете всё делать своими руками, то давайте пройдём по пути вместе!
Итак, допустим, всё необходимое скачано и установлено.
Путь к идеалу занимает несколько последовательных шагов. Каждый следующий шаг более сложен, но делает озвучивание белорусского текста удобней и комфортней.
Если вам срочно понадобилось прочитать белорусский текст, но вы не собираетесь сильно заморачиваться с этим в дальнейшем, то вам достаточно пройти этап 1.

Шаг 1. Беглое чтение

Первичное добавление белорусских символов в голосовой словарь NVDA.
Допустим, вы хотите научить белорусскому языку русский голос Александр или любой другой русский голос.
Нажмите NVDA , меню, Параметры подменю, Речевые словари подменю, Голосовой словарь. Энтер.
1. Откроется окно словарных статей. таб на кнопку “добавить”. Энтер.
2. Откроется диалог “Добавление словарной статьи”
Прямо тут же, в поле “шаблон” впишите или вставьте из буфера обмена “и белорусское”. Оно на следующей строке.
і
3. один раз табом до поля “замена”. Впишите русское “и”. Мы просим NVDA видеть белорусскую букву, но читать её как русскую.
4. три раза табом до выбора типа. Выберите стрелкой “вверх” пункт “Регулярное выражение”
5. табом до кнопки “ок”. Энтер.
Вы снова окажетесь в списке словарных статей. Проделайте снова шаги 1-5 и добавьте остальные 3 буквы.
Ниже приведён полный список белорусских букв и русских замен.
Сначала идёт белорусская буква. Необученный rhvoice читает вместо неё цифру. Например: “символ 1110”. Потом идёт знак равно и русская буква замены.
і=и
І=И
ў=у
Ў=У
Если желаете, замените ещё апостроф на твёрдый знак. Эта пара ниже:
‘=ъ
Апостроф заменять необязательно, но это немного влияет на чтение слов типа : з’ем, Дар’я.
После того, как сделали все замены, обязательно нажмите “ок” ещё раз. Не закрывайте окно словарных статей по “альт+F4”, иначе что-то может пропасть и работу придётся проделать заново.
Всё. Вы сделали нужные замены. Теперь вы можете открыть какой нибудь текст на белорусском, нажать комбинацию инсерт+стрелка вниз и спокойно читать.
Важное замечание. Вы конечно можете проделать все замены в “общем словаре”. В таком случае введённые правила будут работать для абсолютно всех голосов, установленных в системе, как русских, так и украинских. Украинским голосам манипуляции с буквами “и” не нужны и даже вредны, так как они изначально читают и то, и другое, причём по-разному.
Автор статьи долгое время пользовался исключительно русскими голосами, редактировал общий словарь” и был доволен. Но когда “лаборатория голосов” стала выпускать свои украинские голоса, то пришлось в срочном порядке первичные 4 замены переносить из общего словаря в словарь каждого русского голоса отдельно. Повторюсь, речь идёт только о первичных заменах. Остальные словарные замены нужно проводить уже в общем словаре. Об этом я буду писать ниже, в этапе номер хаха.

Шаг 2. Посимвольное чтение и набор текста

Мы уже можем читать.
Если вы используете rhvoice 2.161, то попробуйте прочитать стрелкой вправо слово “бібліятэка” по-символам. Синтезатор на месте “і” бодро прочитает “символ1110” и т.д.
Что, если вам нужно набирать тексты на белорусском? эти постоянные символы и цифры очень быстро начнут раздражать, причём сильно.
Если у вас более новый rhvoice, то возникает немного иная проблема. Белорусские символы читаются правильно, но NVDA никак не даёт вам понять, какая это “и” – белорусская или русская, пока вы не нажмёте на выключенном нумлоке цифру 2 дважды. На русской букве NVDA скажет вам “Иван”. На белорусской букве скажет “и беларускае”. У краткое от обычного у можно отличить таким же образом. Неудобно.
Какая раскладка у вас сейчас активирована? Или альт+шифт нажимать, или набрать, а затем стереть “у краткое”. Неудобно. Да к тому же рано или поздно напортачите и отправите кому-нибудь текст с буквами из обеих раскладок. Но ведь можно прямо при наборе текста слышать, какую именно букву вы пишете.
Исправим!
NVDA , меню, Параметры подменю, Произношение символов/пунктуации. Энтер.
Откроется диалог “Произношение символов (Русский)”
1. Четыре раза табом до кнопкі “добавіть”. Энтер.
2. Откроется діалог добавленія сімвола.
В поле редактірованія вписываем или вставляем из буфера обмена первую нашу букву, которую будем править.
Она в конце этой строки: і
Жмём “ок” іавтоматіческі оказываемся в спіске сімволов.
3. Жмём одін раз табом до “Изменение выбранного символа , группа. Замена , редактор Alt+з пусто”.
Вписываем здесь, или вставляем из буфера то, что на следующей строке:
і беларускае
4. Один раз табом. Стрелкой вніз делаем “Уровень , комбинированный список Символ”
5. снова один таб. Стрелкой вніз делаем Передавать фактический символ на синтезатор: , комбинированный список Всегда”
6. Три раза табом до кнопки “ок”. Энтер.
Результат сказывается мгновенно. Не нужно даже NVDA перезагружать.
Проделать таким же образом остальные три замены. Вот полный список замен
шаблон=і
замена=і беларускае
шаблон=І
замена=І беларускае
шаблон=ў
замена=у нескладовае
шаблон=Ў
замена=у нескладовае

Шаг 3. Изменение ударений в словаре NVDA

Итак, русский голос RHVOICE читает вам статью или книгу. В каких-то словах ударение ставит правильно, в других нет. На понимание беглого чтения прежде всего влияет ударение. Во вторую очередь орфоэпические изыски. Из личного опыта утверждаю, что текст, где 9 ударений из 10 поставлены неправильно слушать крайне сложно. У нас, слава Богу, ситуация не столь плачевная. Но допустим, что некое неправильно произносимое слово встречается слишком часто, и вам хочется это поправить.
Вам поможет знак ударения. В старых версиях nvda rhvoicы тех-же времён, попадая на этот знак, говорили “символ 769”. Теперь его добавили в список читаемых символов.
Пройдите по пути
C:\Program Files\NVDA\locale\ru,
откройте файл symbols.dic
вбейте в поиск по документу слово “удар” без кавычек.
Найдёте строку:
́ знак ударения char always
Искомый символ вначале строки. Если желаете, можете сохранить его в отдельный текстовик, в кодировке 65001 (UTF-8) или просто в документе ворд. Возможно, вам в будущем будет удобно просто копировать символ из файла.
В ворде его можно напечатать на клавиатуре если зажать альт и на включённом нумлоке набрать “0769”. Альт отпустить. Символ напечатается. В текстовом редакторе AkelPad это не получается. Тут как повезёт.
Если в любом тексте поставить этот символ после гласной, то она автоматически сделается для синтезатора речи ударной, что бы он по её поводу ни думал. Чаще всего происходит именно так. Но не всегда, к большому сожалению.
Теперь давайте при помощи нашего символа создадим правило в общем словаре nvda. Это нужно делать именно в общем словаре, если вы хотите, чтобы данного правила придерживались все синтезаторы речи, используемые в nvda. Итак:
Любым удобным для вас способом поместите символ ударения в буфер обмена.
1. NVDA , Меню, Параметры падменю п, Речевые словари подменю р, Общий словарь… о. Жмём энтер;
2. табом до Добавить , кнопка Alt+д. Здесь жмём пробел. Не энтер, а именно пробел. Если нажмёте энтер, то меню nvda закроется.
3. Откроется диалог “Добавление словарной статьи”. В поле “Шаблон” для примера впишем слово “спасылка”, Без кавычек, разумеется;
4. В поле “Замена” пишем это же слово, но после буквы “ы” вставляем из буфера символ.
5. Табаем до кнопки “ок” и жмём энтер. Если желаете, можете по пути выбрать из списка подходящий тип “слово”.
Если вы в своём правиле замены использовали слово без окончаний, то нужно выбрать “регулярные выражения”. Тогда синтезатор будет читать спасы́лка, спасы́лкай. спасы́лку не зависимо от падежа. á
гэты знак я пабачыў на Анлайнеры ў якасці націскной а. парупіўся зрабіць адпаведныя замены ў слоўніках
кáліласачка, калілáсачка, каліласáчка, каліласачкá.
Ë
Націскное Ё

Шаг 4. Знаки препинания по-белорусски

Аппетит приходит во время еды. Возможно вы с головой погрузились в белорусские тексты: по собственному желанию, по учёбе или по работе, и если вокруг одни только слова, слова на белорусском, то, может, вы захотите, чтобы синтезатор и знаки препинания читал по-нашему? 😉
Нет ничего проще! Помните, как мы в шаге 2 учили nvda правильно проговаривать набираемые буквы? Нам снова понадобится раздел “Произношение символов пунктуации”. Только теперь по непосредственному назначению.
NVDA , меню, Параметры подменю, Произношение символов/пунктуации. Энтер.
Откроется диалог “Произношение символов (Русский)”
1. Шифт+таб до Фильтр: , редактор Alt+т
здесь вписываем с клавиатуры нужный знак пунктуации, например, запятую;
2. дважды табом до Изменение выбранного символа , группа, Замена , редактор Alt+з
Здесь по-умолчанию вписано русское произношение символа “запятая”. Стираем и пишем “коска”;
3. Четырежды, ничего не меняя, табаем до кнопки “ок”. Энтер.
По завершении операции система создаст файл symbols-ru.dic, где и сохранятся все наши изменения.
В установочной nvda файл находится по пути
C:\Users(имя пользователя)\AppData\Roaming\nvda
В каталоге портабельной nvda откройте подкаталог userConfig. Там и найдёте symbols-ru.dic.
Если есть громадное желание, можно скопировать файл C:\Program Files\NVDA\locale\ru\symbols.dic, положить по одному из указанных выше путей, переименовать в symbols-ru.dic и методично всё перевести, строка за строкой. Там много чего, включая смайлики и совсем уж специфические знаки. Но можно и подождать. Я переведу этот файл и выложу на сайте.
Вернуться к предыдущему шагу
Перейти к следующему шагу

Шаг 5. Белорусская локализация NVDA

Официально NVDA белорусской локализации до сих пор не имеет. Наверное, всё по той же причине, по какой её не имеют многие прикладные программы.
Но если очень хочется, то можно. 😉 В далёком уже 2017 году один студент, чтобы отдохнуть от курсовой, для разгрузки мозгов взял да и перевёл NVDA на белорусский. Полностью. Но сделал это не как положено, через официальный репозиторий, а по-варварски, забравшись в папку C:\Program Files\NVDA\locale\ru, и переведя всё, што там нашлось. В папке locale появилась и “заняла свой пачэсны пасад між народамі” гордая папочка by, а в меню выбора языков, в самом верху появился загадочный язык by. Жмём на нём энтер, соглашаемся на перезагрузку и NVDA, и мир приобретает совсем другие краски и звучание. Результат чрезвычайно радовал ухо, но оказалось, что так не нужно было делать. Полученная локаль оказалась неизменяемая. В NVDA от версии к версии появлялись всё новые и новые элементы интерфейса, перерабатывалось меню, и всё, чего не было в 2017 году отображается на интернациональном английском. Теперь скринридер в древней самодельной локали выглядит, как человек в дырявой одежде: то там колено торчит, то здесь ключицы выглядывают. Словом, эта картина уже на большого любителя. То е., если очень-очень любишь, то пользуйся.
Когда-нибудь бывший студент наберётся храбрости и заново переведёт все те 7000 строк ещё раз, как положено, а пока вы можете скачать локаль отдельно,
Или в составе новейшей портабельной NVDA, где всё установлено и настроено.