#!/usr/bin/env bash

export TRANSCRIBE_MODEL=${TRANSCRIBE_MODEL:-turbo}


if [[ $# -lt 2 ]] ; then
    echo "$(basename $0) RECORDER_DIR OUTPUT_DIR" >&2
    exit 1
fi

export TRANSCRIBE_DIR=$1
export TRANSCRIBE_OUT=$2
set -e

function run_transcription {
    INPATH="${1}"
    REL_PATH=$(realpath --relative-to "${TRANSCRIBE_DIR}" $(dirname "${INPATH}"))
    OUT_DIR_PATH="${TRANSCRIBE_OUT}/${REL_PATH}"
    set -x
    mkdir -p "${OUT_DIR_PATH}"
    whisper --model "${TRANSCRIBE_MODEL}" \
            --output_dir "${OUT_DIR_PATH}" \
            --output_format txt \
            --task transcribe \
            --language en \
            "${INPATH}"
    rm "${INPATH}"
}

export -f run_transcription

find ${TRANSCRIBE_DIR} -type l,f \
     -\( -name '*.wav' -o -name '*.mp3' -\) \
     -exec bash -c 'run_transcription "$0"' {} \;
