본문 바로가기

연구실 공부

[논문] Conditional Generation of Audio from Video via Foley Analogies

728x90

https://arxiv.org/abs/2304.08490

 

Conditional Generation of Audio from Video via Foley Analogies

The sound effects that designers add to videos are designed to convey a particular artistic effect and, thus, may be quite different from a scene's true sound. Inspired by the challenges of creating a soundtrack for a video that differs from its true sound

arxiv.org

해당 논문을 보고 작성했습니다.

 

Abstract

designer가 video에 더하는 sound effect는 특정 artistic effect를 전달하기 위해 design 되며, 그렇기 때문에 scene의 true sound와 다를 수 있습니다. video의 true sound와 다른 soundtrack이지만 screen에 등장하는 action과 match 되는 soundtrack을 생성하는 것은 어렵기 때문에, 저자들은 conditional Foley의 problem을 제안합니다. 저자들은 conditional Foley의 problem을 해결하는 방법들을 제안합니다. 첫째, 저자들의 model이 동일한 source video에서 다른 시간대인 sample로부터 conditional audio-visual clip을 얻어 input video clip의 sound를 예측하도록 학습시키는 데 사용될 pretext task를 제안합니다. 둘째, 저자들은 silent input video에 맞는 soundtrack을 생성하는 model을 제안합니다.

 

Introduction

 

artist가 video의 sound effect를 생성할 때, 종종 다른 source에서의 sound를 가져와 screeen action에 맞춰 사용합니다. 이러한 artist들의 목표는 scene의 true sound를 전달하는 것이 아니라 원하는 effect를 전달하는 것입니다. 예를 들어, 코코넛 껍질의 쿵쿵 소리가 말이 걷는 소리로, 베이컨이 요리되는 소리가 빗소리로 변할 수 있습니다.

Foley라 알려진 video의 sound effect를 생성하는 것은 video와 동시 발생하는 소리를 예측하는 작업으로 제시되었습니다. 이 task는 artist가 수행하는 과제와는 약간 다릅니다. Foley는 실제 소리와 다르지만 화면상의 event와 그럴듯하게 맞아 떨어지는 soundtrack을 생성합니다. 또한 이전 system들은 output sound에 대해 artist에게 제어권을 제공하지 않습니다.

artist들에게 artistic control을 제공하는 동시에 도와주기 위해, 저자들은 conditional Foley problem을 제안합니다. 저자들의 task는 사용자가 input video가 어떤 소리가 나왔으면 좋겠는지를 나타내는 conditional audio-visual example을 제공하고, 그에 맞춰 input silent video에 맞는 soundtrack을 생성하는 것입니다. 위와 같이, 생성된 soundtrack은 input video와 관련 있어야 합니다. 이는 모범 sound를 선택해야 한다는 문제(artist의 판단이 필요)와 그 소리를 video에 맞게 조작해야 하는 문제(타이밍과 음색을 정확히 조정하는 것)를 자연스럽게 분리합니다. 

저자들이 제안한 task는 system이 exemplar (conditional) sound를 silent video의 visual content와 타이밍을 맞추면서 sound의 음색을 보존해야 하기 때문에 도전적입니다. 이전 연구들은 video의 sound를 예측할 수 있지만, artist의 예시 conditional sound를 통합할 수는 없습니다. 그리고 vision-to-sound method를 video의 image로부터 soundtrack을 예측하는 문제로 제시될 수 있지만, conditional example을 위한 supervision을 얻는 방법이 명확하지 않습니다.

이러한 어려움을 해결하기 위해, 저자들은 conditional Foley를 학습하기 위한 self-supervised pretext task를 제안합니다. 저자들의 pretext task는 자연스러운 video가 반복되는 event를 포함하는 경향이 있다는 사실을 이용합니다. model을 학습하기 위해, 저자들은 random 하게 2개 audio-visual cilp pair를 추출하고, 그중 하나를 다른 것들의 conditional example로 사용합니다. 

저자들의 model은 conditional example에서 장면 내의 acion을 추론하고, input example과 일치하는 유사한 소리를 생성하도록 학습됩니다. test할 땐, 저자들의 model이 다른 video에서 얻은 conditional sound로 일반화합니다. 이 task를 위해 저자들은 autoregressive 하게 audio code sequence를 예측하는 Transformer를 학습합니다. 주어진 audio-visual example을 condition으로 하여 sepctrogram VQGAN의 audio code sequence를 예측합니다. 저자들은 test 시 성능을 향상시키기 위해, 많은 수의 soundtrack을 생성하고 audio-visual synchronization model을 사용하여 vidoe와 시간적 alignment가 가장 높게 이루어진 sound를 선택합니다.

 

Related Work

 

Predicting sound from images and videos

초기 연구에서는 물리적 simulation을 위한 sound를 생성했습니다. 더 최근 연구들은 누군가가 드럼스틱으로 물체를 치는 비디오의 soundtrack을 예측하거나, 피아노, 신체 움직임, 또는 춤 비디오에서 음악을 생성하기도 합니다. 이러한 방법들과 다르게 저자들은 단순히 무음 video에서 sound를 추정하는 것이 아니라, user가 제공한 example을 사용하여 scene의 동작에 맞게 소리를 조정하는 것 입니다.

 

Sound Design

영화에서 발생하는 소리는 종종 현장에서 녹음되지 않고 artist가 삽입합니다. sound designer는 소리가 필요한 시각적 event를 찾아내고, 적절한 소리를 선택하거나 녹음하며, 선택한 소리를 편집 software로 조작하는 등의 여러 단계를 수행합니다. 저자들의 연구는 이 마지막 조작 단계를 다룹니다. 

 

Method

저자들의 목표는 silent input video를 사용하여 사용자가 제공한 conditional audio-visual example을 가지고 soundtrack을 생성합니다. 저자들은 input video v_q, conditional video v_c, conditional audio a_c로부터 soundtrack을 생성하는 function F_θ(v_q, v_c, a_c)를 학습합니다.

 

Pretext task for conditional prediction

model이 각 source에서 필수적인 정보를 얻을 수 있게 만드는 pretext task를 필요로 합니다. 특히 input video에서 action의 특정 type (e.g., 물체를 치기 vs 물체를 긁기)과 타이밍을 얻길 원하고, conditional audio-visual example은 생성된 sound의 음색에 대한 정보를 얻길 원합니다.

저자들은 저자들의 task를 video-to-audio prediciton problem으로 정의하며, 동일한 video에서 다른 clip들을 conditional example로 제공됩니다. 

 

학습할 때, 저자들은 긴 video에서 시간 t와 t + Δt에 해당하는 두 clip을 sample 하고, 하나를 conditional example로 선택하고 나머지 하나는 input video로 사용합니다. model은 conditional clip을 추가적인 input으로 사용하여 silent input video로부터 sound를 예측합니다.

이 pretext task에 따라, 저자들은 주어진 input video v_q와 conditional audio-visual clip (v_c, a_c)를 가지고 audio target a_g와 prediction F_θ(v_q, v_c, a_c)에 대한 loss L을 정의합니다. 

이 loss는 video 내의 동작이 밀접하게 관련되어 있다는 사실을 활용합니다. 예를 들어 반복적으로 수행되는 동작이 있을 때 video 내의 동작이 밀접하게 관련되어 있습니다. 그러므로 random 하게 sample 된 clip pair들은 종종 연관된 action을 포함합니다. 이런 경우, model은 conditional sound를 사용하여 예측 성능을 향상시킬 수 있습니다. 하지만 model은 conditional sound를 단순히 복사하고 붙여 넣는 것으로 task를 수행할 수 없습니다. input video에 등장하는 action의 timing에 대한 내용을 반영해야 하기 때문입니다. model은 conditional example이 input에 대해 연관이 있다고 가정하도록 학습되기 때문에, 저자들은 conditional sound를 기반으로 예측하는 법을 학습한다는 것을 실험을 통해 발견했습니다. 이러한 발견은 test 할 때 완전히 다른 video에서 conditional sound를 sample 하여 대체하는 것이 가능하다는 걸 의미합니다.

 

Conditional sound prediction architecture

저자들은 저자들의 F_θ 구조로, 먼저 VQGAN을 통해 target sound에 대한 code representation을 얻고, 주어진 input video와 conditional audio-visual pair를 가지고 output sound를 예측합니다.

 

- Vector-quantized audio representation

저자들은 mel spectrogram에서 동작하는 VQGAN을 사용하여 예측한 sound를 discrete code sequence로 표현합니다. 저자들은 dataset의 sound를 reconstruct 하도록 autoencoder를 학습하여 code를 학습하고, code를 latent vector로 사용합니다. 학습한 후 예측된 code sequence를 waveform으로 변환됩니다.

waveform a와 mel spectrogram MSTFT(a) ∈ R^{T x F}가 주어지면, embedding z^ = E(MSTFT(a)) ∈ R^{T' x F' x d}를 구합니다. 여기서 T', F'은 lower-resolution time-frequency grid를 나타내고, d는 각 patch에 대한 embedding의 차원을 의미합니다. E는 CNN입니다. 각 embedding vector는 codebook에 있는 code 중에 가장 가까운 후보로 대체됩니다. 

 

c_k가 codebook을 나타냅니다. z^_{tf}는 time-frequency index가 t, f인 embedding을 나타냅니다. 저자들은 model이 input sound를 reconstruct 하기 위해 S^ = D(q(E(MSTFT(A)))을 생성하며, 여기서 D는 CNN-based decoder를 의미하고, q (quantization)는 모든 embedding에 적용됩니다. 저자들은 VQGAN loss를 spectrogram에 적용하면서 mean-squared error reconstruction loss, perceptual loss, patch-based discriminator loss를 동시에 사용합니다. 

최종적으로 codebook에서 가장 가까운 quantized vector의 index를 사용하여 VQGAN으로부터 sound에 대한 code s를 얻을 수 있습니다. 

 

- Autoregressive sound prediction

예측된 code s를 가지고, silent input video와 conditional example로부터 생성한 code s의 likelihood를 공식화할 수 있습니다. 저자들은 code s의 index를 raster scan order로 정렬하고 autoregressive 하게 예측합니다.

 

s_{<i}는 sequence의 이전 indice를 나타냅니다. 확률값들이 주어졌을 때, 예측된 token s_i와 ground-truth token s^_i 사이 cross-entropy loss를 적용하여 loss L을 구합니다. 

소리에 대한 code-based representation을 정의한 후, conditional sound prediction을 위한 F_θ의 architecture를 설명하면 다음과 같습니다.

 

저자들은 GPT-2 기반 decoder-only transformer를 사용하여 code sequence를 예측합니다. 이 transformer의 input은 v_q, v_c, a_c를 tokenize 한 결과입니다. 이제부터 signal들을 어떻게 token으로 변환하는지 보겠습니다.

 

- Input representations

저자들은 각 video signal에 ResNet (2+1)D-18을 사용하여 표현합니다. fine-grained temporal information을 보존하기 위해, 저자들은 모든 temporal striding을 제거하여 final convolutional layer는 input video와 동일한 temporal sampling rate를 갖도록 만듭니다. 저자들은 spatial dimension에 average pooling을 수행하고 결과적으로 각 frame마다 embedding vector를 얻습니다. 각 vector를 token으로 변환합니다. 저자들은 이 tokenization 연산을 T_v(v)로 표현합니다.

저자들은 이 vector quantized embedding을 사용해  conditional audio signal을 나타냅니다. 구체적으로 z^{(c)} = q(E(MSTFT(a_c))) ∈ R^{T' x F' x d}를 계산하고 d차원 embedding vector를 raster scan order에 맞춰 추출합니다. 이 tokenization 연산을 T_a(a_c)라 표현합니다.

그다음 이 token들을 single sequence로 결합합니다. S = Concat(T_v(v_c), T_v(v_q), T_a(a_c))가 됩니다. p_θ(s | v_q, v_c, a_c) = p_θ(s | S)로 modelling합니다. vector quantized representation을 사용하여 이전에 생성된 code를 model에 feeding하여 autoregressive하게 audio code를 생성합니다.

 

- Generating a waveform

저자들의 model F_θ는 transformer을 사용하여 code를 생성한 다음, decoder D를 사용하여 mel-spectrogram으로 변환합니다. 그 다음 mel-spectrogram을 waveform으로 변환합니다. 이 마지막 step은 pretrained MelGAN vocoder를 통해 진행됩니다. standard Griffin_Lim보다 훨씬 좋은 결과를 보입니다.

 

- Re-ranking based on audio-visual synchronization

cross-modal generation에 대한 다른 연구들에서 영감을 받아, 저자들은 re-ranking을 사용하여 model의 예측 성능을 향상시킵니다. 많은 sound를 생성한 다음, separate classifier로 가장 좋은 것을 판단합니다. 일반적으로 이러한 방식은 input과 output 사이 multimodal 일치를 판단하는 model을 사용합니다. 저자들은 대신 audio-visual synchronization model을 사용하여 predicted sound와 input video의 temporal alignment를 측정합니다. 이러한 model들은 visual and audio data 사이 가장 좋은 정렬을 나타내는 temporal offset을 예측합니다.

 

위 그림과 같습니다. 저자들은 off-the-shelf synchronization model을 사용하여 audio와 video 사이 offset t와 신뢰도를 추정합니다. 모든 output 중 minimum absolute offset min |t|를 찾습니다. 그다음 min |t| + τ 보다 큰 output은 제거합니다. 여기서 τ는 offset tolerance입니다. 마지막으로 가장 높은 confidence를 가진 sound를 선택합니다.

 

Experiments

저자들의 method를 평가하기 위해, 저자들은 automatic evaluation metric과 human perceptual 결과를 사용했습니다.

 

Automated Timbre Evaluation

잘 동작하는 prediction method들은 input video의 action을 정확하게 전달할 수 있어야 하며 conditional example에 대한 material 특성도 전달할 수 있어야 합니다. 이를 만족하는지 아닌지를 평가하기 위해, action을 인지하도록 학습된 classifier와 material을 구분할 수 있도록 학습된 classifier를 사용하여 평가를 진행했습니다. 이를 가지고 predicted, conditional, input sound를 분류하여 평가를 진행했습니다.

 

- Sound classifier

저자들은 VGGish classifier를 Greatest Hit datsaet으로 finetuning 하여 mel-spectrogram으로부터 action과 material을 인지하도록 만들었습니다. 모호성을 완화시키기 위해, 저자들은 single material 또는 single action type을 나타내는 clip만 사용했습니다.

 

- Evaluation metrics

input sound와 동일하게 구분된 action category를 가지는 predicted sound인지 측정하는 action accuracy, conditional example과 동일한 material category를 가지는 predicted sound인지 측정하는 material accuarcy를 사용합니다.

 

- Results

 

아래 표를 보면 저자들의 model이 SpecVQGAN보다 material metric 관점에서 상당히 뛰어난 결과를 보인다는 것을 알 수 있습니다.

 

Perceptual Study

Amazon Mechanic Turk를 사용하여 저자들의 model을 평가했습니다. 참여자들에게 conditional audio-visual clip과 다른 model에서 생성된 sound를 가진 두 가지 input video를 제공합니다. 참여자들은 video에 있는 action이 audio와 잘 sync가 맞는지, conditional example의 object나 material이 sound와 비슷한지 평가를 진행했습니다.

 

실험 결과는 위와 같습니다. 저자들의 model이 좋은 성능을 보이는 것을 알 수 있습니다.

 

Discussion

이 논문에서 저자들은 conditional Foley task를 제안합니다. self-supervised learning을 통해 이 문제를 해결하는 method를 제안합니다. Greatest Hits dataset을 가지고 평가를 진행했으며, 저자들의 method가 좋은 성능을 보였습니다. 그리고 저자들의 model이 복잡하고 사실적인 dataset에서 효율적인 모습을 보였습니다. 

728x90