Global Sonic Pitch

Global Sonic Pitch adds a separate Sonic pitch control to supported NVDA synthesizers. It changes speech pitch through Sonic audio processing while leaving NVDA's normal native Pitch setting unchanged.

What It Adds

The add-on does not add a replacement synthesizer to NVDA's synthesizer dialog and does not modify NVDA files on disk.

Quick Start

  1. Select a normal NVDA synthesizer, such as RHVoice, eSpeak, OneCore, 64-bit SAPI5, standard sapi5_32, or standard sapi4_32.
  2. Open NVDA Settings.
  3. Choose Global Sonic Pitch.
  4. Enable Enable global Sonic pitch.
  5. Reopen Voice settings or use the synth settings ring.
  6. Adjust Sonic pitch.

Sonic pitch value 50 is neutral. Lower values lower speech through Sonic. Higher values raise speech through Sonic.

Settings

The add-on panel only controls global processing and diagnostics. The actual Sonic pitch value is changed from Voice settings, the synth settings ring, or assigned Input Gestures.

When global processing is disabled, the Sonic pitch voice setting is removed from Voice settings and the synth settings ring.

Native Pitch And Sonic Pitch

NVDA's normal Pitch setting remains the synthesizer's native pitch. Sonic pitch is an additional processing value owned by this add-on.

If both controls are away from 50, you hear the combined result:

Per-Voice Values

Sonic pitch is stored separately for each supported synthesizer and selected voice. If a synthesizer exposes a meaningful active variant, the variant is also used for the saved value. For example, two voices inside SAPI5, or two variants of the same eSpeak or Google TTS language, can keep different Sonic pitch values.

New voices and variants start at 50 until you change them. Switching back restores the value stored for that voice or variant. Existing saved values without variants are still used as a fallback until you save a variant-specific value.

Input Gestures

The Global Sonic Pitch category in Input Gestures contains commands for:

No gestures are assigned by default.

Compatibility

Expected supported paths:

Third-party eSpeak-NG SAPI voices must be configured in their own configuration tool before they appear in SAPI5. This add-on does not patch SAPI voice enumeration, does not write registry voice tokens, and does not change the SAPI voice list.

Dynamic Voice Settings

Some synthesizers build their Voice settings dynamically. Global Sonic Pitch preserves the synthesizer's original settings behavior and appends Sonic pitch to the settings currently exposed by the synthesizer. This is used for synthesizers such as Google TTS for NVDA, including its automatic language profile notice mode.

Standard 32-bit SAPI On 64-bit NVDA

Standard sapi5_32 and sapi4_32 on 64-bit NVDA run in a separate 32-bit synth host. Global Sonic Pitch loads bundled wrappers in that host so the standard NVDA synth can receive the current Sonic pitch value. The same host channel also receives the selected Sonic quality mode.

This keeps the normal NVDA synthesizer entries. It does not add a new synthesizer and does not replace NVDA files. For SAPI4, Sonic processing is available only through NVDA's WASAPI SAPI4 path. If NVDA is configured to use the older SAPI4 MMAudioDest path, that audio bypasses NVDA's WavePlayer and cannot be processed by this add-on.

Support Link

The Support the author button and the Open support page Input Gesture open:

https://buycoffee.to/kazimierz-parzych

Support is voluntary. The add-on does not process payments, store payment data, or unlock features based on support.

During installation or update, the add-on may show a small optional support prompt. Choosing Yes opens the same page in the default browser. Choosing No continues installation without changing add-on behavior.

Troubleshooting

If Sonic pitch is not in Voice settings, enable Enable global Sonic pitch, then reopen Voice settings or switch synthesizers.

If changing Sonic pitch has no audible effect, make sure global processing is enabled and the value is not 50.

If switching synthesizers, voices, or variants appears to reset Sonic pitch, set a value for that synthesizer and voice or variant. Values are stored independently.

If standard sapi5_32 or sapi4_32 on 64-bit NVDA does not expose Sonic pitch, restart NVDA or switch away from that synthesizer and back again.

If a third-party SAPI voice is missing, configure it in that voice package's own configuration tool first, then restart NVDA.

Logs

Useful log files:

Useful search terms:

License

Global Sonic Pitch source code is licensed under GNU GPL version 2 or later. Bundled Sonic native binaries are Apache 2.0 third-party components.