Stereo2Spatial: 스테레오 음악 트랙을 공간화된 바이노럴 믹스로 변환
요약
스테레오 음악 트랙을 공간화된 바이노럴 믹스로 변환하는 모델 'Stereo2Spatial'을 공개했습니다. 초기에는 잠재 공간에서 플로우 매칭 확산 모델을 시도했으나 품질 문제에 직면했고, 이후 원시 파형(raw waveforms) 모델링으로 방향을 전환했습니다. WavFlow 논문에서 영감을 받아 진폭 리프팅 기법을 적용하여 학습 안정성 문제를 해결하고, 7,669개 트랙으로 약 20일간의 대규모 훈련에 성공했습니다.
핵심 포인트
- 스테레오 -> 공간화 모델로, 원시 파형 기반 접근 방식을 채택함.
- WavFlow 논문의 진폭 리프팅 기법을 적용하여 학습 안정성을 확보함.
- 총 7,669개 트랙으로 약 20일간의 대규모 훈련을 완료함.
- 선택적 믹스 스타일 조건화 및 Windows 데스크톱 앱까지 제공됨.
저는 약 6개월 동안 간헐적으로 작업해 온 모델을 공개했습니다. 저는 공간 음향 음악(spatial music)을 듣는 것을 즐겨왔지만, 실제 품질의 공간 믹스가 없는 음악이 너무 많습니다. 그래서 스테레오를 공간화하는 모델을 만들기로 결정했습니다. 처음에는 별도로 학습된 VAE (EAR-VAE)의 잠재 공간(latent space)에서 작동하는 플로우 매칭 확산 모델(flow-matching diffusion model)을 만드는 것으로 시작했습니다. 저는 이 VAE를 사용하여 스테레오 입력을 1개의 잠재 벡터로 인코딩하고, 그 후 7.1.4 출력의 각 채널에 대해 개별적으로 처리했습니다. 이 설계는 제가 찾은 또 다른 스테레오 -> 공간 프로젝트(ImmersiveFlow) 논문과 유사합니다 (그들은 논문에 코드 링크를 제공했지만 저에게는 404 오류가 발생하여, 제가 코드를 처음부터 만들었습니다). ImmersiveFlow 논문 대비 제가 추가한 핵심 요소는 모델이 창(window)을 가로질러 상태(memory tokens)를 유지할 수 있는 방법을 구현하여 안정적인 장문맥 생성(long context generations)을 가능하게 한 것입니다. VAE가 출력 분포와 맞지 않았기 때문에 (개별 채널이나 7.1.4 믹스의 개별 채널이 아닌 스테레오 트랙 자체를 인코딩/디코드하도록 학습되었음), 결과물은 실제 품질 병목 현상에 부딪혔습니다. 하지만 매핑 자체가 가능하다는 것을 보여주었습니다. 잠재 공간에서 모델링하는 것에 머무르기보다는, 원시 파형(raw waveforms)을 모델링하는 것으로 방향을 전환하기로 결정했습니다. 이 방식은 잠재 버전에서 보았던 모든 품질 문제를 해결했지만, 더 많은 학습 컴퓨팅 자원과 불안정성이라는 대가를 치렀습니다. 파형 버전의 모델은 약 60K~80K 스텝 동안 손실(loss)이 정상적으로 감소하고 검증 생성물(validation generations)이 좋아지거나 개선되는 것처럼 보이다가, 순식간에 불안정해지고 손실이 급등하는 현상을 보였습니다. 저는 직접 파형 사용, 승수(multiplier)를 이용한 파형 스케일링, 공격적인 기울기 클리핑(aggressive grad clipping), 낮은 학습률 등을 시도했지만, 모든 실험이 같은 방식으로 실패했습니다. 다행히 최근에 WavFlow라는 논문을 접하게 되었습니다.
이 프로젝트의 저자들은 또한 flow-matching diffusion을 이용해 원시 파형(raw waveforms)을 모델링하는 데 어려움을 겪었으며, 이를 해결하기 위해 진폭 리프팅(amplitude lifting)(각 오디오 트랙을 rms가 0.33이 되도록 스케일한 다음 3으로 곱함)을 사용했습니다 (WavFlow 논문은 스케일 전에 클립 값 1.0을 사용해 모델 공간을 -3 ~ 3으로 만들었지만, 저는 클립 값 4.0을 사용하여 모델 공간을 -12 ~ 12로 만들었습니다(제 테스트 결과 이는 더 나은 바이노럴 출력을 가져왔습니다)). 논문처럼 진폭 리프팅을 구현하자 학습 안정성 문제가 사라졌습니다. 파형 모델은 7,669개 트랙으로 약 20일 동안 2x A6000 GPU에서 훈련되었습니다 – 1단계는 배치 크기 16, 101826~ 및 34초 길이의 학습 시퀀스로 10일간 진행되었고, 2단계는 배치 크기 16, 122초 길이의 학습 시퀀스로 10일간 진행되었습니다 – 제어 가능한 출력을 위한 선택적 믹스 스타일 조건화(waveform 버전에서만 가능)가 있습니다 – 직접적인 바이노럴 출력(파형 훈련은 잠재 공간 훈련보다 계산 비용이 많이 들기 때문에, 바이노럴은 아이디어/이론을 입증하며 같은 코드베이스와 데이터로 향후 7.1.4 버전을 훈련하는 데 사용될 수 있습니다(계산 자원에 접근하게 되면)). 또한 모델 추론과 결과를 소비하기 위한 Windows 데스크톱 앱도 만들었습니다. 모든 것은 apache 2.0으로 공개되었습니다.
웨이브폼 모델의 Huggingface 링크: https://huggingface.co/francislabounty/stereo2spatial-v2-binaural 잠재 공간(latent) 모델의 Huggingface 링크: https://huggingface.co/francislabounty/stereo2spatial-v1 학습 및 추론을 위한 Github 레포지토리: https://github.com/francislabountyjr/stereo2spatial Windows 앱을 위한 Github 레포지토리: https://github.com/francislabountyjr/stereo2spatial-app 앱 홈페이지: https://stereo2spatial.francislabounty.com 웨이브폼 모델의 사례 연구: https://francislabounty.com/blog/stereo2spatial-v2 잠재 공간 모델의 사례 연구: https://francislabounty.com/blog/stereo2spatial 이 모델로 생성된 트랙 플레이리스트 (시간이 지남에 따라 더 많은 트랙으로 업데이트될 예정): https://www.youtube.com/playlist?list=PLQ-HHjPijrAg 질문 등이 있으시면 댓글을 남겨주세요. 최선을 다해 답변드리겠습니다! 면책 조항: AI가 작성한 게시물은 일반적으로 좋지 않다는 것을 알고 있으므로, 이 게시물은 100% 제가 직접 작성했습니다 (실수 포함). 하지만 위의 링크들에서 가져온 사례 연구와 README는 AI의 도움을 받아 제작되었습니다. /u/kittenkrazy가 r/MachineLearning에 제출함 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/OpenAI Codex (search)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기