voxforge.org
VoxForge Dev

Changeset 2471

Show
Ignore:
Timestamp:
03/20/08 12:05:43 (10 months ago)
Author:
kmaclean
Message:

VoxForge?_config.pm refactor to a class & add audio processing for German and Dutch audio files - snapshot

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • Trunk/Scripts/Audio_scripts/AudioBooks/MissingWordsCleanup.pl

    r2270 r2471  
    1313### This program is free software; you can redistribute it and/or 
    1414### modify it under the terms of the GNU General Public License 
    15 ### as published by the Free Software Foundation; either version 3 
     15### as published by the Free Software Foundation; either version 2 
    1616### of the License, or (at your option) any later version. 
    1717### 
     
    3131my $debug =1; 
    3232# Festival can't process some words with single quotes - these need to be hand-edited in the "MissingWords" File before running this program! 
     33open(MISSINGWORDS,"MissingWords") or die ("cannot open MissingWords file"); 
     34my(@lines) = <MISSINGWORDS>;  
     35close MISSINGWORDS; 
     36 
     37open(MISSINGWORDS,">MissingWords") or die ("cannot open MissingWords file"); 
     38foreach my $line (@lines) { 
     39        if ($line =~ /\'/) { 
     40                my $formatedline = $line; 
     41                $formatedline =~ s/\n//g; 
     42                print "!!!!!!Check this word: before:$formatedline;"; 
     43                $line =~ s/\'//g; # remove single quote  
     44                print "after:$line"; 
     45 
     46        }  
     47        print MISSINGWORDS $line; 
     48} 
     49close MISSINGWORDS; 
     50 
    3351my $festivalcommand = q|#!/usr/bin/festival --script 
    3452(let 
     
    7189        if (!($line =~ /festival>/)) { 
    7290                print OUT "$filename    [$filename]    @line\n";         
     91                print  "$filename    [$filename]    @line\n"; 
    7392        } 
    7493} 
  • Trunk/Scripts/Audio_scripts/Repository.pm

    r2422 r2471  
    4545sub Main { 
    4646        my ($parms ) = @_; 
    47                 my $debug = $$parms{"debug"};    
    48                 my $QuarantineDir = $$parms{"QuarantineDir"};    
    49                 my $ToBeProcessedDir = $$parms{"ToBeProcessedDir"};      
    50                 my $ScriptsDirectory = $$parms{"ScriptsDirectory"};      
    51                 my $AudioDirectory = $$parms{"AudioDirectory"};          
    52                          
     47        #!!!!!! 
     48        #my $debug = $$parms{"debug"};   
     49        #my $QuarantineDir = $$parms{"QuarantineDir"};   
     50        #my $ToBeProcessedDir = $$parms{"ToBeProcessedDir"};     
     51        #my $AudioDirectory = $$parms{"AudioDirectory"};         
     52        my $ScriptsDirectory = $$parms{"ScriptsDirectory"};      
     53        my $debug = $parms->getDebug; 
     54        my $QuarantineDir = $parms->getQuarantineDir; 
     55        my $ToBeProcessedDir = $parms->getToBeProcessedDir; 
     56                 
    5357        my($dirlist) = ReadDir($ToBeProcessedDir); # $dirlist is a pointer to array created in ReadDir 
    5458        my %ProcessedUserSubmissions; 
    5559        foreach my $AudioDirName (@$dirlist) {   
    5660                my $readme = UserSubmission::README->new($parms, "$ToBeProcessedDir/$AudioDirName/etc/README"); 
    57  
     61                # !!!!!! 
     62                $parms->setSpeechCorpusLanguage($readme->getLanguage()); 
     63                my $AudioDirectory = $parms->getAudioDirectory; 
     64                #!!!!!! 
    5865                $$parms{"AudioSubdirectory"} = $readme->getFiletype();  # set to wav or flac based on README contents 
    5966                my $OriginalAudioRateDir = $readme->getSamplingrate() . "_" . $readme->getSamplingrateformat() ; 
     
    7380                $$parms{"path_mfcc"} = "$AudioDirectory/MFCC/" . $$parms{"TargetAudioRateDir"} . "/" . $$parms{"HTK_ParameterKind"}; 
    7481                Repository::Main::Process($parms, $AudioDirName, $readme) || confess "Repository error: $?";             
    75                 Repository::Mfcc::Create($parms, $AudioDirName) || confess "Repository error: $?";  
    76                 UserSubmission::PROMPTS::UpdateMasterPrompts($parms, $AudioDirName, $$parms{"PromptsFile_8kHz-16bit"}  ) || confess "Repository error: $?";              
    77  
     82                Repository::Mfcc::Create($parms, $AudioDirName) || confess "Repository error: $?"; 
     83                # !!!!!! 
     84                if ($readme->getLanguage() =~ /EN/) { 
     85                        UserSubmission::PROMPTS::UpdateMasterPrompts($parms, $AudioDirName, $$parms{"PromptsFile_8kHz-16bit"}  ) || confess "Repository error: $?"; 
     86                } 
     87                # !!!!!! 
    7888                # target 16kHz:16bit, MFCC_0_D           
    7989                my $samplingrate = $readme->getSamplingrate(); 
     
    8595                        Repository::Main::Process($parms, $AudioDirName, $readme) || confess "Repository error: $?";             
    8696                        Repository::Mfcc::Create($parms, $AudioDirName) || confess "Repository error: $?"; 
    87                         UserSubmission::PROMPTS::UpdateMasterPrompts($parms, $AudioDirName, $$parms{"PromptsFile_16kHz-16bit"} ) || confess "Repository error: $?"; 
     97                        # !!!!!! 
     98                        if ($readme->getLanguage() =~ /EN/) { 
     99                                UserSubmission::PROMPTS::UpdateMasterPrompts($parms, $AudioDirName, $$parms{"PromptsFile_16kHz-16bit"} ) || confess "Repository error: $?"; 
     100                        } 
     101                        # !!!!!! 
    88102                } else { 
    89103                        print "$AudioDirectory audio is less than 16Khz.  No migration to Main/16kHz-16bit to avoid upsampling audio data\n";  
  • Trunk/Scripts/Audio_scripts/UserSubmission.pm

    r2461 r2471  
    5757sub Main { 
    5858        my ($parms ) = @_; 
    59                 my $debug = $$parms{"debug"}; 
    60                 my $QuarantineDir = $$parms{"QuarantineDir"}; 
     59                # !!!!!! 
     60                #my $debug = $$parms{"debug"}; 
     61                #my $QuarantineDir = $$parms{"QuarantineDir"}; 
     62                my $debug = $parms->getDebug; 
     63                my $QuarantineDir = $parms->getQuarantineDir; 
     64                # !!!!!! 
    6165        my($tarlist) = ReadTarDir($QuarantineDir); # $tarlist is a pointer to array created in ReadTarDir 
    6266        my %directorynames; 
     
    7983                } 
    8084                # !!!!!! 
    81                 #UserSubmission::PROMPTS::Clean($parms, $audio_dir_name, $readme)   || confess "UserSubmission error: $?"; # creates reformatted prompts file for processing with HVite and later merging into Master_Prompts 
    82                 #UserSubmission::PROMPTS::Validation($parms, $audio_dir_name)  || confess "UserSubmission error: $?"; # use HDMan to run prompts against VoxForge Dictionnary 
    83                 my $prompts = UserSubmission::PROMPTS->new($parms, $audio_dir_name, $readme); 
    84                 if ($prompts->getError) { 
    85                         confess "UserSubmission error: $prompts->getErrorMessage\n"; 
    86                 } 
    87                 #my $numberofPromptstoProcess = 10; 
    88                 #$audio->Audio2PromptsValidation($parms, $audio_dir_name,$numberofPromptstoProcess)  || confess "UserSubmission error: $?" ; # partial AM training session using audio data to see if HVite has any problems trying to re-align the data - if it does, then audio does not match transcription 
    89                 #$audio->Audio2PromptsValidation($parms, $audio_dir_name,$prompts)  || confess "UserSubmission error: $?" ; # partial AM training session using audio data to see if HVite has any problems trying to re-align the data - if it does, then audio does not match transcription 
    90                 $audio->Audio2PromptsValidation($prompts)  || confess "UserSubmission error: $?" ; # partial AM training session using audio data to see if HVite has any problems trying to re-align the data - if it does, then audio does not match transcription 
    91                 if ($audio->getError) { 
    92                         confess "UserSubmission error: $audio->getErrorMessage" ; 
     85                if ($readme->getLanguage() =~ /EN/) {  
     86                        my $prompts = UserSubmission::PROMPTS->new($parms, $audio_dir_name, $readme); 
     87                        if ($prompts->getError) { 
     88                                confess "UserSubmission error: $prompts->getErrorMessage\n"; 
     89                        } 
     90                        $audio->Audio2PromptsValidation($prompts)  || confess "UserSubmission error: $?" ; # partial AM training session using audio data to see if HVite has any problems trying to re-align the data - if it does, then audio does not match transcription 
     91                        if ($audio->getError) { 
     92                                confess "UserSubmission error: $audio->getErrorMessage" ; 
     93                        } 
    9394                } 
    9495                # !!!!!! 
     
    114115sub Convert2Unix { 
    115116        my ($parms, $audio_dir_name ) = @_; 
    116                 my $debug = $$parms{"debug"}; 
    117                 my $QuarantineDir = $$parms{"QuarantineDir"}; 
    118  
     117                # !!!!!! 
     118                #my $debug = $$parms{"debug"}; 
     119                #my $QuarantineDir = $$parms{"QuarantineDir"}; 
     120                my $debug = $parms->getDebug; 
     121                my $QuarantineDir = $parms->getQuarantineDir; 
     122                # !!!!!! 
    119123        opendir(DIR, "$QuarantineDir/$audio_dir_name") || confess ("Unable to open directory: $QuarantineDir/$audio_dir_name\n"); 
    120124        while (my $filename = readdir(DIR)) { 
     
    169173        #to do look at Archive::Extract Cpan Module to handle tar tgz tar.gz and zip extractions ... 
    170174        my ($parms, $filename, $suffix, $tarfile) = @_; 
    171                 my $debug = $$parms{"debug"};    
    172                 my $QuarantineDir = $$parms{"QuarantineDir"}; 
    173                  
    174  
     175        # !!!!!! 
     176        #my $debug = $$parms{"debug"};   
     177        #my $QuarantineDir = $$parms{"QuarantineDir"}; 
     178        my $debug = $parms->getDebug; 
     179        my $QuarantineDir = $parms->getQuarantineDir; 
     180        # !!!!!! 
    175181        my (@clamscan_output, $clamscan_results); 
    176182        #$command = ("freshclam"); print "$command\n"; system($command) == 0 or confess "system $command failed: $?";  
     
    232238sub ValidateFilenames { 
    233239        my ($parms, $AudioDirName) = @_; 
    234                 my $debug = $$parms{"debug"}; 
     240        # !!!!!! 
     241        #my $debug = $$parms{"debug"}; 
     242        # !!!!!! 
    235243        # check that user used PROMPTS & README for filenames 
    236244        # windows defaults to prompts.txt 
     
    242250 
    243251sub Copy2ToBeProcessed { 
    244 # !!!!!! 
    245         #my ($parms, $audio_dir_name, $filetype) = @_; 
    246252        my ($parms, $audio_dir_name, $filetype, $audio) = @_; 
    247 # !!!!!!         
    248                 my $debug = $$parms{"debug"}; 
    249                 my $QuarantineDir = $$parms{"QuarantineDir"};    
    250                 my $ToBeProcessedDir = $$parms{"ToBeProcessedDir"};      
    251         # !!!!!!                 
    252         #UserSubmission::AUDIO::Finalize($parms, $audio_dir_name, $filetype)  || confess "UserSubmission error: $?" ; 
     253        # !!!!!! 
     254        #my $debug = $$parms{"debug"}; 
     255        #my $QuarantineDir = $$parms{"QuarantineDir"};   
     256        #       my $ToBeProcessedDir = $$parms{"ToBeProcessedDir"};      
     257        my $debug = $parms->getDebug; 
     258        my $QuarantineDir = $parms->getQuarantineDir; 
     259        my $ToBeProcessedDir = $parms-> getToBeProcessedDir; 
     260        # !!!!!! 
    253261        $audio->Finalize($parms, $audio_dir_name, $filetype); 
    254262        if ($audio->getError) { 
    255263                confess "UserSubmission error: $audio->getErrorMessage" ; 
    256264        } 
    257         # !!!!!! 
    258265        $command = ("rm -rf $ToBeProcessedDir/$audio_dir_name");  print "$command\n" if $debug;  system($command)  ;  
    259266        $command = ("mkdir $ToBeProcessedDir/$audio_dir_name $ToBeProcessedDir/$audio_dir_name/etc");  print "$command\n" if $debug;  system($command)  ;  
    260         # !!!!!! 
    261         #UserSubmission::AUDIO::Copy2ToBeProcessed($parms, $audio_dir_name, $filetype)  || confess "UserSubmission error: $?" ; 
    262267        $audio->Copy2ToBeProcessed($parms, $audio_dir_name, $filetype); 
    263268        if ($audio->getError) { 
    264269                confess "UserSubmission error: $audio->getErrorMessage" ; 
    265270        }        
    266         # !!!!!! 
    267271        if ($debug) {    
    268272                $command = ("cp -f $QuarantineDir/$audio_dir_name/* $ToBeProcessedDir/$audio_dir_name/etc");  print "$command\n"; system($command) ; # return value usually says "cp: omitting directory `/data/quarantine/granthulbert-ar-01032007/wav'" 
     
    283287sub Cleanup { 
    284288        my ($parms, $audio_dir_name) = @_; 
    285                 my $debug = $$parms{"debug"}; 
    286                 my $QuarantineDir = $$parms{"QuarantineDir"};    
    287                 my $ToBeProcessedDir = $$parms{"ToBeProcessedDir"}; 
    288  
    289         $command = ("rm -rf $QuarantineDir/$audio_dir_name"); print "$command\n" if $debug;   system($command) == 0 or confess "system $command failed: $?"; # remove hidden backup files 
    290         $command = ("rm -f $QuarantineDir/$audio_dir_name\.zip $QuarantineDir/$audio_dir_name\.tgz $QuarantineDir/$audio_dir_name\.tar.gz "); print "$command\n" if $debug;   system($command) == 0 or confess "system $command failed: $?"; # remove hidden backup files 
    291         $command = ("rm -rf $ToBeProcessedDir/$audio_dir_name"); print "$command\n" if $debug;   system($command) == 0 or confess "system $command failed: $?"; # remove hidden backup files 
     289        # !!!!!! 
     290        #my $debug = $$parms{"debug"}; 
     291        #my $QuarantineDir = $$parms{"QuarantineDir"};   
     292        #my $ToBeProcessedDir = $$parms{"ToBeProcessedDir"}; 
     293        #$command = ("rm -rf $QuarantineDir/$audio_dir_name"); print "$command\n" if $debug;   system($command) == 0 or confess "system $command failed: $?"; # remove hidden backup files 
     294        #$command = ("rm -f $QuarantineDir/$audio_dir_name\.zip $QuarantineDir/$audio_dir_name\.tgz $QuarantineDir/$audio_dir_name\.tar.gz "); print "$command\n" if $debug;   system($command) == 0 or confess "system $command failed: $?"; # remove hidden backup files 
     295        #$command = ("rm -rf $ToBeProcessedDir/$audio_dir_name"); print "$command\n" if $debug;   system($command) == 0 or confess "system $command failed: $?"; # remove hidden backup files 
     296        $command = ("rm -rf $parms->getQuarantineDir/$audio_dir_name"); print "$command\n" if $parms->getDebug;   system($command) == 0 or confess "system $command failed: $?"; # remove hidden backup files 
     297        $command = ("rm -f $parms->getQuarantineDir/$audio_dir_name\.zip $parms->getQuarantineDir/$audio_dir_name\.tgz $parms->getQuarantineDir/$audio_dir_name.tar.gz "); print "$command\n" if $parms->getDebug;   system($command) == 0 or confess "system $command failed: $?"; # remove hidden backup files 
     298        $command = ("rm -rf $parms->getToBeProcessedDir/$audio_dir_name"); print "$command\n" if $parms->getDebug;   system($command) == 0 or confess "system $command failed: $?"; # remove hidden backup files 
     299        # !!!!!! 
    292300        return 1; 
    293301} 
  • Trunk/Scripts/Mirroring_scripts/LocalUserSubmissionValidation.pl

    r2270 r2471  
    3131#use VoxForge_config;  
    3232#my $parms = VoxForge_config::getParms; 
    33 use VoxForge_config_testing;  
    34 my $parms = VoxForge_config_testing::getParms; 
     33use VoxForge_config_testing; 
     34# !!!!!!  
     35#my $parms = VoxForge_config_testing::getParms; 
     36my $parms = VoxForge_config_testing->new();  
     37# !!!!!! 
    3538#overrides 
    3639#$$parms{"testing"} = 1; # not required 
  • Trunk/Scripts/Mirroring_scripts/RunDaily.pl

    r2427 r2471  
    3030### 0.1.7 - 2007.8.22 - add Flac audio processing 
    3131### 0.1.8 - 2008.1.22 - addition of WebGUIForumUpdate module & convert README module to a class 
     32### 0.1.9 - 2008.3.20 - refactor VoxForge_config to a class 
    3233#################################################################### 
    3334package RunDaily; 
     
    5859 
    5960#use VoxForge_config_testing; # for testing 
    60 #my $parms = VoxForge_config_testing::getParms
     61#my $parms = VoxForge_config_testing->new()
    6162use VoxForge_config; # no parenthesis in order to import %parm into this namespace 
    62 my $parms = VoxForge_config::getParms; 
    63 my %parms = %$parms; 
    64 # !!!!!!  
     63# !!!!!! 
     64#my $parms = VoxForge_config::getParms; 
     65#my %parms = %$parms; 
     66my $parms = VoxForge_config->new(); 
     67# !!!!!! 
    6568my $command; 
    6669#################################################################### 
    6770#  parms 
    68 my $testing = $parms{"testing"} ; 
    69 my $dir = $parms{"MirroringScripts_dir"}; 
    70 my $HTKdir = $parms{"HTK_dir"}; 
    71 my $Audio_scriptsdir = $parms{"AudioScripts_dir"}; 
    72 my $QSdir = $parms{"QSdir"}; 
    73 my $debug = $parms{"debug"}; 
    74 my $HTKbin = $parms{"HTKBin"}; 
    75 my $MirroringScripts_dir = $parms{"MirroringScripts_dir"}; 
    76 my $Nightly_dirname = $parms{"Nightly_dirname"}; 
    77 my $MakeFiles_dir = $parms{"MakeFiles_dir"}; 
     71# !!!!!! 
     72#my $testing = $parms{"testing"}; 
     73#my $dir = $parms{"MirroringScripts_dir"}; 
     74#my $HTKdir = $parms{"HTK_dir"}; 
     75#my $Audio_scriptsdir = $parms{"AudioScripts_dir"}; 
     76#my $QSdir = $parms{"QSdir"}; 
     77#my $debug = $parms{"debug"}; 
     78#my $HTKbin = $parms{"HTKBin"}; 
     79#my $MirroringScripts_dir = $parms{"MirroringScripts_dir"}; 
     80#my $Nightly_dirname = $parms{"Nightly_dirname"}; 
     81#my $MakeFiles_dir = $parms{"MakeFiles_dir"}; 
     82# !!!!!! 
    7883#################################################################### 
    7984### Main 
    8085#################################################################### 
    81 UserSubmission::Main(\%parms) || confess "UserSubmissions error: $?"; 
    82 (my $ProcessedUserSubmissions =  
    83    Repository::Main(\%parms)) || confess "Repository error: $?"; # watch ""||"" because it changes left-side to scalar context, and only last item in list is transferred! 
    84 AcousticModel::Create(\%parms) || confess "UserSubmissions error: $?"; 
    85 NightlyTest::Process(\%parms) || confess "UserSubmissions error: $?"; 
    86 TarFiles::Create($parms) || confess "UserSubmissions error: $?"; 
    87 UserMetrics::Process(\%parms) || confess "UserSubmissions error: $?"; 
     86# !!!!!! 
     87#UserSubmission::Main(\%parms) || confess "UserSubmissions error: $?"; 
     88#(my $ProcessedUserSubmissions = Repository::Main(\%parms))  
     89#    || confess "Repository error: $?"; # watch ""||"" because it changes left-side to scalar context, and only last item in list is transferred! 
     90#AcousticModel::Create(\%parms) || confess "UserSubmissions error: $?"; 
     91#NightlyTest::Process(\%parms) || confess "UserSubmissions error: $?"; 
     92#TarFiles::Create($parms) || confess "UserSubmissions error: $?"; 
     93#UserMetrics::Process(\%parms) || confess "UserSubmissions error: $?"; 
     94#Rsync() || confess "UserSubmissions error: $?"; 
     95#WebGUIForum::Update(\%parms, $ProcessedUserSubmissions, 'speechsubmission', 'xxxxx') || confess "UserSubmissions error: $?"; 
     96 
     97UserSubmission::Main($parms) || confess "UserSubmissions error: $?"; 
     98(my $ProcessedUserSubmissions = Repository::Main(\%parms))  
     99    || confess "Repository error: $?"; # watch ""||"" because it changes left-side to scalar context, and only last item in list is transferred! 
     100AcousticModel::Create($parms) || confess "UserSubmissions error: $?"; # only processes audio in English Master Prompts files   
     101NightlyTest::Process($parms) || confess "UserSubmissions error: $?"; # English only 
     102TarFiles::Create($parms) || confess "UserSubmissions error: $?";  
     103UserMetrics::Process($parms) || confess "UserSubmissions error: $?"; # English only 
    88104Rsync() || confess "UserSubmissions error: $?"; 
    89 WebGUIForum::Update(\%parms, $ProcessedUserSubmissions, 'speechsubmission', 'xxxxx') || confess "UserSubmissions error: $?"; 
     105WebGUIForum::Update($parms, $ProcessedUserSubmissions, 'speechsubmission', 'xxxxx') || confess "UserSubmissions error: $?"; 
     106# !!!!!! 
    90107 
    91108print STDOUT "!!!!!!run_daily completed\n"; 
     
    97114        print "\nRsync starting****************************************************\n\n"; 
    98115        # Mirror files to VoxForge repository 
    99         $command = ("rsync -r -v -t /data/svn-tarfiles/SpeechCorpus/Trunk -e ssh user\@voxforge1\.org\:downloads/SpeechCorpus --stats"); print "***$command\n";system($command) == 0 or confess "system $command failed: $?";   
     116        $command = ("rsync -r -v -t /data/svn-tarfiles/SpeechCorpus/Trunk -e ssh user\@voxforge1\.org\:downloads/SpeechCorpus --stats"); print "***$command\n";system($command) == 0 or confess "system $command failed: $?"; 
     117        # !!!!!! 
     118        $command = ("rsync -r -v -t /data/svn-tarfiles/de/Trunk -e ssh user\@voxforge1\.org\:downloads/SpeechCorpus --stats"); print "***$command\n";system($command) == 0 or confess "system $command failed: $?"; 
     119        $command = ("rsync -r -v -t /data/svn-tarfiles/Dutch/Trunk -e ssh user\@voxforge1\.org\:downloads/SpeechCorpus --stats"); print "***$command\n";system($command) == 0 or confess "system $command failed: $?"; 
     120        # !!!!!!   
    100121        $command = ("rsync -r -v -t /data/svn-tarfiles/Main/Trunk -e ssh user\@voxforge1\.org\:downloads/Main --stats"); print "***$command\n";system($command) == 0 or confess "system $command failed: $?";   
    101122        $command = ("rsync -r -v -t /data/svn-tarfiles/Main/Tags -e ssh user\@voxforge1\.org\:downloads/Main --stats"); print "***$command\n";  system($command) == 0 or confess "system $command failed: $?";  
  • Trunk/Scripts/Mirroring_scripts/RunDaily_preprocessing.pl

    r2391 r2471  
    1313### This program is free software; you can redistribute it and/or 
    1414### modify it under the terms of the GNU General Public License 
    15 ### as published by the Free Software Foundation; either version 3 
     15### as published by the Free Software Foundation; either version 2 
    1616### of the License, or (at your option) any later version. 
    1717### 
     
    5151        $command = ("svn update /data/svn-mirror/Main/Tags"); print "$command\n" if $debug;system($command) == 0 or die "system $command failed: $?";  
    5252        $command = ("svn update /data/svn-mirror/SpeechCorpus/Trunk"); print "$command\n" if $debug;system($command) == 0 or die "system $command failed: $?";  
     53        $command = ("svn update /data/svn-mirror/Russian/Trunk"); print "$command\n" if $debug;system($command) == 0 or die "system $command failed: $?";  
    5354# !!!!!! 
    54         $command = ("svn update /data/svn-mirror/Russian/Trunk"); print "$command\n" if $debug;system($command) == 0 or die "system $command failed: $?";  
     55        $command = ("svn update /data/svn-mirror/de/Trunk"); print "$command\n" if $debug;system($command) == 0 or die "system $command failed: $?";  
     56        $command = ("svn update /data/svn-mirror/Dutch/Trunk"); print "$command\n" if $debug;system($command) == 0 or die "system $command failed: $?";  
     57 
    5558# !!!!!! 
    5659        return 1; 
  • Trunk/Scripts/Mirroring_scripts/Single_WebGUIForum.pm

    r2464 r2471  
    3030my $parms = VoxForge_config::getParms; 
    3131 
    32 use WebGUIForum; 
     32use WebGUIForum;  
    3333 
    3434use lib '../Audio_scripts'; 
     
    3636my %ProcessedUserSubmissions; 
    3737my $command; 
     38my ($promptspath, $readmepath, $licensepath); 
     39my ($path_original,$AudioDirName,$tarfile); 
    3840#################################################################### 
    3941### Directory 
    4042#################################################################### 
    41 #my $AudioDirName="NL-JohanLingen-20080302-das[1496202351].zip"; 
    42 my $path_original ="/home/kmaclean/temp2"; 
    43 my $tarfile ="DE-anonymous-20080303-svq[186061628].zip";  # if undef than attachment does not get processed by LWP! 
    44 my $prefix  ="DE-"; # prefix to remove from submission 
    45 #################################################################### 
    46 print "tarfile1:$path_original/$tarfile\n"; 
    47 if ($tarfile =~ /\[.*\]/) { 
    48 # can't get this to work with Archive::Extract??: 
    49         my $newDirectoryName = $tarfile; 
    50         $newDirectoryName =~ s/$prefix//; 
    51         $newDirectoryName =~ s/\[.*\]//; 
    52         rename("$path_original/$tarfile", "$path_original/$newDirectoryName")  || confess "error:tar file not found, cannot rename: $?";         
    53         $tarfile  = $newDirectoryName; 
     43if (1) { #upload tarfile to WebGUI; Dutch, German 
     44        $path_original ="/home/kmaclean/temp2"; 
     45        $tarfile ="DE-pszacherski-20080319-xfa[1651948606].zip";  # if undef then attachment does not get processed by LWP! 
     46        my $prefix  ="DE-"; # prefix to remove from submission 
     47        #################################################################### 
     48        print "tarfile1:$path_original/$tarfile\n"; 
     49        if ($tarfile =~ /\[.*\]/) { 
     50        # can't get this to work with Archive::Extract??: 
     51                my $newDirectoryName = $tarfile; 
     52                $newDirectoryName =~ s/$prefix//; 
     53                $newDirectoryName =~ s/\[.*\]//; 
     54                rename("$path_original/$tarfile", "$path_original/$newDirectoryName")  || confess "error:tar file not found, cannot rename: $?";         
     55                $tarfile  = $newDirectoryName; 
     56        } 
     57        print "tarfile2:$path_original/$tarfile\n"; 
     58        my @suffixlist = ("tgz", "tar\.gz", "zip"); 
     59        my ($path,$suffix);      
     60        ($AudioDirName,$path,$suffix) = fileparse($tarfile,@suffixlist); 
     61        $AudioDirName =~ s/\.$//; # remove trailing period that fileparse does not remove for some reason?? 
     62        print "AudioDirName:$AudioDirName\n"; 
     63         
     64        my $ae = Archive::Extract->new( archive => "$path_original/$tarfile" ); 
     65        $ae->extract( to => "$path_original/$AudioDirName") or die $ae->error;; 
     66        ##########submission with tarfile as attachment: 
     67        $promptspath = "$path_original/$AudioDirName/prompts.txt"; 
     68        $readmepath = "$path_original/$AudioDirName/readme.txt"; 
     69        $licensepath = "$path_original/$AudioDirName/license.txt"; 
     70} else { #no tarfile to upload, only a link to 1&1 voxforge repository; English only 
     71        ##########fix submission that did not work properly; no tarfile to upload since linking to voxforge1.org 
     72        $path_original ="/mnt/Finch_Root/data/svn-mirror/SpeechCorpus/Trunk/Audio/Original/48kHz_16bit";         
     73        $AudioDirName="JohanLingen-20080306-zqm"; 
     74        $readmepath = "$path_original/$AudioDirName/etc/README"; 
     75        $promptspath = "$path_original/$AudioDirName/etc/prompts-original"; 
     76        $licensepath = "$path_original/$AudioDirName/LICENSE"; 
     77        $tarfile = undef; 
    5478} 
    55 print "tarfile2:$path_original/$tarfile\n"; 
    56 my @suffixlist = ("tgz", "tar\.gz", "zip"); 
    57 my ($AudioDirName,$path,$suffix) = fileparse($tarfile,@suffixlist); 
    58 $AudioDirName =~ s/\.$//; # remove trailing period that fileparse does not remove for some reason?? 
    59 print "AudioDirName:$AudioDirName\n"; 
    60  
    61 my $ae = Archive::Extract->new( archive => "$path_original/$tarfile" ); 
    62 $ae->extract( to => "$path_original/$AudioDirName") or die $ae->error;; 
    63 ##########submission with tarfile as attachment: 
    64 my $promptspath = "$path_original/$AudioDirName/prompts.txt"; 
    65 my $readmepath = "$path_original/$AudioDirName/readme.txt"; 
    66 my $licensepath = "$path_original/$AudioDirName/license.txt"; 
    67  
    68 ##########fix submission that did not work properly; no tarfile to upload since linking to voxforge1.org 
    69 #my $readmepath = "$path_original/$AudioDirName/etc/README"; 
    70 #my $promptspath = "$path_original/$AudioDirName/etc/prompts-original"; 
    71 #my $licensepath = "$path_original/$AudioDirName/LICENSE"; 
    72 #my $tarfile = undef; 
    7379#################################################################### 
    7480### Main 
  • Trunk/Scripts/Mirroring_scripts/VoxForge_config.pm

    r2270 r2471  
    77### Date: 2007.04.23 
    88### Command: ./VoxForge_config.pm 
    9 ### Version: 0.1 
     9### Version: 0.1.1 
    1010###              
    1111### Copyright (C) 2007 Ken MacLean 
     
    2121### GNU General Public License for more details. 
    2222### 
     23### 0.1.1 - 2008.3.20 - refactor to a class 
    2324#################################################################### 
    2425package VoxForge_config; 
    2526use POSIX qw(strftime); 
    2627use strict; 
     28use diagnostics; 
     29use Carp; 
     30#################################################################### 
     31### Class Variables 
     32#################################################################### 
    2733 
     34#################################################################### 
     35### Constructor 
     36#################################################################### 
     37sub new { 
     38        my ($class, $language) = @_; 
     39        my %parms; 
     40        my $self = \%parms; 
     41        bless($self,$class); 
     42        $self->getParms; 
     43        $self->setSpeechCorpusLanguage("EN"); #default = english 
     44        return $self; 
     45} 
     46 
     47#################################################################### 
     48### Class Methods 
     49#################################################################### 
    2850sub getParms { 
    29         my %parms; 
    30         $parms{"testing"} = 0;  
    31         $parms{"debug"} = 1; 
    32         #################################################################### 
    33         # Speech Corpus Location 
    34         $parms{"_SpeechCorpus"} = "/data/svn-mirror/SpeechCorpus/Trunk"; 
    35                 $parms{"AudioDirectory"} = $parms{"_SpeechCorpus"}."/Audio"; 
    36                         $parms{"Main_8kHz_16bit"} = $parms{"AudioDirectory"} . "/Main/8kHz_16bit";      # user metrics uses this 
    37                 $parms{"LexiconDirectory"} = $parms{"_SpeechCorpus"}."/Lexicon"; 
    38                 $parms{"_Prompts"} = $parms{"_SpeechCorpus"}."/Prompts"; 
    39                 #$parms{"PromptsFile"} = $parms{"_Prompts"}."/test_prompts"; # for testing 
    40                 $parms{"PromptsFile_16kHz-16bit"} = $parms{"_Prompts"}."/master_prompts_16kHz-16bit";  
    41                 $parms{"PromptsFile_8kHz-16bit"} = $parms{"_Prompts"}."/master_prompts_8kHz-16bit";  
    42         #################################################################### 
    43         # Speech Corpus Releases directory - none yet ... 
     51        # !!!!!! 
     52        #my %parms; 
     53        my $parms = shift; 
     54        # !!!!! 
     55        $$parms{"testing"} = 0;  
     56        $$parms{"debug"} = 1; 
    4457 
    4558        #################################################################### 
     
    5265        my $mday = strftime "%d", localtime; #  %d      numeric day of the month, with leading zeros (eg 01..31) 
    5366         
    54         $parms{"Nightly_dir"}  = "/data/svn-mirror/Nightly_Builds";  
    55                $parms{"Nightly_dirname"} = $parms{"Nightly_dir"}."/AcousticModel-$year-$mon-$mday";    
    56                $parms{"NightlyAM_16kHz_16bit"} = $parms{"Nightly_dirname"}."/HTK/16kHz_16bit/MFCC_O_D";                                
    57                $parms{"NightlyAM_8kHz_16bit"} = $parms{"Nightly_dirname"}."/HTK/8kHz_16bit/MFCC_O_D";   
     67        $$parms{"Nightly_dir"}  = "/data/svn-mirror/Nightly_Builds";  
     68        $$parms{"Nightly_dirname"} = $$parms{"Nightly_dir"}."/AcousticModel-$year-$mon-$mday";         
     69        $$parms{"NightlyAM_16kHz_16bit"} = $$parms{"Nightly_dirname"}."/HTK/16kHz_16bit/MFCC_O_D";                             
     70        $$parms{"NightlyAM_8kHz_16bit"} = $$parms{"Nightly_dirname"}."/HTK/8kHz_16bit/MFCC_O_D";   
    5871        #################################################################### 
    5972        # Script Location 
    60         $parms{"_Main"} = "/data/svn-mirror/Main/Trunk"; 
    61                $parms{"QSdir"} = $parms{"_Main"}."/QuickStart"; 
    62                $parms{"ScriptsDirectory"} = $parms{"_Main"}."/Scripts";        
    63                        $parms{"AudioScripts_dir"} = $parms{"ScriptsDirectory"}."/Audio_scripts";       
    64                                $parms{"Repository_dir"} = $parms{"AudioScripts_dir"}."/Repository";    
    65                                $parms{"UserSubmission_dir"} = $parms{"AudioScripts_dir"}."/UserSubmission"; 
    66                        $parms{"AcousticModel_scripts"} = $parms{"ScriptsDirectory"}."/AcousticModel_scripts";                  
    67                                $parms{"HTK_dir"} = $parms{"AcousticModel_scripts"}."/HTK/AMCreate_scripts";    
    68                        $parms{"MirroringScripts_dir"} = $parms{"ScriptsDirectory"}."/Mirroring_scripts";       
    69                                        $parms{"TarFiles_dir"} = $parms{"MirroringScripts_dir"}."/TarFiles"; 
    70                                        $parms{"directories2mirror"} = $parms{"MirroringScripts_dir"}."/TarFiles/Audio/directories2mirror";             
    71                        $parms{"Testing_scripts_dir"} = $parms{"ScriptsDirectory"}."/Testing_scripts";          
    72                                $parms{"Nightly_test_dir"} = $parms{"Testing_scripts_dir"}."/NightlyTest";      
    73                        $parms{"Metrics_scripts_dir"} = $parms{"ScriptsDirectory"}."/Metrics_scripts";   
     73        my $main = "/data/svn-mirror/Main/Trunk"; 
     74        $$parms{"QSdir"} = "$main/QuickStart"; 
     75        $$parms{"ScriptsDirectory"} = "$main/Scripts";         
     76        $$parms{"AudioScripts_dir"} = $$parms{"ScriptsDirectory"}."/Audio_scripts";    
     77        $$parms{"Repository_dir"} = $$parms{"AudioScripts_dir"}."/Repository";         
     78        $$parms{"UserSubmission_dir"} = $$parms{"AudioScripts_dir"}."/UserSubmission"; 
     79        $$parms{"AcousticModel_scripts"} = $$parms{"ScriptsDirectory"}."/AcousticModel_scripts";                       
     80        $$parms{"HTK_dir"} = $$parms{"AcousticModel_scripts"}."/HTK/AMCreate_scripts";         
     81        $$parms{"MirroringScripts_dir"} = $$parms{"ScriptsDirectory"}."/Mirroring_scripts";    
     82        $$parms{"TarFiles_dir"} = $$parms{"MirroringScripts_dir"}."/TarFiles"; 
     83        $$parms{"directories2mirror"} = $$parms{"MirroringScripts_dir"}."/TarFiles/Audio/directories2mirror";          
     84        $$parms{"Testing_scripts_dir"} = $$parms{"ScriptsDirectory"}."/Testing_scripts";       
     85        $$parms{"Nightly_test_dir"} = $$parms{"Testing_scripts_dir"}."/NightlyTest";   
     86        $$parms{"Metrics_scripts_dir"} = $$parms{"ScriptsDirectory"}."/Metrics_scripts";   
    7487 
    75 #       $parms{"directories2mirror"} = "TarFiles/Audio/directories2mirror-test";              # for testing 
    76         $parms{"Nightly_Builds-source"} = "/data/svn-mirror/Nightly_Builds";  # hardcoded in makefiles ... 
    77         $parms{"Nightly_Builds-target"} = "/data/svn-tarfiles/Nightly_Builds";                #  hardcoded in makefiles ... 
     88#       $$parms{"directories2mirror"} = "TarFiles/Audio/directories2mirror-test";             # for testing 
     89        $$parms{"Nightly_Builds-source"} = "/data/svn-mirror/Nightly_Builds"; # hardcoded in makefiles ... 
     90        $$parms{"Nightly_Builds-target"} = "/data/svn-tarfiles/Nightly_Builds";               #  hardcoded in makefiles ... 
    7891        #################################################################### 
    7992        # Acoustic Model Releases directory 
    80         $parms{"Tags"}  = "/data/svn-mirror/Main/Tags/Releases/"; 
    81                $parms{"CurrentBuild_dir"} = $parms{"Tags"}."/0_1_1-build726"; 
    82                                $parms{"CurrentAM_16kHz_16bit"} = $parms{"CurrentBuild_dir"}."/AcousticModels/HTK/16kHz-16bit/MFCC_O_D";                                
    83                                $parms{"CurrentAM_8kHz_16bit"} = $parms{"CurrentBuild_dir"}."/AcousticModels/HTK/8kHz-16bit/MFCC_O_D";                                  
     93        $$parms{"Tags"}  = "/data/svn-mirror/Main/Tags/Releases/"; 
     94        $$parms{"CurrentBuild_dir"} = $$parms{"Tags"}."/0_1_1-build726"; 
     95        $$parms{"CurrentAM_16kHz_16bit"} = $$parms{"CurrentBuild_dir"}."/AcousticModels/HTK/16kHz-16bit/MFCC_O_D";                             
     96        $$parms{"CurrentAM_8kHz_16bit"} = $$parms{"CurrentBuild_dir"}."/AcousticModels/HTK/8kHz-16bit/MFCC_O_D";                               
    8497        #################################################################### 
    8598        # UserSubmission Location 
    86         $parms{"UserSubmissions"}  = "/data/UserSubmissions"; 
    87                 $parms{"QuarantineDir"} = $parms{"UserSubmissions"}."/Quarantine"; 
    88                 $parms{"ToBeProcessedDir"} = $parms{"UserSubmissions"}."/ToBeProcessed"; 
     99        $$parms{"QuarantineDir"} = "/data/UserSubmissions/Quarantine"; 
     100        $$parms{"ToBeProcessedDir"} = "/data/UserSubmissions/ToBeProcessed"; 
    89101        #################################################################### 
    90102        # NFS directory from AM create server server to WebGUI server 
    91         $parms{"VF_Metrics_dir"}  = "/data/mnt/domains/voxforge.org/www/public/metrics";  
     103        $$parms{"VF_Metrics_dir"}  = "/data/mnt/domains/voxforge.org/www/public/metrics";  
    92104        #################################################################### 
    93105        # HTK and Julian binary locations 
    94         $parms{"HTKBin"}  = "/usr/local/bin"; 
    95         $parms{"JulianBin"}  = "/usr/local/bin";         
    96         return \%parms; 
     106        $$parms{"HTKBin"}  = "/usr/local/bin"; 
     107        $$parms{"JulianBin"}  = "/usr/local/bin";        
     108        # !!!!!! 
     109        #return \%parms; 
     110        # !!!!!! 
    97111}                
     112 
     113#################################################################### 
     114### Settors 
     115#################################################################### 
     116sub setSpeechCorpusLanguage { 
     117        my ($parms, $language ) = @_; 
     118        #################################################################### 
     119        # Speech Corpus Location 
     120        my $SpeechCorpus; 
     121        if ($language =~ /EN/) { 
     122                $SpeechCorpus  = "/data/svn-mirror/SpeechCorpus/Trunk"; 
     123        } elsif ($language =~ /DE/) { 
     124                $SpeechCorpus = "/data/svn-mirror/Dutch/Trunk"; 
     125        } elsif ($language =~ /NL/) { 
     126                $SpeechCorpus = "/data/svn-mirror/de"; 
     127        } else { 
     128                confess "VoxForge_config error: no language selected\n"; 
     129        } 
     130         
     131        $$parms{"AudioDirectory"} = "$SpeechCorpus/Audio"; 
     132        $$parms{"Main_8kHz_16bit"} = $$parms{"AudioDirectory"} . "/Main/8kHz_16bit";    # user metrics uses this 
     133        $$parms{"LexiconDirectory"} = "$SpeechCorpus/Lexicon"; 
     134        $$parms{"PromptsFile_16kHz-16bit"} = "$SpeechCorpus/Prompts/master_prompts_16kHz-16bit";  
     135        $$parms{"PromptsFile_8kHz-16bit"} = "$SpeechCorpus/Prompts//master_prompts_8kHz-16bit";  
     136        #################################################################### 
     137        # Speech Corpus Releases directory - none yet ... 
     138         
     139} 
     140#################################################################### 
     141### Gettors 
     142#################################################################### 
     143sub getTesting { 
     144        my $self = shift; 
     145        return $self->{"testing"}; 
     146} 
     147 
     148sub getDebug { 
     149        my $self = shift; 
     150        return $self->{"debug"}; 
     151} 
     152 
     153sub getQuarantineDir { 
     154        my $self = shift; 
     155        return $self->{"QuarantineDir"}; 
     156} 
     157 
     158sub getToBeProcessedDir { 
     159        my $self = shift; 
     160        return $self->{"ToBeProcessedDir"}; 
     161} 
     162 
     163sub getAudioDirectory { 
     164        my $self = shift; 
     165        return $self->{"AudioDirectory"}; 
     166} 
     167 
     168sub getMain_8kHz_16bit { 
     169        my $self = shift; 
     170        return $self->{"Main_8kHz_16bit"}; 
     171} 
     172 
     173sub getMain_16kHz_16bit { 
     174        my $self = shift; 
     175        return $self->{"Main_16kHz_16bit"}; 
     176} 
     177 
     178sub getLexiconDirectory { 
     179        my $self = shift; 
     180        return $self->{"LexiconDirectory"}; 
     181} 
     182 
     183sub getPromptsFile_16kHz_16bit { 
     184        my $self = shift; 
     185        return $self->{"PromptsFile_16kHz-16bit"}; 
     186} 
     187 
     188sub getPromptsFile_8kHz_16bit { 
     189        my $self = shift; 
     190        return $self->{"PromptsFile_8kHz-16bit"}; 
     191} 
    981921;       
  • Trunk/Scripts/Mirroring_scripts/VoxForge_config_testing.pm

    r2470 r2471  
    3333        my ($class, $language) = @_; 
    3434        my %parms; 
    35         getParms(\%parms); 
    36         setSpeechCorpusLanguage(\%parms, "EN"); 
    3735        my $self = \%parms; 
    3836        bless($self,$class); 
     37        $self->getParms; 
     38        $self->setSpeechCorpusLanguage("EN"); #default = english 
    3939        return $self; 
    4040} 
     
    4545        # !!!!!! 
    4646        #my %parms; 
    47         my ($parms ) = @_
     47        my $parms = shift
    4848        # !!!!! 
    4949        $$parms{"testing"} = 0;  
     
    6666        #################################################################### 
    6767        # Script Location 
    68         $$parms{"_Main"} = "/home/kmaclean/VoxForge-dev/Main"; 
    69                $$parms{"QSdir"} = $$parms{"_Main"}."/QuickStart"; 
    70                $$parms{"ScriptsDirectory"} = $$parms{"_Main"}."/Scripts";      
    71                        $$parms{"AudioScripts_dir"} = $$parms{"ScriptsDirectory"}."/Audio_scripts";     
    72                                $$parms{"Repository_dir"} = $$parms{"AudioScripts_dir"}."/Repository";  
    73                                $$parms{"UserSubmission_dir"} = $$parms{"AudioScripts_dir"}."/UserSubmission"; 
    74                        $$parms{"AcousticModel_scripts"} = $$parms{"ScriptsDirectory"}."/AcousticModel_scripts";                        
    75                                $$parms{"HTK_dir"} = $$parms{"AcousticModel_scripts"}."/HTK/AMCreate_scripts";  
    76                        $$parms{"MirroringScripts_dir"} = $$parms{"ScriptsDirectory"}."/Mirroring_scripts";     
    77                                        $$parms{"TarFiles_dir"} = $$parms{"MirroringScripts_dir"}."/TarFiles"; 
    78                                        $$parms{"directories2mirror"} = $$parms{"MirroringScripts_dir"}."/TarFiles/Audio/directories2mirror";           
    79                        $$parms{"Testing_scripts_dir"} = $$parms{"ScriptsDirectory"}."/Testing_scripts";        
    80                                $$parms{"Nightly_test_dir"} = $$parms{"Testing_scripts_dir"}."/NightlyTest";    
    81                        $$parms{"Metrics_scripts_dir"} = $$parms{"ScriptsDirectory"}."/Metrics_scripts";   
     68        my $main = "/home/kmaclean/VoxForge-dev/Main"; 
     69        $$parms{"QSdir"} = "$main/QuickStart"; 
     70        $$parms{"ScriptsDirectory"} = "$main/Scripts";         
     71        $$parms{"AudioScripts_dir"} = $$parms{"ScriptsDirectory"}."/Audio_scripts";    
     72        $$parms{"Repository_dir"} = $$parms{"AudioScripts_dir"}."/Repository";         
     73        $$parms{"UserSubmission_dir"} = $$parms{"AudioScripts_dir"}."/UserSubmission"; 
     74        $$parms{"AcousticModel_scripts"} = $$parms{"ScriptsDirectory"}."/AcousticModel_scripts";                       
     75        $$parms{"HTK_dir"} = $$parms{"AcousticModel_scripts"}."/HTK/AMCreate_scripts";         
     76        $$parms{"MirroringScripts_dir"} = $$parms{"ScriptsDirectory"}."/Mirroring_scripts";    
     77        $$parms{"TarFiles_dir"} = $$parms{"MirroringScripts_dir"}."/TarFiles"; 
     78        $$parms{"directories2mirror"} = $$parms{"MirroringScripts_dir"}."/TarFiles/Audio/directories2mirror";          
     79        $$parms{"Testing_scripts_dir"} = $$parms{"ScriptsDirectory"}."/Testing_scripts";       
     80        $$parms{"Nightly_test_dir"} = $$parms{"Testing_scripts_dir"}."/NightlyTest";   
     81        $$parms{"Metrics_scripts_dir"} = $$parms{"ScriptsDirectory"}."/Metrics_scripts";   
    8282 
    8383#       $$parms{"directories2mirror"} = "TarFiles/Audio/directories2mirror-test";               # for testing 
     
    8787        # Speech Corpus Releases directory - none yet ... 
    8888        $$parms{"Tags"}  = "/data/svn-mirror/Main/Tags/Releases/"; 
    89                $$parms{"CurrentBuild_dir"} = $$parms{"Tags"}."/0_1_1-build726"; 
    90                                $$parms{"CurrentAM_16kHz_16bit"} = $$parms{"CurrentBuild_dir"}."/AcousticModels/HTK/16kHz-16bit/MFCC_O_D";                              
    91                                $$parms{"CurrentAM_8kHz_16bit"} = $$parms{"CurrentBuild_dir"}."/AcousticModels/HTK/8kHz-16bit/MFCC_O_D";                                
     89        $$parms{"CurrentBuild_dir"} = $$parms{"Tags"}."/0_1_1-build726"; 
     90        $$parms{"CurrentAM_16kHz_16bit"} = $$parms{"CurrentBuild_dir"}."/AcousticModels/HTK/16kHz-16bit/MFCC_O_D";                             
     91        $$parms{"CurrentAM_8kHz_16bit"} = $$parms{"CurrentBuild_dir"}."/AcousticModels/HTK/8kHz-16bit/MFCC_O_D";                               
    9292        #################################################################### 
    9393        # UserSubmission Location 
     
    119119        } elsif ($language =~ /NL/) { 
    120120                $SpeechCorpus = "/home/kmaclean/VoxForge-dev/Dutch"; 
     121        } else { 
     122                confess "VoxForge_config error: no language selected\n"; 
    121123        } 
    122124                 
     
    132134### Gettors 
    133135#################################################################### 
     136sub getTesting { 
     137        my $self = shift; 
     138        return $self->{"testing"}; 
     139} 
     140 
     141sub getDebug { 
     142        my $self = shift; 
     143        return $self->{"debug"}; 
     144} 
     145 
    134146sub getQuarantineDir { 
    135147        my $self = shift; 
    136148        return $self->{"Quarantine