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 silenceUnlike 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
notBeforeClassandnotAfterClassdropdowns.
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
singleWordFinalLiquidHoldScalesetting for fine-tuning liquid consonant timingpostStopAspirationEnablednow accessible in NVDA settings panel- Expanded documentation for
preReplacementsvsreplacementspipeline 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).