Commit 9456401f804acd7976a25465be9d72b733fc4e88
1 parent
135404bcf3
Exists in
master
modify info and log file system in SecondPass and ConPass
Showing 4 changed files with 134 additions and 64 deletions Side-by-side Diff
main_tools/ConfPass.sh
| ... | ... | @@ -34,7 +34,7 @@ |
| 34 | 34 | then |
| 35 | 35 | . $CONFPASS_CONFIG_FILE |
| 36 | 36 | else |
| 37 | - echo "ERROR : Can't find configuration file $CONFPASS_CONFIG_FILE" >&2 | |
| 37 | + echo "ERROR : Can't find configuration file $CONFPASS_CONFIG_FILE" > /dev/stderr | |
| 38 | 38 | exit 1 |
| 39 | 39 | fi |
| 40 | 40 | |
| ... | ... | @@ -67,7 +67,7 @@ |
| 67 | 67 | RERUN=1 |
| 68 | 68 | ;; |
| 69 | 69 | :) |
| 70 | - echo "Option -$OPTARG requires an argument." >&2 | |
| 70 | + echo "Option -$OPTARG requires an argument." > /dev/stderr | |
| 71 | 71 | exit 1 |
| 72 | 72 | ;; |
| 73 | 73 | \?) |
| 74 | 74 | |
| 75 | 75 | |
| ... | ... | @@ -123,17 +123,16 @@ |
| 123 | 123 | USF_FILE=${INPUT_DIR}/${BASENAME}.${RES_NAME}.usf |
| 124 | 124 | CONF_DIR="$OUTPUT_DIR/conf/$RES_NAME" |
| 125 | 125 | RES_CONF_DIR="$OUTPUT_DIR/conf/$RES_NAME/scored_ctm" |
| 126 | -LOGFILE="$(dirname $OUTPUT_DIR)/info_conf.log" | |
| 127 | -ERRORFILE="$(dirname $OUTPUT_DIR)/error_conf.log" | |
| 126 | +LOGFILE="${OUTPUT_DIR_BASENAME}/info_conf.log" | |
| 127 | +ERRORFILE="${OUTPUT_DIR_BASENAME}/error_conf.log" | |
| 128 | 128 | |
| 129 | - | |
| 130 | 129 | #------------------# |
| 131 | 130 | # Create Workspace # |
| 132 | 131 | #------------------# |
| 133 | 132 | # Lock directory |
| 134 | 133 | if [ -e "$OUTPUT_DIR/CONFPASS.lock" ] && [ $RERUN -eq 0 ] |
| 135 | 134 | then |
| 136 | - print_info "Confpass lock $INPUT_DIR -> exit" 1 | |
| 135 | + print_warn "[${BASENAME}] Confpass is locked -> exit" 2 | |
| 137 | 136 | exit 1 |
| 138 | 137 | fi |
| 139 | 138 | rm "$OUTPUT_DIR/CONFPASS.unlock" > /dev/null 2>&1 |
| 140 | 139 | |
| 141 | 140 | |
| 142 | 141 | |
| 143 | 142 | |
| 144 | 143 | |
| 145 | 144 | |
| 146 | 145 | |
| 147 | 146 | |
| 148 | 147 | |
| ... | ... | @@ -142,43 +141,71 @@ |
| 142 | 141 | if [ $RERUN -eq 1 ]; then rm $USF_FILE > /dev/null 2>&1; fi |
| 143 | 142 | mkdir -p $CONF_DIR > /dev/null 2>&1 |
| 144 | 143 | mkdir -p $RES_CONF_DIR > /dev/null 2>&1 |
| 144 | +rm $LOGFILE $ERRORFILE > /dev/null 2>&1 | |
| 145 | 145 | |
| 146 | 146 | #---------------# |
| 147 | 147 | # Check Pass # |
| 148 | 148 | #---------------# |
| 149 | - | |
| 150 | -# if usf contains more than 40% of 0.600 confidence -> usf error | |
| 149 | +print_info "[${BASENAME}] Check Conf Pass directory ${RES_NAME}" 1 | |
| 150 | +# if usf contains more than 49% of 0.600 confidence -> usf error | |
| 151 | 151 | if [ -s $USF_FILE ] |
| 152 | 152 | then |
| 153 | 153 | conftozerosix=$(grep -c -E 'confidence="0.600"' "${USF_FILE}") |
| 154 | - conftoother=$(grep -c -v -E 'confidence="0.600"' "${USF_FILE}") | |
| 155 | - if [ $conftoother -gt 0 ] | |
| 154 | + confall=$(grep -c -E 'confidence=' "${USF_FILE}") | |
| 155 | + if [ $confall -gt 0 ] | |
| 156 | 156 | then |
| 157 | - pourcentageofzerosix=$((($conftozerosix*100)/$conftoother)) | |
| 158 | - if [ $pourcentageofzerosix -gt 40 ] | |
| 157 | + pourcentageofzerosix=$((($conftozerosix*100)/$confall)) | |
| 158 | + if [ $pourcentageofzerosix -gt 49 ] | |
| 159 | 159 | then |
| 160 | - print_warn "${USF_FILE} got $pourcentageofzerosix% of 0.6 confidence" 1 | |
| 160 | + print_warn "[${BASENAME}] ${BASENAME}.${RES_NAME}.usf got $pourcentageofzerosix% of 0.600 confidence" 2 | |
| 161 | + print_info "[${BASENAME}] bad usf ${RES_NAME}, will do it again" 1 | |
| 161 | 162 | mv "${USF_FILE}" "${USF_FILE}.back" |
| 162 | 163 | rm -r $CONF_DIR > /dev/null 2>&1 |
| 163 | 164 | else |
| 164 | - print_warn "${USF_FILE} already done, skipping it" 1 | |
| 165 | + print_warn "[${BASENAME}] ${USF_FILE} already done, skipping it" 1 | |
| 165 | 166 | exit 0 |
| 166 | 167 | fi |
| 167 | 168 | fi |
| 169 | +else | |
| 170 | + print_info "[${BASENAME}] No USF file already done, continue..." 1 | |
| 168 | 171 | fi |
| 169 | 172 | |
| 173 | +# Check if treil are here | |
| 174 | +nbres_p1=$(cat ${INPUT_DIR}/plp.lst | wc -l) | |
| 175 | +nbtreil_p=$(ls $RES_P/*.treil 2> /dev/null | wc -l) | |
| 176 | +if [ $nbtreil_p -eq 0 ] | |
| 177 | +then | |
| 178 | + print_error "[${BASENAME}] No ${RES_NAME} Pass, No .treil -> exit ConfPass" | |
| 179 | + if [ $CHECK -eq 1 ]; then print_log_file $ERRORFILE "No ${RES_NAME} Pass, No .treil -> exit ConfPass" ;fi | |
| 180 | + exit 1 | |
| 181 | +else | |
| 182 | + #Check if more then 89% of treil are done | |
| 183 | + if [ $nbres_p1 -gt 0 ] | |
| 184 | + then | |
| 185 | + pourcentage=$((($nbtreil_p*100)/$nbres_p1)) | |
| 186 | + if [ $pourcentage -gt 89 ] | |
| 187 | + then | |
| 188 | + print_info "[${BASENAME}] ${RES_NAME}/*.treil are here" 1 | |
| 189 | + else | |
| 190 | + print_warn "[${BASENAME}] not enough ${RES_NAME} treil" 2 | |
| 191 | + if [ $CHECK -eq 1 ]; then print_log_file $ERRORFILE "Not enough ${RES_NAME} treil " | |
| 192 | + fi | |
| 193 | + fi | |
| 194 | +fi | |
| 195 | + | |
| 170 | 196 | #------# |
| 171 | 197 | # Save # |
| 172 | 198 | #------# |
| 173 | 199 | cp $CONFPASS_CONFIG_FILE $OUTPUT_DIR/ConfPass.cfg |
| 174 | 200 | echo "RES_CONF_DIR=$RES_CONF_DIR" >> $OUTPUT_DIR/ConfPass.cfg |
| 175 | 201 | echo "CONF_DIR=$CONF_DIR" >> $OUTPUT_DIR/ConfPass.cfg |
| 202 | +print_info "[${BASENAME}] Save config in $OUTPUT_DIR_BASENAME/ConfPass.cfg" 1 | |
| 176 | 203 | |
| 177 | 204 | #--------------------# |
| 178 | 205 | # CONFIDENCE MEASURE # |
| 179 | 206 | #--------------------# |
| 180 | 207 | |
| 181 | -# Check pourcentage of scored_ctm already done, if < 85% done confidence measure | |
| 208 | +# Check pourcentage of scored_ctm already done, if < 85% do confidence measure | |
| 182 | 209 | nbres_p=$(ls ${RES_P}/*.treil | wc -l) |
| 183 | 210 | nbconf=$(ls ${RES_CONF_DIR}/*.res | wc -l) |
| 184 | 211 | if [ $nbres_p -gt 0 ] |
| 185 | 212 | |
| ... | ... | @@ -186,11 +213,11 @@ |
| 186 | 213 | pourcentageres=$((($nbconf*100)/$nbres_p)) |
| 187 | 214 | if [ $pourcentageres -lt 85 ] |
| 188 | 215 | then |
| 189 | - print_info "Calcul Confidence $INPUT_DIR $RES_NAME" 1 | |
| 216 | + print_info "[${BASENAME}] Calcul Confidence $INPUT_DIR $RES_NAME" 1 | |
| 190 | 217 | $MAIN_SCRIPT_PATH/ConfidenceMeasure.sh $INPUT_DIR $RES_NAME $REDIRECTION_OUTPUT |
| 191 | 218 | |
| 192 | 219 | else |
| 193 | - print_info "skipping Confidence Calcul $INPUT_DIR/$RES_NAME" 1 | |
| 220 | + print_info "[${BASENAME}] Skipping Confidence Calcul $INPUT_DIR/$RES_NAME" 1 | |
| 194 | 221 | fi |
| 195 | 222 | fi |
| 196 | 223 | |
| 197 | 224 | |
| 198 | 225 | |
| ... | ... | @@ -198,16 +225,22 @@ |
| 198 | 225 | if [ $CHECK -eq 1 ] |
| 199 | 226 | then |
| 200 | 227 | nbconf=$(ls ${RES_CONF_DIR}/*.res | wc -l) |
| 201 | - if [ $nbres_p -ne $nbconf ];then echo "WARN : ConfPass $INPUT_DIR/$RES_NAME number of res files differ" >> $LOGFILE;fi | |
| 228 | + if [ $nbres_p -ne $nbconf ] | |
| 229 | + then | |
| 230 | + print_warn "WARN : ConfPass $INPUT_DIR/$RES_NAME number of res files differ" 2 | |
| 231 | + print_log_file $LOGFILE "WARN : ConfPass $INPUT_DIR/$RES_NAME number of res files differ" | |
| 232 | + fi | |
| 202 | 233 | fi |
| 203 | 234 | |
| 204 | 235 | #---------------------------# |
| 205 | 236 | # FROM RES WITH CONF => USF # |
| 206 | 237 | #---------------------------# |
| 238 | +print_info "[${BASENAME}] Create USF file for $RES_P" 1 | |
| 207 | 239 | for f in `ls ${RES_CONF_DIR}`; do $SCRIPT_PATH/formatRES.pl $RES_CONF_DIR/$f; done |
| 208 | 240 | # create USF configuration file |
| 209 | 241 | echo -e "name $AUTHOR\nfileName $BASENAME\nfileExt wav\nsegFile $OUTPUT_DIR/$BASENAME.seg" > $OUTPUT_DIR/$BASENAME.usf_cfg |
| 210 | 242 | # create USF file |
| 243 | +print_info "$SCRIPT_PATH/res2out.pl --dir $RES_CONF_DIR --format USF --ignore $RULES/asupp --out $USF_FILE.tmp --usf_config $OUTPUT_DIR/$BASENAME.usf_cfg $REDIRECTION_OUTPUT" 3 | |
| 211 | 244 | $SCRIPT_PATH/res2out.pl --dir $RES_CONF_DIR --format USF --ignore $RULES/asupp --out $USF_FILE.tmp --usf_config $OUTPUT_DIR/$BASENAME.usf_cfg $REDIRECTION_OUTPUT |
| 212 | 245 | rm $OUTPUT_DIR/$BASENAME.usf_cfg > /dev/null 2>&1 |
| 213 | 246 | cat $USF_FILE.tmp | $SCRIPT_PATH/BdlexUC.pl $RULES/basic -f > $USF_FILE |
| ... | ... | @@ -222,7 +255,8 @@ |
| 222 | 255 | check_conf_pass_usf "$OUTPUT_DIR/$BASENAME.usf" |
| 223 | 256 | if [ $? -eq 1 ] |
| 224 | 257 | then |
| 225 | - echo -e "ERROR : Wrong confidence measures in USF file : $OUTPUT_DIR/$BASENAME.usf" >> $ERRORFILE | |
| 258 | + print_error "[${BASENAME}] Wrong confidence measures in USF file : $OUTPUT_DIR/$BASENAME.usf" | |
| 259 | + print_log_file $ERRORFILE "ERROR : Wrong confidence measures in USF file : $OUTPUT_DIR/$BASENAME.usf" | |
| 226 | 260 | exit 1 |
| 227 | 261 | fi |
| 228 | 262 | fi |
| ... | ... | @@ -231,8 +265,7 @@ |
| 231 | 265 | # CLOSE # |
| 232 | 266 | #-------# |
| 233 | 267 | # Seem OK |
| 234 | -print_info "<= End $BASENAME ConfPass | $(date +'%d/%m/%y %H:%M:%S')" 1 | |
| 235 | -echo -e "ConfPass $BASENAME OK" >> $LOGFILE | |
| 268 | +print_info "[${BASENAME}] <= ConfPass End | $(date +'%d/%m/%y %H:%M:%S')" 1 | |
| 236 | 269 | |
| 237 | 270 | # unlock directory |
| 238 | 271 | mv "$OUTPUT_DIR/CONFPASS.lock" "$OUTPUT_DIR/CONFPASS.unlock" |
main_tools/FirstPass.sh
| ... | ... | @@ -71,11 +71,11 @@ |
| 71 | 71 | RERUN=1 |
| 72 | 72 | ;; |
| 73 | 73 | :) |
| 74 | - echo "Option -$OPTARG requires an argument." >&2 | |
| 74 | + echo "Option -$OPTARG requires an argument." > /dev/stderr | |
| 75 | 75 | exit 1 |
| 76 | 76 | ;; |
| 77 | 77 | \?) |
| 78 | - echo "BAD USAGE : unknow opton -$OPTARG" | |
| 78 | + echo "BAD USAGE : unknow opton -$OPTARG" | |
| 79 | 79 | exit 1 |
| 80 | 80 | ;; |
| 81 | 81 | esac |
| ... | ... | @@ -182,7 +182,7 @@ |
| 182 | 182 | echo "SEG_FILE=$SEG_FILE" >> $OUTPUT_DIR_BASENAME/FirstPass.cfg |
| 183 | 183 | echo "LBL_FILE=$LBL_FILE" >> $OUTPUT_DIR_BASENAME/FirstPass.cfg |
| 184 | 184 | echo "RES_DIR=$RES_DIR" >> $OUTPUT_DIR_BASENAME/FirstPass.cfg |
| 185 | -print_info "[${BASENAME}] save config in $OUTPUT_DIR_BASENAME/FirstPass.cfg" 1 | |
| 185 | +print_info "[${BASENAME}] Save config in $OUTPUT_DIR_BASENAME/FirstPass.cfg" 1 | |
| 186 | 186 | |
| 187 | 187 | #-------------------------# |
| 188 | 188 | # Check Audio File Format # |
| ... | ... | @@ -248,7 +248,7 @@ |
| 248 | 248 | if [ $CHECK -eq 1 ] && ( [ ! -e $SEG_FILE ] || [ -z $SEG_FILE ] ) |
| 249 | 249 | then |
| 250 | 250 | print_log_file "$ERRORFILE" "ERROR [$(date +'%d/%m/%y %H:%M:%S')] Creating SEG file : $SEG_FILE" |
| 251 | - echo "[${BASENAME}] ERROR : check $ERRORFILE file" > /dev/stderr | |
| 251 | + print_error "[${BASENAME}] ERROR : check $ERRORFILE file" | |
| 252 | 252 | exit 1 |
| 253 | 253 | fi |
| 254 | 254 | |
| ... | ... | @@ -261,7 +261,7 @@ |
| 261 | 261 | if [ $CHECK -eq 1 ] && ( [ ! -e $LBL_FILE ] || [ -z $LBL_FILE ] ) |
| 262 | 262 | then |
| 263 | 263 | print_log_file "$ERRORFILE" "ERROR [$(date +'%d/%m/%y %H:%M:%S')] Creating LBL file : $LBL_FILE" |
| 264 | - echo "[${BASENAME}] ERROR : check $ERRORFILE file" > /dev/stderr | |
| 264 | + print_error "[${BASENAME}] ERROR : check $ERRORFILE file" | |
| 265 | 265 | exit 1 |
| 266 | 266 | fi |
| 267 | 267 | |
| ... | ... | @@ -280,7 +280,7 @@ |
| 280 | 280 | if [ $? -eq 1 ] |
| 281 | 281 | then |
| 282 | 282 | print_log_file $ERRORFILE "ERROR [$(date +'%d/%m/%y %H:%M:%S')] $PLP wrong number of .plp files" |
| 283 | - echo "[${BASENAME}] ERROR : check $ERRORFILE file" > /dev/stderr | |
| 283 | + print_error "[${BASENAME}] ERROR : check $ERRORFILE file" | |
| 284 | 284 | exit 1 |
| 285 | 285 | fi |
| 286 | 286 | fi |
| ... | ... | @@ -371,7 +371,7 @@ |
| 371 | 371 | then |
| 372 | 372 | print_error "[${BASENAME}] ERROR : check $ERRORFILE" |
| 373 | 373 | print_log_file "$ERRORFILE" "ERROR : Segs not done [" |
| 374 | - diff ${OUTPUT_DIR_BASENAME}/plp.lst ${OUTPUT_DIR_BASENAME}/.tmp | grep -e "^< " | sed -e "s/< //" >> $ERROFILE | |
| 374 | + diff ${OUTPUT_DIR_BASENAME}/plp.lst ${OUTPUT_DIR_BASENAME}/.tmp | grep -e "^< " | sed -e "s/< //" >> $ERRORFILE | |
| 375 | 375 | print_log_file "$ERRORFILE" "] $pourcentage% $BASENAME" |
| 376 | 376 | else |
| 377 | 377 | print_log_file "$LOGFILE" "P1 OK $BASENAME | $(date +'%d/%m/%y %H:%M:%S')" |
main_tools/SecondPass.sh
| ... | ... | @@ -33,7 +33,8 @@ |
| 33 | 33 | then |
| 34 | 34 | . $SECONDPASS_CONFIG_FILE |
| 35 | 35 | else |
| 36 | - echo "ERROR : Can't find configuration file $SECONDPASS_CONFIG_FILE" >&2 | |
| 36 | + echo "ERROR : Can't find configuration file $SECONDPASS_CONFIG_FILE" > /dev/stderr | |
| 37 | + echo "exit" > /dev/stderr | |
| 37 | 38 | exit 1 |
| 38 | 39 | fi |
| 39 | 40 | |
| 40 | 41 | |
| ... | ... | @@ -70,11 +71,11 @@ |
| 70 | 71 | RERUN=1 |
| 71 | 72 | ;; |
| 72 | 73 | :) |
| 73 | - echo "Option -$OPTARG requires an argument." >&2 | |
| 74 | + echo "Option -$OPTARG requires an argument." > /dev/stderr | |
| 74 | 75 | exit 1 |
| 75 | 76 | ;; |
| 76 | 77 | \?) |
| 77 | - echo "BAD USAGE : unknow opton -$OPTARG" | |
| 78 | + echo "BAD USAGE : unknow opton -$OPTARG" > /dev/stderr | |
| 78 | 79 | exit 1 |
| 79 | 80 | ;; |
| 80 | 81 | esac |
| ... | ... | @@ -111,6 +112,8 @@ |
| 111 | 112 | exit 1 |
| 112 | 113 | fi |
| 113 | 114 | |
| 115 | +print_info "[${BASENAME}] => P2 start | $(date +'%d/%m/%y %H:%M:%S')" 1 | |
| 116 | + | |
| 114 | 117 | #-------------# |
| 115 | 118 | # GLOBAL VARS # |
| 116 | 119 | #-------------# |
| 117 | 120 | |
| 118 | 121 | |
| 119 | 122 | |
| 120 | 123 | |
| 121 | 124 | |
| 122 | 125 | |
| 123 | 126 | |
| ... | ... | @@ -128,44 +131,46 @@ |
| 128 | 131 | RES_DIR_P1=$(cat $FIRSTPASS_CONFIG_FILE | grep "RES_DIR=" | cut -f2 -d"=") |
| 129 | 132 | else |
| 130 | 133 | print_error "can't find $FIRSTPASS_CONFIG_FILE file" |
| 134 | + print_error "exit" | |
| 131 | 135 | exit 1 |
| 132 | 136 | fi |
| 133 | 137 | LST=$OUTPUT_DIR_BASENAME"/lists" |
| 134 | 138 | HMM=$OUTPUT_DIR_BASENAME"/hmm/" |
| 135 | 139 | RES_DIR=$OUTPUT_DIR_BASENAME"/res_p2" |
| 136 | -LOGFILE="$OUTPUT_DIR/info_p2.log" | |
| 137 | -ERRORFILE="$OUTPUT_DIR/error_p2.log" | |
| 140 | +LOGFILE="$OUTPUT_DIR_BASENAME/info_p2.log" | |
| 141 | +ERRORFILE="$OUTPUT_DIR_BASENAME/error_p2.log" | |
| 138 | 142 | |
| 139 | 143 | #------------------# |
| 140 | 144 | # Create WORKSPACE # |
| 141 | 145 | #------------------# |
| 142 | 146 | |
| 143 | 147 | # Lock directory |
| 144 | -if [ -e $OUTPUT_DIR_BASENAME/SECONDPASS.lock ] && [ $RERUN -eq 0 ]; then exit 1;fi | |
| 148 | +if [ -e $OUTPUT_DIR_BASENAME/SECONDPASS.lock ] && [ $RERUN -eq 0 ]; then print_warn "[${BASENAME}] SECONDPASS is locked -> exit" 2; exit 1;fi | |
| 145 | 149 | rm "$OUTPUT_DIR_BASENAME/SECONDPASS.unlock" > /dev/null 2>&1 |
| 146 | 150 | touch "$OUTPUT_DIR_BASENAME/SECONDPASS.lock" > /dev/null 2>&1 |
| 147 | 151 | |
| 148 | 152 | rm -r $LST > /dev/null 2>&1 |
| 149 | 153 | mkdir -p $LST |
| 150 | -print_info "Make directory $LST" 1 | |
| 154 | +print_info "[${BASENAME}] Make directory $LST" 2 | |
| 151 | 155 | if [ $RERUN -eq 0 ]; then rm -r $HMM > /dev/null 2>&1; fi |
| 152 | 156 | mkdir -p $HMM |
| 153 | -print_info "Make directory $HMM" 1 | |
| 157 | +print_info "[${BASENAME}] Make directory $HMM" 2 | |
| 154 | 158 | if [ $RERUN -eq 0 ]; then rm -r $RES_DIR > /dev/null 2>&1; fi |
| 155 | 159 | mkdir -p $RES_DIR > /dev/null 2>&1 |
| 156 | -print_info "Make directory $RES_DIR" 1 | |
| 160 | +print_info "[${BASENAME}] Make directory $RES_DIR" 2 | |
| 161 | +rm $LOGFILE $ERRORFILE > /dev/null 2>&1 | |
| 157 | 162 | |
| 158 | 163 | #-------------------# |
| 159 | 164 | # Check Pass # |
| 160 | 165 | #-------------------# |
| 161 | -print_info "Check Pass 2 directory" 1 | |
| 166 | +print_info "[${BASENAME}] Check Pass 2 directory" 1 | |
| 162 | 167 | for treil in $(ls $RES_DIR/ | grep treil) |
| 163 | 168 | do |
| 164 | 169 | if [ ! -s $RES_DIR/$treil ] |
| 165 | 170 | then |
| 166 | 171 | bn = $(basename $treil ".treil") |
| 167 | 172 | rm $RES_DIR/$treil $RES_DIR/$bn.seg $RES_DIR/$bn.res $RES_DIR/$bn.pho 2> /dev/null |
| 168 | - print_info "$RES_DIR/$bn.* files deleted.." 2 | |
| 173 | + print_info "[${BASENAME}] $RES_DIR/$bn.* files deleted.." 2 | |
| 169 | 174 | fi |
| 170 | 175 | done |
| 171 | 176 | |
| 172 | 177 | |
| ... | ... | @@ -177,9 +182,13 @@ |
| 177 | 182 | pourcentage=$((($nbtreil_p2*100)/$nbres_p1)) |
| 178 | 183 | if [ $pourcentage -gt 89 ] |
| 179 | 184 | then |
| 180 | - echo "Lattice already done, skipping $BASENAME" | |
| 185 | + print_info "[${BASENAME}] Lattice already done, skipping $BASENAME" 1 | |
| 181 | 186 | exit 0 |
| 182 | 187 | fi |
| 188 | +else | |
| 189 | + print_error "[${BASENAME}] No First Pass, No .res -> exit P2" | |
| 190 | + if [ $CHECK -eq 1 ]; then print_log_file $ERRORFILE "No First Pass, No .res -> exit P2" ;fi | |
| 191 | + exit 1 | |
| 183 | 192 | fi |
| 184 | 193 | |
| 185 | 194 | #--------------------# |
| 186 | 195 | |
| 187 | 196 | |
| ... | ... | @@ -195,20 +204,20 @@ |
| 195 | 204 | echo "LST=$LST" >> $OUTPUT_DIR_BASENAME/SecondPass.cfg |
| 196 | 205 | echo "HMM=$HMM" >> $OUTPUT_DIR_BASENAME/SecondPass.cfg |
| 197 | 206 | echo "RES_DIR=$RES_DIR" >> $OUTPUT_DIR_BASENAME/SecondPass.cfg |
| 198 | -print_info "save config in $OUTPUT_DIR_BASENAME/SecondPass.cfg" 1 | |
| 207 | +print_info "[${BASENAME}] Save config in $OUTPUT_DIR_BASENAME/SecondPass.cfg" 1 | |
| 199 | 208 | |
| 200 | 209 | |
| 201 | 210 | #--------------------------------------------------# |
| 202 | 211 | # Speaker Adaptation (AM) + Second pass (DECODING) # |
| 203 | 212 | #--------------------------------------------------# |
| 204 | -print_info "Launch Second Pass" 1 | |
| 213 | +print_info "[${BASENAME}] Launch Second Pass" 1 | |
| 205 | 214 | |
| 206 | 215 | # for all speaker |
| 207 | 216 | for speaker in $(cat $LBL_FILE_P1 | cut -f4 -d" " | sort | uniq) |
| 208 | 217 | do |
| 209 | 218 | ## get seg file from P1 containing the speaker |
| 210 | 219 | find $RES_DIR_P1 -name "*${speaker}.seg" -exec basename "{}" .seg \; | sort > $LST/$speaker.lst |
| 211 | - print_info "file for $speaker in $LST/$speaker.lst" 3 | |
| 220 | + print_info "[${BASENAME}] file for $speaker in $LST/$speaker.lst" 3 | |
| 212 | 221 | if [ ! -s $LST/$speaker.lst ]; then print_warn "no ${speaker} file in $RES_DIR_P1" 3; continue; fi |
| 213 | 222 | |
| 214 | 223 | |
| 215 | 224 | |
| ... | ... | @@ -223,13 +232,15 @@ |
| 223 | 232 | ## HMM adaptation |
| 224 | 233 | if [ $RERUN -eq 0 ] || ( [ ! -e $HMM/$speaker.hmm ] || [ -z $HMM/$speaker.hmm ] ) |
| 225 | 234 | then |
| 226 | - print_info "$SPEERAL_TOOLS/mllrmap $SPEERAL_AM/${MODS[$i]}.hmm -LR -b$LST/$speaker.lst -d$PLP_DIR_P1/ -t.plp -i3 -c.seg -o$HMM/$speaker.hmm -a$RES_DIR_P1/" 3 | |
| 235 | + print_info "[${BASENAME}] $SPEERAL_TOOLS/mllrmap $SPEERAL_AM/${MODS[$i]}.hmm -LR -b$LST/$speaker.lst -d$PLP_DIR_P1/ -t.plp -i3 -c.seg -o$HMM/$speaker.hmm -a$RES_DIR_P1/" 3 | |
| 227 | 236 | $SPEERAL_TOOLS/mllrmap $SPEERAL_AM/${MODS[$i]}.hmm -LR -b$LST/$speaker.lst -d$PLP_DIR_P1/ -t.plp -i3 -c.seg -o$HMM/$speaker.hmm -a$RES_DIR_P1/ $REDIRECTION_OUTPUT |
| 228 | 237 | fi |
| 229 | 238 | |
| 230 | 239 | if [ $CHECK -eq 1 ] && ( [ ! -e $HMM/$speaker.hmm ] || [ -z $HMM/$speaker.hmm ] ) |
| 231 | 240 | then |
| 232 | - echo "ERROR [$(date +'%d/%m/%y %H:%M:%S')] $HMM/$speaker.hmm" >> $ERRORFILE | |
| 241 | + print_warn "[${BASENAME}] No hmm files created for $speaker" 2 | |
| 242 | + print_log_file $ERRORFILE "ERROR [$(date +'%d/%m/%y %H:%M:%S')] No hmm files created for $speaker" | |
| 243 | + print_error "[${BASENAME}] Check $ERRORFILE" | |
| 233 | 244 | #exit 1 |
| 234 | 245 | fi |
| 235 | 246 | |
| 236 | 247 | |
| 237 | 248 | |
| 238 | 249 | |
| ... | ... | @@ -239,22 +250,25 @@ |
| 239 | 250 | ## class clustering |
| 240 | 251 | if [ -s $HMM/$speaker.hmm ] && ( [ $RERUN -eq 0 ] || ( [ ! -e $HMM/$speaker.cls ] || [ -z $HMM/$speaker.cls ] )) |
| 241 | 252 | then |
| 242 | - print_info "$SPEERAL_TOOLS/gclust_pdf $HMM/$speaker.hmm $HMM/$speaker.cls -i $SPEERAL_AM/${MODS[$i]}.cls" 3 | |
| 253 | + print_info "[${BASENAME}] $SPEERAL_TOOLS/gclust_pdf $HMM/$speaker.hmm $HMM/$speaker.cls -i $SPEERAL_AM/${MODS[$i]}.cls" 3 | |
| 243 | 254 | $SPEERAL_TOOLS/gclust_pdf $HMM/$speaker.hmm $HMM/$speaker.cls -i $SPEERAL_AM/${MODS[$i]}.cls $REDIRECTION_OUTPUT |
| 244 | 255 | fi |
| 245 | 256 | if [ $CHECK -eq 1 ] && ( [ ! -e $HMM/$speaker.cls ] || [ -z $HMM/$speaker.cls ] ) |
| 246 | 257 | then |
| 247 | - echo "ERROR [$(date +'%d/%m/%y %H:%M:%S')] $HMM/$speaker.cls" >> $ERRORFILE | |
| 258 | + print_warn "[${BASENAME}] No cls file created for $speaker" 2 | |
| 259 | + print_log_file $ERRORFILE "ERROR [$(date +'%d/%m/%y %H:%M:%S')] No cls file created for $speakers" | |
| 260 | + print_error "[${BASENAME}] Check $ERRORFILE" | |
| 248 | 261 | #exit 1 |
| 249 | 262 | fi |
| 250 | 263 | |
| 251 | 264 | ## Speeral decoding |
| 252 | 265 | if [ -s $HMM/$speaker.hmm ] && [ -s $HMM/$speaker.cls ] |
| 253 | 266 | then |
| 254 | - print_info "$SPEERAL_BIN $LST/$speaker.lst $RES_DIR ${SPEERAL_CFG[$i]} -r $PLP_DIR_P1 -m $HMM/$speaker.hmm -c $HMM/$speaker.cls $FORKS --lock $REDIRECTION_OUTPUT" 3 | |
| 267 | + print_info "[${BASENAME}] $SPEERAL_BIN $LST/$speaker.lst $RES_DIR ${SPEERAL_CFG[$i]} -r $PLP_DIR_P1 -m $HMM/$speaker.hmm -c $HMM/$speaker.cls $FORKS --lock $REDIRECTION_OUTPUT" 3 | |
| 255 | 268 | $SPEERAL_BIN $LST/$speaker.lst $RES_DIR ${SPEERAL_CFG[$i]} -r $PLP_DIR_P1 -m $HMM/$speaker.hmm -c $HMM/$speaker.cls $FORKS --lock $REDIRECTION_OUTPUT |
| 256 | 269 | else |
| 257 | - print_warn "$HMM/$speaker.hmm and $speaker.cls empty, do default decoding..." 2 | |
| 270 | + print_warn "[${BASENAME}] $HMM/$speaker.hmm and $speaker.cls empty, do default decoding..." 2 | |
| 271 | + print_info "[${BASENAME}] $SPEERAL_BIN $LST/$speaker.lst $RES_DIR ${SPEERAL_CFG[$i]} -r $PLP_DIR_P1 -m $SPEERAL_AM/${MODS[$i]}.hmm -c $SPEERAL_AM/${MODS[$i]}.cls $FORKS --lock $REDIRECTION_OUTPUT" 3 | |
| 258 | 272 | $SPEERAL_BIN $LST/$speaker.lst $RES_DIR ${SPEERAL_CFG[$i]} -r $PLP_DIR_P1 -m $SPEERAL_AM/${MODS[$i]}.hmm -c $SPEERAL_AM/${MODS[$i]}.cls $FORKS --lock $REDIRECTION_OUTPUT |
| 259 | 273 | fi |
| 260 | 274 | |
| 261 | 275 | |
| ... | ... | @@ -263,10 +277,12 @@ |
| 263 | 277 | check_second_pass_output_speeral "$LST/$speaker.lst" "$RES_DIR" |
| 264 | 278 | if [ $? -eq 1 ] |
| 265 | 279 | then |
| 266 | - echo -e "ERROR : Speeral $LST/$speaker.lst\n[" >> $ERRORFILE | |
| 280 | + print_warn "[${BASENAME}] Speeral output error : check $LOGFILE" 2 | |
| 281 | + print_log_file $LOGFILE "WARN : Speeral number of output ERROR $LST/$speaker.lst" | |
| 267 | 282 | ls $RES_DIR/*.seg | grep -e "$speaker" | sed -e "s|$RES_DIR\/||" | sed -e 's/\.seg//' | sort > ${OUTPUT_DIR_BASENAME}/.tmp |
| 268 | - diff $LST/$speaker.lst ${OUTPUT_DIR_BASENAME}/.tmp >> $ERRORFILE | |
| 269 | - echo -e "] " >> $ERRORFILE | |
| 283 | + print_log_file $LOGFILE "Segs (and treil) not done :\n[" | |
| 284 | + diff $LST/$speaker.lst ${OUTPUT_DIR_BASENAME}/.tmp >> $LOGFILE | |
| 285 | + print_log_file $LOGFILE "] [$(date +'%d/%m/%y %H:%M:%S')]" | |
| 270 | 286 | rm ${OUTPUT_DIR_BASENAME}/.tmp |
| 271 | 287 | #exit 1 |
| 272 | 288 | fi |
| 273 | 289 | |
| 274 | 290 | |
| 275 | 291 | |
| 276 | 292 | |
| 277 | 293 | |
| ... | ... | @@ -279,29 +295,43 @@ |
| 279 | 295 | #rm "$LST/$speaker.lst" > /dev/null 2>&1 |
| 280 | 296 | done |
| 281 | 297 | |
| 282 | -print_info "<= End $BASENAME P2 | $(date +'%d/%m/%y %H:%M:%S')" 1 | |
| 283 | - | |
| 284 | 298 | ## Check missing seg and log it |
| 285 | -ls $RES_DIR/*.treil | sed -e "s|$RES_DIR\/||g" | sed -e 's/\.treil//' | sort > ${OUTPUT_DIR_BASENAME}/.tmp | |
| 286 | -echo -e "$BASENAME P2 END\n[" >> $LOGFILE | |
| 287 | -diff ${OUTPUT_DIR_BASENAME}/plp.lst ${OUTPUT_DIR_BASENAME}/.tmp | grep -e "^< " | sed -e "s/< //" >> $LOGFILE | |
| 288 | -echo -e "] $BASENAME" >> $LOGFILE | |
| 289 | -rm ${OUTPUT_DIR_BASENAME}/.tmp > /dev/null 2>&1 | |
| 299 | +if [ $CHECK -eq 1 ] | |
| 300 | +then | |
| 301 | + ls $RES_DIR/*.treil | sed -e "s|$RES_DIR\/||g" | sed -e 's/\.treil//' | sort > ${OUTPUT_DIR_BASENAME}/.tmp | |
| 302 | + todo=$(cat ${PLP_FILE_P1} | wc -l) | |
| 303 | + if [ $todo -eq 0 ]; then todo=1;fi | |
| 304 | + notdone=$(($todo - $(cat ${OUTPUT_DIR_BASENAME}/.tmp | wc -l))) | |
| 305 | + pourcentage=$((($notdone*100)/$todo)) | |
| 306 | + if [ $notdone -ne 0 ] | |
| 307 | + then | |
| 308 | + print_error "[${BASENAME}] ERROR : check $ERRORFILE" | |
| 309 | + print_log_file "$ERRORFILE" "ERROR : Treil not done [" | |
| 310 | + diff ${PLP_FILE_P1} ${OUTPUT_DIR_BASENAME}/.tmp | grep -e "^< " | sed -e "s/< //" >> $ERRORFILE | |
| 311 | + print_log_file "$ERRORFILE" "] $pourcentage% $BASENAME" | |
| 312 | + else | |
| 313 | + print_log_file "$LOGFILE" "P1 OK $BASENAME | $(date +'%d/%m/%y %H:%M:%S')" | |
| 314 | + fi | |
| 315 | + rm ${OUTPUT_DIR_BASENAME}/.tmp > /dev/null 2>&1 | |
| 316 | +fi | |
| 290 | 317 | |
| 291 | 318 | #---------------# |
| 292 | 319 | # Convert res # |
| 293 | 320 | #---------------# |
| 294 | 321 | |
| 322 | +print_info "[${BASENAME}] Convert .res into .ctm" 1 | |
| 295 | 323 | # .res => .ctm |
| 296 | 324 | $SCRIPT_PATH/res2out.pl --dir $RES_DIR --format CTM --ignore $RULES/asupp --out ${OUTPUT_DIR_BASENAME}/${BASENAME}.2pass.ctm $REDIRECTION_OUTPUT |
| 325 | +print_info "[${BASENAME}] Convert .res into .trs" 1 | |
| 297 | 326 | # .res => .trs |
| 298 | 327 | echo -e "name $AUTHOR\nfileName ${BASENAME}\nfileExt wav\nsegFile ${OUTPUT_DIR_BASENAME}/${BASENAME}.seg" > ${OUTPUT_DIR_BASENAME}/${BASENAME}.trs_cfg |
| 299 | 328 | $SCRIPT_PATH/res2out.pl --dir $RES_DIR --format TRS --ignore $RULES/asupp --out ${OUTPUT_DIR_BASENAME}/${BASENAME}.2pass.trs --trs_config ${OUTPUT_DIR_BASENAME}/${BASENAME}.trs_cfg $REDIRECTION_OUTPUT |
| 300 | 329 | rm ${OUTPUT_DIR_BASENAME}/${BASENAME}.trs_cfg > /dev/null 2>&1 |
| 330 | +print_info "[${BASENAME}] Convert .res into .txt" 1 | |
| 301 | 331 | # .res => .txt |
| 302 | 332 | $SCRIPT_PATH/res2out.pl --dir $RES_DIR --format TXT --ignore $RULES/asupp --out ${OUTPUT_DIR_BASENAME}/${BASENAME}.2pass.txt $REDIRECTION_OUTPUT |
| 303 | 333 | |
| 304 | - | |
| 334 | +print_info "[${BASENAME}] <= P2 End | $(date +'%d/%m/%y %H:%M:%S')" 1 | |
| 305 | 335 | # unlock directory |
| 306 | 336 | mv "$OUTPUT_DIR_BASENAME/SECONDPASS.lock" "$OUTPUT_DIR_BASENAME/SECONDPASS.unlock" |
tools/scripts/CheckConfPass.sh
| ... | ... | @@ -20,16 +20,23 @@ |
| 20 | 20 | then |
| 21 | 21 | if [ -e "$1" ] && [ -s "$1" ] |
| 22 | 22 | then |
| 23 | - temp=`grep -c -E 'confidence="0.600"' "$1"` | |
| 24 | - if [ $temp -gt 200 ] | |
| 23 | + conftozerosix=$(grep -c -E 'confidence="0.600"' "$1") | |
| 24 | + confall=$(grep -c -E 'confidence=' "$1") | |
| 25 | + if [ $confall -gt 0 ] | |
| 25 | 26 | then |
| 26 | - return 1 | |
| 27 | + pourcentageofzerosix=$((($conftozerosix*100)/$confall)) | |
| 28 | + if [ $pourcentageofzerosix -gt 49 ] | |
| 29 | + then | |
| 30 | + return 1 | |
| 31 | + | |
| 32 | + else | |
| 33 | + return 0 | |
| 34 | + fi | |
| 27 | 35 | fi |
| 28 | 36 | else |
| 29 | 37 | return 1 |
| 30 | 38 | fi |
| 31 | 39 | fi |
| 32 | - | |
| 33 | 40 | return 0 |
| 34 | 41 | } |