Tu as un incroyable talent ? - Karaoke AI Singing Evaluation Platform
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 • Recording with Lyrics • AI Jury Results
Recherche • Enregistrement avec Paroles • Résultats du Jury IA
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
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
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%)
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
┌─────────────────────────────────────────────────────────────────┐
│ 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 │ │ │
│ │ └──────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
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
Technology
Purpose
FastAPI
REST API Framework
Python 3.11
Runtime
PostgreSQL 16
Database
Redis 7
Cache & Task Queue
Celery 5
Background Tasks
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
Technology
Purpose
Docker Compose
Container Orchestration
NVIDIA CUDA
GPU Computing
Coolify
Self-hosted PaaS
Traefik
Reverse Proxy & TLS
Docker & Docker Compose
NVIDIA GPU with CUDA support
Spotify Developer Account
16GB+ RAM recommended
# 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
# 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
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
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
Endpoint
Method
Description
/api/audio/{id}/tracks
GET
List available audio tracks
/api/audio/{id}/{source}/{type}
GET
Stream audio track
# 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
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
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
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
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
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%)
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) │ │
│ └──────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
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
Docker & Docker Compose
GPU NVIDIA avec support CUDA
Compte Développeur Spotify
16GB+ RAM recommandé
# 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
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
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
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!
Fork the repository
Create your feature branch (git checkout -b feature/amazing-feature)
Commit your changes (git commit -m 'Add amazing feature')
Push to the branch (git push origin feature/amazing-feature)
Open a Pull Request
MIT License - see LICENSE
🙏 Remerciements / Acknowledgments
Made with ❤️ for aspiring singers everywhere
Fait avec ❤️ pour tous les chanteurs en herbe
🎤 tuasunincroyabletalent.fr