I asked my question about Language an Region codes on apples speech-dev list and got this answer from Mike Blaguszewski from Cepstral.
It's strange that Apple uses these numeric constants for this. Everywhere else in Apple's internationalization code, it uses ISO letter codes (like en_US, nl_BE etc).
Anyway, this problem is solved.
I'm going to write a wrapper module for the available Speech synthesis modules that are on CPAN, to provide one consistent API. The first release of this module (later this week) will provide some basic functions, like information about installed voices, selection of voices and a 'Speak' method to pronounce the text. I will add things like setting the Pitch and other attributes later. There already is a module that was planning to do something like this (Speech::Synthesizer), but that module only supports Festival, hasn't been updated in years, and the author doesn't respond to any emails. Therefore, my module will be called Speech::Synthesis. Almost the same name, but this module will wrap Mac::Speech, Win32::SAPI4 and Win32::SAPI5 at first, and I will add Festival later (once I have a Linux machine set up again)