Sorry, you need to enable JavaScript to visit this website.
Monday, September 4, 2017 2:21:14 PM

IBMTTS For NVDA

Last updated on Friday, January 5, 2024 - 21:30 by Arslan Anwar
Operating system: 
Sharing Options Share this

This add-on implements NVDA compatibility with the IBMTTS synthesizer. The IBMTTS add-on is the new driver for NVDA to use IBM tts synths. This driver can also be used with Eloquence synthesizer since both shares the same communication protocol (SDK).

This add-on is the sum of all contributions of the older driver known as Eloquence (all that could be found) with new improvements and updated compatibility. If you want to learn more including the complete background, head over to the dedicated article written by the developer of IBMTTS in our blog.

Features:

  • Voice, Variant, Rate, Pitch, Inflection and Volume setting support.
  • Extra head size, Roughness, Breathiness parameters settings support. Create your own voice!
  • Enable or Disable Backquote Voice Tags: Disable it to protect yourself from malicious codes from jokers, enable it to do many fun things with the synthesizer. Requires some extra tweaking with NVDA though to get it to work properly.
  • Rate Boost: If the synthesizer does not speak extremely fast to you, then enable it and get the maximum voice speed!
  • Auto Language Switching: Let the synthesizer read text to you in the correct language when marked up.
  • Comprehensive Filtering: This driver includes a comprehensive set of filters to fix crashes and other odd behaviour of the synthesizer.
  • Dictionary Support: This driver supports the integration of Special Words, Roots, and Abbreviation User Dictionaries for each language. Ready-made dictionary sets may be obtained from the Community Dictionary Repository or Mohamed00's Alternative Repository (With IBM Synth Dictionaries).

Extra Settings:

  • Enable Abbreviation Dictionary: Toggles expansion of abbreviations. Note: Disabling this option will also disable the expansion of any abbreviations specified in user-provided abbreviation dictionaries.
  • Enable Phrase Prediction: If this option is enabled, the synthesizer will try to predict where pauses would occur in sentences based on their structure, for example, by using words like "and" or "the" as phrase boundaries. If this option is off, it will only pause if commas or other such punctuation is encountered.
  • Shortened Pauses: Enable this option for shorter punctuation pauses, like those seen in other screen readers.
  • Always Send Current Speech Settings: Currently, there is a bug in the synthesizer that will occasionally cause the speech and pitch settings to be briefly reset to their default values. The cause of this issue is currently unknown however, a workaround is to continuously send the current speech rate and pitch settings. This option should be enabled, however it should be disabled if you are using IBM binaries, as this setting will cause exceedingly long pauses to be inserted that will make them unusable, or if you are reading text that contains backquote voice tags.

Requirements:

NVDA:

You need NVDA 2019.3 or later.

IBMTTS Synthesizer Libraries:

IBMTTS is just a driver, it requires the library to function. Here we are providing the libraries attached with the Add-on for BHP's visitors.

This driver supports the slightly newer libraries that add East-Asian language support and has specific fixes for the proper encoding of text. The older libraries without this should work though.

As of version 21.03A1, this driver also works with the even newer libraries from IBM, rather than just the Speech Works ones.

A set of independent fixes for those libraries is included, and the additional languages and other differences are accounted for. Only formant voices are supported at present. Thanks to Mohamed00 for this work.

Installation:

Just install it as an NVDA add-on. Then open NVDA dialog settings and set the IBMTTS folder files in the IBMTTS category.

Also in this category you can copy the external IBMTTS files into an Add-on to use it locally.

Notes:

  • If the synthesizer is inside the add-on or in "ECILibraries" add-on, the driver will update the ini library paths automatically. So, you can use it on portable NVDA versions.
  • When you use the "Copy IBMTTS Files in an Add-on" button, it will create a new add-on. So, if you want to uninstall IBMTTS, you will need to uninstall two add-ons: "IBMTTS Driver" and "ECI Libraries."
  • Scons and Gettext tools on this project are compatible with Python 3 only. Does not work with Python 2.7.
  • You can put the extra IBMTTS required files in the add-on (for Personal Use Only). Just copy them in "Addon\SynthDrivers\IBMTTS" folder. Adjust the default library name in "settingsDB.py" if necessary.

References:

This driver is based on the IBM TTS SDK the documentation is available on:

This Link.

Or you can get a copy on This Repo.

See the Files:

TTS.pdf

or TTS.txt.

Download: