Blame view
LIA_kaldiUtils/replacePronTrs.pl
1.62 KB
ec85f8892 first commit |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
#!/usr/bin/perl use strict; # récupère les prononciations dans les balises Event # Exemples : #<Event desc="2 millions 5" type="pronounce" extent="begin"/> #2,5 millions #<Event desc="2 millions 5" type="pronounce" extent="end"/> # # ça fait 2 dimanches qu'on est levés à 7h #<Event desc="7 heures" type="pronounce" extent="previous"/> # #<Event desc="JDD point FR" type="pronounce" extent="next"/> #jdd.fr, ça c'est important, my @lines=(); while(<>) { chomp; push(@lines,$_); } for(my $i = 0;$i < scalar(@lines);$i++) { # le plus simple : previous et next if($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"next\"\/\>/) { my @tabLineTmp = split(' ',$lines[$i+1]); ($tabLineTmp[0]) = ($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"next\"\/\>/); $lines[$i+1] = join(" ",@tabLineTmp); } elsif($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"previous\"\/\>/) { my @tabLineTmp = split(' ',$lines[$i-1]); if (scalar(@tabLineTmp) > 0) { ($tabLineTmp[scalar(@tabLineTmp)-1]) = ($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"previous\"\/\>/); $lines[$i-1] = join(" ",@tabLineTmp); } } # Plus compliqué le cas du begin / end : on suppose qu'ils sont pas assez "vicieux" pour mettre plusieurs lignes... # donc en fait, on va faire comme si c'était un next mais sur toute la phrase suivante elsif($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"begin\"\/\>/) { ($lines[$i+1]) = ($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"begin\"\/\>/); } } # on réaffiche le tout modifié foreach(@lines) { print "$_ "; } |