By 김영효(Leo Younghyo Kim) at XL8 February 20, 2023
영상 번역에서 나이와 성별의 추정이 필요한 이유
나이와 성별은 조금 더 자연스러운 번역 결과를 위해 사용할 수 있는 메타정보입니다. 화자의 나이 및 성별에 따라 사용되는 단어도 조금씩 달라집니다. 나이에 따라 사용 단어가 달라지는 예시는 여럿 있습니다. 요즘 10대들이 사용하는 “남아공(남아서 공부나 해)”, “무물보(무엇이든 물어보세요)” 같은 단어들은 다른 세대에게는 외래어라 느껴질 정도죠. 반대로 부모 세대에서 자주 사용했던 “짱” 이라는 말은 요즘 10대들이 잘 사용하지 않습니다. 또한 어떤 단어들은 특정 성별이 더 자주 사용하는 경향이 있습니다. 예를 들어 “어머!” 라는 단어는 남성보다 여성이 더 자주 사용합니다.
이렇듯 화자의 나이와 성별에 따른 차이를 무시한 채 번역을 한다면 결과가 만족스럽지 않습니다. 의미 전달은 될지언정 원어민의 눈에는 어색하게 보이겠죠.
더 나아가, 존댓말 개념이 있는 언어에서 화자는 청자의 나이 및 청자와의 관계에 따라 단어 선택을 달리합니다. 존댓말을 정확하게 사용하지 않으면 청자에게 무례한 상황이 펼쳐지기 때문에, 단어만 보고 번역해서는 결과를 충분히 좋게 만들기 어렵습니다. 수십년간 번역 기술이 많이 발전했음에도 우리가 기계번역에 완전히 만족하지 못하는 이유 중 하나가 여기 있습니다. 하지만 기계번역이 나이와 성별, 관계와 같은 정보를 활용한다면 어떻게 될까요?
영상에서 나이와 성별을 추정하는 방법
많은 연구자들의 노력으로, 사람의 얼굴로부터 나이와 성별을 추정하는 엔진은 크게 발전했습니다. 우선 영상에 나타나는 모든 얼굴을 모아두고 유사한 것들끼리 묶습니다.
이렇게 묶인 얼굴들에 대해서 고유한 Face ID 를 부여하고, 대표적인 이미지 몇 장을 추려내 Face ID별로 나이와 성별을 추정합니다. 그러면 영상에서 어떤 화자가 등장했을 때, 묶어둔 얼굴 그룹 중 무엇에 속하는지만 판단하면 Face ID를 통해 화자의 나이와 성별을 알아낼 수 있습니다.
STT(Speech-To-Text, 음성인식)에서 화자 구분 성능의 문제
그러나 나이 및 성별 추정 엔진의 성능이 아무리 좋더라도 화자 구분이 잘못되어 엉뚱한 Face ID 를 얻는다면 화자의 정보는 당연히 틀리게 되겠죠. 최근에는 대부분의 STT 서비스에서 기본적으로 화자 구분 기능을 제공하지만 그 성능은 그다지 좋지 않습니다. 특히 자주 발생하는 문제는 서로 다른 두 화자를 같은 사람이라고 추정하는 것인데, 이러면 나이 및 성별 추정에도 심각한 오류가 생깁니다.
사실 영상에 나오는 음성이 우리가 구분해둔 Face ID 중 어디에 속하는지 알기는 쉽지 않습니다. 영상 안에 화자의 음성은 나오되 얼굴은 나오지 않을 수도 있고, 얼굴이 여럿 있을 수도 있기 때문입니다. 따라서 특정 화자가 나오는 장면들에 등장하는 얼굴 중 가장 빈번하게 나타나는 얼굴이 그 음성의 주인공이라고 가정하는 것이 일반적입니다. 그런데 여러 화자가 하나로 인식된다면 그 사람들이 등장하는 영상의 장면도 다양해지기 마련이고, 그러면 그 장면들의 대표 얼굴 이미지를 잘못 뽑아낼 가능성도 높아집니다. 대표 얼굴 이미지를 잘못 뽑으면 당연히 나이와 성별 추정도 엉뚱하게 되겠죠.
정확한 화자 구분을 위해 XL8이 사용한 전략
사람은 청각 정보보다는 시각 정보에 의존했을 때 더 타인을 정확히 인지한다는 연구가 있습니다. 이는 AI 분야의 연구는 아니지만 AI가 인간의 행동을 모방하게 한다는 관점에서는 참고할 가치가 있었죠. 실제로 테스트해보니 영상에 등장하는 사람의 얼굴에 기반한 화자 구분이 음성만으로 화자를 구분하는 것보다 성능이 좋았습니다.
따라서 XL8은, 얼굴 기반으로 화자를 구분하되 정보가 부족하여 구분이 어려우면 음성을 이용하는 방식을 선택했습니다. 얼굴 기반 화자 구분을 하려면 화자 존재 감지가 필요합니다. 얼굴이 나오더라도 실제로 말을 하고 있는지 판단해야 하며, 화면에 여러 사람이 등장한다면 화자를 특정하기도 해야 합니다. 이를 위해 우리는 입술이 벌어지는 정도를 시계열로 측정하여 화자를 감지 및 특정하는 모델을 개발했습니다.
자막의 매 줄마다 화자가 존재했는지 확인합니다. 있었다면 그 얼굴이 지금 말하는 목소리의 화자입니다. 없었다면 음성 기반의 화자 구분 결과를 이용합니다. 이렇게 화자가 존재하지 않는 경우는 영상에 청자만 클로즈업될 때 자주 나타납니다. 이때는 음성 기반 화자 구분 결과로 나온 STT ID를 Face ID 로 변환합니다. 이 맵핑 테이블은 STT ID와 Face ID 가 얼마나 자주 동시에 출현했는지를 기준으로 만들어집니다. 아마 사람도 눈앞에 보이지 않는 화자가 말을 하면 그 목소리가 가장 익숙한 얼굴을 떠올리겠죠.
화자 구분 성능을 더욱 끌어올리기 위한 노력
화자 구분을 더욱 정확하게 하기 위해 XL8은 멀티모달(Multi-Modal) 기술을 염두에 두고 있습니다.
첫번째는 멀티모달 클러스터링입니다. 음성 기반으로 구분한 정보와 얼굴 기반으로 구분한 정보를 하나의 공간에 표현하고, 두 표현이 서로 가까우면 같은 사람으로 인지하는 방식입니다. 사람인 우리가 다른 사람을 인지할 때 시청각 정보를 동시에 사용하는 것과 같은 원리입니다.
두번째는 화자 존재 감지도 멀티모달로 하는 것입니다. 현재 XL8의 모델은 화자 존재 감지를 입술 모양에만 의존하다 보니, 실제로는 말을 하지 않았지만 입모양이 우연히 움직여 말하는 것처럼 판단할 수도 있습니다. 사람도 음소거된 영상에서 지금 누가 말하고 있는지 맞추라고 하면 전부 맞추긴 어렵겠죠. 마찬가지로 화자 존재 감지 모델도 음성을 함께 받아들이게 하여 멀티모달로 만드는 것이 올바른 방향이라 생각합니다.
맺으며
멀티모달 AI는 완전히 새로운 개념이 아닙니다. 다만 이를 실현할 만한 방법이 충분히 준비되지 않았습니다. 앞으로는 멀티모달 모델이 훨씬 더 늘어날 거라고 보며, XL8 또한 화자 구분을 비롯한 여러 기술에서 멀티모달을 활용하려고 노력중입니다. 아직은 연구 단계지만, 정확히 판별된 화자 정보에 기반한 영상 번역 기술을 조만간 선보일 수 있을 거라고 기대합니다.