This add-on implements NVDA compatibility with the IBMTTS synthesizer.
We can not distribute the IBMTTS libraries. So it is just the driver.
If you want to improve this driver, feel free to send your pull requests!
Although this driver is compatible with Eloquence libraries (since Eloquence has the same api as IBMTTS) it's not recommended to use Eloquence with this driver due to licensing issues. Before using any synthesis libraries with this driver, it's recommended to get the license usage rights first.
This driver was developed with the documentation available for IBMTTS, publicly available on the web. See references section for more details.
The latest release is available to download in this link
ViaVoice TTS is a text-to-speech engine developed by IBM, which synthesizes textual representation of human language into speech.
Enable abbreviation expansion: toggles expannsion of abbreviations. Note that 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.
Pauses: This is a combo box with three options.
Always send current speech settings: 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 generally be enabled. However, it should be disabled if reading text that contains backquote voice tags.
Sample rate: changes the synthesizer's sound quality. Most useful for IBMTTS, where setting the sample rate to 8 kHz enables access to a new set of voices.
This add-on has its own category of settings within NVDA options, to manage some internal functionality not related to speech synthesis.
Note: The automatic or manual update functionality won't remove the internal files of the add-on. If you use your libraries in that place, you can safely use this function. Your libraries will be safe.
You need NVDA 2019.3 or later.
This is just the driver, you must get the libraries from somewhere else.
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 SpeechWorks ones. A set of independent fixes for those libraries is included, and the additional languages and other differences are accounted for. Concatenative voices are supported, and can be accessed by setting the sample rate to 8 kHz after installing voices. For best results, use the June 2005 build of ibmeci.dll (version 7.0.0.0) as older versions can be unstable when receiving text rapidly, for example, by quickly scrolling through items in a list. Also note that if you are using Hong Kong Cantonese or Chinese IBMTTS libraries, you may want to disable the use spelling functionality if supported option, to prevent some characters in these languages from being spelled out using the pinyin they are internally converted to.
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.
In order to make your work easier, I have left a translation template in the master branch.
For the documentation, I created a file called "docChangelog-for-translators.md". you can use that file to see what has been changed in the documentation and update the documentation for your language.
If you want to translate this add-on to another language and you don't want to open a github account or install python and other tools needed for the translation, do the following steps:
You won't need to compile the source files. I'll do it when releasing a new add-on version. I will mention your name in the respective commit. If you don't wish to be mentioned, let me in the e-mail.
Note: make sure you have used the latest translation strings template.
This is an alternative method. If you want, you always can go by the usual way. Fork this repo, update the translation for your language, and send me a PR. But this way just will add more complexity for you.
Once you close the console, the virtual environment is deactivated.
Is not recommended to include the libraries with this driver. It's because if the user updates the driver from the official repo, using the NVDA add-on installer, the old version will be deleted including the libraries. One solution for this, is to install the libraries in a separate add-on. Follow this link to know how to package the libraries in a separate add-on.
If you find a security issue with some of the libraries that are compatible with this driver, please do not open a github issue nor comment it on forums before the issue is solved. Please report the issue on this form.
If the issue doesn't crash the driver or the screen reader, then open an github issue here.
This driver is based on the IBM tts sdk, the documentation is available on: this link
also at the university of Columbia in this link
Or you can get a backup copy on this repo
pyibmtts: Python wrapper for IBM TTS developed by Peter Parente
See the backup files here:
tts.pdf
or tts.txt.