#!/bin/bash

if [ "$#" -eq 0 ] ; then
 echo "usage: $0 session_wav/*.d"
fi

bindir=/projects/cougar/data/cstr/multisyn_build/bin

make_beep_labels=$bindir/make_beep_labels
classify=$bindir/classify_initial_rubbish

# session wavefile extension.
#  - change if necessary!
wave_ext=d
#wave_ext=wav

filt_wav_dir=filtered_wav
split_lab_dir=split_lab
split_wav_dir=split_wav
classify_lab_dir=classify_lab
classify_wav_dir=classify_wav


# Make directories.
for dir in $filt_wav_dir $split_lab_dir $split_wav_dir $classify_lab_dir $classify_wav_dir ; do
    if [ ! -d "$dir" ] ; then
	mkdir $dir
    fi
done

# Process files.
for file in $* ; do
    fileroot=`basename $file .$wave_ext`
    filt_wav_file=$filt_wav_dir/$fileroot.$wave_ext
    split_lab_file=$split_lab_dir/$fileroot.lab
    echo "Processing $fileroot"
    
    # make .bpf notch filtered file for processing beeps.
    if [ ! -r "$filt_wav_file" ] ; then
	echo "  Filtering"
	ch_wave -forder 999 -hpfilter 6999 -lpfilter 7001 -o $filt_wav_file -otype esps $file
    fi

    # make split labels
    if [ ! -r "$split_lab_file" ] ; then
	echo "  Processing beeps"
	$make_beep_labels $split_lab_dir $split_wav_dir $filt_wav_file 
    fi

    # split file (good test for this?)
    echo "  Splitting file"
    ch_wave $file -otype riff -key $split_lab_file -ext .wav -divide

    # classify initial rubbish
    for wav in `ls $split_wav_dir/${fileroot}_*.wav` ; do
	classify_lab_file=$classify_lab_dir/`basename $wav .wav`.lab
	if [ ! -r "$classify_lab_file" ] ; then 
	    echo "  Classifying $wav" 
	    $classify $classify_lab_dir $classify_wav_dir $wav 
	fi
    done


    # split of actual speech
    for lab in `ls $classify_lab_dir/${fileroot}_*.lab` ; do
	wav=$split_wav_dir/`basename $lab .lab`.wav
	echo "  Splitting $wav"
	ch_wave $wav -otype riff -key $lab -ext .wav -divide
    done

done
