Skip to content

Repository files navigation

Tu as un incroyable talent ? - Karaoke AI Singing Evaluation Platform

License: MIT Python 3.11 React 18 Docker CUDA

AI-powered karaoke singing evaluation platform with real-time pitch detection, lyrics synchronization, and personalized feedback from AI jury personas - like "Got Talent" TV shows!

Plateforme de karaoké avec évaluation IA incluant détection de pitch en temps réel, synchronisation des paroles et feedback personnalisé par des personas IA - style émissions "Incroyable Talent" !

🎤 Live Demo / Démo en ligne: tuasunincroyabletalent.fr


English | Français


📸 Screenshots / Captures d'écran

Song Search / Recherche de chanson Recording / Enregistrement Results / Résultats

Song Search • Recording with Lyrics • AI Jury Results
Recherche • Enregistrement avec Paroles • Résultats du Jury IA


English

Table of Contents


🌟 Features

Core Features

  • Spotify Integration - Search and select any song from Spotify's catalog
  • YouTube Auto-Match - Automatically finds the matching YouTube video for karaoke playback
  • Real-time Lyrics Sync - Synchronized lyrics display with adjustable offset (±5 minutes)
  • AI Voice Separation - Demucs-powered vocal isolation for accurate comparison
  • Pitch Detection - CREPE neural network for precise pitch analysis
  • Speech Recognition - Whisper transcription for lyrics accuracy scoring

Studio Mode (NEW)

  • Multi-track Mixer - Separate volume controls for vocals and instrumentals
  • Practice Mode - Train with the reference before recording
  • Real-time Playback - Listen to separated tracks during analysis
  • Comparison Mode - Compare your voice with the original side-by-side

AI Jury System

  • 3 Unique Personas:
    • 🔴 The Harsh Critic - Direct, demanding feedback
    • 🟢 The Encouraging Coach - Supportive, motivating comments
    • 🔵 The Technical Expert - Detailed musical analysis
  • Personalized Feedback - Natural language comments generated by Ollama LLM
  • Scoring System - Pitch (40%), Rhythm (30%), Lyrics (30%)

User Experience

  • Mobile-First Design - Optimized for smartphones
  • Karaoke Mode - Word-by-word highlight (Apple Music style)
  • Tap-to-Sync - Click any lyric line to sync with playback
  • Auto-Scroll - Smart scroll that detects user interaction

🎯 How It Works

┌─────────────────────────────────────────────────────────────────┐
│                    Tu as un incroyable talent ? PIPELINE                   │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  1. SETUP                    2. PRACTICE (Optional)             │
│  ┌─────────────┐             ┌─────────────┐                    │
│  │ Select Song │────────────▶│ Studio Mode │                    │
│  │  (Spotify)  │             │  (Mixer)    │                    │
│  └──────┬──────┘             └──────┬──────┘                    │
│         │                           │                           │
│         ▼                           │                           │
│  ┌─────────────┐                    │                           │
│  │ YouTube     │                    │                           │
│  │ Auto-Match  │                    │                           │
│  └──────┬──────┘                    │                           │
│         │                           │                           │
│         ▼                           │                           │
│  ┌─────────────┐             3. PERFORM                         │
│  │ Demucs      │             ┌─────────────┐                    │
│  │ Separation  │────────────▶│ Sing Along  │                    │
│  └─────────────┘             │  (Record)   │                    │
│                              └──────┬──────┘                    │
│                                     │                           │
│                                     ▼                           │
│                              4. ANALYZE                         │
│  ┌──────────────────────────────────────────────┐               │
│  │  ┌─────────┐  ┌─────────┐  ┌─────────┐       │               │
│  │  │  CREPE  │  │ Whisper │  │ Librosa │       │               │
│  │  │  Pitch  │  │  Text   │  │ Rhythm  │       │               │
│  │  └────┬────┘  └────┬────┘  └────┬────┘       │               │
│  │       └───────────┬┴───────────┘             │               │
│  │                   ▼                          │               │
│  │            ┌─────────────┐                   │               │
│  │            │   SCORING   │                   │               │
│  │            │ Pitch: 40%  │                   │               │
│  │            │ Rhythm: 30% │                   │               │
│  │            │ Lyrics: 30% │                   │               │
│  │            └──────┬──────┘                   │               │
│  └───────────────────┼──────────────────────────┘               │
│                      ▼                                          │
│               5. AI JURY                                        │
│  ┌──────────────────────────────────────────────┐               │
│  │  ┌─────────┐  ┌─────────┐  ┌─────────┐       │               │
│  │  │  Harsh  │  │ Support │  │Technical│       │               │
│  │  │  Critic │  │  Coach  │  │ Expert  │       │               │
│  │  └─────────┘  └─────────┘  └─────────┘       │               │
│  │         ▼           ▼           ▼            │               │
│  │  ┌──────────────────────────────────────┐    │               │
│  │  │     Ollama LLM (Llama 3.2)           │    │               │
│  │  │     Personalized Feedback            │    │               │
│  │  └──────────────────────────────────────┘    │               │
│  └──────────────────────────────────────────────┘               │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

🛠 Tech Stack

Frontend

Technology Purpose
React 18 UI Framework
TypeScript Type Safety
Vite 6 Build Tool & Dev Server
Zustand 5 State Management
Tailwind CSS 3 Styling
Radix UI Accessible Components
Web Audio API Multi-track audio processing

Backend

Technology Purpose
FastAPI REST API Framework
Python 3.11 Runtime
PostgreSQL 16 Database
Redis 7 Cache & Task Queue
Celery 5 Background Tasks

AI/ML (GPU-Accelerated)

Technology Purpose
Demucs (htdemucs) Vocal/Instrumental Separation
CREPE Neural Pitch Detection
Whisper (turbo) Speech-to-Text
Ollama (Llama 3.2) LLM for Jury Comments
PyTorch + CUDA GPU Acceleration

Infrastructure

Technology Purpose
Docker Compose Container Orchestration
NVIDIA CUDA GPU Computing
Coolify Self-hosted PaaS
Traefik Reverse Proxy & TLS

🚀 Quick Start

Prerequisites

  • Docker & Docker Compose
  • NVIDIA GPU with CUDA support
  • Spotify Developer Account
  • 16GB+ RAM recommended

Installation

# Clone the repository
git clone https://github.com/pi3music/tuasunincroyabletalent.fr.git
cd tuasunincroyabletalent.fr

# Copy environment file
cp .env.example .env

# Edit .env with your credentials
nano .env

# Start all services
docker-compose up -d

# Check logs
docker-compose logs -f api worker-heavy

# Access the app
open http://localhost:3000

Development Mode

# Frontend (hot reload)
cd frontend && npm install && npm run dev

# Backend (auto-reload)
cd backend && pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000

# Worker (Celery)
cd worker && celery -A tasks.celery_app worker --loglevel=info

🏗 Architecture

tuasunincroyabletalent.fr/
├── frontend/                    # React + Vite
│   ├── src/
│   │   ├── components/
│   │   │   ├── lyrics/          # Professional lyrics display
│   │   │   └── ui/              # Radix UI components
│   │   ├── audio/               # Studio Mode
│   │   │   ├── components/      # StudioMode, TrackMixer, TransportBar
│   │   │   ├── hooks/           # useMultiTrack
│   │   │   └── core/            # AudioContext, TrackProcessor
│   │   ├── stores/              # Zustand stores
│   │   └── api/                 # API client
│   └── package.json
│
├── backend/                     # FastAPI
│   ├── app/
│   │   ├── routers/             # session, audio, search
│   │   └── services/            # spotify, youtube, lyrics
│   └── requirements.txt
│
├── worker/                      # Celery (GPU tasks)
│   ├── tasks/
│   │   ├── pipeline.py          # Main orchestrator
│   │   ├── audio_separation.py  # Demucs
│   │   ├── pitch_analysis.py    # CREPE
│   │   ├── transcription.py     # Whisper
│   │   └── scoring.py           # Ollama jury
│   └── requirements.txt
│
├── docker-compose.yml           # Development
├── docker-compose.coolify.yml   # Production (Coolify)
└── CLAUDE.md                    # AI assistant instructions

📡 API Reference

Session Management

Endpoint Method Description
/api/session/start POST Create new session with Spotify track
/api/session/{id}/status GET Get session status & progress
/api/session/{id}/upload-recording POST Upload user recording
/api/session/{id}/analyze POST Start analysis pipeline
/api/session/{id}/analysis-status GET Get analysis progress & results

Audio Streaming

Endpoint Method Description
/api/audio/{id}/tracks GET List available audio tracks
/api/audio/{id}/{source}/{type} GET Stream audio track

⚙️ Configuration

Environment Variables

# Database
DATABASE_URL=postgresql://voicejury:password@postgres:5432/voicejury
REDIS_URL=redis://redis:6379/0

# Spotify API
SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret

# Genius API (Lyrics)
GENIUS_API_TOKEN=your_token

# Ollama LLM
OLLAMA_HOST=http://ollama:11434

# Security
SECRET_KEY=your_secret_key
WHISPER_MODEL=turbo

⚡ Performance

Benchmarks (NVIDIA RTX 3080)

Operation Duration
Demucs Separation ~25s (3min song)
Whisper Transcription ~8s
CREPE Pitch Analysis ~4s
Ollama Jury Comments ~5s
Total Analysis <60s

🔧 Troubleshooting

Problem Solution
Studio not loading Wait for Demucs separation (~25s)
No results after analysis Check logs: docker-compose logs worker-heavy
CUDA out of memory Reduce WHISPER_MODEL to small

Français

Table des matières


🌟 Fonctionnalités

Fonctionnalités principales

  • Intégration Spotify - Recherchez et sélectionnez n'importe quelle chanson
  • Auto-Match YouTube - Trouve automatiquement la vidéo YouTube correspondante
  • Paroles synchronisées - Affichage avec décalage ajustable (±5 minutes)
  • Séparation vocale IA - Isolation des voix par Demucs
  • Détection de pitch - Réseau neuronal CREPE
  • Reconnaissance vocale - Transcription Whisper

Mode Studio (NOUVEAU)

  • Mixeur multi-pistes - Contrôles de volume séparés pour voix et instrumentaux
  • Mode Pratique - Entraînez-vous avec la référence avant d'enregistrer
  • Lecture en temps réel - Écoutez les pistes séparées pendant l'analyse

Système de Jury IA

  • 3 Personas uniques :
    • 🔴 Le Cassant - Feedback direct et exigeant
    • 🟢 L'Encourageant - Commentaires positifs et motivants
    • 🔵 Le Technique - Analyse musicale détaillée
  • Scoring - Justesse (40%), Rythme (30%), Paroles (30%)

Expérience Utilisateur

  • Design Mobile-First - Optimisé pour smartphones
  • Mode Karaoké - Surlignage mot par mot (style Apple Music)
  • Tap-to-Sync - Cliquez sur une ligne pour synchroniser

🎯 Comment ça marche

┌─────────────────────────────────────────────────────────────────┐
│                   PIPELINE Tu as un incroyable talent ?                    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  1. PRÉPARATION              2. PRATIQUE (Optionnel)            │
│  ┌─────────────┐             ┌─────────────┐                    │
│  │ Sélection   │────────────▶│ Mode Studio │                    │
│  │  (Spotify)  │             │  (Mixeur)   │                    │
│  └──────┬──────┘             └──────┬──────┘                    │
│         │                           │                           │
│         ▼                           │                           │
│  ┌─────────────┐             3. PERFORMANCE                     │
│  │ YouTube +   │             ┌─────────────┐                    │
│  │ Demucs      │────────────▶│  Chanter    │                    │
│  └─────────────┘             │ (Enregistr.)│                    │
│                              └──────┬──────┘                    │
│                                     ▼                           │
│                              4. ANALYSE                         │
│  ┌──────────────────────────────────────────────┐               │
│  │  CREPE (Pitch) + Whisper (Texte) + Librosa   │               │
│  │                   ▼                          │               │
│  │     Justesse 40% | Rythme 30% | Paroles 30%  │               │
│  └──────────────────┬───────────────────────────┘               │
│                     ▼                                           │
│               5. JURY IA                                        │
│  ┌──────────────────────────────────────────────┐               │
│  │  Le Cassant | L'Encourageant | Le Technique  │               │
│  │              Ollama LLM (Llama 3.2)          │               │
│  └──────────────────────────────────────────────┘               │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

🛠 Stack Technique

Catégorie Technologies
Frontend React 18, TypeScript, Vite 6, Zustand 5, Tailwind CSS 3
Backend FastAPI, Python 3.11, PostgreSQL 16, Redis 7, Celery 5
IA/ML Demucs, CREPE, Whisper, Ollama (Llama 3.2), PyTorch + CUDA
Infra Docker Compose, NVIDIA CUDA, Coolify, Traefik

🚀 Démarrage Rapide

Prérequis

  • Docker & Docker Compose
  • GPU NVIDIA avec support CUDA
  • Compte Développeur Spotify
  • 16GB+ RAM recommandé

Installation

# Cloner le dépôt
git clone https://github.com/pi3music/tuasunincroyabletalent.fr.git
cd tuasunincroyabletalent.fr

# Copier et éditer le fichier d'environnement
cp .env.example .env && nano .env

# Démarrer tous les services
docker-compose up -d

# Vérifier les logs
docker-compose logs -f api worker-heavy

📡 Référence API

Endpoint Méthode Description
/api/session/start POST Créer une session avec piste Spotify
/api/session/{id}/status GET Statut et progression
/api/session/{id}/upload-recording POST Uploader l'enregistrement
/api/session/{id}/analyze POST Démarrer l'analyse
/api/session/{id}/analysis-status GET Progression et résultats
/api/audio/{id}/tracks GET Lister les pistes disponibles

⚡ Performance

Benchmarks (NVIDIA RTX 3080)

Opération Durée
Séparation Demucs ~25s (chanson 3min)
Transcription Whisper ~8s
Analyse CREPE ~4s
Commentaires Jury ~5s
Total <60s

🔧 Dépannage

Problème Solution
Studio ne charge pas Attendre la séparation Demucs (~25s)
Pas de résultats Vérifier logs : docker-compose logs worker-heavy
CUDA mémoire insuffisante Réduire WHISPER_MODEL à small

🤝 Contribuer / Contributing

Les contributions sont les bienvenues ! / Contributions are welcome!

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 Licence / License

MIT License - see LICENSE


🙏 Remerciements / Acknowledgments


Made with ❤️ for aspiring singers everywhere
Fait avec ❤️ pour tous les chanteurs en herbe

🎤 tuasunincroyabletalent.fr

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages