diff options
| author | jules on spawn <spawn@cortex> | 2018-04-09 00:13:27 +0200 |
|---|---|---|
| committer | jules on spawn <spawn@cortex> | 2018-04-09 00:13:27 +0200 |
| commit | a7256287f599dbaaffb107df0b8b4ea4a2b1f2b1 (patch) | |
| tree | d816afa913fb63dd688be4f833c638fc782632d1 /datasets | |
| parent | ea6e6ee1040fa85f743ab50b699fbeb04d9a0522 (diff) | |
dataset script
Diffstat (limited to 'datasets')
| -rwxr-xr-x | datasets/dataset.pl | 67 | ||||
| -rwxr-xr-x | datasets/spread.sh | 8 |
2 files changed, 75 insertions, 0 deletions
diff --git a/datasets/dataset.pl b/datasets/dataset.pl new file mode 100755 index 0000000..4e3b9a9 --- /dev/null +++ b/datasets/dataset.pl @@ -0,0 +1,67 @@ +#!/usr/bin/perl + +use strict; +use Getopt::Std; + +our $opt_c; +getopts('c'); + +my $fmt = <<FMT; +Input File : '01_snapping_clean.wav' +Channels : 1 +Sample Rate : 44100 +Precision : 16-bit +Duration : 00:03:09.35 = 8350438 samples = 14201.4 CDDA sectors +File Size : 16.7M +Bit Rate : 706k +Sample Encoding: 16-bit Signed Integer PCM +FMT + +sub process($) { + my $filename = shift or die "Usage: $0 [...filenames]\n"; + my ($name, $ext) = split(/\./, $filename, 2); + + my $soxi = `soxi $filename`; + my @lines = split("\n", $soxi); + + print $soxi; + + my $seconds; + for my $line (@lines) { + if ($line =~ /Duration : (\d\d):(\d\d):(\d\d)\./) { + my $h = $1; + my $m = $2; + my $s = $3; + $seconds = (((($h * 60) + $m) * 60) + $s) + 0; + } + } + + my $scale = sprintf("%.09f", 5e-7 * $seconds); + + print "Seconds: $seconds\n"; + print "Scale factor: $scale\n"; + print "\n"; + + my $a_tmp = "a_" . $filename; + my $b_tmp = "b_" . $filename; + if ($opt_c) { + print "Normalizing..."; + system("sox", "-v", 0.945, $filename, $a_tmp); + } else { + $a_tmp = $filename; + } + system("./spread.sh", $a_tmp, $b_tmp, 0.999, $scale, 1.001); + system("./split44k.sh", $b_tmp, 8, $name); + if ($opt_c) { + system("/bin/rm", $a_tmp); + } + system("/bin/rm", $b_tmp); +} + +foreach my $file (@ARGV) {; + if ( -e $file ) { + process($file); + } +} + + diff --git a/datasets/spread.sh b/datasets/spread.sh index bec1da3..60c3551 100755 --- a/datasets/spread.sh +++ b/datasets/spread.sh @@ -1,3 +1,4 @@ +#!/bin/bash if [ "$#" -ne 5 ]; then echo "Usage: $0 <in.wav> <out.wav> <rate_min> <rate_step> <rate_max>" @@ -11,15 +12,22 @@ STEP=$4 MAX=$5 ITER=0 + while true; do if (( $(echo "$RATE > $MAX" | bc -l) )); then break fi let ITER+=1 RATE=`echo "$RATE+$STEP" | bc` + if ((ITER % 20 != 0)); then + echo "${ITER}... ${RATE}" + sleep 1 + fi sox $FN_IN "tmp_$ITER.wav" speed $RATE done +echo "made $ITER copies" + sox tmp_* $FN_OUT rm tmp_* |
