time-expanseR/split_5s.sh

74 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
##########################################################
#
# Split wav sounds into 5s wav using ffmpeg
# Samuel ORTION
##########################################################
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"
}
function split {
cd $indir
for item in `ls ./*.WAV`
do
audio_dur=`sox --i -D $item`
# Convert float to int
audio_dur=${audio_dur%.*}
echo "$item ($audio_dur)"
ss=0
to=5
for ss in `seq 0 5 $(( $audio_dur - 5 ))`
do
to=$(( $ss + 5 ))
echo "Spliting $item ($ss/$audio_dur)"
ffmpeg -ss $ss -i "$indir/$item" -t $to -c copy "$outdir/$item-$ss.wav"
done
done
}
optstring=":hi:o:"
# Defaults
indir="raw"
outdir="split"
while getopts ${optstring} arg
do
case "${arg}" in
h)
printf "$(basename $0) usage: \n"
usage
;;
i)
indir="${OPTARG}"
# echo "indir: $indir"
;;
o)
outdir="${OPTARG}"
# echo "outdir: $outdir"
;;
:)
echo "$0: Must supply an argument to -$OPTARG."
exit 1
;;
?)
echo "Invalid option: -${OPTARG}."
echo
usage
;;
esac
done
if [ ! -d $outdir ];
then
mkdir $outdir
fi
split