Maintenance fork notice
The original author, Musharraf Omer (@mush42), announced on the NVDA Add-ons list that commercial contract conflicts prevent him from continuing to maintain this open-source add-on. This fork continues the project to keep the add-on working on current NVDA releases, and carries compatibility updates alongside bug fixes to the voice manager and the synthesizer driver. All credit for the original work belongs to Musharraf Omer.
This add-on adds neural text-to-speech voices to NVDA. It provides a synthesizer driver for Piper voice models, which run entirely on your own machine, plus a voice manager for downloading and installing voices. An internet connection is needed to download voices, but not to speak with them.
Piper is a fast, local neural text to speech system that sounds great and is optimized for low-end devices such as the Raspberry Pi. You can hear what the voices sound like on the Piper voice samples page. Speech is generated by Sonata, a cross-platform Rust engine for neural TTS models developed by Musharraf Omer.
You can find the add-on package under the assets section of the release page.
The add-on is just a driver, it comes with no voices by default. You need to download and install the voices you want from the voice manager.
Upon installing the add-on and restarting NVDA, the add-on will ask you to download and install at least one voice, and it will give you the option to open the voice manager.
You can also open the voice manager from NVDA's main menu.
Note that we recommend choosing the low or medium quality voices for your target language(s), because they generally provide better responsiveness. For additional responsiveness, you can choose to download the fast variant of a voice at a cost of slightly lower speech quality.
You can also install voices from local archives. After obtaining the voice's file, open the voice manager, in the installed tab, click the button labeled Install from local file. Choose the voice file and wait for the voice to install.
Open the voice manager from NVDA's main menu, under Sonata voice manager.... It has two tabs: Download and Installed.
Choose a language from the Language dropdown to filter the Available voices list, then select a voice to act on it.
Preview plays a short sample of the selected voice so you can hear it before downloading. The sample is streamed from the internet and nothing is installed. While it is playing, the same button becomes Stop preview.Speaker, beside the preview button, is only enabled for voices trained with more than one speaker. It selects which speaker the preview uses.Download standard variant and Download fast variant fetch the voice. Each button is disabled when that variant is already installed, and the fast button is also disabled for voices that have no fast variant.Refresh voices list fetches the catalogue again instead of reusing the copy cached for this session.The Installed voices list shows each installed voice with its variant, quality and language.
Voice model card... displays the MODEL_CARD file shipped with the voice, which records where its training data came from and how it is licensed. Not every voice includes one.Remove voice... deletes the selected voice after asking you to confirm. It stays disabled unless you have at least two voices installed, and it will not remove the voice that is currently in use.Install from local file installs a voice from a .tar.gz or .tgz archive you already have.After installing from a local archive or removing a voice, the add-on reloads the synthesizer for you, so the change applies immediately. After a download the new voice shows up in the voice manager right away; if NVDA's own voice list has not picked it up, restart NVDA.
With Sonata Neural Voices selected as your synthesizer, the following appear in NVDA's speech settings (NVDA menu > Preferences > Settings > Speech).
Voice lists your installed voices as name (language) - quality.
Variant switches between the Standard and Fast build of the current voice. Only the variants you actually have installed are listed.
Speaker applies to voices trained with several speakers; on a single-speaker voice it has no effect. It is also available in the synth settings ring.
Rate, Volume and Pitch behave as they do for any NVDA synthesizer. With Rate boost turned off, the rate slider only covers the lower part of the engine's speed range; turning it on spreads the slider across the whole range, which allows much faster speech.
Length scale, Noise scale and Noise w expose the Piper model's own inference parameters. All three work the same way: the slider runs from 0 to 100, and 50 means the voice's trained default, so returning a slider to 50 undoes your changes to it. Of the three, only Length scale is offered in the synth settings ring.
Length scale sets how long each speech sound is held. Higher values draw speech out, lower values compress it. This is a separate mechanism from Rate and the two combine, so it is usually easiest to set your speed with Rate and only reach for this if a voice's natural pacing bothers you.Noise scale sets how much variation the model puts into tone and inflection. Higher values sound more expressive but less predictable.Noise w sets how much the duration of individual speech sounds varies, which comes across as rhythm. Higher values sound less mechanical but can blur articulation.Above 50, the sliders scale up to twice the voice's default for Length scale and three times the default for Noise scale and Noise w. Because 50 always means "this voice's default", a given slider position keeps its meaning when you switch to a different voice.
The currently available voices are trained using freely available TTS datasets, which are generally of low quality (mostly public domain audio books or research quality recordings).
Additionally, these datasets are not comprehensive, hence some voices may exhibit incorrect or weird pronunciation. Both issues could be resolved by using better datasets for training.
Luckily, the Piper developer and some developers from the blind and vision-impaired community are working on training better voices.
Sonata is missing from NVDA's synthesizer list, or fails to load. The two usual causes are the missing Visual C++ redistributable described under Requirements above, and having no voices installed — the driver deliberately refuses to load when it cannot find at least one voice. Open the voice manager from NVDA's main menu, install a voice, then restart NVDA.
A voice I just downloaded is not offered in NVDA's voice list. Restart NVDA. A download refreshes the voice manager's own list, but NVDA may still be holding the voice set it loaded at startup.
A preview or the voice list fails with a connection error. Both are fetched from the internet. Check your connection, then use Refresh voices list on the Download tab to retry.
"You cannot remove the currently active voice!" Switch NVDA to a different voice, or a different synthesizer, and then remove it.
Speech is slow to start or stutters. Prefer the low or medium quality voices, and consider the fast variant of your voice. Higher quality models need noticeably more processing per utterance.
For anything else, NVDA's log usually says what went wrong: NVDA menu > Tools > View log.
Please report bugs and feature requests on the issue tracker for this fork, and include the log along with your NVDA version and the voice you were using.
Copyright(c) 2024, Musharraf Omer. Copyright(c) 2026, Ali Ustek and contributors to this fork. This software is licensed under The GNU GENERAL PUBLIC LICENSE Version 2 (GPL v2).