Blame view

LIA_kaldiUtils/replacePronTrs.pl 1.62 KB
ec85f8892   bigot benjamin   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 "$_
  ";
  }