Home | History | Annotate | Download | only in cmd
      1 
      2 use Getopt::Long;
      3 
      4 $rc = GetOptions("pht=s" => \$phtfile,
      5 		 "i=s" => \$oklongfile,
      6 		 "ok=s" => \$okfile);
      7 
      8 load_phtfile($phtfile) if(defined $phtfile);
      9 
     10 sub load_phtfile
     11 {
     12     my $phtfile = shift(@_);
     13     open(PHT, "<$phtfile") || die "error opening phtfile $phtfile\n";
     14     print STDERR "using phtfile $phtfile\n";
     15     <PHT>; # header
     16     while(<PHT>) {
     17 	s/\s+$//g;
     18 	($trash,$lph,$sph,$num_states) = split(/\s+/);
     19 	$lph_for_sph{$sph} = $lph;
     20 	$sph_for_lph{$lph} = $sph;
     21 	$lphhash{$lph}++;
     22     }
     23     close(PHT);
     24     $sph = $lph = "&";
     25     $lph_for_sph{$sph} = $lph;
     26     $sph_for_lph{$lph} = $sph;
     27     $lphhash{$lph}++;
     28     $sph = "#"; $lph = "iwt";
     29     $lph_for_sph{$sph} = $lph;
     30     $sph_for_lph{$lph} = $sph;
     31     $lphhash{$lph}++;
     32 }
     33 
     34 open(HH, "<$oklongfile") || die "error opening okfile $oklongfile\n";
     35 open(OO, ">$okfile") || die "error opening output dict $okfile\n";
     36 while(<HH>) {
     37     s/\s+$//;
     38     if(/^LANG\s*=\s*(\S+)/) { # LANG = EN-US
     39 	my $language = lc($1);
     40 	my $language_header_line = $_;
     41 	$language =~ s/\-/\./g;
     42 	if(!defined $phtfile) {
     43 	    die "Error: ESRSDK is not defined\n" if(!defined $ENV{ESRSDK});
     44 	    $phtfile = "$ENV{ESRSDK}/config/$language/models/generic.pht";
     45 	    load_phtfile( $phtfile);
     46 	}
     47 	print OO "$language_header_line\n";
     48 	next;
     49     }
     50     s/\s+$//;
     51     s/^\s+//;
     52     if(/\#\#/) {
     53 	next if($skip_funnies);
     54 	s/\#\#.*$//;
     55     }
     56     ($word, $pron) = split(/\s*\t\s*/, $_, 2);
     57     
     58     @lphlist = split(/\s+/, $pron);
     59     @sphlist = ();
     60     foreach $lph (@lphlist) {
     61 	die "error: unknown lph $lph in $word\n" if(!defined  $sph_for_lph{$lph});
     62 	push(@sphlist, $sph_for_lph{$lph});
     63     }
     64     $sphPron = join("",@sphlist);
     65     print OO "$word $sphPron\n";
     66 }
     67 
     68 close(HH);
     69 close(OO);
     70 		 
     71