TGSpeechBox v3.10 Beta 10 — the last beta: fixes, profiles that sound as saved, and iOS 27
Beta 10 is mostly about things people asked for in the issues this past week, plus the voice profile workflow finally working from one end to the other.
Wrapping the 3.10 beta cycle
This is the last beta before 3.10 ships as the standard version, and that is why it is packed with fixes rather than grand new features. We had more planned for 3.10: a currency dictionary (#83), Arató's "microintonation" for the BraiLab pitch mode, a reshaped sentence melody for English, and the loudness contour for UK, Australian and Canadian English. None of these will make it into 3.10; they move to the next cycle. The microintonation mechanism is already in this build, off by default, so the tuning can pick up where it left off.
From here the job is stability. Once the bug reports quiet down, 3.10 is ready to sail, and that is also when iOS users get it from the App Store. So please keep reporting anything that sounds or behaves wrong.
NVDA follows the page's language (#131)
With NVDA's "Automatic language switching" on, a page in Spanish reads in Spanish, a Russian page in Russian, and your own language comes back after. The first switch into a language loads its pack once; after that it is instant. Astra's review of the first version made the switching lazier and made a failed switch fall back to your own language instead of leaving eSpeak and the pack disagreeing.
SAPI speaks long text right away (#128)
The engine used to render a whole line before the first sound, so the longer the text, the longer Narrator waited. It now hands audio to the host while it is still rendering, so a long post starts speaking right away, stopping speech lands immediately, and nothing gets cut off at the end. Word-tracking marks are now placed within each clause and queued with the audio they belong to. Two rounds of outside review (GPT-6 "Astra") caught that the first version still waited for a whole clause, and a case where a busy audio host could lose part of a block; both fixed before release.
eSpeak NG 1.53, built from its latest master (#127)
This beta is built against eSpeak NG's latest master source (commit 699e7969 from 11 September, version 1.53.0 in its build files): the SAPI engine and the Android app link it, and the eSpeak data bundled with them is compiled from it. That matches the eSpeak NVDA 2026.2 ships, which the NVDA add-on uses; on Linux your distribution's eSpeak is used as before.
Only Brazilian and European Portuguese and Swedish phonemize differently under it, and those packs are adapted: Portuguese "pai" and "mais" end in a proper glide, "muito" keeps its nasal glide (two cases Astra found that our first sample sentences missed). Swedish "bort", "bord" and "barn" had silently lost their last consonant in every earlier build; the retroflex consonants are now defined and spoken.
Voice profiles sound as saved on every platform (#124)
NVDA used to overwrite a profile's speed quotient, head size and a few other settings with its own sliders; SAPI skipped head size and the nasal settings; Android, iOS and Linux never applied a profile's voice settings at all. Every platform now starts from the profile (iOS with the TestFlight build), and your own sliders adjust it from there; set a slider back to its default and you hear the profile again. Built-in voices are unchanged. Astra traced where each platform dropped a profile's settings and held us to making this part of beta 10, since #124 promised it.
Beth and Bobby now use their own written voice settings on every platform, softer for Beth and more child-like for Bobby, chosen after comparing them with how NVDA played them before. A profile can also set its own inflection now, livelier or flatter than the listener's slider.
The phoneme editor saves a profile in one step (#124)
In the editor, Speech settings > Save to Profile asks for a name and an inflection scale and writes the profile in one go, with the pitch and formant shape of the voice you started from, so a profile made from David sounds like David plus your changes. Selecting a profile shows its own settings in the sliders, a save writes only what you moved, a new name copies the profile, and the voicing list uses NVDA's names ("Head size (f4FreqScale)").
The editor's neutral slider positions now match what NVDA plays; earlier editors wrote a darker voice source into every saved profile. Profiles you saved before are left as they are; open one, and save it again from this editor if it sounds darker than you meant. The voice quality sliders (creakiness, breathiness, jitter, shimmer, sharpness) remain listener settings and are not saved into a profile.
iOS 27: a pause between separate announcements (#132)
VoiceOver in iOS 27 sends announcements like "dock" and "page 1 of 4" as separate requests, so the pause between them has to come from the voice. Every request that ends in speech now ends with a short silence scaled by your pause setting, the way eSpeak and other voices do it. This arrives with the TestFlight build.
Also in this release
- Caleb is a pure whisper again in US English (#129); the loudness contour from 9.01 was bringing a little voice back into it.
- The breath after a released stop fades out over about 60 ms of a following pause instead of 150.
- Portuguese letter names for é, ó, ò and ù are right (#130).
- Hungarian "arra" no longer comes out as "ah-ra": a long rolled r now starts with a tongue contact and ends on the release, which also tidies the rolled r in the other languages that use it.
- Vowels and approximants carry a light floor of breath noise now (all languages), which takes a little of the buzz off without sounding breathy.
- Polish ś, ź, ć, dź are held further apart from sz, ż, cz, dż, following the phonetics literature on how Polish listeners tell them apart.
- The Polish, Portuguese and Swedish changes were checked with instruments and the literature, not by native ears; English and Hungarian were listened to on Windows and Android. If your language sounds off, tell us.
Windows, NVDA add-on, SAPI, phoneme editor, Android and Linux builds are attached; the Play Store and TestFlight builds follow. As always, if something sounds off on your system, say so in the issues.
Credits
edu-fblind for the Portuguese, language-switching, eSpeak and voice profile reports and for pushing on the editor until it made sense; gregodejesus2 for the Caleb report; 29-Bloo for the SAPI latency report; sevapopov2 for pinning down the iOS 27 pauses; and GPT-6 Astra for three rounds of review whose findings all held up.
Built with Claude (Anthropic) as engineering partner.
— Tamas + Claudeo
Linux builds (x86_64 + aarch64) auto-generated from tag v-310b10.
Extract and run ./install.sh to install, or use the tgsp wrapper directly.