#!/bin/bash
# Transcribe audio file using Whisper
# Usage: bash transcribe.sh <audio_file>

set -e

# Use absolute paths
BASE_DIR="/var/www/html/analyzer.klono.ai"
AUDIO="${1:-$BASE_DIR/uploads/agnieszka.m4a}"
BASENAME=$(basename "$AUDIO" | sed 's/\.[^.]*$//')
OUTPUT_TXT="$BASE_DIR/uploads/${BASENAME}.txt"

echo "=== Whisper Transcription ==="
echo "Input:  $AUDIO"
echo "Output: $OUTPUT_TXT"
echo ""

# Check if python3 is available
if ! command -v python3 &>/dev/null; then
    echo "ERROR: python3 not found"
    exit 1
fi

# Install openai-whisper if not present
if ! python3 -c "import whisper" &>/dev/null; then
    echo "Installing openai-whisper..."
    python3 -m pip install openai-whisper -q
fi

# Install ffmpeg if not present
if ! command -v ffmpeg &>/dev/null; then
    echo "Installing ffmpeg..."
    apt-get install -y ffmpeg -q
fi

echo "Transcribing (model: tiny, language: pl)..."
echo "This may take a few minutes..."
echo ""

python3 -c "
import whisper

model = whisper.load_model('tiny')

result = model.transcribe(
    '$AUDIO',
    language='pl',
    verbose=False
)

text = result['text'].strip()

with open('$OUTPUT_TXT', 'w', encoding='utf-8') as f:
    f.write(text)

print('Done! Saved to: $OUTPUT_TXT')
print(f'Characters: {len(text)}')
print(f'Words: {len(text.split())}')
print('')
print('=== PREVIEW (first 500 chars) ===')
print(text[:500])
"