본문 바로가기
Deep Learning

오바마 합성하기: 음성으로 부터 립싱크 배우기 (Synthesizing Obama: Learning Lip Sync from Audio)

by 정현규 2020. 12. 23.
음성 데이터만가지고 '립싱크'하는 가짜 얼굴을 만들어 낼 수 있을까?

 

워싱턴대학의 연구진들은 유튜브에 있는 오바마의 '주간 연설 영상'을 이용하여 오바마가 찍은 적이 없는 새로운 연설 영상을 만들어 내었다. 입의 움직임은 물론이고, 볼의 움직임, 팔자주름, 보조개 그리고 머리 동작 까지 자연스럽게 만들어 내는 기술은 어떻게 구현되었을까?


 

 이 포스트는 버락 오바마의 가짜 연설 영상을 생성하는 방법에 대해 제안한 "Synthesizing Obama: Learning Lip Sync from Audio [SUPASORN SUWAJANAKORN et al. 2017]" 에 대한 논문 독후감입니다.

(논문링크 http://grail.cs.washington.edu/projects/AudioToObama/siggraph17_obama.pdf)

 

 논문에서 음성파일의 특징 벡터를 이에 대응하는 '입모양'에 대한 벡터로 맵핑하는데 RNN을 사용한다. 학습된 RNN이 생성해낸 '입모양'에 텍스쳐를 입혀, 최종적으로 다른 영상에 합성하며, RNN 결과값을 가공하는데 사용되는 기술들은 영상처리 쪽이다.

 음성에 대해서 오디오에서 특징벡터를 추출하는 여러 방법 중, MFCC(Mel-frequency cepstral coefficients)를 사용한다. MFCC는 오디오 신초 처리 분야에서 널리 사용되는 특징 추출 방법 중 하나이다. 여기서는 결과적으로 13차원의 벡터를 특징으로 추출해 낸다.

 영상에 대해서는 'Mouth Landmark[Xiong and De la Torre 2013]' 로 18개의 점을 추출하고, 36차원의 벡터로 변환(점들은 2차원 벡터공간에 존재, 18x2=36), PCA를 통해 그 중 20개의 주성분을 선별한다. 음성/영상 특징 추출방법을 도식화 하면 다음과 같다.

본 논문에서의 음성/영상 특징추출 방법

 

 화자의 입모양은, 현재 발음하고 있는 음소도 중요하지만, 그 이전에 발음한 음소에 영향을 받기도 한다. 그래서 RNN을 학습모델로 선정하였다. RNN은 연속적인 특징을 가지는 데이터를 표현하기에 적절한 딥러닝 모델이다.

또한, 화자가 소리를 내기전 미리 입을 움직이는 경향도 있기 때문에, 과거의 상태와 미래의 상태를 모두 표현하기에 적절한 Bi-directional LSTM을 고려해 보았으나, 해결하고자 하는 문제(발음에 따른 입모양 표현)에서는 '아주 짧은 미래' 만 필요하므로(다음 입모양을 결정하기위해 먼 미래의 음성을 고려할 필요는 없다.), 'Time Delay [Graves and Schmidhuber 2005]'를 도입함으로써 문제를 단순하게 풀어냈다. 그 결과 'Time Delay'를 쓰지 않았을 때 보다 굉장히 좋은 결과를 가져왔다고 한다.

 

 이렇게 구성된 RNN을 학습시키고, 학습된 RNN의 추론 결과값(20D Vector)을 가지고 얼굴합성과정을 거친다. 여기서는 발음에 따른 얼굴변화를 위해 입, 턱, 볼 그리고 코와 입주변에 초점을 맞춘다. 눈, 머리, 몸통, 배경등은 합성하고자 하는 영상에서 빌려온다. 이 과정에서 아쉬운 점은 각 프레임 별 추론 결과값에 따라 가장 잘 어울릴 만한 합성의 대상이 되는 영상 프레임을 손수(manual) 선별해낸다는 것이다.

 

 영상 프레임이 선별되면, Video Re-timing 과정을 거친다. 이는 오바마가 말을 멈췄음에도 머리를 움직이거나 눈썹이 움직이거나 하는 어색한 상황을 해결하기위함이다. 이 과정을 거치고 나면 이제 타겟 영상(최종 선별/전처리과정을 거친 영상)과 합성을 시작한다. 앞서 언급하였듯, RNN 추론 이후의 과정은 영상처리와 영상을 좀 더 자연스럽게 만드는 과정이라, 깊게 분석하기 보다 이런 방법을 썻구나 하고 넘어갔다. (사실 이런 전/후 처리 과정이 딥러닝 활용에서 가장 시간이 많이 들고 생각해내기 어렵다.)

 

 본 논문에서 지적한 한계점으로는

1. 입모양을 딥러닝 모델이 학습할 만큼 영상 길이가 충분해야 한다.

2. 입모양 이외의 부분은 타겟영상에 의존하므로 감정을 반영하지 못한다. 심각한 말을 하고 있는 중에도 눈은 웃고 있을 수 있다.

3. 영상에서 입모양만 추출하기에, 발음에 따른 혀 모양을 제대로 만들어 내지 못한다.

 

 조금 더 end-to-end 딥러닝 모델(MFCC나 Mouse Landmark를 거치지 않고)으로 이 문제를 해결하면 더 자연스러움을 나타낼 수 있지 않을까 라고 제안하며 이 논문은 끝이 난다.