Search
moon
sun

인프런은 영상 화면 속 글자도 번역합니다

URL
생성 일시
2026/09/10 02:06
최종 편집 일시
2026/09/10 02:06
태그
인프랩
파일과 미디어
… || 여러분들은 예상치 못한 먼 타지의 영상에서 의외의 아이디어를 얻어본 적, 있으신가요? 인프런은 언어의 장벽을 넘어 폭 넓은 지식을 전달해드리기 위해 자막, 더빙에 이어 영상 화면에 있는 글자까지 번역하는 영상 화면 번역 기능을 준비하고 있습니다. 최근에 인프런에서 공개한 DeNA × AI Day 2026를 포함해, 앞으로도 인프런에서 각국의 컨퍼런스 영상과 강의들을 보실 수 있을 텐데요. 이미 몇 강의에는 화면 번역 기능이 적용되어 있고 새로 추가되는 일부 강의에도 실험적으로 적용될 예정입니다. 그러하여 이번 글에서는 이 기능을 구현하며 고민한 과정을 공유드리려 합니다. 결과 예시 적용 전 적용 후 원본: DeNA × AI Day 2026, 'AI × 업무개혁: AI Workspace 프로젝트의 에이전트 활용 최전선' 번역된 영상을 보여주는 방법 영상 화면 속 글자를 번역하는 기능을 어떻게 구현할 수 있을까요? 우선 번역할 대상 영상이 있어야 하고, 그 화면에 보이는 원문을 번역된 글자로 바꿔야 할 것입니다. 저희는 영상의 글자를 번역본으로 바꿔 보여주기 위해 미리 준비한 번역을 재생 중인 화면 위에 겹쳐 그리는 오버레이 방식을 선택했습니다. 원본 영상은 기존 방식 그대로 재생하면서 글자 뒤쪽 영역만 주변 배경과 같은 색의 박스로 덮어 원문을 가리고, 그 위에 번역된 글자를 같은 자리에 얹는 것입니다. 원본 영상 위에 배경색 박스와 번역 텍스트, 두 레이어를 겹쳐 그립니다. 이 방식이라면 영상 인코딩과 상관없이 새로운 언어를 쉽게 추가할 수 있고, 오역을 발견하거나 번역 파이프라인을 개선했을 때도 데이터만 수정하면 바로 반영되니 적은 비용으로 품질을 유연하게 다듬어 갈 수 있습니다. 번역된 텍스트 데이터만 별도로 응답하기에 서버, 클라이언트 모두 네트워크 전송 용량 부담이 적다는 점 또한 큰 이점이었습니다. 구글 렌즈에서도 원문 글자가 배경색으로 가려지고 그 자리에 번역된 글자를 덮어 보여줍니다. 인프런의 화면 번역도 이와 같은 원리입니다. 다만 비추는 즉시 답해야 하는 렌즈와 달리 영상을 미리 분석해 두기 때문에 처리 시간의 제약이 적고, 품질을 더 최적화하거나 잘못된 부분을 사전에 보정할 수 있다는 차이점이 있습니다. 출처: https://blog.google 내부적인 산출물은 JSON 형식의 데이터입니다. { "events": [ { "start": 12.0, "end": 47.0, "texts": [ { "text": "Part 2. From RNN to Transformer", "translations": { "ko": "제2부 RNN에서 Transformer까지" }, "bbox": [104, 216, 632, 258], "bg_color": [16, 42, 67], "text_color": [236, 240, 244] } ] } ] } events는 화면 구성이 유지되는 시간 구간이고, 각 텍스트는 위치(bbox), 원문, 언어별 번역, 그리고 배경색과 글자색을 가집니다. 텍스트를 하나의 평평한 배열로 두는 방법도 있지만 시간 구간(event)으로 묶은 것은 플레이어의 탐색 최적화를 위함입니다. 영상의 특성상, 화면이 전환될 때 모든 텍스트가 한 번에 바뀌는 경우가 잦기 때문입니다. 플레이어는 재생 시각에 해당하는 이벤트를 찾아서, 영상 위에 bbox 위치대로 bg_color로 채운 박스를 깔고 그 위에 text_color로 번역 텍스트를 그립니다. 원문 글자는 배경색 박스에 가려지고, 같은 자리에 번역이 나타나는 구조입니다. 여기까지가 번역된 영상을 보여주는 방법이었습니다. 이제 남은 문제는 이 JSON 데이터를 어떻게 만들어내느냐입니다. 텍스트 추출 영상은 결국 정지된 화면, 즉 프레임의 연속이므로, 먼저 화면 한 장을 번역하는 것부터 생각해 보겠습니다. 초기 구상은 단순하게 떠올릴 수 있습니다. 화면 속 텍스트를 OCR(광학 문자 인식)로 읽는다. 읽은 텍스트를 번역한다. 번역 결과를 원래 텍스트와 같