github tgeczy/TGSpeechBox v-260
NVSpeech Player with phoneme editor and NVDA Addon, Speech Dispatcher module version 2.6

latest releases: v-300rc1, v-300b7, v-300b6...
one month ago

NV Speech Player 2.6

A major release bringing per-phoneme voice quality, Danish stød support, improved US English, and a cleaner NVDA driver UI.

Highlights

Per-Phoneme FrameEx

The DSP engine now supports per-phoneme voice quality parameters. Each sound in phonemes.yaml can specify its own:

  • Creakiness — laryngealization / vocal fry
  • Breathiness — breathy voice quality
  • Jitter — pitch period variation
  • Shimmer — amplitude variation
  • Sharpness — glottal closure sharpness

This unlocks phonations that were previously impossible in a formant synthesizer, like Danish stød or naturally breathy vowels.

Danish Stød

First release with Danish stød support! The characteristic creaky/glottalized quality of stressed Danish syllables is now synthesized using per-phoneme FrameEx parameters.

FORCE Vowel Fix (US English)

The "pirate R" bug is finally fixed! Words like "door", "four", and "score" now correctly have longer vowels than "short", "sport", and "report". This uses the new notBeforeClass condition to shorten FORCE vowels only when followed by a consonant.

New Features

Word-Final Schwa Reduction

Independent of speech rate, word-final schwas can optionally be shortened. Useful for Danish, German, French, Portuguese, and other languages where unstressed final syllables are naturally reduced.

settings:
  wordFinalSchwaReductionEnabled: true
  wordFinalSchwaScale: 0.6           # 0.0–1.0, lower = shorter
  wordFinalSchwaMinDurationMs: 8.0   # floor to avoid total silence

Unlike rate-dependent schwa reduction (which activates at high speeds), this applies at all speech rates.

Normalization Engine Improvements

  • notBeforeClass / notAfterClass — New negative conditions for replacement rules. Match only when the next/previous character is not in the specified class.
  • Length mark stacking — Double length marks (ːː) now correctly multiply duration (1.15² = 1.32×) instead of being ignored.

Phoneme Editor (Windows)

  • Class Editor dialog — Add, edit, and remove normalization classes directly from the "Add Mapping" dialog. No more manual YAML editing required!
  • All 6 conditions — The Add Mapping dialog now includes notBeforeClass and notAfterClass dropdowns.

Linux Support

  • Pre-built x86_64 binaries included (libspeechPlayer.so, libnvspFrontend.so, nvspRender)
  • Speech Dispatcher generic module config ready to use
  • Full DSP V5 voice quality flags documented for CLI usage, and the renderer now supports them.

Breaking Changes

NVDA Driver UI Simplified

⚠️ Many checkboxes have been removed from the NVDA driver settings panel to reduce clutter.

If you previously used these checkboxes, you can still access all settings via:

  • The keys dropdown in NV Speech Player Settings — select a setting key and adjust its value
  • The edit fields for direct value entry

This change makes the UI cleaner while keeping full power-user control available.

Other Improvements

  • singleWordFinalLiquidHoldScale setting for fine-tuning liquid consonant timing
  • postStopAspirationEnabled now accessible in NVDA settings panel
  • Expanded documentation for preReplacements vs replacements pipeline order

Thank You

Thanks to everyone who reported bugs, suggested features, and tested pre-release builds!


NV Speech Player is a Klatt-based formant speech synthesizer. For more information, see the [GitHub repository](https://github.com/TamasGeczy/NVSpeechPlayer).

Don't miss a new TGSpeechBox release

NewReleases is sending notifications on new releases.