논문 | 모델 | 웹사이트 및 예시 | 오디오 조작 노트북 | 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에게 직접 연락 주십시오 :)