Files
Audio-Classifier/scripts/download-essentia-models.sh
2025-11-27 17:43:52 +01:00

57 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Download Essentia models for audio classification
# Models from: https://essentia.upf.edu/models.html
set -e # Exit on error
MODELS_DIR="backend/models"
BASE_URL="https://essentia.upf.edu/models/classification-heads"
echo "📦 Downloading Essentia models..."
echo "Models directory: $MODELS_DIR"
# Create models directory if it doesn't exist
mkdir -p "$MODELS_DIR"
# Download function
download_model() {
local model_file="$1"
local url="$2"
local output_path="$MODELS_DIR/$model_file"
if [ -f "$output_path" ]; then
echo "$model_file already exists, skipping..."
else
echo "⬇️ Downloading $model_file..."
curl -L -o "$output_path" "$url"
if [ -f "$output_path" ]; then
echo "✓ Downloaded $model_file"
else
echo "✗ Failed to download $model_file"
exit 1
fi
fi
}
# Download each model
download_model "mtg_jamendo_genre-discogs-effnet-1.pb" \
"$BASE_URL/mtg_jamendo_genre/mtg_jamendo_genre-discogs-effnet-1.pb"
download_model "mtg_jamendo_moodtheme-discogs-effnet-1.pb" \
"$BASE_URL/mtg_jamendo_moodtheme/mtg_jamendo_moodtheme-discogs-effnet-1.pb"
download_model "mtg_jamendo_instrument-discogs-effnet-1.pb" \
"$BASE_URL/mtg_jamendo_instrument/mtg_jamendo_instrument-discogs-effnet-1.pb"
echo ""
echo "✅ All models downloaded successfully!"
echo ""
echo "Models available:"
ls -lh "$MODELS_DIR"/*.pb 2>/dev/null || echo "No .pb files found"
echo ""
echo "Note: Class labels are defined in backend/src/core/essentia_classifier.py"
echo "You can now start the backend with: docker-compose up"