Files
Audio-Classifier/DEPENDENCIES.md
Benoit 16b3fdabed
Some checks failed
Build and Push Docker Images / Build Backend Image (push) Successful in 14m27s
Build and Push Docker Images / Build Frontend Image (push) Failing after 11m42s
Ajout documentation dépendances + script de vérification
- DEPENDENCIES.md: Documentation complète de toutes les dépendances
  * Backend Python (requirements.txt)
  * Dépendances système (apt packages)
  * Frontend Node.js (package.json)
  * Modèles Essentia (28 MB)
  * Variables d'environnement requises

- check_dependencies.py: Script pour vérifier l'installation
  * Teste tous les imports Python
  * Affiche statut / pour chaque package
  * Utile pour debug d'installation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-26 13:03:17 +01:00

4.0 KiB

Dépendances du projet

Backend Python (requirements.txt)

Web Framework

  • fastapi==0.109.0 - Framework web moderne
  • uvicorn[standard]==0.27.0 - Serveur ASGI
  • python-multipart==0.0.6 - Support formulaires multipart

Database

  • sqlalchemy==2.0.25 - ORM
  • psycopg2-binary==2.9.9 - Driver PostgreSQL
  • pgvector==0.2.4 - Extension vecteurs PostgreSQL
  • alembic==1.13.1 - Migrations de base de données

Audio Processing

  • librosa==0.10.1 - Analyse audio
  • soundfile==0.12.1 - Lecture/écriture fichiers audio
  • audioread==3.0.1 - Décodage formats audio
  • mutagen==1.47.0 - Métadonnées ID3

Machine Learning

  • essentia-tensorflow - Classification genre/mood/instruments (installé via Dockerfile)
  • numpy==1.24.3 - Calcul numérique
  • scipy==1.11.4 - Calcul scientifique

Configuration & Validation

  • pydantic==2.5.3 - Validation de données
  • pydantic-settings==2.1.0 - Configuration via env vars
  • python-dotenv==1.0.0 - Chargement fichier .env
  • email-validator==2.1.0 - Validation emails (requis par Pydantic EmailStr)

Authentication

  • python-jose[cryptography]==3.3.0 - JWT tokens
  • passlib[bcrypt]==1.7.4 - Hashing passwords

Utilities

  • aiofiles==23.2.1 - I/O fichiers asynchrones
  • httpx==0.26.0 - Client HTTP asynchrone

Dépendances Système (Dockerfile)

Requis pour le backend

apt-get install -y \
    ffmpeg              # Transcodage audio (MP3, etc.)
    libsndfile1         # Lecture formats audio
    gcc g++ gfortran    # Compilation packages Python
    libopenblas-dev     # Algèbre linéaire optimisée
    liblapack-dev       # Routines algèbre linéaire
    libfftw3-dev        # Transformées de Fourier rapides
    libavcodec-dev      # Codecs audio/vidéo
    libavformat-dev     # Formats conteneurs
    libavutil-dev       # Utilitaires FFmpeg
    libswresample-dev   # Resampling audio
    libsamplerate0-dev  # Conversion taux d'échantillonnage
    libtag1-dev         # Métadonnées audio
    libchromaprint-dev  # Audio fingerprinting

Frontend (package.json)

Framework

  • next@15.5.6 - Framework React
  • react@19.0.0 - Bibliothèque UI
  • react-dom@19.0.0 - Rendu React

State Management & Data Fetching

  • @tanstack/react-query@5.62.11 - Gestion état serveur
  • axios@1.7.9 - Client HTTP

UI & Styling

  • tailwindcss@3.4.17 - Framework CSS utility-first

Types

  • typescript@5.7.2 - Typage statique
  • @types/react@19.0.1
  • @types/node@22.10.1

Modèles Essentia (inclus dans le repo)

Total: ~28 MB

  • discogs-effnet-bs64-1.pb (18 MB) - Modèle d'embedding
  • genre_discogs400-discogs-effnet-1.pb (2 MB) - Classification genre
  • genre_discogs400-discogs-effnet-1.json (15 KB) - Métadonnées genres
  • mtg_jamendo_moodtheme-discogs-effnet-1.pb (2.6 MB) - Classification mood
  • mtg_jamendo_instrument-discogs-effnet-1.pb (2.6 MB) - Classification instruments
  • mtg_jamendo_genre-discogs-effnet-1.pb (2.7 MB) - Classification genre (alternatif)

Vérification des dépendances

Backend

cd backend
python check_dependencies.py

Build Docker

# Backend
docker build -t audio-classifier-backend -f backend/Dockerfile .

# Frontend
docker build -t audio-classifier-frontend -f frontend/Dockerfile .

Notes de compatibilité

  • Python: 3.9 (requis pour essentia-tensorflow)
  • Architecture: amd64 (meilleure compatibilité Essentia)
  • Node.js: 20+ (pour Next.js 15)
  • PostgreSQL: 16+ avec extension pgvector

Installation locale

Backend

cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
pip install essentia-tensorflow

Frontend

cd frontend
npm install

Variables d'environnement requises

Voir .env.example pour la liste complète des variables nécessaires.

Critiques

  • DATABASE_URL - Connexion PostgreSQL
  • ADMIN_EMAIL - Email admin
  • ADMIN_PASSWORD - Mot de passe admin
  • JWT_SECRET_KEY - Secret pour JWT (générer avec openssl rand -hex 32)