Mercurial > hg > silvet
changeset 269:40684b5dd478
Run draft-mode tests as well (actually they come out quite well on F measure)
author | Chris Cannam |
---|---|
date | Wed, 23 Jul 2014 18:28:42 +0100 |
parents | 00d76494a722 |
children | 62b92d9b566a |
files | testdata/evaluation/run-nonorm.sh testdata/evaluation/run-piano.sh testdata/evaluation/run-singleinstrumenttest.sh testdata/evaluation/run.sh testdata/evaluation/transform.ttl |
diffstat | 5 files changed, 89 insertions(+), 73 deletions(-) [+] |
line wrap: on
line diff
--- a/testdata/evaluation/run-nonorm.sh Wed Jul 23 18:28:29 2014 +0100 +++ b/testdata/evaluation/run-nonorm.sh Wed Jul 23 18:28:42 2014 +0100 @@ -80,42 +80,47 @@ piece=`basename \`dirname "$infile" \`` arrangement=`basename "$infile" .wav` - echo - echo "For piece $piece, arrangement $arrangement, using instrument $instrument..." + for mode in 1 0; do + + echo + echo "For piece $piece, arrangement $arrangement, mode $mode, using instrument $instrument..." - # unlike run.sh we don't normalise the input here - cp "$infile" "$tmpwav" + # unlike run.sh we don't normalise the input here + cp "$infile" "$tmpwav" - # generate the transform by interpolating the instrument parameter - cat transform.ttl | sed "s/INSTRUMENT_PARAMETER/$instrument/" > "$transfile" + # generate the transform by interpolating the instrument parameter + cat transform.ttl | \ + sed "s/INSTRUMENT_PARAMETER/$instrument/" | \ + sed "s/MODE_PARAMETER/$mode/" > "$transfile" - sonic-annotator \ - --writer csv \ - --csv-one-file "$outfile" \ - --csv-force \ - --transform "$transfile" \ - "$tmpwav" + sonic-annotator \ + --writer csv \ + --csv-one-file "$outfile" \ + --csv-force \ + --transform "$transfile" \ + "$tmpwav" - cat "$outfile" | \ - sed 's/^[^,]*,//' | \ - while IFS=, read start duration frequency level label; do + cat "$outfile" | \ + sed 's/^[^,]*,//' | \ + while IFS=, read start duration frequency level label; do end=`echo "$start $duration + p" | dc` echo -e "$start\t$end\t$frequency" - done > "$outfile.lab" + done > "$outfile.lab" - for ms in 50 100; do - mark="" - if [ "$ms" = "50" ]; then mark=" <-- main $piece/$arrangement"; fi; + for ms in 50 100; do + mark="" + if [ "$ms" = "50" ]; then mark=" <-- main $piece/$arrangement"; fi; + echo + echo "Validating against ground truth at $ms ms:" + "$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-groundtruth/$piece/$arrangement.lab" "$outfile.lab" | sed 's,$,'"$mark"',' + echo + echo "Validating against MIREX submission at $ms ms:" + "$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-mirex2012-matlab/$piece/$arrangement.lab" "$outfile.lab" + echo + echo "Validating MIREX against ground truth at $ms ms": + "$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-groundtruth/$piece/$arrangement.lab" "../TRIOS-mirex2012-matlab/$piece/$arrangement.lab" + done; + echo - echo "Validating against ground truth at $ms ms:" - "$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-groundtruth/$piece/$arrangement.lab" "$outfile.lab" | sed 's,$,'"$mark"',' - echo - echo "Validating against MIREX submission at $ms ms:" - "$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-mirex2012-matlab/$piece/$arrangement.lab" "$outfile.lab" - echo - echo "Validating MIREX against ground truth at $ms ms": - "$yc" ../scripts/evaluate_lab.yeti "$ms" "../TRIOS-groundtruth/$piece/$arrangement.lab" "../TRIOS-mirex2012-matlab/$piece/$arrangement.lab" - done; - - echo + done done
--- a/testdata/evaluation/run-piano.sh Wed Jul 23 18:28:29 2014 +0100 +++ b/testdata/evaluation/run-piano.sh Wed Jul 23 18:28:42 2014 +0100 @@ -67,53 +67,58 @@ for instrument in $intended_instrument ; do - for norm in no; do + for mode in 1 0; do + + for norm in no; do - echo - echo "For file $filename, instrument $instrument, norm $norm..." + echo + echo "For file $filename, instrument $instrument, norm $norm..." - if [ "$norm" = "no" ]; then - # Don't normalise; plugin is now supposed to do it - sox "$infile" "$tmpwav" trim 0 $duration - else - # Normalise as reference - sox "$infile" "$tmpwav" trim 0 $duration gain -n -6.020599913279624 - fi + if [ "$norm" = "no" ]; then + # Don't normalise; plugin is now supposed to do it + sox "$infile" "$tmpwav" trim 0 $duration + else + # Normalise as reference + sox "$infile" "$tmpwav" trim 0 $duration gain -n -6.020599913279624 + fi - # generate the transform by interpolating the instrument parameter - cat transform.ttl | sed "s/INSTRUMENT_PARAMETER/$instrument/" > "$transfile" + # generate the transform by interpolating the instrument parameter + cat transform.ttl | \ + sed "s/INSTRUMENT_PARAMETER/$instrument/" | \ + sed "s/MODE_PARAMETER/$mode/" > "$transfile" - sonic-annotator \ - --writer csv \ - --csv-one-file "$outfile" \ - --csv-force \ - --transform "$transfile" \ - "$tmpwav" + sonic-annotator \ + --writer csv \ + --csv-one-file "$outfile" \ + --csv-force \ + --transform "$transfile" \ + "$tmpwav" - cat "$outfile" | \ - sed 's/^[^,]*,//' | \ - while IFS=, read start duration frequency level label; do - end=`echo "$start $duration + p" | dc` - echo -e "$start\t$end\t$frequency" - done > "$outfile.lab" + cat "$outfile" | \ + sed 's/^[^,]*,//' | \ + while IFS=, read start duration frequency level label; do + end=`echo "$start $duration + p" | dc` + echo -e "$start\t$end\t$frequency" + done > "$outfile.lab" - for ms in 50 100 150; do - mark="" - if [ "$ms" = "50" ]; then - if [ "$instrument" = "0" ]; then - mark=" <-- main generic preset for $filename (norm = $norm)"; - else - mark=" <-- main piano preset for $filename (norm = $norm)"; - fi - fi; + for ms in 50 100 150; do + mark="" + if [ "$ms" = "50" ]; then + if [ "$instrument" = "0" ]; then + mark=" <-- main generic preset for $filename (norm = $norm)"; + else + mark=" <-- main piano preset for $filename (norm = $norm)"; + fi + fi; + echo + echo "Validating against ground truth at $ms ms:" + egrep '(^[0-9]\.)|(^[012][0-9]\.)' "../piano-groundtruth/$filename.lab" > "$reference.lab" + "$yc" ../scripts/evaluate_lab.yeti "$ms" "$reference.lab" "$outfile.lab" | sed 's,$,'"$mark"',' + cp "$reference.lab" /tmp/reference.lab + cp "$outfile.lab" /tmp/detected.lab + done; echo - echo "Validating against ground truth at $ms ms:" - egrep '(^[0-9]\.)|(^[012][0-9]\.)' "../piano-groundtruth/$filename.lab" > "$reference.lab" - "$yc" ../scripts/evaluate_lab.yeti "$ms" "$reference.lab" "$outfile.lab" | sed 's,$,'"$mark"',' - cp "$reference.lab" /tmp/reference.lab - cp "$outfile.lab" /tmp/detected.lab - done; - echo + done done done done
--- a/testdata/evaluation/run-singleinstrumenttest.sh Wed Jul 23 18:28:29 2014 +0100 +++ b/testdata/evaluation/run-singleinstrumenttest.sh Wed Jul 23 18:28:42 2014 +0100 @@ -77,6 +77,7 @@ piece=`basename \`dirname "$infile" \`` arrangement=`basename "$infile" .wav` + mode=1 # We run this twice, once using the default instrument # (i.e. "multiple or unknown") and once using the intended @@ -90,7 +91,9 @@ sox "$infile" "$tmpwav" gain -n -6.020599913279624 # generate the transform by interpolating the instrument parameter - cat transform.ttl | sed "s/INSTRUMENT_PARAMETER/$instrument/" > "$transfile" + cat transform.ttl | \ + sed "s/INSTRUMENT_PARAMETER/$instrument/" | \ + sed "s/MODE_PARAMETER/$mode/" > "$transfile" sonic-annotator \ --writer csv \
--- a/testdata/evaluation/run.sh Wed Jul 23 18:28:29 2014 +0100 +++ b/testdata/evaluation/run.sh Wed Jul 23 18:28:42 2014 +0100 @@ -79,6 +79,7 @@ piece=`basename \`dirname "$infile" \`` arrangement=`basename "$infile" .wav` + mode=1 echo echo "For piece $piece, arrangement $arrangement, using instrument $instrument..." @@ -86,7 +87,9 @@ sox "$infile" "$tmpwav" gain -n -6.020599913279624 # generate the transform by interpolating the instrument parameter - cat transform.ttl | sed "s/INSTRUMENT_PARAMETER/$instrument/" > "$transfile" + cat transform.ttl | \ + sed "s/INSTRUMENT_PARAMETER/$instrument/" | \ + sed "s/MODE_PARAMETER/$mode/" > "$transfile" sonic-annotator \ --writer csv \
--- a/testdata/evaluation/transform.ttl Wed Jul 23 18:28:29 2014 +0100 +++ b/testdata/evaluation/transform.ttl Wed Jul 23 18:28:42 2014 +0100 @@ -16,6 +16,6 @@ ] ; vamp:parameter_binding [ vamp:parameter [ vamp:identifier "mode" ] ; - vamp:value "1"^^xsd:float ; + vamp:value "MODE_PARAMETER"^^xsd:float ; ] ; .