IBMTTS (Драйвер IBMTTS)
Авторы:- Исходный код дополнения: Посетить Web-сайт IBMTTS
Краткое описание
Дополнение IBMTTS - это драйвер синтезатора IBMTTS для NVDA.
Данное дополнение реализует совместимость NVDA с синтезатором IBMTTS.
Мы не можем распространять библиотеки IBMTTS. Поэтому это просто драйвер.
Что представляет собой синтезатор IBMTTS?
ViaVoice TTS - это движок преобразования текста в речь, разработанный компанией IBM, который синтезирует текстовое представление человеческого языка в речь.
Хотя этот драйвер совместим с библиотеками Eloquence (поскольку Eloquence имеет тот же api, что и IBMTTS), использовать Eloquence с этим драйвером не рекомендуется из-за проблем с лицензированием. Перед использованием библиотек синтеза с этим драйвером рекомендуется сначала получить права на использование лицензии.
Все подробно описано в документации к дополнению.
Основная информация
| Название | Версия | Совместимость с API NVDA | Последняя протестированная версия NVDA | Минимальная версия NVDA | Дата загрузки в каталог | Размер | Лицензия |
|---|---|---|---|---|---|---|---|
| IBMTTS | 26.4.1 | 2026.1 | 2026.1.0 | 2019.3.0 | 16-04-2026 20:52:04 | 382 Кб. | GPL v2 |
Журнал изменений
Подробнее
Не найдено
Скачать
⬇ Перейти к истории версий 🔝 Назад к оглавлениюИнформация о локализации на русский язык
🔝 Назад к оглавлениюРазделы
🔝 Назад к оглавлениюСправка
Подробнее
Драйвер IBMTTS, дополнение для NVDA
Это дополнение реализует совместимость NVDA с синтезатором IBMTTS.
Мы не можем распространять библиотеки IBMTTS. Поэтому здесь представлен только драйвер.
Если вы хотите улучшить этот драйвер, свободно присылайте свои запросы на включение (pull requests)!
Хотя этот драйвер совместим с библиотеками Eloquence (поскольку Eloquence имеет тот же API, что и IBMTTS), использовать Eloquence с этим драйвером не рекомендуется из-за лицензионных вопросов. Перед использованием любых библиотек синтеза с этим драйвером рекомендуется сначала получить права на использование лицензии.
Этот драйвер был разработан с использованием документации, доступной для IBMTTS в открытом доступе в интернете. Смотрите раздел «Ссылки» для более подробной информации.
Загрузка.
Последняя версия доступна для загрузки по этой ссылке
Что такое синтезатор IBMTTS?
ViaVoice TTS — это движок преобразования текста в речь, разработанный IBM, который преобразует текстовое представление человеческого языка в речь.
Возможности и настройки.
- Поддержка настроек голоса, варианта, темпа, высоты тона, интонации и громкости.
- Поддержка дополнительных параметров: размер головы, грубость, придыхание. Создайте свой собственный голос!
- Включение или отключение голосовых тегов через обратную кавычку. Отключите эту функцию, чтобы защитить себя от вредоносного кода шутников, включите её, чтобы делать много интересных вещей с синтезатором. Для правильной работы требует дополнительной настройки NVDA.
- Ускорение темпа. Если синтезатор говорит недостаточно быстро для вас, включите эту опцию и получите максимальную скорость речи!
- Автоматическое переключение языка. Позвольте синтезатору читать текст на правильном языке, когда это обозначено в разметке.
- Всесторонняя фильтрация. Этот драйвер включает в себя комплексный набор фильтров для устранения сбоев и другого нестандартного поведения синтезатора.
- Поддержка словарей. Этот драйвер поддерживает интеграцию пользовательских словарей специальных слов, корней и аббревиатур для каждого языка. Готовые наборы словарей можно получить из репозитория сообщества словарей или альтернативного репозитория mohamed00 (со словарями для синтезаторов IBM)
Дополнительные настройки:
-
Включить раскрытие аббревиатур: включает раскрытие аббревиатур. Имейте в виду, что отключение этой опции также отключит раскрытие любых аббревиатур, указанных в предоставленных пользователем словарях аббревиатур.
-
Включить предсказание фраз: если эта опция включена, синтезатор будет пытаться предсказывать, где должны возникать паузы в предложениях на основе их структуры, например, используя такие слова, как «и» или «the», в качестве границ фраз. Если эта опция отключена, пауза будет возникать только при встрече с запятыми или другими подобными знаками препинания.
-
Паузы: это поле со списком, содержащее три варианта.
- Не укорачивать: паузы не будут укорачиваться вообще, и оригинальные паузы IBMTTS будут использоваться во всех случаях.
- Укорачивать только в конце текста: паузы на знаках препинания, таких как точки и запятые, укорачиваться не будут, но они будут укорачиваться в конце текста, например, при быстром двойном нажатии NVDA+t для посимвольного произнесения строки заголовка приложения.
- Укорачивать все паузы: все паузы, включая паузы на знаках препинания и паузы, возникающие в конце текста, будут укорачиваться.
-
Всегда отправлять текущие настройки речи: в синтезаторе есть ошибка, которая иногда приводит к кратковременному сбросу настроек темпа и высоты тона к значениям по умолчанию. Причина этой проблемы в настоящее время неизвестна, однако существует обходной путь — постоянно отправлять текущие настройки темпа речи и высоты тона. Эта опция обычно должна быть включена. Однако её следует отключать при чтении текста, содержащего голосовые теги через обратную кавычку.
-
Частота дискретизации: изменяет качество звучания синтезатора. Наиболее полезна для IBMTTS, где установка частоты дискретизации 8 кГц открывает доступ к новому набору голосов.
Настройки категории IBMTTS.
Это дополнение имеет собственную категорию настроек в параметрах NVDA для управления некоторыми внутренними функциями, не связанными с речевым синтезом.
- Автоматически проверять наличие обновлений для IBMTTS: если этот флажок установлен, дополнение будет ежедневно проверять наличие новых версий.
- Кнопка «Проверить обновления»: вручную проверить наличие новых обновлений дополнения.
- Адрес папки IBMTTS: путь для загрузки библиотеки IBMTTS. Может быть абсолютным или относительным.
- Имя библиотеки IBMTTS (dll): имя библиотеки (dll). Не включайте пути, только имя с расширением, обычно «.dll».
- Обзор библиотеки IBMTTS...: открывает диалог выбора файла для поиска библиотеки IBMTTS в системе. Будет сохранён как абсолютный путь.
- Скопировать файлы IBMTTS в дополнение (может не работать для некоторых дистрибутивов IBMTTS): если путь к библиотеке IBMTTS был установлен, скопирует все файлы из папки в новое дополнение под названием eciLibraries и обновит текущий путь на относительный. Это очень полезно для портативных версий NVDA. Работает только для библиотек, которые используют файлы «eci.ini» для информации о языке голоса. Если библиотека использует реестр Windows, эта опция не сработает.
Примечание: Функциональность автоматического или ручного обновления не удаляет внутренние файлы дополнения. Если вы используете свои библиотеки в этом месте, вы можете безопасно пользоваться этой функцией. Ваши библиотеки останутся в целости.
64-битная совместимость и архитектура
Начиная с NVDA 2026, программа чтения с экрана перешла на 64-битный интерпретатор Python. Поскольку нативные 64-битные библиотеки IBMTTS недоступны, был реализован специальный уровень совместимости, который связывает 64-битную среду Python с существующими 32-битными библиотеками IBMTTS.
Детали реализации
Для обеспечения бесшовной интеграции драйвер использует следующую архитектуру:
-
32-битный хост DLL: Специализированный хост на Rust (32-битный) выступает в роли моста для 64-битных процессов. Этот хост способен динамически загружать требуемую
eci.dll. -
Межпроцессное взаимодействие (IPC):
-
Вызовы функций: Взаимодействие осуществляется через дуплексные именованные каналы в режиме сообщений.
-
Потоковая передача аудио: Высокопроизводительная передача аудиоданных управляется через разделяемую память с использованием событий синхронизации для сигнализации операций чтения/записи между процессами.
-
Выполнение: Хост-процесс запускается с помощью
rundll32. -
Python прокси: Прокси на Python заменяет стандартную
eci.dll. Он взаимодействует с конечными точками хоста и обрабатывает аудиопоток непосредственно из разделяемой памяти. -
Динамическая загрузка: Драйвер автоматически определяет окружение. Прокси инициализируется только при работе под управлением 64-битной NVDA; в 32-битной NVDA оригинальная
eci.dllзагружается нативно.
32-битный мост хоста
Подробную информацию о реализации 32-битного хоста смотрите в следующем репозитории: ibmtts-host32-bridge
Требования.
NVDA.
Вам нужна NVDA версии 2019.3 или новее.
Библиотеки синтезатора IBMTTS.
Это только драйвер, вы должны получить библиотеки откуда-то ещё.
Этот драйвер поддерживает несколько более новые библиотеки, добавляющие поддержку восточноазиатских языков, и содержит специфические исправления для правильной кодировки текста. Более старые библиотеки без этого также должны работать.
Начиная с версии 21.03A1, этот драйвер также работает с ещё более новыми библиотеками от IBM, а не только с библиотеками SpeechWorks. Включён набор независимых исправлений для этих библиотек, учитываются дополнительные языки и другие различия. Конкатенативные голоса поддерживаются, и к ним можно получить доступ, установив частоту дискретизации 8 кГц после установки голосов. Для достижения наилучших результатов используйте сборку ibmeci.dll от июня 2005 года (версия 7.0.0.0), так как старые версии могут быть нестабильны при быстром получении текста, например, при быстрой прокрутке элементов в списке. Также имейте в виду, что если вы используете библиотеки IBMTTS для гонконгского кантонского или китайского языка, вы можете отключить опцию «использовать функцию произнесения по буквам, если поддерживается», чтобы предотвратить произнесение некоторых символов на этих языках с помощью пиньиня, в который они внутренне преобразуются.
Установка.
Просто установите его как дополнение NVDA. Затем откройте диалог настроек NVDA и укажите папку с файлами IBMTTS в категории IBMTTS. Также в этой категории вы можете скопировать внешние файлы IBMTTS в дополнение для локального использования.
Участие в переводе.
Чтобы облегчить вашу работу, я оставил шаблон перевода в ветке master.
Для документации я создал файл «docChangelog-for-translators.md». Вы можете использовать этот файл, чтобы увидеть, что было изменено в документации, и обновить документацию на вашем языке.
Если вы хотите перевести это дополнение на другой язык и не хотите создавать учётную запись на GitHub или устанавливать python и другие инструменты, необходимые для перевода, выполните следующие шаги:
- Используйте этот шаблон в качестве основы для целевого языка.
- Загрузите «poedit», это программное обеспечение поможет вам управлять строками перевода.
- Если вы также хотите перевести документацию, вы можете посмотреть новые изменения в документации по этой ссылке. Вы можете просмотреть полную английскую документацию здесь.
- Когда закончите перевод, вы можете отправить его мне по адресу: «dhf360@gmail.com».
Вам не нужно будет компилировать исходные файлы. Я сделаю это при выпуске новой версии дополнения. Я упомяну ваше имя в соответствующем коммите. Если вы не хотите, чтобы вас упоминали, сообщите мне об этом в письме.
Примечание: убедитесь, что вы использовали последний шаблон строк перевода.
Это альтернативный метод. Если хотите, вы всегда можете пойти обычным путём. Сделайте форк этого репозитория, обновите перевод для вашего языка и отправьте мне PR. Но этот путь просто добавит вам больше сложностей.
Упаковка для распространения.
- Установите python, в настоящее время используется python 3.7, но вы можете использовать более новую версию.
- Установите gettext, вы можете загрузить дистрибутив для windows по этой ссылке. Если вы используете Windows 64 бита, я рекомендую эту версию.
- (необязательный, но рекомендуемый шаг) создайте виртуальное окружение python для управления дополнениями NVDA. В консоли используйте «python -m venv ПУТЬ_К_ПАПКЕ». Где ПУТЬ_К_ПАПКЕ — это путь к желаемой папке для виртуального окружения.
- Если вы выполнили шаг 2, перейдите в ПУТЬ_К_ПАПКЕ и внутри папки scripts выполните «activate». Имя окружения должно отображаться в приглашении консоли.
- Клонируйте этот репозиторий в нужную вам папку: «git clone https://github.com/davidacm/NVDA-IBMTTS-Driver.git».
- В том же экземпляре консоли перейдите в папку этого репозитория.
- Установите необходимые компоненты: «pip install -r requirements.txt».
- Выполните команду scons. Созданное дополнение, если не было ошибок, помещается в корневую директорию этого репозитория.
После закрытия консоли виртуальное окружение деактивируется.
Упаковка библиотек как независимого дополнения.
Не рекомендуется включать библиотеки в этот драйвер. Это связано с тем, что если пользователь обновит драйвер из официального репозитория с помощью установщика дополнений NVDA, старая версия будет удалена, включая библиотеки. Одно из решений этой проблемы — установить библиотеки в отдельное дополнение. Перейдите по этой ссылке чтобы узнать, как упаковать библиотеки в отдельное дополнение.
Примечания:
- Если вы используете внутреннюю функцию обновления (ручную или автоматическую), библиотеки не будут удалены, даже если они находятся внутри дополнения.
- Если синтезатор находится внутри дополнения или внутри дополнения «eciLibraries», драйвер будет автоматически обновлять пути к библиотекам в ini-файлах. Таким образом, вы можете использовать его в портативных версиях NVDA.
- Когда вы используете кнопку «Скопировать файлы IBMTTS в дополнение», будет создано новое дополнение. Поэтому, если вы захотите удалить IBMTTS, вам нужно будет удалить два дополнения: «IBMTTS driver» и «Eci libraries».
- Инструменты scons и gettext в этом проекте совместимы только с python 3. Они не работают с python 2.7.
- Вы можете поместить дополнительные необходимые файлы IBMTTS в дополнение (только для личного использования). Просто скопируйте их в папку «addon\synthDrivers\ibmtts». При необходимости измените имя библиотеки по умолчанию в «settingsDB.py».
- Если настроенный путь к библиотеке не является относительным, это дополнение не будет обновлять пути в файле «eci.ini». Драйвер предполагает, что при использовании абсолютных путей пути в «eci.ini» верны, и будет избегать внесения каких-либо обновлений. Имейте это в виду при настройке пути к вашим библиотекам. Если они неверны, это может вызвать ошибки, которые сделают NVDA немой при использовании этого синтезатора.
Сообщение о проблемах:
Если вы обнаружите проблему безопасности с некоторыми библиотеками, совместимыми с этим драйвером, пожалуйста, не открывайте issue на GitHub и не комментируйте это на форумах до тех пор, пока проблема не будет решена. Пожалуйста, сообщите о проблеме через эту форму.
Если проблема не вызывает сбоя драйвера или программы чтения с экрана, откройте issue на GitHub здесь.
Ссылки.
Этот драйвер основан на IBM TTS SDK, документация доступна по: этой ссылке
а также в Колумбийском университете по этой ссылке
Или вы можете получить резервную копию в этом репозитории
pyibmtts: обёртка Python для IBM TTS, разработанная Peter Parente
Смотрите резервные файлы здесь:
или tts.txt.
История версий
Истории версий нет.
🔝 Назад к оглавлению