testsAndMisc/python_pkg/music_gen/setup.sh

74 lines
2.2 KiB
Bash
Raw Normal View History

#!/bin/bash
# Setup script for local AI music generation using MusicGen
# Run this script to install all dependencies
set -e
echo "========================================"
echo " MusicGen Local Setup"
echo "========================================"
# Check Python version
python_version=$(python3 --version 2>&1 | grep -oE '[0-9]+\.[0-9]+')
echo "Python version: $python_version"
# Detect if we're in a virtual environment
if [ -z "$VIRTUAL_ENV" ]; then
echo ""
echo "No virtual environment detected."
echo "Creating one in ./venv..."
python3 -m venv venv
source venv/bin/activate
echo "Virtual environment activated: $VIRTUAL_ENV"
else
echo "Using existing virtual environment: $VIRTUAL_ENV"
fi
# Upgrade pip
echo ""
echo "Upgrading pip..."
pip install --upgrade pip
# Detect GPU
echo ""
echo "Detecting GPU..."
if command -v nvidia-smi &> /dev/null; then
echo "NVIDIA GPU detected!"
nvidia-smi --query-gpu=name,memory.total --format=csv,noheader 2>/dev/null || true
echo ""
echo "Installing PyTorch with CUDA support..."
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu121
elif [[ "$(uname)" == "Darwin" ]] && [[ "$(uname -m)" == "arm64" ]]; then
echo "Apple Silicon detected!"
echo "Installing PyTorch with MPS support..."
pip install torch torchaudio
else
echo "No GPU detected, using CPU (generation will be slower)"
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cpu
fi
# Install transformers and other dependencies
echo ""
echo "Installing transformers and other dependencies..."
pip install transformers scipy
# Create output directory
mkdir -p output
echo ""
echo "========================================"
echo " Setup Complete!"
echo "========================================"
echo ""
echo "To activate the virtual environment:"
echo " source venv/bin/activate"
echo ""
echo "Usage examples:"
echo " python music_generator.py 'upbeat electronic dance music'"
echo " python music_generator.py --duration 15 'calm acoustic guitar'"
echo " python music_generator.py --interactive"
echo ""
echo "Model will be downloaded on first run (~3.3GB for medium model)"
echo ""