Yesterday during my commute to work I worked on the OS X port some more.
Although there are some differences between wxPerl on Win32 and OS X, most of the incompatibilities seem to be related to errors in my wxPerl code that don't have any effect on Win32, but cause the OS X part not to work as expected. So in the end, it all results in better code.
Last night I couldn't sleep because of a thunderstorm, so I coded some more. I took Mac::Speech and tried to use it in the pVoice TTS modules. The TTS preferences in pVoice shows a languages drop down box (which contains a list of languages of all installed voices) and a voices drop down box (which all voices for the selected language). It turns out that Mac::Speech (or in fact the OS X Speech Manager) has a strange way of handling languages for their voices. All pre-installed voices have a language and region code set to 0. I take it that this means that it's unknown. It's kind of weird that these values are numeric, since all references I've found on languages and regions on OS X are ISO letter codes, and not 'short' numeric values as they are in the VoiceDescription struct.
Anyway, I've contacted Acapela (formerly Babel Technologies) and asked them if they could send me an SDK of their OS X Text-To-Speech system (Acapela Multimedia it is called), to which they promptly agreed.
I'll have to wait until I get the details to download it, and see what values the language and region codes of their voices return.
One may be thinking "Why is Jouke putting all this effort in OS X development now, while the 2.2 version for Windows has *still* not been released?". I think that pVoice 2.2 should be a stable product. Getting it to work on OS X forces me to go over a lot of code again, and see what Just Works and what non-portable code I have put in. Especially getting the Text-to-Speech part to work on OS X has already shown me a few (Win32) bugs that I hadn't discovered otherwise.
Anyway, more to come later.