ICML 2024 논문 신디사이저 프로그래밍을 통한 창의적 텍스트-오디오 생성 코드. CTAG는 가상 모듈식 신디사이저를 사용하여 텍스트 프롬프트에서 사운드를 생성하는 방법입니다. CTAG는 JAX의 빠른 모듈식 신디사이저인 SynthAX에 의존합니다.
홈페이지에서 다양한 사례를 들어보실 수 있습니다. 논문에서 결과를 얻는 코드는 다른 저장소(곧 제공될 예정)에서 찾을 수 있습니다.
다음과 같이 환경을 만들 수 있습니다.
conda create -n ctag python=3.9
conda activate ctag
pip install -r requirements.txt
기본적으로 CPU용 JAX를 설치합니다. 액셀러레이터와 함께 JAX를 사용하는 방법에 대한 자세한 내용은 JAX 설명서에서 확인할 수 있습니다.
또한 다음과 같이 LAION-CLAP에 대한 체크포인트를 다운로드해야 합니다.
mkdir -p ctag/checkpoints && wget -i checkpoints.txt -P ctag/checkpoints
ctag/
소리를 생성하는 것은 매우 간단합니다! 기본적으로 ctag
인구 규모가 더 작은 CPU에서 실행되지만 구성 값을 사용하여 이를 변경할 수 있습니다.
cd ctag
python text2synth.py system.device=cuda general.popsize=100
로그, 결과 및 실험이 포함된 디렉터리를 생성합니다. 각 사운드의 최종 버전은 experiments
에서 찾을 수 있으며 results
모든 반복이 포함됩니다.
기본적으로 ctag/data/esc50-sounds.txt
의 프롬프트를 사용합니다. 이를 변경하려면 이 필드를 다른 파일로 지정하거나 세미콜론으로 구분된 여러 프롬프트가 포함된 문자열을 전달하세요. 명령줄에서 이를 재정의할 수도 있습니다.
# From a prompts.txt file
python text2synth.py general.prompts=/path/to/prompts.txt
# From strings
python text2synth.py general.prompts= ' "a bird tweeting;walking on leaves" '
현재는 다음을 제공해야 합니다.
Hydra를 사용하여 ctag
구성합니다. 구성은 ctag/conf/config.yaml
에서 찾을 수 있으며 ctag/conf/
하위 디렉터리에 특정 하위 구성이 있습니다.
구성은 모든 매개변수(예: 전략 알고리즘, 합성기, 반복, 프롬프트)를 정의합니다. 기본적으로 이는 용지에 사용되는 것입니다. 다운로드한 CLAP checkpoints
, 구성에서 사용할 수 있는 evosax
전략, synth
아키텍처 및 synthconfig
에 따라 model
선택할 수 있습니다. 여기서는 prompts
, 사운드 duration
, iterations
횟수, popsize
(인구 크기), 프롬프트당 독립적 실행 횟수 n_runs
(반복과 혼동하지 말 것) 및 초기 무작위 seed
선택하는 곳이기도 합니다.
우리는 AX를 사용하여 구성 필드만으로 알고리즘의 하이퍼파라미터를 스윕합니다. 먼저, 다른 패키지와의 일부 종속성 문제로 인해 ax-platform
버전을 업데이트해야 합니다.
pip install ax-platform==0.2.8
그런 다음 다음과 같이 청소를 실행할 수 있습니다.
python text2synth.py --multirun
연구에 ctag
사용하는 경우 다음 논문을 인용해 주세요.
@inproceedings { cherep2024creative ,
title = { Creative Text-to-Audio Generation via Synthesizer Programming } ,
author = { Cherep, Manuel and Singh, Nikhil and Shand, Jessica } ,
booktitle = { Forty-first International Conference on Machine Learning } ,
year = { 2024 }
}
신디사이저 구성요소 자체에 대해서는 SynthAX를 인용해 주세요.
@conference { cherep2023synthax ,
title = { SynthAX: A Fast Modular Synthesizer in JAX } ,
author = { Cherep*, Manuel and Singh*, Nikhil } ,
booktitle = { Audio Engineering Society Convention 155 } ,
month = { May } ,
year = { 2023 } ,
url = { http://www.aes.org/e-lib/browse.cfm?elib=22261 }
}
우리는 Fulbright Spain의 부분적인 재정 지원을 인정합니다. 또한 이 논문에 보고된 연구 결과에 기여한 HPC 리소스를 제공한 MIT SuperCloud 및 Lincoln Laboratory 슈퍼컴퓨팅 센터에도 감사드립니다.