Chris@62: #!/bin/sh Chris@62: Chris@62: mydir=`dirname "$0"` Chris@62: infile="$1" Chris@62: outfile="$2" Chris@62: Chris@62: if [ t"$infile" = "t" ] || [ t"$outfile" = "t" ]; then Chris@62: echo "Usage: $0 infile.wav outfile.txt" Chris@62: exit 2 Chris@62: fi Chris@62: Chris@70: set -eu Chris@70: Chris@62: mkdir -p "$mydir"/out || exit 1 Chris@62: Chris@62: inbase=`basename "$infile"` Chris@62: inbase=${inbase%.*} Chris@62: Chris@62: echo "Processing input WAV file $infile, writing results to $outfile..." 1>&2 Chris@62: Chris@62: # Run the Silvet plugin. Chris@62: # Chris@62: # 1. Run the plugin. This will produce an output file Chris@62: # out/${inbase}.csv Chris@62: Chris@62: VAMP_PATH="$mydir" sonic-annotator \ Chris@62: -t "$mydir"/silvet-for-framewise.ttl \ Chris@62: -w csv \ Chris@62: --csv-separator ' ' \ Chris@62: --csv-one-file "$mydir/out/$inbase.csv" \ Chris@62: --csv-omit-filename \ Chris@62: --csv-force \ Chris@62: "$infile" || exit 1 Chris@62: Chris@62: # 2. Check the output file exists Chris@62: Chris@62: poutfile="$mydir/out/$inbase.csv" Chris@62: if [ ! -f "$poutfile" ]; then Chris@62: echo "output file $poutfile not found! bailing out"; exit 1 Chris@62: fi Chris@62: Chris@62: # 3. Convert the format to framewise data Chris@62: Chris@62: ppoutfile="$mydir/out/$inbase.csv.sorted" Chris@62: cat "$poutfile" | sort -n > "$ppoutfile" Chris@70: "$mydir"/frames.py "$ppoutfile" > "$outfile" Chris@62: Chris@62: echo "Done, output is in $outfile" Chris@70: