Maybe you'll want to take a look at one of my modules that can provide Text to Speech,
Win32::SAPI4,
Win32::SAPI5 or
Win32::MSAgent.
They handle the creation of the OLE objects, and allow you to call any of their methods and set any of their properties (using Win32::OLE's SetProperty method).
Jouke Visser
Using Perl to enable the disabled: pVoice