tiger-speech 0.7.7 — which Tiger image works, and why 3.4 never will
If your Tiger disc is 10.4.5 or later, this add-on cannot run it, and that is now said out loud — while you are extracting, not after every voice turns out to be silent. That was issue #1, and the diagnosis went somewhere none of us expected.
Two things have to be true of your image
It has to be Intel. This loads i386 code and nothing else. A PowerPC Tiger disc is not a slower option, it is not an option: its MacinTalk is a thin big-endian PowerPC binary with no i386 slice in it. Intel discs carry a fat i386, ppc binary.
It has to be the earliest Intel Tiger — the 10.4.4-era disc that shipped with the first Intel Macs, carrying MacinTalk 3.3. From 10.4.5 Apple shipped MacinTalk 3.4, which calls ___commpage_dsmos — Apple's "Don't Steal Mac OS X" routine — from six places in the dictionary and three in the engine. On a real Mac a kernel extension answers that from the SMC. Off it, the call goes nowhere and the engine dies.
tools/extract_tiger.py now tests for both and names what it found.
Why 3.4 is a no, not a not-yet
Answering that call means shipping a fake SMC response whose only purpose is to defeat a copy-protection check. That is a different category from shimming mmap or printf, even though you supply your own licensed disc, and it is not a category this project is going into.
If your disc is 10.4.5 or later, use leopard-speech. Leopard's MacinTalk 3.6 dropped the check again, and it carries Fred and the whole MacinTalk 3 roster as well as Alex.
The part that turned out to be good news
3.4 is not 3.3 with a version bump. It is the turn toward Leopard, and it is measurable: 3.3 has no __cfstring section at all, so it has no tuning parameters whatever; 3.4 has thirty, from the same family Leopard grows to 283 — UnitCost.AccentCostWeight, SegmentAssembly.PitchSlack, the PitchDecrease/PitchIncrease group. Its code is smaller than 3.3's and it shares more symbols with 3.6, so it was rewritten rather than extended. The prosody machinery that makes Leopard's Fred sound like Leopard's Fred first appears in 3.4.
And PowerPC never got it. A real 10.4.11 PowerPC guest still reports MacinTalk 3.3 — PowerPC stayed on 3.3 for the whole of Tiger and went straight to 3.6 in Leopard. 3.4 was an Intel-only interlude of about eighteen months.
So 3.3 is not a lucky variant on an old disc; it is the Tiger Fred nearly everyone ever heard, and it is exactly what this add-on runs. Whether 3.4's Fred actually sounds different cannot be settled from here — the protection sits on the speak path, so it cannot be rendered at all. Anyone with period Intel hardware still running Tiger could answer it.
Also in this release
REG_STARTENDis honoured. The framework handsregexeca buffer that is not terminated, so abbreviations expanded only sometimes. Four wrong theories preceded the right one.- Every tuning parameter the engine asks for is named in the log, via
TIGER_PREF_LOG.
Tiger's audio is unchanged: Fred, Cellos and Vicki render byte-identically, and the 55 automated tests pass.