#!/bin/bash set -e MODELS_DIR="${MODELS_DIR:-/app/models}" MODEL_BASE_URL="${MODEL_BASE_URL:-}" # Model directories to check/download PARAKEET_DIR="parakeet-tdt-0.6b-v3" EOU_DIR="realtime_eou_120m-v1-onnx" DIARIZATION_DIR="diarization" download_model() { local name=$1 local url=$2 local dest="$MODELS_DIR/$name" if [ -d "$dest" ] && [ "$(ls -A $dest 2>/dev/null)" ]; then echo "Model $name already exists, skipping..." return 0 fi echo "Downloading $name..." mkdir -p "$dest" # Download and extract tar.gz curl -L "$url" | tar -xz -C "$dest" --strip-components=1 echo "Downloaded $name successfully" } # Check if models exist check_models_exist() { [ -d "$MODELS_DIR/$PARAKEET_DIR" ] && \ [ -d "$MODELS_DIR/$EOU_DIR" ] && \ [ -f "$MODELS_DIR/$DIARIZATION_DIR/diar_streaming_sortformer_4spk-v2.onnx" ] } if check_models_exist; then echo "All models present" else if [ -z "$MODEL_BASE_URL" ]; then echo "ERROR: Models not found and MODEL_BASE_URL not set" echo "Please set MODEL_BASE_URL to the base URL containing model archives:" echo " - \${MODEL_BASE_URL}/parakeet-tdt-0.6b-v3.tar.gz" echo " - \${MODEL_BASE_URL}/realtime_eou_120m-v1-onnx.tar.gz" echo " - \${MODEL_BASE_URL}/diarization.tar.gz" exit 1 fi mkdir -p "$MODELS_DIR" download_model "$PARAKEET_DIR" "${MODEL_BASE_URL}/parakeet-tdt-0.6b-v3.tar.gz" download_model "$EOU_DIR" "${MODEL_BASE_URL}/realtime_eou_120m-v1-onnx.tar.gz" download_model "$DIARIZATION_DIR" "${MODEL_BASE_URL}/diarization.tar.gz" echo "All models downloaded successfully" fi # Execute the main command exec "$@"