From e62a9fd140c8dcb2a8e6e93fcf63a50f3a15ef89 Mon Sep 17 00:00:00 2001 From: Samuel ORTION Date: Sun, 9 May 2021 12:06:59 +0200 Subject: [PATCH] Added all in one python script that convert in Tadarida format --- split_5s.sh | 23 +++++++++++------------ tadarida_preprocessing.py | 24 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 12 deletions(-) create mode 100755 tadarida_preprocessing.py diff --git a/split_5s.sh b/split_5s.sh index ba3b4ca..206b760 100755 --- a/split_5s.sh +++ b/split_5s.sh @@ -8,12 +8,11 @@ function usage { printf "./$(basename $0) -h - - shows help \n" - printf "./$(basename $0) -i input_dir -o output_dir - - split long wav into wav 5s wav \n" + printf "./$(basename $0) -i input_dir -o output_dir - - split long wav into 5s wav \n" } function split { - cd $indir - for item in `ls ./*.WAV` + for item in `ls $indir/*.WAV` do audio_dur=`sox --i -D $item` # Convert float to int @@ -22,15 +21,14 @@ function split { ss=0 to=5 for ss in `seq 0 5 $(( $audio_dur - 5 ))` - do + do to=$(( $ss + 5 )) echo "Spliting $item ($ss/$audio_dur)" - ffmpeg -ss $ss -i "$indir/$item" -t $to -c copy "$outdir/$item-$ss.wav" + ffmpeg -ss $ss -i $indir/`basename $item` -t $to -c copy $outdir/`basename $item`-$ss.wav done done } - optstring=":hi:o:" # Defaults @@ -41,29 +39,30 @@ while getopts ${optstring} arg do case "${arg}" in h) - printf "$(basename $0) usage: \n" + printf "$( basename $0 ) usage: \n" usage + exit 0 ;; i) indir="${OPTARG}" - # echo "indir: $indir" + echo "indir: $indir" ;; o) outdir="${OPTARG}" - # echo "outdir: $outdir" + echo "outdir: $outdir" ;; :) - echo "$0: Must supply an argument to -$OPTARG." + echo "$( basename $0 ): Must supply an argument to -$OPTARG." exit 1 ;; ?) - echo "Invalid option: -${OPTARG}." + echo "Invalid option: -${arg}." echo usage + exit 1 ;; esac done - if [ ! -d $outdir ]; then mkdir $outdir diff --git a/tadarida_preprocessing.py b/tadarida_preprocessing.py new file mode 100755 index 0000000..8013254 --- /dev/null +++ b/tadarida_preprocessing.py @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +import os +import soundfile as sf + +def exp_rate(insoundfile, outsoundfile, rate_ratio): + data, samplerate = sf.read(insoundfile) + new_samplerate = int(samplerate * rate_ratio) + sf.write(outsoundfile, data, new_samplerate) + +vigie_prefix = "Car721035-2021-Pass0-Z2" +device_prefix = "-AudioMoth-247AA5015FDF286B-" +prefix = vigie_prefix + device_prefix + +indir = "raw" +outdir = "exp" + +files = os.listdir(indir) + +for wav in files: + insoundfile = os.path.join(indir, wav) + outsoundfile = os.path.join(outdir, prefix + wav) + exp_rate(insoundfile, outsoundfile, 0.1) +os.system('split_5s -i exp -o split')