#!c:\perl\bin\perl.exe use strict; use warnings; use Win32::SAPI5; use CGI; $| = 1; my $audiofile = 'test.wav'; my $q = new CGI(); my $text = $q->param('text') || qq(ein text, der zu lang ist, um ganz abgespielt zu werden); print $q->header("audio/x-wav"); # setup Microsoft Speech API my $stream = Win32::SAPI5::SpFileStream->new(); $stream->Open($audiofile, 3, 0); # 3 = SSFMCreateForWrite my $voice = Win32::SAPI5::SpVoice->new(); $voice->SetProperty(AudioOutputStream => $stream->GetObject); $voice->Speak($text); $stream->Close(); open my $fh, '<', $audiofile or die $!; binmode $fh; binmode STDOUT; while (<$fh>) { print } close($fh);