From 8eaa39b5fc234fbcbccf876ca3d43186a3ca3156 Mon Sep 17 00:00:00 2001 From: Jonas Häggqvist Date: Thu, 7 Aug 2008 21:16:52 +0000 Subject: Silence some warnings in voice.pl by setting the encoding to UTF-8. Output on Cygwin will be wrong if using verbose mode. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18216 a1c6a512-1295-4272-9138-f99709370657 --- tools/voice.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/voice.pl b/tools/voice.pl index cf15cc5f4a..64c96800f4 100755 --- a/tools/voice.pl +++ b/tools/voice.pl @@ -241,6 +241,7 @@ sub voicestring { our $verbose; my ($string, $output, $tts_engine_opts, $tts_object) = @_; my $cmd; + binmode(STDOUT, ':encoding(UTF-8)'); printf("Generate \"%s\" with %s in file %s\n", $string, $$tts_object{"name"}, $output) if $verbose; switch($$tts_object{"name"}) { case "festival" { @@ -251,6 +252,7 @@ sub voicestring { # Open command, and filehandles for STDIN, STDOUT, STDERR my $pid = open3(*CMD_IN, *CMD_OUT, *CMD_ERR, $cmd); # Put the string to speak into STDIN and close it + binmode(CMD_IN, ':encoding(utf8)'); print(CMD_IN $string); close(CMD_IN); # Read all output from festival_client (because it LIES TO US) @@ -265,10 +267,9 @@ sub voicestring { `$cmd`; } case "espeak" { - # xxx: $tts_engine_opts isn't used $cmd = "espeak $tts_engine_opts -w \"$output\""; print("> $cmd\n") if $verbose; - open(ESPEAK, "| $cmd"); + open(ESPEAK, "|-:encoding(utf8)", $cmd); print ESPEAK $string . "\n"; close(ESPEAK); } -- cgit v1.2.3