안녕하세요, 지난 10월 7일 인공지능 기술 컨퍼런스 AI PLUS 2020이 개최되었습니다. 당시 손정의 소프트뱅크 회장과 마크 주커버그 페이스북 최고경영자(CEO)의 가상 축전 영상이 방송되면서 참가자들의 놀라움을 자아냈는데요. 이번 포스팅에서는 가상 축전 영상 제작에 사용된 AI 아나운서 기술의 개발기를 들려 드리겠습니다.




1. AI 아나운서 프로젝트 개요

이스트소프트 A.I. PLUS Lab 비전파트에서는 올해부터 디지털 휴먼 기술을 연구하고 있었습니다. 이 기술의 활용처로 AI 아나운서가 적합했기 때문에 뉴스 전문 방송국과 협력해, 이스트소프트와 자회사 줌인터넷 연구소가 공동으로 AI 아나운서 기술을 개발하게 되었습니다.

지난 7월 킥오프 미팅을 진행했고, 3개월 안에 프로토타입을 완성해보자고 의견을 모았습니다. 먼저 방송국은 아나운서 영상 데이터를, 줌인터넷은 그간 방송 콘텐츠 서비스 노하우를 제공하고, 이스트소프트는 디지털 휴먼 기술을 활용해 AI 모듈을 제작하는 역할을 담당하게 되었습니다. 3개월간 진행될 프로젝트의 목표와 대략적인 스펙은 <그림1>과 같이 정했습니다.

그림1. AI 아나운서 프로젝트 요약


2. 국내외 벤치마킹 사례

해외 벤치마킹 조사 결과, ‘뉴스 아나운서’ 영역에서는 아직 디지털 휴먼 기술이 퀄리티있게 적용되고 있지 않음을 확인하였습니다. 국내 사례를 좀 더 조사해보니 유튜브 상에서 작년부터 AI 아나운서 기술이 선보여진 것을 볼 수 있었습니다. 지금도 유튜브에 ‘AI 아나운서 안지예’라고 검색하면 볼 수 있는데요. 같은 회사에서 제작한 문재인 대통령 영상 뿐만 아니라, 김현욱 아나운서, 김주하 앵커까지 퀄리티있는 영상을 공개하고 있습니다.

그림2. 참고했던 국내 벤치마킹 자료화면 (출처:유튜브)


3. AI 아나운서 모듈 설계

AI 아나운서 영상을 구현하기 위해서는 목소리 생성 AI(Text To Speech, TTS)얼굴 생성 AI(Speech To Face, STF) 기술이 필요한데요. 현재 텍스트를 입력하면 얼굴 영상을 바로 생성하는 기술이 존재하지 않기 때문에 기술이 성숙화된 TTS 기술과 STF 기술을 활용하기로 결정했습니다.

먼저 TTS를 활용해 뉴스 텍스트를 음성으로 변환하고, 이 음성에 적절한 얼굴 영상을 생성하도록 설계하였습니다. 이 때, 음성신호 안에는 입술, 턱, 얼굴 근육의 움직임 정보만 포함되기 때문에 그 정보만으로는 완전한 얼굴 영상을 생성하기 어려운데요. 음성 신호 외에 얼굴 생김새 자체를 입력하여 좀 더 실제와 유사한 영상을 구현하고자 했습니다. 템플릿 동영상을 input으로 STF 기술을 활용하였고, 이 둘을 병합하는 형태로 <그림3>과 같이 모듈을 구성하였습니다. 빠른 프로토타입 개발을 위해 외부 음성 생성 전문 회사로부터 TTS 엔진을 구매하고, 저희는 얼굴 생성 AI에 집중하기로 했습니다.

그림3. AI 아나운서 모듈 구성도


4. 데이터 전처리 과정 및 데이터의 중요성

학습에 필요한 데이터로, 방송사로부터 약 3시간 30분 분량의 뉴스 영상을 전달받았습니다. 해당 영상에는 학습 데이터로는 부적절한 부분도 포함되어 있었기 때문에, 학습에 필요한 부분(아나운서의 얼굴과 목소리만 또렷하게 나오는 부분)만 추출해 내는 ‘데이터 전처리’ 작업이 필요했습니다.

배경 음악이나 다른 기자의 목소리 등 잡음이 없는 상태에서 카메라 쪽을 바라보는 구간만 학습에 사용될 수 있도록 데이터를 정제하는 과정을 거쳤습니다. 저희는 그간 동영상 연구를 통해 동영상에서 특정 인물을 탐지하는 기술을 높은 수준으로 확보했기 때문에 해당 기술을 활용해 짧은 시간 내 우수한 품질로 데이터를 정제할 수 있었습니다. 전체적인 과정은 <그림4>와 같습니다.

다만, 아쉬웠던 점은 저희가 아직 음성 인식 기술을 확보하지 못했기 때문에 음성 관련 부분은 수작업으로 진행했던 점입니다. 프로토타입 개발이 끝난 현재 음성 데이터 전처리에 필요한 STT(Speech To Text) 기술과 디지털 휴먼에 특화된 TTS 기술을 내재화하기 위한 작업을 진행 중이며, 앞으로는 더욱 효율적으로 데이터를 전처리할 수 있을 것으로 기대됩니다.

그림4. 데이터 전처리를 포함한 학습 과정

참고로, 저의 딥러닝 개발 경험을 비춰보면 모델 성능이 만족스럽지 않은 경우는 데이터 버그학습 코드의 버그 문제였습니다. 일반적으로 딥러닝은 대량의 데이터를 입력받기 때문에 데이터의 적당한 노이즈는 감수하고 가도 된다고 알려져 있는데요. 하지만 노이즈의 통계적 성질이 좋은 경우에 노이즈 주입이 허락되어야 하고, 데이터 정제 작업이 피곤하다고 해서 타협해 버리면 그만큼 모델 성능이 좋게 나오지 않는다는 것을 다수 경험하였습니다. 모델이 보다 다양한 환경에서도 적절한 성능을 낼 수 있게 의도적으로 노이즈를 주입할 수는 있지만, 그 경우도 의도에 맞게 제어되면서 주입되어야 하기 때문에 특정 방향으로 치우쳐져 있는 라벨 에러가 있는 데이터로 모델을 학습시키면 성능이 높아지지 않는데요. ‘통계적 성질이 좋다’ 또는 ‘특정 방향으로 에러가 치우쳐져 있다’는 말은 사실 결정의 근거로 사용할 정도로, 엄밀하게 정의하고 검증하기는 까다롭습니다. 저희와 같이 상용화 서비스 제작 환경에 놓여 있는 엔지니어링 기반의 딥러닝 연구자들에게는 사실 불가능에 가깝다고 할 수 있습니다. 그렇게 때문에 저는 최대한 에러 없는 데이터 확보와 augment를 통한 제어되는 에러 주입을 선호합니다.


5. 개발 결과 및 향후 과제

AI PLUS 2020 컨퍼런스에 참석하셨던 분들은 결과 동영상을 보셨을 텐데요. 음성이 주어졌을 때 해당 음성을 기반으로 얼굴 영상을 생성하는 부분은 <그림5>와 같이 여러 템플릿 동영상을 사용해서 봐도, 사람의 눈으로는 AI가 생성한 동영상인지 알아보기 어려울 정도의 퀄리티였습니다. 아쉽게도 라이센스 문제 등으로 현재 블로그에서는 영상을 보여 드릴 수가 없지만, 현재 정식 서비스를 준비 중이라 내년 초에는 실제 뉴스 방송 등에서 만나 볼 수 있을 것으로 기대됩니다.

그림5. AI 아나운서 개발 결과 화면

지난 3개월간 AI 아나운서의 가능성을 타진해보는 프로토타입용으로 개발했기 때문에 기능적인 면만 고려하면 완성된 기술로 보이지만, 효율성 측면에서는 개선해야 될 부분이 많다고 생각됩니다. 이정도 품질을 얻기 위해서 과연 3시간 분량의 데이터가 꼭 필요한 것인지, 모델 크기를 더 줄일 수 있는지 등 효율성 측면에서 기술 전반을 검토해보고 차근차근 개선해 나갈 예정입니다. 또한, 기술 고도화를 위해 뉴스 방송에 최적화된 아나운서 전용 TTS 모듈을 자체 개발하여 AI 아나운서 모듈의 핵심 구성요소를 자체 기술로 완성할 예정입니다. 실제 서비스 출시까지 관심있게 지켜봐주시기 바랍니다. 감사합니다.

[관련 글 보러가기]
AI PLUS 2020 컨퍼런스, 그 현장속으로!