This NVDA add-on adds support for using a DECtalk Express hardware speech synthesizer (or another DECtalk unit in RS-232 mode) to NVDA. It supports changing of voices, rate, pitch, inflection, and pauses from the voice settings dialog in NVDA. It also comes with a configuration utility where you can create custom voices, check firmware and battery status, and even upgrade the firmware of your DECtalk Express.
Please Note: this NVDA add-on has been coded with the help of AI, so not everything might be perfect, however all testing of the add-on has been done by myself with real hardware. All contributions and feedback are very welcome.
The port is always opened at 9600 baud, 8 data bits, no parity, 1 stop bit, XON/XOFF flow control, and NVDA gives an error if there's no DECtalk Express on the selected port.
The following settings can be changed in the voice settings dialog:
Choosing a voice sets pitch and inflection to that voice's own values, for example 24 % pitch for Paul (122 Hz).
NVDA menu, Tools, DECtalk Express Configuration Utility. It has two tabs.
Please note, the options on this tab only work with a real DECtalk Express unit, since other DECtalk hardware units don't support these options.
When the utility opens, it asks the unit for its firmware version and power status and shows the answers in the Status field. Check firmware version and Check battery status update the field and then make the unit speak the information.
Upgrade firmware lets you flash a new firmware to the DECtalk Express, useful if you want to try out another version than the one currently installed in your unit. Make sure NVDA is using another speech synthesizer before starting this process.
Here you can create custom voices from a base voice, which gives you access to set every single parameter DECtalk supports. Test (Alt+T) makes the selected voice speak a test sentence on the unit. Saved voices appear in the voice list, and each voice can be exported as a .dtv file, to be imported in another NVDA installation.
When the synthesizer is loaded, the add-on sends Ctrl+C and waits for the unit's answer. If the unit is off, not connected, or on another port, NVDA reports that the synthesizer could not be loaded and keeps the current one. The cable must carry data in both directions; the unit's answers are also what NVDA needs for say all.