Phase 06 - Lesson 09

Generación de Música — MusicGen, Stable Audio, Suno y el Terremoto del Licenciamiento

Generación de música en 2026: Suno v5 y Udio v4 dominan el ámbito comercial; MusicGen, Stable Audio Open y ACE-Step lideran el código abierto. El problema técnico está, en su mayor parte, resuelto. El problema legal (acuerdo de US$ 500M de Warner Music, acuerdo de UMG) remodeló el sector en 2025-2026.

Tipo: Build Lenguajes: Python Requisitos previos: Fase 6 · 02 (Espectrogramas), Fase 4 · 10 (Modelos de Difusión) Tiempo: ~75 minutos

El Problema

Texto → un clip de música de 30 segundos a 4 minutos, con letra, voces y estructura. Tres subproblemas:

  1. Generación instrumental. Texto como "batería de lo-fi hip-hop con teclados cálidos" → audio. MusicGen, Stable Audio, AudioLDM.
  2. Generación de canción (con voces + letra). "Canción country sobre noches lluviosas en Texas" → canción completa. Suno, Udio, YuE, ACE-Step.
  3. Condicional / controlable. Extender un clip existente, regenerar un puente, cambiar de género, separar stems o hacer inpainting. El inpainting + separación de stems de Udio es la funcionalidad de 2026 a igualar.

El Concepto

Generación de música: LM de tokens vs difusión, el mapa de modelos de 2026

LM de tokens sobre tokens de neural-codec

El MusicGen de Meta (2023, MIT) y muchos derivados: condicionan en embeddings de texto/melodía, predicen autoregresivamente tokens de EnCodec (32 kHz, 4 codebooks), decodifican con EnCodec. 300M - 3,3B de parámetros. Baseline sólido; tiene dificultades más allá de los 30 segundos.

El ACE-Step (código abierto, XL de 4B lanzado en abril de 2026) extiende esto a la generación de canción completa condicionada por letra. El equivalente más cercano a Suno en la comunidad abierta.

Difusión sobre mels o latentes

Stable Audio (2023) y Stable Audio Open (2024): difusión latente sobre audio comprimido. Sobresale en loops, sound design y texturas ambientales. No es muy bueno en canciones completas estructuradas.

AudioLDM / AudioLDM2: texto-a-audio mediante difusión latente al estilo T2I, generalizada a música, efectos de sonido y habla.

Híbrido (producción) — Suno, Udio, Lyria

Pesos cerrados. Probablemente LM de codec AR + vocoder basado en difusión con heads especializados de voz / batería / melodía. Suno v5 (2026) es el líder de calidad con ELO 1293. Udio v4 agrega inpainting + separación de stems (descargas separadas de bajo, batería, voces).

Evaluación

  • FAD (Fréchet Audio Distance). Distancia a nivel de embedding entre la distribución de audio generado vs real usando features de VGGish o PANNs. Cuanto menor, mejor. MusicGen small: FAD 4,5 en MusicCaps; SOTA ~3,0.
  • Musicalidad (subjetiva). Preferencia humana. Suno v5 lidera con ELO 1293.
  • Alineación texto-audio. Score CLAP entre el prompt y la salida.
  • Artefactos de musicalidad. Transiciones fuera de tiempo, deriva de la frase vocal, pérdida de estructura después de 30 s.

Mapa de modelos de 2026

Modelo Parámetros Duración Voces Licencia
MusicGen-large 3,3B 30 s no MIT
Stable Audio Open 1,2B 47 s no Stability no comercial
ACE-Step XL (abr 2026) 4B > 2 min Apache-2.0
YuE 7B > 2 min sí, multilingüe Apache-2.0
Suno v5 (cerrado) ? 4 min sí, ELO 1293 comercial
Udio v4 (cerrado) ? 4 min sí + stems comercial
Google Lyria 3 (cerrado) ? tiempo real comercial
MiniMax Music 2.5 ? 4 min API comercial

El panorama legal (2025-2026)

  • Acuerdo Warner Music vs Suno. US$ 500M. WMG ahora tiene supervisión sobre la semejanza por IA, los derechos musicales y las pistas generadas por usuarios en Suno. Acuerdo similar de UMG sobre Udio.
  • EU AI Act + California SB 942: la música generada por IA debe declararse.
  • Riffusion / MusicGen bajo MIT no tienen carga de cumplimiento, pero tampoco voces comerciales.

Patrones seguros para lanzar:

  1. Generar solo instrumental (MusicGen, Stable Audio Open, salidas MIT/CC0).
  2. Usar APIs comerciales (Suno, Udio, ElevenLabs Music) con términos por generación.
  3. Entrenar sobre catálogo propio o con términos (la mayoría de las empresas termina aquí).
  4. Etiquetar las generaciones con watermarks + metadatos.

Manos a la Obra

Paso 1: generar con MusicGen

from 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)

Tres tamaños: small (300M, rápido), medium (1,5B), large (3,3B). El small es suficiente para "¿funciona la idea?".

Paso 2: condicionamiento por melodía

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

MusicGen-melody recibe un cromagrama y preserva la melodía mientras cambia el timbre. Útil para "dame esta melodía como un cuarteto de cuerdas".

Paso 3: evaluación FAD

from frechet_audio_distance import FrechetAudioDistance
fad = FrechetAudioDistance()

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

Calcula la distancia de embedding de VGGish. Útil para pruebas de regresión a nivel de género; no sustituye a los oyentes humanos.

Paso 4: agregándolo al flujo de trabajo de música con LLM

Combina con las ideas de las Lecciones 7-8:

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

Úsalo

Objetivo Stack
Sound design instrumental Stable Audio Open
Música para juegos / adaptativa Google Lyria RealTime (cerrado)
Canciones completas con voces (comercial) Suno v5 o Udio v4 con licencia explícita
Canciones completas con voces (abierto) ACE-Step XL o YuE
Jingle corto de anuncio MusicGen condicionado por melodía a partir de una referencia tarareada
Fondo musical para videoclip MusicGen + Stable Video Diffusion

Trampas que aún aparecen en 2026

  • Prompts de lavado de copyright. "Canción al estilo de Taylor Swift" — Suno/Udio comerciales filtran esto ahora, los modelos abiertos no. Agrega tu propia lista de filtros.
  • Repetición / deriva después de 30 s. Los modelos AR entran en bucle. Haz crossfade de varias generaciones o usa ACE-Step para la coherencia estructural.
  • Deriva de tempo. Los modelos se salen del BPM. Usa etiquetas de BPM en el prompt y posfiltra con el beat_track de librosa.
  • Inteligibilidad vocal. Suno es excelente; los modelos abiertos suelen ser confusos con las palabras. Si la letra importa, usa una API comercial o haz fine-tune.
  • Salida mono. Los modelos abiertos generan mono o estéreo falso. Mejóralo con una reconstrucción estéreo adecuada (ezst, difusión estéreo de Cartesia).

Entrégalo

Guarda como outputs/skill-music-designer.md. Elige el modelo, la estrategia de licencia, el plan de duración / estructura y los metadatos de declaración para un despliegue de generación de música.

Ejercicios

  1. Fácil. Ejecuta code/main.py. Produce una progresión de acordes "generativa" + un patrón de batería como símbolos ASCII — una caricatura de generación de música. Reprodúcelo con cualquier renderizador MIDI si quieres.
  2. Medio. Instala audiocraft, genera clips de 10 segundos en 4 prompts de género con MusicGen-small y mide el FAD contra un conjunto de género de referencia.
  3. Difícil. Usando ACE-Step (o MusicGen-melody), genera tres variaciones de la misma melodía con prompts de timbre diferentes. Calcula la similitud CLAP con el prompt para verificar la alineación.

Términos Clave

Término Lo que dice la gente Lo que realmente significa
FAD FID de audio Distancia de Fréchet entre distribuciones de embedding de audio real vs generado.
Cromagrama Melodía como notas Vector de 12 dimensiones por frame; entrada para el condicionamiento por melodía.
Stems Pistas de instrumentos Bajo / batería / voces / melodía separados como WAV.
Inpainting Regenerar una sección Enmascara una ventana de tiempo; el modelo regenera solo eso.
CLAP CLIP texto-audio Embedding contrastivo de audio-texto; evalúa la alineación texto-audio.
EnCodec Codec de música Codec neuronal de Meta usado por MusicGen; 32 kHz, 4 codebooks.

Lectura Adicional

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).