RAVE 공식 구현: Antoine Caillon 및 Philippe Esling이 제작한 빠르고 고품질의 신경 오디오 합성을 위한 변형 자동 인코더 (문서 링크)입니다.
음악 공연이나 설치의 일부로 RAVE를 사용하는 경우 이 저장소나 기사를 인용하세요!
RAVE에 관해 공유/토론/질문하고 싶으시다면 저희 디스코드 서버에서 하실 수 있습니다!
문제를 게시하기 전에 FAQ를 확인하세요!
RAVE VST Windows, Mac 및 Linux용 RAVE VST는 해당 포럼 IRCAM 웹페이지에서 베타 버전으로 제공됩니다. 문제가 있는 경우 여기 또는 포럼 IRCAM 토론 페이지에 문제를 작성하세요.
튜토리얼 : Forum IRCAM 웹페이지에서 새로운 튜토리얼을 보실 수 있으며, 비디오 버전도 곧 출시될 예정입니다!
RAVE 모델의 원래 구현은 다음을 사용하여 복원할 수 있습니다.
git checkout v1
다음을 사용하여 RAVE를 설치하십시오.
pip install acids-rave
경고 acids-rave
전에 torch
와 torchaudio
설치하는 것이 좋습니다. 그러면 도서관 웹사이트에서 적절한 버전의 torch를 선택할 수 있습니다. 새로운 장치(및 최신 Python 환경)와의 향후 호환성을 위해 rave-acids
더 이상 torch==1.13을 적용하지 않습니다.
컴퓨터에 ffmpeg가 필요합니다. 다음을 사용하여 가상 환경 내에 로컬로 설치할 수 있습니다.
conda install ffmpeg
이제 hexorcismos 덕분에 RAVEv2를 훈련하는 Colab을 사용할 수 있습니다!
RAVE 모델 교육에는 일반적으로 데이터 세트 준비 , 교육 및 내보내기 의 3가지 개별 단계가 포함됩니다.
일반 방법과 지연 방법의 두 가지 방법을 사용하여 데이터 세트를 준비하는 것을 알 수 있습니다. 지연 전처리를 통해 RAVE는 원시 파일(예: mp3, ogg)을 먼저 변환하지 않고도 직접 훈련할 수 있습니다. 경고 : 지연된 데이터 세트 로딩은 특히 Windows에서 훈련 중에 CPU 부하를 크게 증가시킵니다. 그러나 이는 압축되지 않은 경우 하드 드라이브에 맞지 않는 대규모 오디오 자료를 교육할 때 유용할 수 있습니다. 어쨌든 다음을 사용하여 데이터 세트를 준비하십시오.
rave preprocess --input_path /audio/folder --output_path /dataset/path --channels X (--lazy)
RAVEv2에는 다양한 구성이 있습니다. v1의 개선된 버전은 v2
라고 불리며, 따라서 다음과 같이 훈련할 수 있습니다.
rave train --config v2 --db_path /dataset/path --out_path /model/out --name give_a_name --channels X
또한 SoundStream 또는 EnCodec과 유사한 개별 구성도 제공합니다.
rave train --config discrete ...
기본적으로 RAVE는 인과 관계가 없는 컨볼루션으로 구축됩니다. 모델을 인과 관계로 만들려면(따라서 모델의 전체 대기 시간을 낮추고) 인과 모드를 사용할 수 있습니다.
rave train --config discrete --config causal ...
2.3의 새로운 기능으로 데이터 확대 기능을 사용하여 낮은 데이터 체제에서 모델의 일반화를 개선할 수도 있습니다. --augment
키워드로 기능 보강 구성 파일을 추가하여 데이터 기능 보강을 추가할 수 있습니다.
rave train --config v2 --augment mute --augment compress
다른 많은 구성 파일은 rave/configs
에서 사용할 수 있으며 결합할 수 있습니다. 사용 가능한 모든 구성 및 기능 강화 목록은 다음과 같습니다.
유형 | 이름 | 설명 |
---|---|---|
건축학 | v1 | 원본 연속 모델(최소 GPU 메모리: 8Go) |
v2 | 향상된 연속 모델(더 빠르고 더 높은 품질)(최소 GPU 메모리: 16Go) | |
v2_소형 | 더 작은 수용 필드, 향상된 적대 훈련 및 고정 신호의 음색 전송에 적합한 노이즈 생성기를 갖춘 v2(최소 GPU 메모리: 8Go) | |
v2_nopqmf | (실험적) 생성기에 pqmf가 없는 v2(벤딩 목적에 더 효율적)(최소 GPU 메모리: 16Go) | |
v3 | 실제 스타일 전송을 위한 Snake 활성화, 설명 판별자 및 적응형 인스턴스 정규화가 포함된 v2(최소 GPU 메모리: 32Go) | |
이산적인 | 개별 모델(SoundStream 또는 EnCodec과 유사)(최소 GPU 메모리: 18Go) | |
온앤엑스 | onnx 사용을 위한 무소음 v1 구성(최소 GPU 메모리: 6Go) | |
산딸기 | 실시간 RaspberryPi 4 추론과 호환되는 경량 구성(최소 GPU 메모리: 5Go) | |
정규화(v2만 해당) | 기본 | 변형 자동 인코더 대물렌즈(ELBO) |
와세르스타인 | Wasserstein 자동 인코더 대물렌즈(MMD) | |
구의 | 구형 자동 인코더 대물렌즈 | |
판별자 | 스펙트럼_판별기 | EnCodec의 MultiScale 판별자를 사용합니다. |
기타 | 인과적인 | 인과 컨볼루션 사용 |
소음 | 노이즈 신디사이저 V2 활성화 | |
잡종 | 멜 스펙트로그램 입력 활성화 | |
증강 | 무음 | 데이터 배치를 무작위로 음소거합니다(기본 확률: 0.1). 침묵을 학습하도록 모델을 강제합니다. |
압박 붕대 | 파형을 무작위로 압축합니다(배치의 가벼운 비선형 증폭과 동일). | |
얻다 | 파형에 임의 게인을 적용합니다. (기본 범위: [-6, 3]) |
훈련이 완료되면 다음을 사용하여 모델을 토치스크립트 파일로 내보냅니다.
rave export --run /path/to/your/run (--streaming)
--streaming
플래그를 설정하면 캐시된 컨볼루션이 활성화되어 모델이 실시간 처리와 호환됩니다. 스트리밍 모드를 사용하는 것을 잊어버리고 Max에서 모델을 로드하려고 하면 아티팩트를 클릭하는 소리가 들립니다.
개별 모델의 경우 여기에서 사용자를 msprior
라이브러리로 리디렉션합니다. 그러나 이 라이브러리는 아직 실험적이므로 버전 1.x의 이전 라이브러리가 v2.3에 다시 통합되었습니다.
사전 훈련된 RAVE 모델에 대한 사전 훈련을 수행하려면 다음을 수행하십시오.
rave train_prior --model /path/to/your/run --db_path /path/to/your_preprocessed_data --out_path /path/to/output
이는 사전 학습된 모델 path/to/your/run
의 잠재성에 대해 사전 학습을 수행하고 모델 및 텐서보드 로그를 /path/to/output
폴더에 저장합니다.
RAVE 모델과 함께 사전을 스크립팅하려면 사전 학습된 사전에 --prior
키워드를 제공하여 모델을 내보냅니다.
rave export --run /path/to/your/run --prior /path/to/your/prior (--streaming)
여기에서는 사전 훈련된 여러 스트리밍 모델을 사용할 수 있습니다. 새로운 모델로 목록을 계속 업데이트하겠습니다.
이 섹션에서는 Max/MSP 또는 PureData와 함께 라이브로 사용하기 위해 RAVE를 nn~
내부에 로드하는 방법을 보여줍니다.
컴퓨터에서 사용할 수 있는 darbouka.gin
이라는 사전 훈련된 RAVE 모델은 다음 구문을 사용하여 nn~
내에 로드할 수 있습니다. 여기서 기본 방법은 전달(즉, 인코딩 후 디코딩)로 설정됩니다.
이는 다음 패치와 동일한 작업을 수행하지만 약간 더 빠릅니다.
RAVE가 생성한 잠재 표현에 명시적으로 액세스하면 Max/MSP 또는 PureData 신호 처리 도구를 사용하여 표현과 상호 작용할 수 있습니다.
기본적으로 RAVE는 모델의 큰 압축 비율을 기반으로 스타일 전송 도구로 사용할 수 있습니다. 우리는 최근 StyleGAN에서 영감을 받아 재구성 프로세스에 적응형 인스턴스 정규화를 포함하는 기술을 추가하여 nn~
속성 시스템을 사용하여 Max/MSP 또는 PureData 내에서 직접 소스 및 대상 스타일을 효과적으로 정의할 수 있도록 했습니다.
enable
또는 gpu
와 같은 다른 속성은 계산을 활성화/비활성화하거나 GPU를 사용하여 작업 속도를 높일 수 있습니다(아직 실험적).
v2.3에서는 대량의 파일을 변환할 수 있는 일괄 생성 스크립트가 출시되었습니다.
rave generate model_path path_1 path_2 --out out_path
여기서 model_path
학습된 모델(원본 또는 스크립트)의 경로이고, path_X
오디오 파일 또는 디렉터리 목록이며, out_path
세대의 out 디렉터리입니다.
질문이 있거나 RAVE에 대한 경험을 공유하고 싶거나 모델로 완성된 음악 작품을 공유하고 싶다면 토론 탭을 사용할 수 있습니다!
RAVE와 maxmsp용 nn~ 외부로 무엇을 할 수 있는지 시연해 보세요!
순수 데이터에 nn~을 사용하면 RAVE를 임베디드 플랫폼에서 실시간으로 사용할 수 있습니다!
질문 : 전처리가 중단되어 0it[00:00, ?it/s]
표시됩니다.
답변 : 이는 데이터 세트의 오디오 파일이 너무 짧아서 RAVE에 충분한 시간적 범위를 제공할 수 없음을 의미합니다. 나중에 train
와 함께 --n_signal XXX(samples)를 추가하는 것을 잊지 말고 preprocess
사용하여 --num_signal XXX(samples)
--n_signal XXX(samples)
를 사용하여 신호 창을 줄여보세요.
질문 : 훈련 중에 ValueError: n_components=128 must be between 0 and min(n_samples, n_features)=64 with svd_solver='full'
유사한 예외가 발생했습니다.
답변 : 이는 데이터 세트에 내부 잠재 PCA를 계산할 만큼 데이터 배치가 충분하지 않음을 의미합니다. 이를 위해서는 최소 128개의 예시(이후 배치)가 필요합니다.
이 작업은 IRCAM에서 주도했으며 다음 프로젝트에서 자금을 지원 받았습니다.