1#!/bin/bash 2 3if [ ! -f "$PYTHON" ] 4then 5 echo "PYTHON variable does not link to a file. Please point it to your python executable." 6 exit 1 7fi 8 9if [ ! -f "$TESTMODEL" ] 10then 11 echo "TESTMODEL variable does not link to a file. Please point it to your copy of test_model.py" 12 exit 1 13fi 14 15if [ ! -f "$OPUSDEMO" ] 16then 17 echo "OPUSDEMO variable does not link to a file. Please point it to your patched version of opus_demo." 18 exit 1 19fi 20 21if [ ! -f "$LACE" ] 22then 23 echo "LACE variable does not link to a file. Please point it to your copy of the LACE checkpoint." 24 exit 1 25fi 26 27if [ ! -f "$NOLACE" ] 28then 29 echo "LACE variable does not link to a file. Please point it to your copy of the NOLACE checkpoint." 30 exit 1 31fi 32 33case $# in 34 2) INPUT=$1; OUTPUT=$2;; 35 *) echo "process_dataset.sh <input folder> <output folder>"; exit 1;; 36esac 37 38if [ -d $OUTPUT ] 39then 40 echo "output folder $OUTPUT exists, aborting..." 41 exit 1 42fi 43 44mkdir -p $OUTPUT 45 46if [ "$BITRATES" == "" ] 47then 48 BITRATES=( 6000 7500 9000 12000 15000 18000 24000 32000 ) 49 echo "BITRATES variable not defined. Proceeding with default bitrates ${BITRATES[@]}." 50fi 51 52 53echo "LACE=${LACE}" > ${OUTPUT}/info.txt 54echo "NOLACE=${NOLACE}" >> ${OUTPUT}/info.txt 55 56ITEMFILE=${OUTPUT}/items.txt 57BITRATEFILE=${OUTPUT}/bitrates.txt 58 59FPROCESSING=${OUTPUT}/processing 60FCLEAN=${OUTPUT}/clean 61FOPUS=${OUTPUT}/opus 62FLACE=${OUTPUT}/lace 63FNOLACE=${OUTPUT}/nolace 64 65mkdir -p $FPROCESSING $FCLEAN $FOPUS $FLACE $FNOLACE 66 67echo "${BITRATES[@]}" > $BITRATEFILE 68 69for fn in $(find $INPUT -type f -name "*.wav") 70do 71 UUID=$(uuid) 72 echo "$UUID $fn" >> $ITEMFILE 73 PIDS=( ) 74 for br in ${BITRATES[@]} 75 do 76 # run opus 77 pfolder=${FPROCESSING}/${UUID}_${br} 78 mkdir -p $pfolder 79 sox $fn -c 1 -r 16000 -b 16 -e signed-integer $pfolder/clean.s16 80 (cd ${pfolder} && $OPUSDEMO voip 16000 1 $br clean.s16 noisy.s16) 81 82 # copy clean and opus 83 sox -c 1 -r 16000 -b 16 -e signed-integer $pfolder/clean.s16 $FCLEAN/${UUID}_${br}_clean.wav 84 sox -c 1 -r 16000 -b 16 -e signed-integer $pfolder/noisy.s16 $FOPUS/${UUID}_${br}_opus.wav 85 86 # run LACE 87 $PYTHON $TESTMODEL $pfolder $LACE $FLACE/${UUID}_${br}_lace.wav & 88 PIDS+=( "$!" ) 89 90 # run NoLACE 91 $PYTHON $TESTMODEL $pfolder $NOLACE $FNOLACE/${UUID}_${br}_nolace.wav & 92 PIDS+=( "$!" ) 93 done 94 for pid in ${PIDS[@]} 95 do 96 wait $pid 97 done 98done 99