|
|
|
use File::Copy; |
|
use File::Slurp; |
|
if (scalar(@ARGV)!=6) |
|
{ |
|
print "arg1 --> phoneset_all\n"; |
|
print "arg2 --> phoneset_uyir\n"; |
|
print "arg3 --> phoneset_mei\n"; |
|
print "arg4 --> phoneset_uyirmei\n"; |
|
print "arg5 --> word_file\n"; |
|
print "arg6 --> any\n"; |
|
exit(0); |
|
} |
|
`rm syllables`; |
|
@word_cont = read_file($ARGV[4]); |
|
open(handle_w,">","word"); |
|
print handle_w @word_cont[$#word_cont]; |
|
close(handle_w); |
|
`echo SIL > syllables`; |
|
`perl scripts/language_check.pl $ARGV[4] temp3`; |
|
if(read_file("lang") eq "tam") |
|
{ |
|
`perl scripts/vuv.pl temp3`; |
|
`./scripts/correct_text lists/out_word lists/o_au_map lists/phone_list` |
|
} |
|
else |
|
{ |
|
copy("temp3","lists/out_word"); |
|
} |
|
`perl scripts/ortho_to_phonetic1.pl lists/out_word $ARGV[0] phone`; |
|
`perl scripts/syllable_from_char.pl phone $ARGV[1] $ARGV[2] $ARGV[3] >> syllables`; |
|
|
|
$count = scalar(split("\n",cat("syllables"))); |
|
$start = 1; |
|
open(handle1,">","$ARGV[5]/wordpronunciation"); |
|
print handle1 "(set! wordstruct ' ( "; |
|
close(handle1); |
|
while ($start <= $count) |
|
{ |
|
$syl1 = tail(head(cat("syllables"),$start),1); |
|
open(handle,">","syl1"); |
|
print handle $syl1."\n"; |
|
close(handle); |
|
`perl scripts/ortho_to_phonetic1.pl syl1 lists/phone_list syl2`; |
|
$num_phones = scalar(split("\n",cat("syl2"))); |
|
$ph_start = 1; |
|
|
|
while ($ph_start <= $num_phones) |
|
{ |
|
$phn = tail(head(cat("syl2"),$ph_start),1); |
|
`echo 0.1 125 $phn >> lab/1.lab`; |
|
|
|
if ($ph_start == 1) |
|
{ |
|
open(handle,">","syl3"); |
|
print handle $phn." "; |
|
close(handle); |
|
} |
|
elsif($ph_start < $num_phones) |
|
{ |
|
open(handle,">>","syl3"); |
|
print handle $phn." "; |
|
close(handle); |
|
} |
|
else |
|
{ |
|
open(handle,">>","syl3"); |
|
print handle $phn; |
|
close(handle); |
|
} |
|
$ph_start++; |
|
} |
|
|
|
$syl = cat("syl3"); |
|
open(handle2,">>","$ARGV[5]/wordpronunciation"); |
|
print handle2 "(($syl) 0)"; |
|
print handle2 " "; |
|
close(handle2); |
|
$start++; |
|
} |
|
open(handle3,">>","$ARGV[5]/wordpronunciation"); |
|
print handle3 ") )"; |
|
close(handle3); |
|
open(handle4,">","morph_tag1"); |
|
print handle4 "(set! a ".'"'."0".'")'; |
|
close(handle4); |
|
|
|
unlink("prompt-lab/bi_1.lab"); |
|
sub cat |
|
{ |
|
$val=""; |
|
$file = $_[0]; |
|
open (input, "<",$file) ||die; |
|
while(<input>) |
|
{ |
|
|
|
$val.="$_"; |
|
} |
|
|
|
return $val; |
|
close (input); |
|
} |
|
sub head |
|
{ |
|
$text_head=""; |
|
@text_h_split = split("\n",$_[0]); |
|
$line_h = $_[1]; |
|
$i =0; |
|
while($i < $line_h) |
|
{ |
|
|
|
|
|
if($i < $line_h-1) |
|
{ |
|
$text_head.="$text_h_split[$i]\n"; |
|
} |
|
elsif($i == $line_h-1) |
|
{ |
|
$text_head.="$text_h_split[$i]"; |
|
} |
|
$i++; |
|
} |
|
return $text_head; |
|
} |
|
sub tail |
|
{ |
|
$text_tail=""; |
|
@text_t_split = split("\n",$_[0]); |
|
$line_t = $_[1]; |
|
$total = scalar(@text_t_split); |
|
$start_t = $total - $line_t; |
|
while($start_t <$total) |
|
{ |
|
|
|
|
|
if($start_t<$total-1) |
|
{ |
|
$text_tail.="$text_t_split[$start_t]\n"; |
|
} |
|
elsif($start_t==$total-1) |
|
{ |
|
$text_tail.="$text_t_split[$start_t]"; |
|
} |
|
$start_t++; |
|
} |
|
return $text_tail; |
|
} |
|
|