MultiLang (Многоязычный виртуальный драйвер)
- Автор: Kvark
- Исходный код дополнения: Посетить Web-сайт MultiLang
Краткое описание
MultiLang - это виртуальный синтезатор речи.
Дополнение работает как драйвер, с различными установленными типами синтезаторов речи.
Драйвер осуществляет переключение между языками разных типов синтезаторов.
Дополнение ещё в разработке.
Более подробнее об особенностях и настройке, можно прочитать в справке.
Там также есть ответы на некоторые вопросы, которые возникали у первых пользователей.
Основная информация
Название | Версия | Совместимость с API NVDA | Последняя протестированная версия NVDA | Минимальная версия NVDA | Дата загрузки в каталог | Размер | Лицензия |
---|---|---|---|---|---|---|---|
MultiLang | 2024.09.02 | 2024.1 | 2024.2 | 2019.3 | 06-09-2024 06:13:59 | 44 Кб. | GPL v2 |
Информация о локализации на русский язык
- Локализация от: Разработчик или другой переводчик
- Перевод: Да
- Перевод интерфейса: Да
- Перевод справки: Да
Скачать
MultiLang-V.2024.09.02.nvda-addon
Назад к оглавлениюРазделы
Назад к оглавлениюСправка
Уважаемые пользователи сайта. Еще не все дополнения имеют локализованную справку, кроме того, не у всех дополнений есть справка.
Для того Чтобы узнать это, нажмите на следующую кнопку.
Подробнее
MultiLang (Многоязычный виртуальный драйвер)
- Автор: Kvark (Александр Линьков)
Предлагаю смелым пользователям протестировать новое дополнение MultiLang, представляющее из себя виртуальный синтезатор речи, определяющий язык входного текста и передающий этот текст на другие, реальные синтезаторы, выбранные для целевого языка. Что-то вроде WorldVoice на минималках.
Для MultiLang требуется версия NVDA 2023.2 и выше.
Опубликован по адресу: https://t.me/nvda_group/38962
Настройка MultiLang.
В диалоге выбора синтезатора (NVDA+Control+S) следует активировать MultiLang, после чего все параметры синтезатора будут доступны в настройках речи (NVDA+Control+V), а именно:
- Голос по умолчанию — голос/язык, который будет использоваться в качестве языка синтезатора по умолчанию. При первой загрузке будет соответствовать языку интерфейса NVDA.
- Синтезатор — реальный синтезатор речи NVDA, который будет использоваться для выбранного ранее языка/голоса по умолчанию. Для каждого языка можно выбрать свой синтезатор.
- Передавать язык текста на синтезатор — флажок, если установлен, заставляет передавать реальному синтезатору информацию о языке читаемого текста. По умолчанию установлен.
- Профиль — профиль конфигурации NVDA, из которого будут подгружаться настройки синтезатора из пункта 2. Для каждого голоса/языка по умолчанию можно выбрать свой профиль.
Прочие настройки думаю будут многим знакомы. Чуть позже сделаю более подробную инструкцию с описанием каждой из них.
MultiLang в теории способен работать с любыми реальными синтезаторами речи, драйвера которых корректно и своевременно уведомляют NVDA о завершении чтения ранее переданного им текста. Нормальная работа подтверждена с RHVoice, Vocalizer Expressive V2, SAPI5, eSpeak NG, ru_tts и OneCore. Конструктивные (подробные) сообщения об ошибках приветствуются.
Репозиторий с исходным кодом можно найти вот здесь:
https://gitverse.ru/kvark128/MultiLang
Пожертвование
Если вам понравилось это дополнение, и вы хотите выразить благодарность его автору, то сделать это можно переводом любой суммы на следующий кошелёк YooMoney: https://yoomoney.ru/to/410012293543375
Дополнительный материал.
Некоторые ответы на вопросы собранные администратором @NVDA_Groupиз сообщений пользователей и разработчика дополнения. Справка также собрана администратором. Разработчик позже напишет подробную справку.
Как настраиваются реальные синтезаторы.
Реальные синтезаторы настраиваются обычным образом в конфигурации по умолчанию (файл nvda.ini) или в любом пользовательском профиле конфигурации NVDA (файлы profiles/*.ini). Профилей конфигурации в NVDA можно создать сколько угодно. Дальше в настройках MultiLang'а для того или иного голоса/языка выбирается желаемый синтезатор речи и профиль конфигурации, из которого MultiLang возьмёт настройки (голос/скорость/высота/громкость и т. п.) и применит их к выбранному синтезатору. Связку синтезатор+профиль можно настраивать для каждого языка индивидуально.
Флаг Игнорировать цифры при определении языка текста.
Если этот флажок снят, то цифры будут всегда читаться голосом по умолчанию (необходимо выбрать русский). Если флажок установлен, то цифры будут читаться тем голосом/языком, который использовался перед цифрами. Например строка "Новый год 2024" будет прочитана полностью русским голосом, а "new year 2024" полностью английским.
Каким языком произносятся цифры.
Цитата из вопроса: В моём случае ещё зависит от того, какой язык стоит по умолчанию в настройках Multilang. То есть, если настраивать каждый язык отдельно (выбрать для него синтезатор) и оставить, например, английскй, то время по INSERT+F12 будет всегда читаться английским голосом, независимо от того, как стоит флажок, отвечающий за игнорирование цифр. И ещё у меня в случаях, когда цифры идут сразу а латиницей, то они тоже читаются английским голосом, независимо от каких-либо настроек.
Ответ: Да, всё верно. Это не отдельный случай, а так и должно быть. Если перед цифрами нет никакого текста, то используется голос по умолчанию, в вашем случае английский.
О профилях.
Профиль конфигурации NVDA, который активирован по горячим клавишам, не отключает профиля, который был активирован по триггеру. Если у вас настроен профиль для Outlook с отключённым чтением заголовков столбцов и он активируется автоматически при переходе в окно программы, то в этом самом окне Outlook можно активировать другие профили по горячим клавишам, и они не будут отключать профиль Outlook. Одновременно будут активны три набора настроек: профиль активированный по горячим клавишам, профиль активированный по триггеру и конфигурация NVDA по умолчанию. А поиск той или иной настройки будет выполняться по этому стеку сверху вниз. То есть если в профиле активированном по триггеру отключено чтение заголовков столбцов, то после активации другого профиля по горячим клавишам чтение заголовков останется отключённым, если, конечно, профиль активированный по горячим клавишам не переопределяет эту настройку.
Профиля в MultiLang.
Создайте два профиля конфигурации NVDA и назначьте на каждый из них своё сочетание горячих клавиш. В первом профиле в настройках MultiLang для голоса латиницы выберите английский , а во втором испанский. Само собой не забудьте для каждого из этих языков настроить свою пару синтезатор+профиль. Дальше просто переключайтесь между профилями по назначенным клавишам.
Создайте отдельный профиль конфигурации NVDA с необходимыми настройками для того или иного синтезатора, после чего используйте этот профиль исключительно в MultiLang. Это нужно для того, чтобы использовать другие синтезаторы в конфигурации по умолчанию не опасаясь, что изменение их настроек повлияет на MultiLang.
С Vocalizer настройка немного проще, так как он умеет переключать голоса в соответствии с языком текста, если его об этом попросить.
- Откройте меню NVDA → Параметры → Настройки автоматического переключения языка Vocalizer.
- В этом диалоге выберите основной голос для английского, испанского и других языков, которые планируете использовать. Сохраните изменения кнопкой OK.
- Переключитесь на MultiLang и по NVDA+Control+V откройте настройки речи.
- Тут голосом по умолчанию выберите сначала английский и в качестве синтезатора для него выберите Vocalizer Expressive. Обязательно установите флаг «Передавать язык текста на синтезатор».
- Не закрывая настроек речи переключитесь на испанский и сделайте для него тоже самое, что и для английского.
- В комбобоксе «Латинский голос» выберите английский язык.
- Теперь голосом по умолчанию выберите тот, который действительно планируете использовать по умолчанию (например русский). Сохраните изменения кнопкой OK.
- Теперь латиница будет считаться тем языком, который был выбран на шаге 6. Голосом для этого языка будет служить тот, который был выбран на шаге 2. Если потребуется отрегулировать скорость/высоту/громкость какого-то голоса, то переключите синтезатор на Vocalizer и уже в его настройках речи выполняйте эту регулировку. Теперь можно будет создать дополнительный профиль конфигурации NVDA, навесить на него горячие клавиши, и в нём, в настройках речи MultiLang, в качестве голоса латиницы выбрать уже испанский язык. Включая/отключая этот профиль, сможете оперативно переключаться между английским и испанским языками.
Если большие паузы между голосами при чтении.
Цитата из вопроса: Спасибо, работает, но не понятно почему, во время прочтения есть большеватые паузы между речью разных синтезаторов.
Ответ: Предположу, что вы в настройках Vocalizer установили слишком большое значение для опции «Коэффициент ожидания». Установите его в ноль для каждого используемого голоса.
История версий
2024.09.02
Затрудняюсь ответить почему у вас это сделать не получается. Сейчас у себя для русского настроил SAPI5-голос Ирина (идёт в комплекте с windows), а для английского SAPI5-голос Guy (Natural Voices). SAPI5-драйвер NVDA не умеет обрабатывать команды переключения языка, поэтому разные SAPI5-голоса необходимо настраивать в разных профилях конфигурации NVDA, указывая эти профили потом в настройках MultiLang. Может быть из-за этого сделать несколько SAPI5-голосов у вас и не выходит. Дополнительно прикрепляю к этому сообщению следующую версию MultiLang, где я попытался нивелировать некоторые глюки в работе SAPI5-версии Natural Voices. Теперь в MultiLang эти голоса должны работать более стабильно.
2024.09.01
в настоящее время эти символы, заключенные в кавычки, не объявляются espeak. Вот эти символы: "।", "॥", "", "॑", "",
пожалуйста, ознакомьтесь с этими символами, переходя по буквам с помощью e-speake https://t.me/nvda_group/40854
Согласно стандарту Unicode 15.1.0, ни один из приведённых символов не считается частью какой-либо письменности. Такие общеупотребительные символы MultiLang передаёт голосу по умолчанию. В качестве голоса по умолчанию выберите нужный вам язык использующий письменность деванагари (например непальский), и тогда приведённые символы будут читаться на этом языке. Новую версию MultiLang с поддержкой непальского прикрепляю к этому сообщению.
2024.08.29
Вот новая версия MultiLang, где должна быть решена проблема с непрерывным чтением при использовании RHVoice. Также по просьбе пользователей флажок игнорирования цифр при определении языка текста возвращён в настройки речи.
2024.08.25
Синтезатором по умолчанию для всех голосов/языков теперь является eSpeak вместо oneCore. eSpeak корректно уведомляет NVDA о завершении обработки переданного ему текста, даже если никакой речи и не было. Помимо прочего в этой версии полностью переписан модуль определения языка текста, работа которого теперь основана на письменностях стандарта Unicode. Добавлена поддержка письменности деванагари (языки хинди, маратхи и санскрит). В список кириллических языков добавлен белорусский и татарский. Из настроек удалены флажки игнорирования цифр и знаков препинания.
2024.07.18
Оптимизировано использование одного и того же синтезатора с одинаковыми настройками при чтении текста на разных языках. Реализована совместимость со старыми версиями NVDA (теперь требуется NVDA 2019.3 и выше). Исправлена пара мелких багов.
2024.07.06
Реализовано объединение фрагментов текста на разных языках при следующих условиях:
- В настройках речи MultiLang для всех объединяемых языков (в вашем случае для русского и английского) должен быть выбран один и тот же синтезатор и профиль.
- У всех объединяемых языков обязательно должен быть снят флаг «Передавать язык текста на синтезатор». Сделайте эти настройки для русского и английского, и лишние паузы в RHVoice должны исчезнуть. Арабский текст как и раньше передавайте на Vocalizer.
2024.07.02
Первый выпуск.