Mercurial > hg > aimc
changeset 144:f8ace1ee8782
- Support for training on random SNRs
author | tom@acousticscale.org |
---|---|
date | Sun, 07 Nov 2010 07:38:20 +0000 |
parents | a915f8e28cad |
children | 48e5fc566441 |
files | experiments/scripts/cnbh-syllables/run_training_and_testing/randomize_snrs.py experiments/scripts/master.sh src/Modules/Input/ModuleFileInput.cc src/Modules/Output/FileOutputHTK.cc |
diffstat | 4 files changed, 113 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/experiments/scripts/cnbh-syllables/run_training_and_testing/randomize_snrs.py Sun Nov 07 07:38:20 2010 +0000 @@ -0,0 +1,92 @@ +#!/usr/bin/env python +# encoding: utf-8 +""" +randomize_snrs.py + +Created by Thomas Walters on 2010-11-06. +""" + +import sys +import getopt +import re +import random + +help_message = ''' +Replace a string in each of two files with a string randomly selected from a list. +''' + +replacement_strings = ('snr_0dB', + 'snr_3dB', + 'snr_6dB', + 'snr_9dB', + 'snr_12dB', + 'snr_15dB', + 'snr_18dB', + 'snr_21dB', + 'snr_24dB', + 'snr_27dB', + 'snr_30dB', + 'snr_33dB', + 'snr_36dB', + 'snr_39dB', + 'snr_42dB', + 'snr_45dB', + 'clean') + +class Usage(Exception): + def __init__(self, msg): + self.msg = msg + + +def main(argv=None): + if argv is None: + argv = sys.argv + try: + try: + opts, args = getopt.getopt(argv[1:], "hs:f:m:o:p:", ["help", "string_to_replace=", "input_script_file=", "input_mlf=", "output_script_file=", "output_mlf="]) + except getopt.error, msg: + raise Usage(msg) + + # option processing + string_to_replace = "" + script_file = "" + ml_file = "" + output_script_file = "" + output_ml_file = "" + for option, value in opts: + if option in ("-h", "--help"): + raise Usage(help_message) + if option in ("-s", "--string_to_replace"): + string_to_replace = value + if option in ("-f", "--input_script_file"): + script_file = value + if option in ("-o", "--outut_script_file"): + output_script_file = value + if option in ("-p", "--output_mlf"): + output_ml_file = value + if option in ("-m", "--input_mlf"): + ml_file = value + + except Usage, err: + print >> sys.stderr, sys.argv[0].split("/")[-1] + ": " + str(err.msg) + print >> sys.stderr, "\t for help use --help" + return 2 + + script = open(script_file, 'r') + mlf = open(ml_file, 'r') + out_script = open(output_script_file, 'w') + out_mlf = open(output_ml_file, 'w') + out_mlf.write(mlf.readline()) + for l in script: + replacement = random.choice(replacement_strings) + out_script.write(re.sub(string_to_replace, replacement, l)) + out_mlf.write(re.sub(string_to_replace, replacement, mlf.readline())) + out_mlf.write(mlf.readline()) + out_mlf.write(mlf.readline()) + out_mlf.write(mlf.readline()) + out_mlf.write(mlf.readline()) + + + +if __name__ == "__main__": + sys.exit(main())
--- a/experiments/scripts/master.sh Thu Nov 04 21:28:26 2010 +0000 +++ b/experiments/scripts/master.sh Sun Nov 07 07:38:20 2010 +0000 @@ -158,8 +158,18 @@ $FEATURES_DIR \ $FEATURE_SUFFIX -TRAINING_SCRIPT=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/$TRAINING_SNR/$TALKERS/training_script -TRAINING_MASTER_LABEL_FILE=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/$TRAINING_SNR/$TALKERS/training_master_label_file +if [ $TRAINING_SNR == 'random' ]; then + TRAINING_SCRIPT=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/clean/$TALKERS/training_script + TRAINING_MASTER_LABEL_FILE=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/clean/$TALKERS/training_master_label_file + RANDOMIZED_TRAINING_SCRIPT=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/clean/$TALKERS/training_script_randomized + RANDOMIZED_TRAINING_MASTER_LABEL_FILE=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/clean/$TALKERS/training_master_label_file_randomized + ./cnbh-syllables/run_training_and_testing/train_test_sets/randomize_snrs.py -s clean -f $TRAINING_SCRIPT -m $TRAINING_MASTER_LABEL_FILE -o $RANDOMIZED_TRAINING_SCRIPT -p $RANDOMIZED_TRAINING_MASTER_LABEL_FILE + TRAINING_SCRIPT=$RANDOMIZED_TRAINING_SCRIPT + TRAINING_MASTER_LABEL_FILE=$RANDOMIZED_TRAINING_MASTER_LABEL_FILE +else + TRAINING_SCRIPT=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/$TRAINING_SNR/$TALKERS/training_script + TRAINING_MASTER_LABEL_FILE=$HMMS_ROOT/$FEATURE_CLASS/$FEATURE_SUFFIX/$TRAINING_SNR/$TALKERS/training_master_label_file +fi TESTING_SCRIPT=$WORK/testing_script TESTING_MASTER_LABEL_FILE=$WORK/testing_master_label_file @@ -191,7 +201,7 @@ FEATURE_SIZE=39 FEATURE_TYPE=MFCC_0_D_A TALKERS=inner_talkers -TRAINING_SNR=clean +TRAINING_SNR=random run_train_test ######################## @@ -204,7 +214,7 @@ FEATURE_TYPE=MFCC_0_D_A TALKERS=outer_talkers TRAINING_SNR=clean -run_train_test +#run_train_test ######################## ######################## @@ -214,7 +224,7 @@ FEATURE_SIZE=39 FEATURE_TYPE=MFCC_0_D_A TALKERS=inner_talkers -TRAINING_SNR=clean +TRAINING_SNR=random run_train_test ######################## @@ -226,8 +236,8 @@ FEATURE_SIZE=39 FEATURE_TYPE=MFCC_0_D_A TALKERS=outer_talkers -TRAINING_SNR=clean -run_train_test +TRAINING_SNR=random +#run_train_test ######################## AIM_FEATURE_SUFFIXES="slice_1_no_cutoff ssi_profile_no_cutoff slice_1_cutoff ssi_profile_cutoff smooth_nap_profile" @@ -241,7 +251,7 @@ FEATURE_SIZE=12 FEATURE_TYPE=USER_E_D_A TALKERS=inner_talkers -TRAINING_SNR=clean +TRAINING_SNR=random run_train_test ######################## @@ -254,7 +264,7 @@ FEATURE_TYPE=USER_E_D_A TALKERS=outer_talkers TRAINING_SNR=clean -run_train_test +#run_train_test ######################## done
--- a/src/Modules/Input/ModuleFileInput.cc Thu Nov 04 21:28:26 2010 +0000 +++ b/src/Modules/Input/ModuleFileInput.cc Sun Nov 07 07:38:20 2010 +0000 @@ -113,7 +113,7 @@ } } - // If the number of saples read is less than the buffer length, the end + // If the number of samples read is less than the buffer length, the end // of the file has been reached. if (read < buffer_length_) { // Zero samples at end
--- a/src/Modules/Output/FileOutputHTK.cc Thu Nov 04 21:28:26 2010 +0000 +++ b/src/Modules/Output/FileOutputHTK.cc Sun Nov 07 07:38:20 2010 +0000 @@ -145,7 +145,7 @@ if (!header_written_) { LOG_ERROR(_T("No header has been written on the output file yet. Please " "call FileOutputHTK::Initialize() or FileOutputHTK::Reset() " - " before calling FileOutputHTK::Process()")); + "before calling FileOutputHTK::Process()")); return; } float s;