ChansonGeneration – Modèle Musique Open‑Source LeVo (NeurIPS 2025)
ChansonGeneration – Modèle Musique Open‑Source LeVo (NeurIPS 2025)
Si vous avez déjà imaginé une IA capable d'écrire des chansons complètes avec paroles, mélodies et accompagnements sur demande, ChansonGeneration est l'outil qu'il vous faut. Développé comme base de code officielle pour l'article NeurIPS 2025 LeVo : Génération de chansons de haute qualité avec alignement multi-préférences, ce dépôt transforme un modèle de recherche de pointe en un module open‑source convivial pour les développeurs capable de générer des pistes complètes en quelques secondes seulement.
🎶 Qu’est‑ce que ChansonGeneration ?
ChansonGeneration est une architecture basée sur un modèle de langage qui combine deux composants clés :
- LeLM – un LM de style transformeur qui modélise simultanément les tokens mélangés (voix + musique de fond) et les tokens double-piste (voix et accompagnement séparés), permettant au modèle d’aligner les paroles avec la structure harmonique et rythmique.
- Music Codec – un codec neuronal efficace qui décoder les tokens double‑piste en audio PCM haute fidélité.
Cette combinaison donne un système capable de :
- Produire des chansons allant jusqu’à 4 minutes et 30 secondes.
- Prendre en charge plusieurs langues (Chinois, Anglais, Espagnol, Japonais, etc.) selon le point de contrôle.
- Générer des sorties multi‑pistes (voix, accompagnement ou les deux combinés) et même des voix pures ou de la musique pure.
- Utiliser un audio‑prompt pour orienter le style, le genre ou le timbre.
🏗️ Structure du dépôt
ChansonGeneration/
├─ conf/ # Fichiers de configuration par défaut
├─ img/ # Images pour README et docs
├─ sample/ # Fichiers JSONL d’entrée d’exemple & sorties
├─ tools/
│ └─ gradio/ # Scripts d’interface Gradio
├─ generate.py # Point d’entrée d’inférence basé sur Gradio
├─ generate.sh # Wrapper script shell pour l’inférence
├─ LICENSE # Licence MIT‑style
├─ README.md # Documentation complète
├─ requirements.txt # Dépendances Python
└─ ...
Le README est votre point d’entrée. Il couvre tout, de l’installation aux usages avancés (p.ex., inférence à mémoire faible, basculements Flash Attention, déploiement Docker).
📦 Installation et Exécution
1. Prérequis
- Python ≥ 3.8.12
- CUDA ≥ 11.8 (accélération GPU ; CPU de secours optionnel)
- GPU avec au moins 10 GB de mémoire libre (GPU RTX 10B+). Si votre GPU est plus petit, consultez la section mémoire faible.
2. Installer le Code
# Clonez le dépôt
git clone https://github.com/tencent-ailab/SongGeneration.git
cd SongGeneration
# Installez les dépendances
pip install -r requirements.txt
pip install -r requirements_nodeps.txt --no-deps
# Optionnel : installer Flash Attention (améliore la vitesse)
# pip install https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.4.post1/flash_attn-2.7.4.post1+cu12torch2.6cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
3. Télécharger les checkpoints du modèle
Tous les checkpoints sont hébergés sur Hugging Face. Par exemple, pour télécharger le checkpoint SongGeneration‑base‑full :
huggingface-cli download lglg666/SongGeneration-base-full --local-dir ./songgeneration_base_full
Si vous préférez le modèle plus grand SongGeneration‑large, ajustez le chemin en conséquence. Les noms de dossiers du modèle doivent correspondre exactement au nom du checkpoint.
4. Lancer l’inférence
Vous pouvez lancer l’interface Gradio ou exécuter l’inférence depuis la ligne de commande.
a) Interface Gradio
sh tools/gradio/run.sh <ckpt_path>
# exemple :
# sh tools/gradio/run.sh ./songgeneration_base_full
Cela démarrera un serveur web local (défaut http://localhost:7860) où vous pourrez :
- Télécharger un fichier JSONL ou saisir des paroles directement.
- Choisir une version de modèle.
- Activer des options comme Separar Pistes, Voix Pures, ou Musique Pure.
- Aperçu et télécharger les clips générés sous forme MP3‑style.
b) Inférence en ligne de commande (CLI)
sh generate.sh <ckpt_path> <input_jsonl> <output_dir> [options]
# exemple d’utilisation
sh generate.sh ./songgeneration_base_full sample/lyrics.jsonl sample/output
Les options comprennent :
--low_memUtiliser l’inférence à mémoire faible (réduit les besoins en VRAM).--not_use_flash_attnSauter Flash Attention s’il n’est pas disponible.--bgmGénérer uniquement la musique de fond.--vocalGénérer uniquement les voix (style a cappella).--separateGénérer les pistes vocales et d’accompagnement séparées.
5. Prompt‑Audio & Descriptions
Vous pouvez orienter la génération avec un court audio (10 secondes) ou en spécifiant des tags description. Le dépôt fournit un tableau de tags supportés pour le genre, le timbre, le genre musical, l’émotion, l’instrument, et le BPM. Par exemple :
{
"idx": "song_01",
"gt_lyric": "[intro-short] ; [verse] … ; [chorus] … ; [outro-medium]",
"descriptions": "female, bright, pop, energetic, guitar, drums"
}
Le modèle produira une piste pop de 2 minutes avec le timbre vocal et l’instrumentation correspondants.
🚀 Fonctionnalités récentes (au Oct 2025)
| Date | Mise à jour |
|---|---|
| 2025‑10‑16 | La page web de démonstration prend désormais en charge la génération de chansons complètes (jusqu’à 4 m 30 s) |
| 2025‑10‑15 | Le code a été mis à jour pour la vitesse d’inférence et la nouvelle version du modèle |
| 2025‑10‑14 | Lancement du checkpoint SongGeneration‑large |
| 2025‑10‑13 | Lancement de SongGeneration‑base‑full à plein temps avec données d’évaluation |
| 2025‑10‑12 | Lancement de SongGeneration‑base‑new enrichi en anglais |
| 2025‑09‑23 | Pipeline de traitement des données publié – suivi automatique des battements et alignement des paroles |
| 2025‑07‑25 | Le modèle peut fonctionner avec seulement 10 GB de mémoire GPU |
📚 Comment l’utiliser dans vos projets
1️⃣ Créer une application web
Utilisez l’interface Gradio comme base et intégrez‑la dans votre propre serveur Flask ou FastAPI. Le script generate.py expose une API simple que vous pouvez appeler depuis n’importe quel langage.
2️⃣ Créer une démo mobile
Exportez les checkpoints entraînés vers ONNX ou TorchScript et déployez sur Android/iOS avec CoreML ou TensorFlow Lite. L’indicateur d’inférence à mémoire faible est particulièrement utile sur les GPU mobiles.
3️⃣ Générer de la musique pour les jeux vidéo
Fournissez des scripts de paroles structurés (p.ex., fichiers JSONL) au système. Le format de sortie (VST ou PCM brut) peut être directement importé dans les moteurs audio de jeu comme FMOD ou Wwise.
4️⃣ Expérimenter avec l’invite basée sur la recherche
Le dépôt inclut un petit kit d’outils pour sélectionner automatiquement un audio‑prompt depuis une bibliothèque : en spécifiant auto_prompt_audio_type vous pouvez demander au modèle de générer une pièce Jazz ou Rock sans télécharger de fichier audio.
🔗 Ressources & Communauté
- Hugging Face Space – Démo interactive : https://huggingface.co/spaces/lglg666/song-generation-levo
- Article – LeVo : Génération de chansons de haute qualité avec alignement multi‑préférences (arXiv 2506.07520)
- Image Docker – Démarrage rapide :
docker pull juhayna/song-generation-levo:hf0613 - Discussions & Issues GitHub – Posez vos questions, partagez des échantillons, signalez des bugs.
⚙️ Points forts de l’évaluation
Le dépôt liste des métriques d’évaluation complètes (p.ex., PER, Audiobox Aesthetics, SongEval). Comparé aux modèles open‑source existants comme Suno ou Mureka, ChansonGeneration affiche le PER le plus bas et les scores esthétiques les plus élevés, surtout dans la variante SongGeneration‑large.
🎓 Conclusion
ChansonGeneration comble l’écart entre la recherche et la production. Son architecture modulaire, sa documentation exhaustive et ses checkpoints pré‑entraînés à grande échelle en font un candidat idéal pour toute personne souhaitant créer des outils de génération musicale IA‑puissants – que ce soit pour une plateforme commerciale, un projet personnel ou des recherches académiques. Avec la communauté de développement active sur GitHub et le support actif sur Hugging Face, vous pouvez rester à jour avec les dernières mises à jour et exploiter de nouvelles variantes de modèles dès leur sortie.
Essayez‑le dès aujourd’hui : explorez le dépôt, lancez la démo et composez vos propres chansons créées par IA en une seule commande !