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;


浙公网安备 33010602011771号