Phase 06: Speech & Audio

Génération de musique Gen musical, Audio stable, Suno et le tremblement de terre de licence

La génération de musique 2026: Suno v5 et Udio v4 dominent les affaires; MusicGen, Stable Audio Open et ACE-Step sont principalement open-source. Le problème technique est principalement résolu. Le problème juridique (Warner Music $ 500M règlement, UMG règlement) remodelée le domaine en 2025-2026.

Type: Build

Languages: Python

Prerequisites: Phase 6 · 02 (Spectrograms), Phase 4 · 10 (Diffusion Models)

Time: ~75 minutes

Le problème

Text → un clip musical de 30 secondes à 4 minutes, avec paroles, voix et structure.

  1. Instrumental generation.Textes comme "lo-fi hip-hop drums avec des touches chaudes" → audio.
  2. Song generation (with vocals + lyrics)."Cant country sur les nuits pluvieuses au Texas" → chanson complète.
  3. Conditional / controllable.Extendre un clip existant, régénérer un pont, échanger le genre, séparer la tige ou la peinture.

Le concept

!Music generation: token-LM vs diffusion, the 2026 model map

Les codes de codec neuraux

Les méta MusicGen(2023, MIT) et de nombreux dérivés: condition sur les emblèmes de texte/mélodie, prévoir autorégressivement les jetons EnCodec (32 kHz, 4 codebooks), décoder avec EnCodec. 300M - 3.3B paramètres.

ACE-Step(open source, 4B XL sorti en avril 2026) étend cela à la génération liricale à chansons complètes.

Diffusion sur les fondements ou les latents

Stable Audio (2023)et Stable Audio Open (2024)Il est excellent pour les boucles, la conception sonore, les textures ambiantes, pas très bien pour les chansons complètes structurées.

AudioLDM / AudioLDM2: texte à audio via diffusion latente de style T2I, généralisée à la musique, aux effets sonores, à la parole.

Hybride (production) Suno, Udio, Lyria

Poids fermé. Probablement le codec AR LM + vocodeur basé sur la diffusion avec des têtes de voix / tambour / mélodie spécialisées. Suno v5 (2026) est le leader de qualité ELO 1293. Udio v4 ajoute la peinture + séparation de tige (bass, tambour, voix séparées téléchargements).

Évaluation

  • FAD (Fréchet Audio Distance).Distance de niveau d'intégration entre la distribution audio générée et la distribution audio réelle à l'aide de fonctionnalités VGGish ou PANN. Moins est mieux. MusicGen petit: 4,5 FAD sur MusicCaps; SOTA ~ 3.0.
  • Musicality (subjective).La préférence humaine.
  • Text-audio alignment.CLAP score entre le prompt et la sortie.
  • Musicality artifacts.Des transitions hors rythme, une dérive vocal, une perte de structure après 30 secondes.

Carte modèle 2026

ModelParamsLengthVocalsLicense
MusicGen-large3.3B30 snoMIT
Stable Audio Open1.2B47 snoStability non-commercial
ACE-Step XL (Apr 2026)4B> 2 minyesApache-2.0
YuE7B> 2 minyes, multilingualApache-2.0
Suno v5 (closed)?4 minyes, ELO 1293commercial
Udio v4 (closed)?4 minyes + stemscommercial
Google Lyria 3 (closed)?real-timeyescommercial
MiniMax Music 2.5?4 minyescommercial API

Le paysage juridique (2025-2026)

  • Warner Music vs Suno settlement.500 millions de dollars. WMG a maintenant la supervision de l'intelligence artificielle, des droits de musique et des pistes générées par l'utilisateur sur Suno.
  • EU AI Act+ California SB 942: La musique générée par l'IA doit être divulguée.
  • Riffusion / MusicGenLes membres du groupe ne sont pas des professionnels de la musique.

Modèles de sécurité pour le navire:

  1. Générer uniquement des instruments (MusicGen, Stable Audio Open, sorties MIT/CC0).
  2. Utilisez des API commerciales (Suno, Udio, ElevenLabs Music) avec une licence par génération.
  3. Le train sur le catalogue de propriété ou de licence (la plupart des entreprises finissent ici).
  4. Étiquettez les générations avec des balises d'eau + métadonnées.

Faites-le

Étape 1: générer avec MusicGen

pythonfrom audiocraft.models import MusicGen
import torchaudio

model = MusicGen.get_pretrained("facebook/musicgen-small")
model.set_generation_params(duration=10)
wav = model.generate(["upbeat synthwave with driving drums, 128 BPM"])
torchaudio.save("out.wav", wav[0].cpu(), 32000)

Trois tailles: small(300 M, rapide),mediumLe rapport de la Commissionlarge(3.3B) Le petit suffit pour "faire tomber l'idée".

Étape 2: conditionnement de la mélodie

pythonmelody, sr = torchaudio.load("humming.wav")
wav = model.generate_with_chroma(
    ["jazz piano cover"],
    melody.squeeze(),
    sr,
)

MusicGen-melody prend un chromagramme et préserve la mélodie tout en échangeant le timbre.

Étape 3: évaluation du FAD

pythonfrom frechet_audio_distance import FrechetAudioDistance
fad = FrechetAudioDistance()

fad.get_fad_score("generated_folder/", "reference_folder/")

Compute la distance de VGGish. Utilisée pour les tests de régression au niveau du genre; pas un substitut pour les auditeurs humains.

Étape 4: ajouter au flux de travail de la maîtrise en musique

Combinez avec les idées de l'étude 7-8:

pythonprompt = "Write a 30-second jazz loop. Describe the drums, bass, and piano voicing."
description = llm.complete(prompt)
music = musicgen.generate([description], duration=30)

Utilisez-le

GoalStack
Instrumental sound designStable Audio Open
Game / adaptive musicGoogle Lyria RealTime (closed)
Full songs with vocals (commercial)Suno v5 or Udio v4 with explicit license
Full songs with vocals (open)ACE-Step XL or YuE
Short ad jingleMusicGen melody-conditioned on a hummed reference
Music-video backgroundMusicGen + Stable Video Diffusion

Des pièges qui vont encore arriver en 2026

  • Copyright-laundering prompts."Cant dans le style de Taylor Swift" commercial Suno / Audio filtrer ces maintenant, les modèles ouverts ne. Ajoutez votre propre liste de filtres.
  • Repetition / drift past 30 s.Modèles AR boucle. croiser plusieurs générations, ou utiliser ACE-Step pour la cohérence structurelle.
  • Tempo drift.Les modèles se détournent du BPM. Utilisez les balises BPM dans le prompt et le post-filtre avec librosa's beat_track- Je suis désolé .
  • Vocal intelligibility.Le Suno est excellent; les modèles ouverts sont souvent mal à l'aise avec les mots.
  • Mono output.Les modèles ouverts génèrent des stéréos mono ou faux.

La faire partir

  • Je ne sais pas .outputs/skill-music-designer.md. Choisir le modèle, la stratégie de licence, la longueur / plan de structure et les métadonnées de divulgation pour un déploiement de génération de musique.

Exercices

  1. Easy.On court .code/main.pyIl produit une progression d'accord "générative" + un motif de batterie comme symboles ASCII un dessin animé de génération musicale.
  2. Medium.Installezaudiocraft, générer des clips de 10 secondes sur 4 genres avec MusicGen-small, mesurer FAD contre un ensemble de genres de référence.
  3. Hard.En utilisant ACE-Step (ou MusicGen-melody), générez trois variations de la même mélodie avec des commandes de timbre différentes.

Les termes clés

TermWhat people sayWhat it actually means
FADAudio FIDFréchet distance between embedding distributions of real vs generated.
ChromagramMelody as pitches12-dim per-frame vector; input to melody conditioning.
StemsInstrument tracksSeparated bass / drums / vocals / melody as WAV.
InpaintingRegen a sectionMask a time window; model regenerates just that.
CLAPText-audio CLIPContrastive audio-text embedding; eval text-audio alignment.
EnCodecMusic codecMeta's neural codec used by MusicGen; 32 kHz, 4 codebooks.

Pour en savoir plus

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.