test
~~~~~~
if (!tmFile[0]) { printf("Pls input tlist file\n"); return 1; } if (!hmmPmModel_W[0]) { printf("Pls input hmm_W file\n"); return -1; }
啊
啊
啊
啊
啊
啊
啊
#将HTK格式的lab文件转换为Forcealign需要的ref文件 #参数1:输入lab #参数2:输入需要的文件list #参数3:输出ref use 5.010; open IN, "<$ARGV[0]" or die $!; open LIST, "<$ARGV[1]" or die $!; open OUT, ">$ARGV[2]" or die $!; $filenum = 0; while (my $line = <LIST>) { chomp($line); if ($line =~ /(.*)\.plp/) { $file_exist{"$1"} = 1; ++$filenum; } } say "file in $ARGV[1]: $filenum"; $filenum = 0; $garbage = <IN>; while (my $line = <IN>) { chomp($line); if ($line =~ /^\"\/home\/\*\/(.*)\.lab\"$/) #这里根据具体情况修改 { if ($file_exist{"$1"}) { $file = $1; } } elsif ($line eq ".") { if ($file) { #say $file; say OUT "{"; say OUT "[align]:$refer"; say OUT $file.".plp, ~"; say OUT "}"; ++$filenum; } $refer = ""; $file = "";
View Code
1 #将HTK格式的lab文件转换为Forcealign需要的ref文件
2 #参数1:输入lab
3 #参数2:输入需要的文件list
4 #参数3:输出ref
5
6 use 5.010;
7
8 open IN, "<$ARGV[0]" or die $!;
9 open LIST, "<$ARGV[1]" or die $!;
10 open OUT, ">$ARGV[2]" or die $!;
11
12 $filenum = 0;
13 while (my $line = <LIST>)
14 {
15 chomp($line);
16 if ($line =~ /(.*)\.plp/)
17 {
18 $file_exist{"$1"} = 1;
19 ++$filenum;
20 }
21 }
22 say "file in $ARGV[1]: $filenum";
23 $filenum = 0;
24
25 $garbage = <IN>;
26 while (my $line = <IN>)
27 {
28 chomp($line);
29 if ($line =~ /^\"\/home\/\*\/(.*)\.lab\"$/) #这里根据具体情况修改
30 {
31 if ($file_exist{"$1"})
32 {
33 $file = $1;
34 }
35 }
36 elsif ($line eq ".")
37 {
38 if ($file)
39 {
40 #say $file;
41 say OUT "{";
42 say OUT "[align]:$refer";
43 say OUT $file.".plp, ~";
44 say OUT "}";
45 ++$filenum;
46 }
47 $refer = "";
48 $file = "";
49 }
50 else
51 {
52 $refer .= " ".$line;
53 }
54 }
55 say "file in $ARGV[2]: $filenum";
56
57 close IN;
58 close LIST;
59 close OUT;
} else { $refer .= " ".$line; } } say "file in $ARGV[2]: $filenum"; close IN; close LIST; close OUT;