summaryrefslogtreecommitdiff
path: root/tools/voice.pl
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2008-08-07 20:00:32 +0000
committerJens Arnold <amiconn@rockbox.org>2008-08-07 20:00:32 +0000
commit98a22d4276caff13b7a4b0ff24f71bd5d29e1b7c (patch)
tree9d13044e595942b0373a45a7db7b8bbebf31caa6 /tools/voice.pl
parent2762ce4486cca7d742b099b6658311180e2808f2 (diff)
downloadrockbox-98a22d4276caff13b7a4b0ff24f71bd5d29e1b7c.tar.gz
rockbox-98a22d4276caff13b7a4b0ff24f71bd5d29e1b7c.zip
Fix SAPI voice file generation on multibyte windows variants (japanese, probably others, see FS #9246). This gets rid of the conversion in the VBScript (which relied on unsafe assumptions about charset conversion in windows), and lets PerlIO do the work instead.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18213 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'tools/voice.pl')
-rwxr-xr-xtools/voice.pl5
1 files changed, 4 insertions, 1 deletions
diff --git a/tools/voice.pl b/tools/voice.pl
index 8e0a7f0152..edec07194c 100755
--- a/tools/voice.pl
+++ b/tools/voice.pl
@@ -25,6 +25,7 @@ use IPC::Open2;
25use IPC::Open3; 25use IPC::Open3;
26use Digest::MD5 qw(md5_hex); 26use Digest::MD5 qw(md5_hex);
27use DirHandle; 27use DirHandle;
28use open IN => ':utf8';
28 29
29sub printusage { 30sub printusage {
30 print <<USAGE 31 print <<USAGE
@@ -90,6 +91,8 @@ sub init_tts {
90 $cmd =~ s/\\/\\\\/g; 91 $cmd =~ s/\\/\\\\/g;
91 print("> cscript //nologo $cmd\n") if $verbose; 92 print("> cscript //nologo $cmd\n") if $verbose;
92 my $pid = open2(*CMD_OUT, *CMD_IN, "cscript //nologo $cmd"); 93 my $pid = open2(*CMD_OUT, *CMD_IN, "cscript //nologo $cmd");
94 binmode(*CMD_IN, ':encoding(utf16le)');
95 binmode(*CMD_OUT, ':encoding(utf16le)');
93 $SIG{INT} = sub { print(CMD_IN "QUIT\r\n"); panic_cleanup(); }; 96 $SIG{INT} = sub { print(CMD_IN "QUIT\r\n"); panic_cleanup(); };
94 $SIG{KILL} = sub { print(CMD_IN "QUIT\r\n"); panic_cleanup(); }; 97 $SIG{KILL} = sub { print(CMD_IN "QUIT\r\n"); panic_cleanup(); };
95 print(CMD_IN "QUERY\tVENDOR\r\n"); 98 print(CMD_IN "QUERY\tVENDOR\r\n");
@@ -330,7 +333,7 @@ sub generateclips {
330 my $voice = ''; 333 my $voice = '';
331 my $cmd = "genlang -o -t=$target -e=$english $langfile 2>/dev/null"; 334 my $cmd = "genlang -o -t=$target -e=$english $langfile 2>/dev/null";
332 my $pool_file; 335 my $pool_file;
333 open(VOICEFONTIDS, "> voicefontids"); 336 open(VOICEFONTIDS, ">:utf8", "voicefontids");
334 my $i = 0; 337 my $i = 0;
335 local $| = 1; # make progress indicator work reliably 338 local $| = 1; # make progress indicator work reliably
336 339