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:
- Generación instrumental. Texto como "batería de lo-fi hip-hop con teclados cálidos" → audio. MusicGen, Stable Audio, AudioLDM.
- Generación de canción (con voces + letra). "Canción country sobre noches lluviosas en Texas" → canción completa. Suno, Udio, YuE, ACE-Step.
- 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
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 | sí | 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 | sí | comercial |
| MiniMax Music 2.5 | ? | 4 min | sí | 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:
- Generar solo instrumental (MusicGen, Stable Audio Open, salidas MIT/CC0).
- Usar APIs comerciales (Suno, Udio, ElevenLabs Music) con términos por generación.
- Entrenar sobre catálogo propio o con términos (la mayoría de las empresas termina aquí).
- 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_trackde 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
- 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. - 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. - 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
- Copet et al. (2023). MusicGen — el benchmark autoregresivo abierto.
- Evans et al. (2024). Stable Audio Open — el estándar para sound design.
- ACE-Step — generador abierto de 4B de canción completa, abril de 2026.
- Documentación de la plataforma Suno v5 — el líder de calidad comercial.
- AudioLDM2 — difusión latente para música + efectos de sonido.
- Cobertura del acuerdo WMG-Suno — precedente de noviembre de 2025.