박준 · PARK JOON
프로젝트 / 영상·모션
영상·모션멀티에이전트 하네스TTS·STT 정렬결정적 렌더링다국어 현지화품질 게이트

한국어 시험 강의·해설 영상 무인 생산 라인

문항 생성부터 음성·애니메이션 슬라이드·영상 합성까지, 사람 검수 단계를 측정 가능한 자동 게이트로 바꾼 다국어 영상 파이프라인

기간
2026.06–2026.10
형태
기업 프로젝트
상태
납품 완료
역할
설계·구현 전담(파이프라인 아키텍처, 에이전트 하네스, 렌더·검증 도구)
재구성 목업 · 실제 화면이 아니라 흐름을 보여 주는 애니메이션입니다클릭하면 멈춤·재생
43편중·고급 시험 해설 영상 납품(합계 341.5분)
57×2편미얀마어·벵골어 화면번역 영상 본생산
0건납품 게이트 FAIL(PASS 37 · REVIEW 6)
27개역할별 서브에이전트 정의

문제

한국어 교육 기업의 시험 대비 강의 영상은 문제 생성 → 해설·대본 → 음성 → 슬라이드 → 영상 순으로 만들어졌는데, 문제 검토·대본 검토·슬라이드 수정·음성 확정·번역 검토 같은 사람 검수 단계가 단계마다 병목이 되었습니다. 기존 해설 영상은 사람이 PPT 애니메이션으로 효과와 타이밍을 손으로 맞춰 만든 것이라 수정이나 새 편 제작에 같은 공수가 다시 들었습니다.

대상 언어가 영어·우즈베크어에서 미얀마어·벵골어·중국어로 늘어나면서, 음성 합성이 지원되지 않거나 억양이 현지에 맞지 않는 언어까지 같은 품질로 처리해야 했습니다.

접근

  • 파이프라인을 문제 생성 / 해설 / TTS / 슬라이드 / 영상 5단계로 나누고, 단계 사이에는 데이터 계약(JSON 스키마)이 검증을 통과해야 다음 단계로 넘어가는 게이트를 두었습니다. 단계 안에서는 문항·슬라이드 단위로 병렬 실행했습니다.
  • 창의적 생성(지문·대본·해설 문장)은 LLM이, 정답 유일성·급수 어휘·형식·싱크 같은 결정적 제약은 룰엔진과 스크립트가 맡도록 역할을 분리했습니다.
  • 문항 단위로 나레이션을 한 번에 합성한 뒤 단어 단위 STT 타임스탬프를 원본 대본에 정렬해 슬라이드 경계를 역산하고, 이 타임코드를 애니메이션과 자막의 단일 기준으로 삼았습니다.
  • 게이트마다 최대 수정 횟수를 두고, 한도를 넘은 항목은 사람을 부르지 않고 격리 큐로 보내 전체 파이프라인이 멈추지 않게 했습니다.
  • 기존 해설 영상은 표본 두 편의 원본 PPT 효과 263건과 타이밍을 실측 분석해 코드 기반 덱으로 재현하고, 원본 대비 효과 시각을 재는 타이밍 게이트로 판정했습니다.

구조

문항 생성유형 코드·난이도를 받아 지문과 선택지를 만들고, 오답에는 함정 유형 태그를 붙입니다.
해설·장면표함정 태그를 재사용해 정답 근거·오답 설명·풀이 전략 대본과 슬라이드별 장면표를 씁니다.
음성·정렬문항 단위로 음성을 합성하고 STT 단어 타임스탬프를 대본에 정렬해 타임코드를 만듭니다.
슬라이드타임코드에 맞춰 선택지·밑줄·정답 공개 애니메이션을 배치하고, 캡처 기반 시각 QA로 잘림·겹침을 잡습니다.
렌더·합성헤드리스 브라우저로 프레임을 결정적으로 캡처해 영상으로 인코딩하고 음성·자막을 병합합니다.
납품 게이트규격·길이·음량·효과 타이밍을 자동 측정하고, 편마다 시작·중간·끝 화면을 원본과 나란히 눈으로 검수합니다.

주요 기능

자동 합격 게이트와 격리 큐검수 단계마다 측정 가능한 합격 기준과 재시도 상한을 두어 사람 없이 수렴하게 하고, 실패 항목만 따로 모읍니다.
전사 기준 타이밍대본이 아닌 실제 음성의 전사 타임스탬프로 화면 전환 시점을 정해 음성과 화면이 어긋나지 않게 했습니다.
화면번역 트랙음성 합성을 쓸 수 없는 언어는 음성·타이밍을 한국어판에서 빌리고 화면 글자만 해당 언어로 바꿔 생산합니다.
언어별 규칙 파일번역·화면 표기·용어 규칙을 언어별 YAML·JSON으로 분리해 새 언어를 정해진 절차로 추가할 수 있게 했습니다.
원본 연출 환원 분석원본 PPT의 슬라이드 자동진행 합계가 영상 길이와 밀리초 단위로 일치함을 확인해 영상이 PPT 자동진행 그대로임을 밝히고, 효과 종류와 타이밍을 파싱해 코드 덱으로 옮겼습니다.
이관 패키지경로 설정 한 곳만 고치면 다른 기계에서 같은 화면을 다시 그리는 작업 도구 묶음과 첫 확인 스크립트를 함께 넘겼습니다.

결과

  • 중·고급 시험 해설 영상 43편(듣기 20 · 읽기 23, 합계 341.5분)을 단일 인코딩 규격으로 납품했고, 최종 게이트는 PASS 37 · REVIEW 6 · FAIL 0이었습니다. REVIEW 6건은 모두 사전에 판정된 자리였습니다.
  • 납품본 길이는 원본 대비 −0.375~0.000초 범위였고, 43편 × 3시점 129개 화면을 원본과 나란히 검수했습니다.
  • 초급 강의 영상은 미얀마어·벵골어 각 57편을 화면번역 방식으로 본생산했고, 벵골어 57편은 전건이 길이·자막·문장 수·문자 혼입 자동 검증을 통과했습니다. 이 밖에 중국어 듣기 영상 27편과 영어·우즈베크어 자막을 제작했습니다.
  • 이관 패키지를 다른 경로에 풀어 재현 리허설을 진행해 경로 치환 377파일 519곳, 화면 대조 3/3 동일, 타이밍 게이트 PASS를 확인했습니다.

포인트

기계 잣대를 통과한 것과 옳은 것은 다르다는 점을 여러 번 확인했습니다. 그래서 판정은 «눈 · 수치 · 상태 · 원문» 네 가지를 모두 보는 것으로 정했고, 음성 내용은 대본이 아니라 전사로 판정하도록 규칙을 고정했습니다. 재인코딩하면 같은 화면이라도 영상 파일 해시가 달라지므로, 이관 검증은 영상이 아니라 프레임 이미지로 재는 방식으로 설계했습니다.

장기 운영에서 생긴 사고와 교훈은 별도의 회귀 가드 문서로 모으고, 세션마다 실리는 규약 파일에는 금지·트리거만 두는 구조로 정리했습니다.

기술

Claude Code 서브에이전트·WorkflowPythonElevenLabs TTS·STTGemini TTSPlaywrightReact(JSX) 슬라이드 덱ffmpegGoogle Drive API

상단 영상은 실제 화면이 아니라 구조를 보여 주는 재구성 목업입니다. 고객 정보는 익명화했습니다.