Stable Audio Open, 샘플 오디오 및 사운드 디자인을 위한 Text-to-Audio 모델 (feat. Stability AI)

Stable Audio Open, 샘플 오디오 및 사운드 디자인을 위한 Text-to-Audio 모델 (feat. Stability AI)

Stable Audio Open, 샘플 오디오 및 사운드 디자인을 위한 Text-to-Audio 모델 (feat. Stability AI)

소개

Stable Audio Open은 Stability AI가 새롭게 공개한 텍스트를 오디오로 변환(text-to-audio)하는 모델로, 47초 길이의 고품질 오디오 데이터를 텍스트 프롬프트로부터 생성할 수 있는 오픈 소스 모델입니다. 드럼 비트, 악기 리프, 환경음, 효과음 등 다양한 오디오 샘플을 생성할 수 있습니다. 사용자는 자신만의 오디오 데이터로 모델을 미세 조정할 수 있어 창작의 폭을 넓힐 수 있습니다.

Stable Audio는 고품질의 완전한 트랙을 생성하는 상용 제품으로, 최대 3분 길이의 음악 구조를 생성할 수 있습니다. 반면, Stable Audio Open은 짧은 오디오 샘플과 효과음에 특화되어 있습니다.

주요 특징

  • 오디오 인코더, T5 기반 텍스트 임베딩, 트랜스포머 기반 확산 모델을 사용한 모델 구성

  • 최대 47초 길이의 오디오 샘플 생성할 수 있는 오픈소스 모델

  • 텍스트 프롬프트를 통한 다양한 오디오 생성 (Text-to-Audio)

  • 드럼 비트, 악기 리프, 앰비언트 사운드, 폴리 및 프로덕션 요소 추가 가능

  • 사용자 맞춤형 데이터로 모델 미세 조정 가능

  • Freesound와 Free Music Archive의 오디오 데이터 사용

제한 사항

  • 현실적인 보컬 생성 불가

  • 영어 외의 언어 지원 제한

  • 모든 음악 스타일 및 문화에 동일한 성능 제공 어려움

데이터셋 및 학습

  • 데이터 출처: 총 486,492건의 오디오 사용하여 학습 / 472,618건의 Freesound와 13,874건의 Free Music Archive(FMA)에서 수집한 CC0, CC BY, CC Sampling+ 라이선스의 오디오 파일 사용

  • 데이터 정제: 저작권 문제 해결을 위해 Audible Magic의 컨텐츠 감지 서비스를 통해 정제

사용법

Stable Audio Open 모델은 stable-audio-tools 라이브러리를 사용하여 추론합니다. 모델 가중치는 Hugging Face에서 다운로드할 수 있습니다.

다음의 예시 코드를 참고하여 Stable Audio Open 모델을 사용해보세요. 텍스트 프롬프트와 타이밍 조건을 적절히 설정하여 원하는 오디오를 생성해 볼 수 있습니다:

import torch
import torchaudio
from einops import rearrange
from stable_audio_tools import get_pretrained_model
from stable_audio_tools.inference.generation import generate_diffusion_cond

# CUDA를 사용할 수 있으면 CUDA를, 아니면 CPU를 사용합니다.
device = "cuda" if torch.cuda.is_available() else "cpu"

# 미리 훈련된 Stable Audio Open 모델을 가져옵니다.
model, model_config = get_pretrained_model("stabilityai/stable-audio-open-1.0")
sample_rate = model_config["sample_rate"]
sample_size = model_config["sample_size"]

# 모델을 선택된 장치로 이동합니다.
model = model.to(device)

# 텍스트 프롬프트와 생성될 오디오 샘플의 길이를 설정합니다.
conditioning = [{
    "prompt": "128 BPM tech house drum loop",  # 생성할 오디오의 설명
    "seconds_start": 0, 
    "seconds_total": 30  # 오디오 샘플의 길이
}]

# 텍스트 프롬프트를 기반으로 오디오를 생성합니다.
output = generate_diffusion_cond(
    model,
    steps=100,  # 생성 과정의 스텝 수
    cfg_scale=7,  # 설정 스케일
    conditioning=conditioning,
    sample_size=sample_size,
    sigma_min=0.3,
    sigma_max=500,
    sampler_type="dpmpp-3m-sde",
    device=device
)

# 생성된 오디오 데이터를 정리합니다.
output = rearrange(output, "b d n -> d (b n)")
output = output.to(torch.float32).div(torch.max(torch.abs(output))).clamp(-1, 1).mul(32767).to(torch.int16).cpu()

# 오디오 데이터를 파일(예. output.wav)로 저장합니다.
torchaudio.save("output.wav", output, sample_rate)

라이선스

Stable Audio Open 모델은 상업적 사용 여부에 따라 다음의 2가지 라이선스로 제공됩니다:

  • 비상업적인 연구 및 개인 창작 목적을 위해서는 STABILITY AI NON-COMMERCIAL RESEARCH COMMUNITY LICENSE AGREEMENT가 적용되며, 이는 개인 창작 및 연구 목적의 사용은 허용되지만 상업적 사용은 금지됩니다. 이 라이선스 하에서는 비상업적 용도로 사용 및 복제, 파생 작업을 생성 및 공개할 수 있지만 Stability AI의 저작권이 유지되며 수정 사항을 명시해야 합니다.

  • 상업적 사용을 위해서는 별도의 Stability AI Membership을 통한 구독 및 계약이 필요합니다. 비상업적 용도 외에 Professional / Enterprise 플랜이 있으며, 각 플랜에 대한 상세한 내용은 Stability AI Membership 페이지를 참고해주세요.

Stable Audio Open 모델 공개 글

:hugs: Stable Audio Open 모델 가중치 및 사용법




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: