use Win32::OLE qw( EVENTS ); my $vt = Win32::OLE->new('{EEE78591-FE22-11D0-8BEF-0060081841DE}') || die "Can't start VoiceText"; my $use_id = $vt->Find( "Male Whisper" ); $vt->Select($use_id); $vt->Speak("Hello World"); while( $vt->{Speaking} ){ Win32::OLE->SpinMessageLoop(); Win32::Sleep( 100 ); }