• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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