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 :

  1. 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.
  2. 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_mem  Utiliser l’inférence à mémoire faible (réduit les besoins en VRAM).
  • --not_use_flash_attn Sauter Flash Attention s’il n’est pas disponible.
  • --bgm  Générer uniquement la musique de fond.
  • --vocal  Générer uniquement les voix (style a cappella).
  • --separate Gé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
  • ArticleLeVo : 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 !

Original Article: Voir l’original

Partager cet article