영상 자막과 문장의 심오한 관계성에 대해
영상 자막에는 문장이 드뭅니다.
이게 무슨 말이지, 하고 갸우뚱하기 이전에 ‘문장’이 어떻게 정의 되는지부터 살펴볼까요?
‘문장’은 생각이나 감정을 말로 표현할 때 완결된 내용을 나타내는 최소의 단위를 뜻합니다. 하지만 자막은 수초 이내에 읽혀야 하기 때문에 15~16자의 글자로 표현되어야 합니다. 그러나 (당연한 말이지만), 내가 하는 말이 띄어쓰기 포함해서 몇 자인지 신경 쓰며 대화하는 사람은 아무도 없습니다.
그럼 간단한 게임을 해보죠. 지금부터 우리가 나누는 대화에 글자수를 매겨 볼까요? 앞서 제시한 16자의 기준으로는 무척 짧은 문장밖에 담지 못한다는 걸 금방 깨닫게 될 것입니다. 공백 포함 16자의 예시를 들어보면 다음과 같습니다.
“시험 끝났는데 떡볶이 먹을래?”
단 4개의 단어로도 16자가 뚝딱 완성됩니다. 여기에 조사 하나, 호칭 하나만 잘못 붙여도 글자수 기준이 넘어갑니다. ‘시험’을 ‘시험도’로 말하거나, ‘떡볶이’를 ‘떡볶이나’라고 말하거나, ‘먹을래’를 ‘먹으러 갈래?’라고 말한 순간 16자가 넘는 것입니다.
이외에도 우리가 일상생활에서 쓰는 말을 받아 적어보면, 우리가 의외로 많은 글자수를 말하고 있음을 알 수 있습니다. 그 말인 즉, 영상의 대부분의 자막은 문장 단위가 아니라 어구 단위로 분절되어 나타난다는 것이지요. 여기서 의문을 제기하는 사람이 있을 수도 있겠습니다. “난 말 길게 안 함”이라면서요. 예를 들어 다음의 대화를 볼까요?
A: 선영이 어딨어?
B: 화장실에.
C: 빨리 좀 나오라고 해.
위의 세 친구 모두 자신의 생각과 감정을 충분히 말에 담아 표현하고 있습니다. 모두 16자를 넘지 않으며, 문장 부호도 잘 달려 있죠. 하지만 우리는 잊지 말아야 합니다. ‘문장’은 문장 부호 기준이 아닌 ‘완결된 내용을 나타내는 최소의 단위’라는 것을요. A와 B의 대화가 없었다면, C의 말을 완결된 내용으로 이해할 수 있을까요?
증거를 제시했으니 이제 다시 말해보겠습니다. 영상 자막에는 문장이 드뭅니다.
어구 단위로 분절이 되었든, 상황과 맥락 속에 단어 몇 개를 생략했든, 자막 한 줄만 똑 떼어놓고 보면 내용을 이해하기 힘듭니다. 우리가 영상 자막을 보며 완결된 내용으로 이해하는 것은, 순전히 우리가 잘나서입니다. 파편화된 어구를 문맥과 맥락 속에서 촘촘히 연결해서 완결된 내용으로 받아들일 수 있을 정도의 지능을 지녔기 때문이죠.
지능 얘기가 나와서 말인데요, 그럼 인공지능은 어떨까요? 우리가 아무렇지 않게 하니까 인공지능도 아무렇지 않게 할 수 있는 일일까요?
질문의 뉘앙스에서 눈치 채셨겠지만, 인공지능에게 지능을 부여하기 위해서는 노력이 조금 (어쩌면 많이) 필요합니다. 레터의 연구진은 인공지능에게 영상 자막을 이해시키기 위해 두 가지 해결책을 찾았습니다. `문장 경계 인식(Sentence Boundary Detection)`과 `문맥을 포함한(Context-aware) 자연어 이해`가 그것입니다. 전자는 분절된 어구들을 하나의 완결 단위로 이어주며, 후자는 맥락 속에서만 이해되는 말을 콘텍스트로 묶어줍니다. 이로써 똑똑한 우리네만 할 수 있는, 어구들의 촘촘한 연결을 인공지능도 가능하게 한 것입니다.
구체적인 예시를 하나 가져와서, 교단에 선 선생님이 다음과 같이 말하는 장면을 상상해볼까요?
“얘들아 수능 끝났는데 너네 뭐 하고 지내니? 요즘 내가 너네 수능 끝나고 남는 시간 동안 읽을 만한 책을 좀 추천을 해줄게.”
(출처: https://www.youtube.com/watch?v=14CCvCd8d2A)
위의 발화가 자막으로 쓰여지면 모든 자막이 16자 이내로 잘려야 하고, 다음과 같이 자막이 완성될 수 있겠지요.
원문 |
번역문 |
얘들아 수능 끝났는데 | |
너네 뭐 하고 지내니? | |
요즘 내가 너네 수능 끝나고 | |
남는 시간 동안 읽을 만한 책을 | |
좀 추천을 해줄게. | |
매우 훌륭하고 깔끔하게 잘 잘렸습니다. 그런데 이 자막이 그대로 각각 번역기에 들어가면 어떻게 될까요? 다음과 같이 될 것입니다.
원문 |
번역문 |
얘들아 수능 끝났는데 | Hey, guys, SATs are over |
너네 뭐 하고 지내니? | What are you guys doing? |
요즘 내가 너네 수능 끝나고 | Now that I'm done with your SATs |
남는 시간 동안 읽을 만한 책을 | Books to read in your spare time |
좀 추천을 해줄게. | Let me make a recommendation |
아무리 성능이 좋은 번역기라도, 어구 단위의 불완전한 내용이 들어오면 불완전한 번역을 내보일 수밖에 없습니다. 그럼 이 자막들을 적당히 밀고 당겨, 하나의 완전한 내용 단위로 끊어서 번역기에 넣어볼까요?
원문 |
번역문 |
얘들아 수능 끝났는데 너네 뭐 하고 지내니? | Hey, guys, what are you guys doing now that the CSATs are over? |
요즘 내가 너네 수능 끝나고 이제 남는 시간 동안 읽을 만한 책을 좀 추천을 해줄게. | Let me give you some recommendations for books to read in your spare time after your CSATs. |
툭툭 끊어지던 앞선 번역보다는 훨씬 보기 나아졌습니다.
이 일을 가능하게 해주는 것이 바로 `문장 경계 인식(Sentence Boundary Detection)`입니다. 분절된 어구를 모으고 이어, 문장을 예쁘게 만들어주는 역할을 하죠.
하지만 문장만 완성했다고 영상 번역이 바로 매끄러워지는 건 아닙니다.
영상에는 흐름이 있어서, 앞에 나온 단어들을 종종 생략하고 말을 잇기도 하니까요. 이때 필요한 게 바로 두 번째 해결책, `문맥을 포함한(Context-aware) 자연어 이해`입니다. 아까 선영이를 기다리는 세 친구의 대화에서도 봤듯이, 대화를 주고 받는 상황에서는 바로 앞에 정보가 언급될 시 굳이 그걸 다시 말하려고 하지 않습니다. 비단 짧은 발화 뿐만이 아닙니다. 긴 발화에 대해서도 이 기술은 필요합니다. 다음의 예시를 볼까요?
원문 |
번역문 |
그래서 보통은 이런 자세일 때 이렇게 바깥으로 무릎이 나가게 됩니다 | |
하지만 사실 바깥으로 나가도 그렇게 예쁜 자세는 되지 못해요 | |
위의 문장에 대해서 문맥을 고려하지 않고 단문 번역을 실시할 경우 아래와 같습니다.
원문 |
번역문 |
그래서 보통은 이런 자세일 때 이렇게 바깥으로 무릎이 나가게 됩니다 | Therefore, usually, in this posture, the knees tend to move outward like this. |
하지만 사실 바깥으로 나가도 그렇게 예쁜 자세는 되지 못해요 | However, in reality, even if I go outside, I can't maintain such a pretty posture. |
두번째 문장에서 ‘바깥으로 나간’ 주체에 대해 인지하지 못하고 ‘I’라는 주어를 사용하며 원래 의도하던 번역 결과와 뉘앙스가 완전히 달라지는 것을 볼 수 있습니다. 여기에 문맥 정보를 더한 기계 번역을 수행하면 다음과 같습니다.
원문 |
번역문 |
그래서 보통은 이런 자세일 때 이렇게 바깥으로 무릎이 나가게 됩니다 | So usually when you're in this pose the knees will go out like this. |
하지만 사실 바깥으로 나가도 그렇게 예쁜 자세는 되지 못해요 | But even if the knees are out it doesn't look good. |
앞의 문맥에서 이어지는 정보를 자연스럽게 잡아내는 것을 볼 수 있습니다.
이처럼 레터에서는 다양한 기법을 이용하여 영상 자막에 최적화된 기계번역을 수행하고 있습니다.
Editor l 고원희 연구원
wonhee.go@twigfarm.net