github tgeczy/TGSpeechBox v-310b1
TG SpeechBox with phoneme editor, NVDA Addon, SAPI5, Linux, Android, iOS, Mac OS, version 310 beta 1

pre-release11 hours ago

TGSpeechBox v3.10 beta 1

10 commits since v3.01. Focused on Spanish consonant refinements, Australian English diphthongs, cross-platform letter dictionary support, and Linux voice tuning.

Spanish Pronunciation

  • Intervocalic /ɣ/ overhauled (#81): boosted ɣ_es phoneme (frication 0.12→0.20, cf2 1350→1450, pf2 1200→1400) for audible velar presence in "regla", "entregado". Velar cluster rules reordered before dialect replacements to fix cascade protection blocking 7 of 8 patterns.
  • Palatal coalescence: ɣj→ʝ before palatal glide, so "siguiente" = [siˈʝente] as in standard Spanish. Eliminates the /r/-like percept caused by rapid F2 sweep between separate ɣ and j segments. (#81)
  • Geminate consonant collapse (#91): common within-word geminates (nn, tt, bb, pp, dd, ff, mm, ɡɡ, kk) reduced to single consonants via preReplacements. Intentionally preserves rr (phonemic trill contrast), ll (eSpeak converts to ʎ/ʝ), and cc (usually /kθ/ or /ks/). Fixes "innato", "cannabis", "Klatt" etc.

Australian English (#88)

  • PRICE diphthong: onset backed to [ɑ̟] (F2=1200, Cox 2006) with DRESS-quality offglide. These two diphthongs now correctly diverge — PRICE backs while MOUTH fronts, as in General Australian.
  • MOUTH diphthong: onset fronted to [æ] (F2=1720) with open-mid offglide (ɔ_oz, F1=560).
  • Fixed pairScale keys that never matched after ɪ→ɪ_au replacement. Lesson: pairScale keys must use post-replacement phoneme names.

Italian (#88)

  • Durational stress contrast raised: primaryStressDiv 1.25→1.55 (Eriksson 2016). Italian rhythm now has distinctly stronger stress-based duration differences.

Dutch (#88)

  • /r/ and /ɾ/ mapped to uvular [ʁ] for standard Randstad pronunciation, matching the existing German mapping.

Text Processing

  • Letter dictionary wired into synthesis path (#86): single-character inputs now check the language's letter dictionary (e.g. es-letters.tsv) in nvspFrontend_prepareText before eSpeak phonemization. Fixes "y" being read as /i/ instead of "i griega" on Android, iOS, and Speech Dispatcher. NVDA was unaffected (has its own built-in character descriptions).

Linux / Speech Dispatcher (#92)

  • Adam voice pitch lowered: multiplier 1.0→0.92 in both sd_tgsb and tgsbRender for a more natural male baseline (110→101 Hz at Orca default).
  • Fixed SSIP pitch default: initial ssipPitch was 50 (mapping to ~152 Hz) instead of 0 (the SSIP default, mapping to ~110 Hz).

Build Compatibility

  • yaml_min switched from std::unordered_map to std::map for GCC 11 compatibility. GCC 11's libstdc++ rejects recursive incomplete value types in unordered_map. Ubuntu 22.04 LTS ships GCC 11, and we maintain a glibc 2.35 baseline for broad distro support. Zero runtime impact — YAML parsing happens once at startup.

Still Planned for v3.10

  • Gender-aware number expansion (#90): Spanish apocopation (uno→un/una before gendered nouns). New genderDict dictionary type designed to generalize to French, Italian, Portuguese.
  • Currency text processing (#83): "$1.25" → "one dollar and twenty-five cents". Shares infrastructure with genderDict.

Thank You

  • @gregodejesus2 — for the Spanish /ɣ/ and geminate reports (#81, #91) that led to the palatal coalescence fix and geminate collapse system.
  • @TurkrosoftLabs — for the Australian diphthong, Italian stress, and Dutch /r/ suggestions (#88) with specific phonetic targets and literature references.
  • @LeonardoBlancoSerna — for continued trill research (#84).

Links

Join the Test

Want to help test before the full v3.10 release?

Don't miss a new TGSpeechBox release

NewReleases is sending notifications on new releases.