pinebuds/convert.sh

27 lines
788 B
Bash
Raw Normal View History

#!/bin/sh
txt_to_wav() {
xxd -r -p $args > out.raw
ffmpeg -f sbc -ac 1 -i ./out.raw output.wav
rm ./out.raw
}
wav_to_txt() {
ffmpeg -i $args -f sbc -ac 16000 -ac 1 -map_metadata -1 out.raw
xxd -i ./out.raw | head -n -2 \
| tail -n +2 | sed 's/ //g' \
| tr --delete '\n' \
| sed 's/,/\,\n/16; P; D' > SOUND.txt
rm ./out.raw
}
[ ${1} = "-T" ] || [ ${1} = "--txt-to-wav" ] && shift 1 && args=$@ && txt_to_wav && exit
[ ${1} = "-W" ] || [ ${1} = "--wav-to-txt" ] && shift 1 && args=$@ && wav_to_txt && exit
echo "
Sound format converter:
Usage:
./convert.sh [option] [input-file]
Options:
-T or --txt-to-wav Converts the text file to a wav audio file (output.wav)
-W or --wav-to-txt Converts a wav file to a file readable by the pinebuds firmware (SOUND.txt)
"