Added all in one python script that convert in Tadarida format

This commit is contained in:
Samuel Ortion 2021-05-09 12:06:59 +02:00
parent 2b16b8004c
commit e62a9fd140
2 changed files with 35 additions and 12 deletions

View File

@ -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

24
tadarida_preprocessing.py Executable file
View File

@ -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')