음악 생성(Music Generation) — MusicGen, Stable Audio, Suno, 그리고 라이선스 지각변동

2026년 음악 생성(music generation)에서는 상용 영역에서 Suno v5와 Udio v4가 우위를 점하고 있으며, 오픈 소스(open-source)에서는 MusicGen, Stable Audio Open, ACE-Step이 앞서 있습니다. 기술적 문제는 대부분 해결되었습니다. 하지만 법적 문제, 즉 워너 뮤직(Warner Music)의 5억 달러 합의(settlement)와 UMG 합의가 2025-2026년에 이 분야를 크게 재편했습니다.

유형: Build 언어: Python 선수 강의: Phase 6 · 02 (스펙트로그램, Spectrograms), Phase 4 · 10 (확산 모델, Diffusion Models) 예상 시간: 약 75분

학습 목표

  • 음악 생성을 악기 연주 생성(instrumental generation), 노래 생성(song generation), 제어 가능한 편집(controllable editing)으로 나누어 설명합니다.
  • 뉴럴 코덱 토큰 기반 언어 모델(neural-codec token LM)과 확산(diffusion) 기반 오디오 생성을 비교합니다.
  • FAD, CLAP, 사람 선호도(human preference) 같은 평가 지표를 구분합니다.
  • 음악 생성 배포에서 라이선스(license), 권리(rights), 공시(disclosure)가 중요한 이유를 이해합니다.

문제

텍스트에서 30초-4분짜리 음악 클립(music clip)을 만들어야 합니다. 가사(lyrics), 보컬(vocals), 구조(structure)가 포함될 수 있습니다. 하위 문제는 세 가지입니다.

  1. 악기 연주 생성(Instrumental generation). "lo-fi hip-hop drums with warm keys" 같은 텍스트에서 오디오를 생성합니다. MusicGen, Stable Audio, AudioLDM이 여기에 해당합니다.
  2. 노래 생성(Song generation; 보컬과 가사 포함). "Country song about rainy Texas nights" 같은 프롬프트에서 전체 곡(full song)을 만듭니다. Suno, Udio, YuE, ACE-Step이 여기에 해당합니다.
  3. 조건부 / 제어 가능한 생성(Conditional / controllable). 기존 클립을 확장(extend)하거나 브리지(bridge)를 다시 만들고, 장르(genre)를 바꾸거나, 스템 분리(stem-separate)하거나, 인페인팅(inpaint)합니다. Udio의 인페인팅과 스템 분리(stem separation)는 2026년 기준 맞춰야 할 핵심 기능입니다.

사전 테스트

2문제 · 이 강의를 시작하기 전에 얼마나 알고 있는지 확인해보세요

1.2026년 음악 생성(music generation)은 세 가지 하위 문제로 나눌 수 있습니다. 다음 중 올바르게 식별한 것은 무엇인가요?

2.음악 생성 모델의 두 가지 주요 아키텍처 접근 방식은 무엇인가요?

0/2 답변 완료

개념

music generation — two paradigms, one legal landscape A. AR token LM over neural codec MusicGen · ACE-Step · YuE · VALL-E-Music text prompt → T5 / CLAP embedding → AR transformer over EnCodec tokens → EnCodec decoder → audio 32 kHz streams (future); structured songs with lyrics drift past 30 s; loops; needs crossfade B. latent diffusion over mel / latent codec Stable Audio · AudioLDM 2 · Riffusion text → CLAP embedding → latent diffusion (DDPM / flow) → decoder → audio 44.1 / 48 kHz best for loops, textures, sound design weaker structure, weaker vocals 2026 leaderboard + legal note MusicGen-large 3.3B 30 s no vocals MIT - instrumental baseline Stable Audio Open 1.2B 47 s no vocals non-commercial - loops, textures ACE-Step XL (Apr 26) 4B > 2 min vocals Apache-2.0 - open full-song Suno v5 (closed) ? 4 min vocals commercial - ELO 1293; quality leader Udio v4 (closed) ? 4 min vocals+stems commercial - inpainting, stem split legal: Warner + UMG settled with Suno / Udio in 2025-26; disclosure + watermarking required (EU AI Act, CA SB 942) safe-to-ship: instrumental MIT/CC0 · commercial API with license · train on owned catalog

뉴럴 코덱 토큰 위의 토큰 언어 모델(Token LM over neural-codec tokens)

메타(Meta)의 MusicGen(2023, MIT)과 그 파생 모델 다수는 텍스트/멜로디 임베딩(text/melody embedding)을 조건으로 EnCodec 토큰(32 kHz, 4 코드북(codebooks))을 자기회귀(autoregressive) 방식으로 예측하고, EnCodec으로 디코딩(decode)합니다. 모델 규모는 300M-3.3B 파라미터(params)입니다. 강력한 기준선(baseline)이지만 30초를 넘어가면 구조 유지가 어려워집니다.

ACE-Step(open-source, 4B XL, 2026년 4월 공개)은 가사 조건부 전체 곡 생성(full-song lyric-conditioned generation)을 위해 이를 확장합니다. 오픈 커뮤니티(open community)에서 Suno에 가장 근접한 모델로 평가됩니다.

멜(mel) 또는 잠재 공간(latent) 위의 확산(Diffusion)

Stable Audio(2023)Stable Audio Open(2024) 은 압축된 오디오 위의 잠재 확산(latent diffusion)입니다. 루프(loop), 사운드 디자인(sound design), 앰비언트 텍스처(ambient texture)에 강합니다. 구조가 있는 전체 곡(structured full song)에는 상대적으로 약합니다.

AudioLDM / AudioLDM2 는 텍스트-투-이미지(text-to-image) 스타일의 잠재 확산을 오디오, 음악, 음향 효과(sound effects), 음성(speech)으로 일반화한 계열입니다.

하이브리드 프로덕션 모델(Hybrid production) — Suno, Udio, Lyria

이 모델들은 가중치가 비공개(closed weights)입니다. 대체로 자기회귀 코덱 언어 모델(AR codec LM)에 확산 기반 보코더(diffusion-based vocoder), 그리고 특화된 보컬/드럼/멜로디 헤드(voice / drum / melody heads)가 결합된 형태로 추정됩니다. Suno v5(2026)는 ELO 1293의 품질 선두주자(quality leader)입니다. Udio v4는 인페인팅과 스템 분리를 제공합니다. 베이스, 드럼, 보컬을 각각 따로 다운로드할 수 있습니다.

평가(Evaluation)

  • FAD(Fréchet Audio Distance; 프레셰 오디오 거리). VGGish 또는 PANNs 피처(features)를 사용해 생성 오디오 분포와 실제 오디오 분포 사이의 임베딩 수준 거리(embedding-level distance)를 계산합니다. 낮을수록 좋습니다. MusicGen small은 MusicCaps에서 약 4.5 FAD이고, SOTA는 약 3.0입니다.
  • 음악성(Musicality; 주관 평가). 사람 선호도(human preference)입니다. Suno v5의 ELO 1293이 앞서 있습니다.
  • 텍스트-오디오 정렬(Text-audio alignment). 프롬프트와 출력 사이의 CLAP 점수(score)를 봅니다.
  • 음악성 아티팩트(Musicality artifacts). 박자 어긋남(off-beat transition), 보컬 프레이즈 드리프트(vocal-phrase drift), 30초 이후 구조 손실(structure loss)을 확인합니다.

2026년 모델 지도(model map)

모델파라미터(Params)길이(Length)보컬(Vocals)라이선스(License)
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
  • 워너 뮤직 대 Suno 합의(Warner Music vs Suno settlement). 5억 달러 규모입니다. 이제 WMG는 Suno의 AI 유사성(AI-likeness), 음원 권리(music rights), 사용자 생성 트랙(user-generated tracks)에 대한 감독권(oversight)을 갖습니다. Udio에서도 유사한 UMG 합의가 있었습니다.
  • EU AI 법(EU AI Act)캘리포니아 SB 942(California SB 942). AI가 생성한 음악은 공시(disclose)되어야 합니다.
  • Riffusion / MusicGen 은 MIT 라이선스 아래에서 컴플라이언스 부담(compliance baggage)이 없지만, 상용 보컬(commercial vocals) 기능도 없습니다.

안전하게 출시할 수 있는 패턴(Safe-to-ship patterns)은 대체로 다음 네 가지입니다.

  1. 악기 연주만 생성합니다(MusicGen, Stable Audio Open, MIT/CC0 출력물).
  2. 생성 단위 라이선스(per-generation license)가 있는 상용 API(Suno, Udio, ElevenLabs Music)를 사용합니다.
  3. 보유하거나 라이선스를 확보한 카탈로그(catalog)로 학습합니다. 대부분의 기업(enterprise)은 결국 여기로 수렴합니다.
  4. 생성물에 워터마크(watermark)와 메타데이터(metadata)를 붙입니다.

직접 만들기

Step 1: 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)

크기는 세 가지입니다. small(300M, 빠름), medium(1.5B), large(3.3B)입니다. "아이디어가 전달되는가"를 확인하는 용도에는 small이면 충분합니다.

Step 2: 멜로디 조건부 생성(Melody conditioning)

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

MusicGen-melody는 크로마그램(chromagram)을 받아 음정(tune)은 유지하고 음색(timbre)만 바꾸는 데 씁니다. "이 멜로디를 현악 사중주(string quartet)처럼 만들어 달라" 같은 요청에 유용합니다.

Step 3: FAD 평가(evaluation)

from frechet_audio_distance import FrechetAudioDistance
fad = FrechetAudioDistance()

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

VGGish 임베딩 거리(embedding distance)를 계산합니다. 장르 수준의 회귀 테스트(genre-level regression test)에는 유용하지만, 사람 청자(human listener)를 대체할 수는 없습니다.

Step 4: LLM 기반 음악 워크플로(workflow)에 결합하기

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)

사용하기

목표스택(Stack)
악기 사운드 디자인(Instrumental sound design)Stable Audio Open
게임 / 적응형 음악(Game / adaptive music)Google Lyria RealTime(closed)
보컬 포함 전체 곡(상용)명시적 라이선스가 있는 Suno v5 또는 Udio v4
보컬 포함 전체 곡(오픈)ACE-Step XL 또는 YuE
짧은 광고 징글(Short ad jingle)허밍 레퍼런스(hummed reference)에 멜로디 조건을 준 MusicGen
뮤직비디오 배경(Music-video background)MusicGen + Stable Video Diffusion

2026년에도 출시되는 흔한 함정(Pitfalls)

  • 저작권 세탁성 프롬프트(Copyright-laundering prompts). "Song in the style of Taylor Swift" 같은 프롬프트입니다. 상용 Suno/Udio는 이제 이를 걸러내지만(filter), 오픈 모델은 그렇지 않습니다. 자체 필터 목록(filter list)을 추가해야 합니다.
  • 30초 이후 반복 / 표류(repetition / drift). 자기회귀(AR) 모델은 루프(loop)에 빠질 수 있습니다. 여러 생성물을 크로스페이드(crossfade)로 잇거나, 구조적 일관성(structural coherence)을 위해 ACE-Step을 사용합니다.
  • 템포 드리프트(Tempo drift). 모델이 지정한 BPM에서 벗어날 수 있습니다. 프롬프트에 BPM 태그를 넣고, librosa의 beat_track으로 사후 필터링(post-filter)합니다.
  • 보컬 명료성(Vocal intelligibility). Suno는 뛰어나지만, 오픈 모델은 단어가 뭉개지는 경우가 많습니다. 가사가 중요하다면 상용 API를 쓰거나 파인 튜닝(fine-tune)합니다.
  • 모노 출력(Mono output). 오픈 모델은 모노(mono) 또는 가짜 스테레오(fake-stereo)를 생성합니다. 제대로 된 스테레오 복원(stereo reconstruction; ezst, Cartesia의 stereo diffusion 등)으로 업그레이드합니다.

산출물 만들기

outputs/skill-music-designer.md로 저장합니다. 음악 생성 배포(music-gen deployment)에 맞는 모델, 라이선스 전략, 길이/구조 계획(length / structure plan), 공시 메타데이터(disclosure metadata)를 선택하는 스킬(skill)입니다.

연습문제

  1. 쉬움. code/main.py를 실행합니다. ASCII 기호(symbol)로 "생성형" 코드 진행(chord progression)과 드럼 패턴(drum pattern)을 만듭니다. 원하면 MIDI 렌더러(renderer)로 재생(playback)해 봅니다.
  2. 중간. audiocraft를 설치하고 MusicGen-small로 4개의 장르 프롬프트에 대해 10초 클립을 생성합니다. 레퍼런스 장르 셋(reference genre set)에 대한 FAD를 측정합니다.
  3. 어려움. ACE-Step 또는 MusicGen-melody를 사용해 같은 곡조(tune)의 세 가지 변형(variation)을 서로 다른 음색(timbre) 프롬프트로 생성합니다. 프롬프트 정렬(alignment)을 확인하기 위해 CLAP 유사도(similarity)를 계산합니다.

핵심 용어

용어흔한 설명실제 의미
FAD오디오판 FID실제 분포와 생성 분포의 임베딩 사이 프레셰 거리(Fréchet distance)입니다.
크로마그램(Chromagram)멜로디를 음정으로 표현프레임마다의 12차원 피치 클래스 벡터(pitch-class vector)입니다. 멜로디 조건 입력으로 쓰입니다.
스템(Stems)악기 트랙베이스 / 드럼 / 보컬 / 멜로디 등으로 분리된 WAV입니다.
인페인팅(Inpainting)특정 구간 재생성시간 구간을 마스크(mask)하고 해당 구간만 모델이 다시 생성합니다.
CLAP텍스트-오디오판 CLIP대조 학습 기반(contrastive) 오디오-텍스트 임베딩이며 텍스트-오디오 정렬 평가에 씁니다.
EnCodec음악 코덱MusicGen이 사용하는 메타(Meta)의 뉴럴 코덱(neural codec)입니다. 32 kHz, 4 코드북입니다.

더 읽을거리

실습 코드

이 강의의 실습 코드 1개

main
Code

산출물

이 강의에서 생성된 프롬프트, 스킬, 코드 산출물 1개

music-designer

Pick a music-generation model, license strategy, length plan, and disclosure metadata for a deployment.

Skill

확인 문제

3문제 · 모두 맞추면 완료 표시가 가능합니다

1.MusicGen-small로 60초 트랙을 생성했는데, 처음 30초 이후 멜로디가 반복적인 루프(loop)로 빠집니다. 이런 현상이 발생하는 이유와 해결 방법은 무엇인가요?

2.음악 생성 기능을 상업적으로 출시하려 합니다. 오픈소스 모델이 아티스트 이름으로 프롬프트를 받으면 저작권이 있는 곡과 유사한 음악을 생성하는 경우가 있습니다. 가장 안전한 완화 전략은 무엇인가요?

3.FAD(Fréchet Audio Distance; 프레셰 오디오 거리)는 음악 생성 품질을 평가하는 데 사용됩니다. FAD만으로는 음악 생성 모델을 평가하기에 불충분한 이유는 무엇인가요?

0/3 답변 완료

추가 문제 풀기

AI가 강의 내용을 바탕으로 새로운 문제를 생성합니다