| | |
| | if(scalar(@ARGV)!=1) |
| | { |
| | print "arg --> word file\n"; |
| | exit(0); |
| | } |
| | $char = substr(cat($ARGV[0]),1,1); |
| | $f1 = 0; |
| | $f1 = scalar(grep(/\b$char\b/,split("\n",cat("lists/alphabets")))); |
| | if($f1 == 0) |
| | { |
| | open (out_word_handle,">","lists/out_word"); |
| | |
| | system("scripts/tamil_trans lists/tamil_map @ARGV[0] lists/trans_word"); |
| | `perl scripts/ortho_to_phonetic1.pl lists/trans_word lists/phone_list phn`; |
| | $count = scalar(split("\n",cat("phn"))); |
| | $start = 2; |
| | $phn = tail(head(cat("phn"),1),1); |
| | if($phn eq "c") |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle "s"; |
| | } |
| | else |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle $phn; |
| | } |
| | while ($start <= $count) |
| | { |
| | $phn = tail(head(cat("phn"),$start),1); |
| | $c0 = $start - 1; |
| | $c1 = $start + 1; |
| | $c2 = $start + 2; |
| | $phn_1 = tail(head(cat("phn"),$c0),1); |
| | $phn_2 = tail(head(cat("phn"),$c1),1); |
| | if (($phn eq "c" && $phn_1 eq "c") || ($phn eq "c" && $phn_2 eq "c")|| ($phn eq "c" && $phn_1 eq "tx") ) |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle $phn; |
| | } |
| | elsif ($phn eq "c" && $phn_1 eq "nj") |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle "j"; |
| | } |
| | elsif ($phn eq "c" && $phn_1 ne "c") |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle "s"; |
| | } |
| | elsif($phn eq "rx" && $phn_2 eq "rx") |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle "tx"; |
| | } |
| | else |
| | { |
| | @temp_vuv = split("\n",cat("lists/vuv_list")); |
| | |
| | open(list_temp,">","lists/tmp"); |
| | foreach $line1 (@temp_vuv) |
| | { |
| | @line_temp = split(" ",$line1); |
| | print list_temp @line_temp[0]."\n"; |
| | |
| | } |
| | close(list_temp); |
| | $flg = scalar(grep(/\b$phn\b/,split("\n",cat("lists/tmp")))); |
| | $phn0 = tail(head(cat("phn"),$c0),1); |
| | $phn1 = tail(head(cat("phn"),$c1),1); |
| | $phn2 = tail(head(cat("phn"),$c2),1); |
| | if ($phn eq "u") |
| | { |
| | $flg_1 = scalar(grep(/$phn1/,split("\n",cat("lists/u_list")))); |
| | if(($start == $count) || ($flg_1 != 0 && $c1 == $count) || ($phn1 eq "k" && $phn2 eq "k" && $c0 != 1)) |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle "eu"; |
| | } |
| | else |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle $phn; |
| | } |
| | } |
| | elsif($phn eq "c") |
| | { |
| | if($phn0 eq "c" || $phn1 eq "c" || $c1 == $count) |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle $phn; |
| | } |
| | elsif ($phn0 eq "nj") |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle "j"; |
| | } |
| | else |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle "s"; |
| | } |
| | } |
| | elsif($flg == 1) |
| | { |
| | @temp = split("\n",cat("lists/vuv_list")); |
| | open (list_nasal,">","lists/nasal"); |
| | foreach $line_nasal (@temp) |
| | { |
| | @line_temp = split(" ",$line_nasal); |
| | print list_nasal @line_temp[2]."\n"; |
| | } |
| | close(list_nasal); |
| | $flg1 = scalar(grep(/\b$phn0\b/,split("\n",cat("lists/vowel_list")))); |
| | $flg2 = scalar(grep(/\b$phn1\b/,split("\n",cat("lists/vowel_list")))); |
| | $flg3 = scalar(grep(/\b$phn0\b/,split("\n",cat("lists/nasal")))); |
| | $flg4 = scalar(grep(/\b$phn0\b/,split("\n",cat("lists/sv")))); |
| | if ($phn eq "p") |
| | { |
| | if (($flg1 == 1 && $flg2 == 1) || ($flg3 == 1 && $phn0 ne $phn) || ($phn0 eq "n")) |
| | { |
| | @phn_v_tmp = grep(/\b$phn\b/,split("\n",cat("lists/vuv_list"))); |
| | @phn_v_tmp = split(" ",@phn_v_tmp[0]); |
| | $phn_v = @phn_v_tmp[1]; |
| | print out_word_handle " "; |
| | print out_word_handle $phn_v; |
| | } |
| | else |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle $phn; |
| | } |
| | } |
| | elsif(($flg1 == 1 && $flg2 == 1) || ($flg3 == 1 && $phn0 ne $phn) || ($flg4 == 1 && $flg2 == 1)) |
| | { |
| | @temp_phn_v = grep(/\b$phn\b/,split("\n",cat("lists/vuv_list"))); |
| | @temp_phn_v = split(" ",@temp_phn_v[0]); |
| | $phn_v = @temp_phn_v[1]; |
| | print out_word_handle " "; |
| | print out_word_handle $phn_v; |
| | } |
| | else |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle $phn; |
| | } |
| | } |
| | else |
| | { |
| | print out_word_handle " "; |
| | print out_word_handle $phn; |
| | } |
| | } |
| | $start++; |
| | } |
| | close(out_word_handle); |
| | } |
| | else |
| | { |
| | |
| | system("scripts/tamil_trans lists/tamil_map @ARGV[0] lists/out_word"); |
| | } |
| | 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; |
| | } |
| |
|