Auffusion: 텍스트-음성 변환(TTA)을 위한 잠재 확산 모델
요약
Auffusion은 텍스트 프롬프트로부터 인간, 동물, 자연 소리 등을 포함한 사실적인 오디오를 생성하는 잠재 확산 모델(LDM)입니다. T2I 모델 구조에 TTA 작업을 적용하여 뛰어난 교차 모달리티 정렬 능력을 보여주었습니다. 연구 커뮤니티를 위해 모델과 추론 코드를 공개했습니다.
핵심 포인트
- T2A 생성을 위한 잠재 확산 모델(LDM)인 Auffusion 소개
- 텍스트 프롬프트 기반으로 다양한 사실적 오디오 생성 가능
- 모델, 코드, 체크포인트가 Hugging Face 및 Colab을 통해 공개됨
논문 | 모델 | 웹사이트 및 예시 | 오디오 조작 노트북 | Hugging Face 모델 | Google Colab
Auffusion은 텍스트-음성 변환(Text-to-Audio, TTA)을 위한 잠재 확산 모델(Latent Diffusion Model, LDM)입니다. Auffusion은 텍스트 프롬프트로부터 인간의 소리, 동물 소리, 자연 및 인공 소리, 음향 효과를 포함하여 사실적인 오디오를 생성할 수 있습니다. 우리는 T2I(Text-to-Image) 모델 프레임워크에 TTA 작업을 적용하는 TTA 시스템인 Auffusion을 소개하며, 이들의 내재적 생성 강점과 정밀한 교차 모달리티 정렬(cross-modal alignment)을 효과적으로 활용했습니다. 우리의 목표 및 주관적 평가는 제한된 데이터와 컴퓨팅 자원을 사용하여 이전의 TTA 접근 방식들보다 Auffusion이 우수함을 입증합니다. 우리는 연구 커뮤니티를 위해 모델, 추론 코드, 그리고 사전 학습 체크포인트를 공개합니다.
2024/01/02: 📣 오디오 조작을 위한 Colab 노트북이 공개되었습니다. 자유롭게 사용해 보세요! -
2023/12/31: 📣 Auffusion 출시. 데모 웹사이트와 Hugging Face에 3가지 모델이 공개되었습니다.
| 모델 이름 | 모델 경로 |
|---|---|
| Auffusion | https://huggingface.co/auffusion/auffusion |
| ... | |
우리의 코드는 pytorch 버전 2.0.1을 기반으로 구축되었으며, requirements.txt 파일에 torch==2.0.1을 명시했지만, GPU 장치 유형에 따라 특정 cuda 버전의 torch를 설치해야 할 수도 있습니다. 또한 diffusers==0.18.2에도 의존합니다. |
.
설치 requirements.txt
git clone https://github.com/happylittlecat2333/Auffusion/
cd Auffusion
pip install -r requirements.txt
Linux에서 soundfile이 제대로 작동하려면 libsndfile1도 설치해야 할 수 있습니다:
(sudo) apt-get install libsndfile1
Auffusion 모델을 다운로드하고 텍스트 프롬프트로부터 오디오를 생성하는 방법:
import IPython, torch
import soundfile as sf
from auffusion_pipeline import AuffusionPipeline
...
affusion 모델은 Hugging Face에서 자동으로 다운로드되어 캐시에 저장됩니다. 이후 실행 시에는 모델을 캐시에서 직접 로드합니다.
generate
function은 기본적으로 100단계와 7.5의 guidance_scale을 사용하여 잠재 확산 모델(latent diffusion model)에서 샘플링합니다. 다른 결과를 얻기 위해 매개변수를 변경할 수도 있습니다.
prompt = "Rolling thunder with lightning strikes"
output = pipeline(prompt=prompt, num_inference_steps=100, guidance_scale=7.5)
audio = output.audios[0]
...
더 많은 생성된 샘플은 여기에서 확인할 수 있습니다. 또한 colab 노트북을 사용하여 자체 오디오 샘플을 생성해 볼 수도 있습니다.
Hugging Face 체크포인트에서 AudioCaps 테스트 세트를 이용해 오디오 생성을 수행하려면:
python inference.py \
--pretrained_model_name_or_path="auffusion/auffusion" \
--test_data_dir="./data/test_audiocaps.raw.json" \
...
저희 모델을 평가하기 위해 https://github.com/haoheliu/audioldm_eval의 평가 도구를 사용하며, CLAP 점수를 계산하기 위해 https://huggingface.co/laion/clap-htsat-unfused를 채택했습니다.
AudioCaps에 원래 공개되었던 일부 데이터 인스턴스는 YouTube에서 제거되어 더 이상 사용할 수 없습니다. 따라서 저희는 2023년 6월 기준으로 사용 가능한 모든 인스턴스를 대상으로 모델을 평가했습니다.
Auffusion을 사용하여 오디오 조작의 몇 가지 예시를 보여드립니다. 현재의 오디오 조작 방법에는 다음이 포함됩니다:
- Text-to-audio generation: 노트북 또는 colab
- Text-guided style transfer: 노트북 또는 colab
- Audio inpainting: 노트북 또는 colab
- attention-based word swap control: 노트북 또는 colab
- attention-based reweight control: 노트북 또는 colab
오디오 조작 코드 예제는 모두 노트북에서 찾을 수 있습니다.
- 데모 웹사이트 및 arXiv 링크를 공개합니다.
- Auffusion과 Auffusion-Full 체크포인트를 공개합니다.
- 텍스트 기반 스타일 변환(text-guided style transfer)을 추가합니다.
- 오디오-투-오디오 생성(audio-to-audio generation)을 추가합니다.
- 오디오 인페인팅(audio inpainting)을 추가합니다.
- word_swap 및 reweight prompt2prompt 기반 제어(control)를 추가합니다.
- 오디오 초해상도(audio super-resolution)를 추가합니다.
- Gradio 웹 애플리케이션을 구축합니다.
- Gradio 웹 애플리케이션에 오디오-투-오디오, 인페인팅 기능을 추가합니다.
- Gradio 웹 애플리케이션에 스타일 변환 기능을 추가합니다.
- Gradio 웹 애플리케이션에 오디오 초해상도 기능을 추가합니다.
- Gradio 웹 애플리케이션에 prompt2prompt 기반 제어 기능을 추가합니다.
- 데이터 전처리 및 학습 코드를 추가합니다.
저희의 작업이 유용했다면 다음 논문을 인용하는 것을 고려해 주십시오:
@article{xue2024auffusion,
title={Auffusion: Leveraging the Power of Diffusion and Large Language Models for Text-to-Audio Generation},
author={Jinlong Xue and Yayue Deng and Yingming Gao and Ya Li},
...
코드의 일부는 다음 리포지토리에서 가져왔습니다. 저희는 이 리포지토리들의 기여자들에게 감사를 표합니다.
논문, 코드, 모델 또는 프로젝트 자체에 관해 문제가 있다면, 언제든지 이슈를 열거나 Jinlong Xue에게 직접 연락 주십시오 :)
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기