#!/usr/bin/perl use warnings; use strict; my @tones_array=(); #Dateinamen Tones my @silben_array=(); #Dateinamen Silben my @toneszeit=(); #Zeitpunkt Tones my @toneswert=(); #Wert Tones my @tonesinhalt=(); #Inhalt zum Splitten my @silbenzeit=(); #Zeitpunkt Silben my @silbenwert=(); #Wert Silben my @silbeninhalt=();#Inhalt zum Splitten my $i=0; #Index in der Dateiliste my $tonespos=0; #Position Tones my $silbenpos=0; #Position Silbe my $zeile=0; #Zeilenzähler my $gesamttones; #Anzahl tones pro Datei my $gesamtsilben; #Anzahl Silben pro Datei my $tones_datei=" "; my $syl_datei=" "; open (DATEI ,"< tones_list.tmp") or die "Konnte Datei nicht öffnen.\n"; while () { chomp($_); push(@tones_array,$_); } close(DATEI); open (FILE ,"< syl_list.tmp") or die "Konnte Datei nicht öffnen.\n"; while () { chomp($_); push(@silben_array,$_); } close(DATEI); while ($i<=$#tones_array) { $tones_datei=$tones_array[$i];#Datei an Position [$i] chomp($tones_datei); open (TONES,"< $tones_datei" or die" $!\n");# -->FEHLER....WARUM?<-- print "Öffne Datei $tones_array[$i]\n"; while() { chomp($_); $zeile++; if ($zeile<=8) #Ignoriere die ersten acht Zeilen { next; } else { @tonesinhalt=split /\s+/; push(@toneszeit,$tonesinhalt[1]);#Toneszeiten werden gespeichert push(@toneswert,$tonesinhalt[3]);#Toneswert wird gespeichert } } close(TONES); $syl_datei=$silben_array[$i];#Datei an Position [$i] chomp($syl_datei); open (SILBEN,"< $syl_datei" or die "$!\n"); while() { print "Öffne Datei $silben_array[$i]\n"; s/#//g; @silbeninhalt=split /\s+/; push(@silbenzeit,$silbeninhalt[0]);#Silbenzeiten werden gespeichert push(@silbenwert,$silbeninhalt[2]);#Silbenwert wird gespeichert } close(SILBEN); my ($pfad,$dateiname) = $tones_array[$i] =~m|^(.*?/)([^/]+)$|; my ($pfad2,$dateiname2) = $silben_array[$i] =~m|^(.*?/)([^/]+)$|; open (INTERPRETATION,">>".$pfad."interpretation.txt" or die "$!"); print INTERPRETATION "Analysierte Tonesdatei: ". "$dateiname\n"; print INTERPRETATION "Analysierte Silbendatei: "."$dateiname2\n"; print INTERPRETATION "[Beginn der gesamten Nachricht]\n"; $gesamtsilben=$#silbenzeit; if ($silbenpos >=$gesamtsilben) { $i++; print INTERPRETATION "[Nachrichtenende]\n"; @tones_array=(); @silben_array=(); @toneszeit=(); @toneswert=(); @tonesinhalt=(); @silbenzeit=(); @silbenwert=(); @silbeninhalt=(); $tonespos=0; $silbenpos=0; $zeile=0; $gesamttones=0; $gesamtsilben=0; } else { if ($toneszeit[$tonespos] > $silbenzeit[$silbenpos]) { print INTERPRETATION "Silbe: ". "-> ~unbetont\n"; $silbenpos++; } elsif ($toneszeit[$tonespos] < $silbenzeit[$silbenpos]) { print INTERPRETAION "Silbe: $silbenwert[$silbenpos] ". "Pitch: $toneswert[$tonespos]\n"; $silbenpos++; $tonespos++; } elsif ($toneszeit[$tonespos] = $silbenzeit[$silbenpos]) { print INTERPRETAION "Silbe: $silbenwert[$silbenpos] ". "Pitch: $toneswert[$tonespos]\n"; $silbenpos++; $tonespos++; } } }