시작하기
슬강 | 발표 PDF가 나레이션 강의 영상이 됩니다

슬강 | 발표 PDF가 나레이션 강의 영상이 됩니다

발표 PDF 한 장을 넣으면 슬라이드마다 나레이션이 입혀진 1920x1080 강의 영상 mp4로 바꿔 드립니다. 유튜브 설명란에 바로 붙여넣는 챕터 목록과 SRT 자막 파일도 함께 나옵니다. API 키 없이 동작하고(edge-tts 온라인 호출만 필요), 문장 자막·진행 배지·슬라이드 전환 크로스페이드는 켜고 끌 수 있습니다. 실측 기준 5슬라이드 강의 하나를 만드는 데 73초(추출 0.6초 + 음성합성 5초 + 영상 조립 67초, Apple Silicon)가 걸렸습니다. 온라인 강의, 사내 교육, 제품 소개 영상을 녹화 없이 슬라이드 자료에서 바로 뽑아낼 때 씁니다.
#교육#비디오#생산성
평점
더 많은 평가가 필요합니다
판매
0
사용 방법
다운로드

슬강 | 발표 PDF가 나레이션 강의 영상이 됩니다

hero.webp before_after.webp apollo_lecture.webp

발표 자료는 완성했는데 영상으로 만들려면 얘기가 달라집니다. 마이크 앞에서
슬라이드를 넘기며 말하고, 버벅이면 다시 찍고, 자막은 따로 달고, 챕터
타임스탬프는 영상을 몇 번씩 돌려보며 손으로 적어야 합니다. 슬라이드
20장짜리 강의 하나에 녹화·편집으로 반나절이 갑니다. 슬강은 PDF 한 장을
넣으면 이 과정을 건너뛰고, 슬라이드별 나레이션·자막·챕터·SRT까지 한
번에 뽑아냅니다.

파이프라인

PDF ──extract.py──▶ 슬라이드 PNG + notes.json(초안)
                            │
                  (에이전트가 나레이션 대본을 채운다)
                            ▼
notes.json(완성) ──narrate.py──▶ 슬라이드별 mp3 + 타이밍
                            │
                            ▼
                    ──build.py──▶ lecture.mp4 + chapters.txt + lecture.srt

목소리는 직접 녹음하지 않고 TTS로 대체하되, 나레이션 대본은 에이전트가
슬라이드 내용을 읽고 강의하듯 자연스럽게 씁니다(또는 이미 있는 발표자
노트를 그대로 씁니다).

실제 명령

uv run scripts/extract.py --pdf slides.pdf --out out/
# → out/notes.json 의 narration 필드를 채운다 (에이전트가 직접, 또는 발표자 노트 사용)
uv run scripts/narrate.py --notes out/notes.json --out out/
uv run scripts/build.py --meta out/narration_meta.json --assets out/ \
  --out out/lecture.mp4 --crossfade 0.4

세 줄이 끝입니다. 5슬라이드 기준 실측 약 73초(추출 0.6초 + 음성합성
5초 + 영상 조립 67초, Apple Silicon 기준)가 걸렸습니다. 완성된
lecture.mp4는 1920x1080, h264/yuv420p, AAC 스테레오이고 라우드니스는
-16 LUFS로 맞춰져 나옵니다(loudnorm 2-pass 재측정 오차 0.01dB).

포함 구성

구성 내용
scripts/extract.py PDF → 슬라이드 PNG(1920x1080, 레터박스) + 페이지 텍스트 + notes.json 초안
scripts/narrate.py notes.json → edge-tts 나레이션 mp3 + 문장 단위 타이밍(narration_meta.json)
scripts/build.py 슬라이드+나레이션 → mp4(자막/배지/크로스페이드 옵션) + chapters.txt + lecture.srt
guides/notes-format.md notes.json 스키마와 나레이션 작성 요령
guides/tts-and-licensing.md edge-tts 상업 이용 리스크를 숨기지 않고 정리

사용 예시

1. 사내 온보딩 자료: 신입 교육용 PPT를 PDF로 내보내 넣으면, 발표자
노트에 적어둔 스크립트를 그대로 나레이션으로 써서 자체 시청용 영상을
만듭니다.

2. 유튜브 강의 채널: "엑셀 피벗 테이블 기초"처럼 주제형 강의 PDF를
넣고, 자막을 구운 상태로 업로드합니다. chapters.txt를 설명란에
붙여넣으면 유튜브가 자동으로 챕터 탐색 바를 만들어 줍니다.

3. 제품 소개 영상: 세일즈 덱을 크로스페이드 전환으로 부드럽게 이어
붙여, 랜딩페이지에 올릴 짧은 소개 영상으로 씁니다.

필요한 준비물

  • uv와 Homebrew ffmpeg. 둘 다 무료이고 설치만 하면 됩니다.
  • 인터넷 연결: 나레이션 음성 합성(edge-tts)이 온라인 호출입니다. API
    키나 가입은 필요 없습니다.
  • 슬라이드마다 나레이션 대본을 직접 쓰거나(에이전트가 대신 써 줄 수
    있습니다), 이미 있는 발표자 노트를 준비합니다.
  • edge-tts는 마이크로소프트의 공식 API가 아니라 브라우저 기능을 우회
    호출하는 비공식 오픈소스 클라이언트입니다. 무료로 쓸 수 있지만, 광고
    수익이 붙는 상업 영상이라면 guides/tts-and-licensing.md에 적어둔
    대안(Azure Speech 정식 구독 등)을 검토하길 권합니다.
  • 실존 인물을 사칭하거나 실존 인물의 발언으로 오인시키는 딥페이크
    목적으로는 쓰지 않아야 합니다. 이 스킬은 그런 용도로 설계되지
    않았습니다.

추천 대상

  • 슬라이드 자료가 이미 있고 발표자 노트나 초안 스크립트도 있는 경우
  • 챕터·자막까지 챙긴 유튜브 강의를 빠르게 여러 편 찍어내야 하는 경우
  • 사람 목소리가 아니어도(TTS 티가 나도) 괜찮은 정보 전달용 콘텐츠

비추천 대상

  • 배경음악, 효과음, 화면 전환 애니메이션처럼 화려한 연출이 필요한 경우
    (슬라이드+나레이션 이상은 하지 않습니다)
  • 실제 사람 목소리의 톤과 억양이 꼭 필요한 브랜드 영상
  • 한 슬라이드에서 여러 화자가 번갈아 말하는 형식(슬라이드당 보이스
    하나입니다)

FAQ

Q1. PPTX를 바로 넣어도 되나요?
아니요, PDF로 내보낸 뒤 넣습니다. 파워포인트·키노트·구글 슬라이드 모두
"다른 이름으로 저장 → PDF" 기능이 있어 한 단계만 거치면 됩니다.

Q2. 목소리를 한국어 말고 다른 언어로 바꿀 수 있나요?
edge-tts가 지원하는 언어라면 됩니다. notes.json의 voice 값을
해당 언어 보이스로 바꾸고, 나레이션 대본도 그 언어로 쓰면 됩니다.

Q3. 자막 글자가 너무 크거나 작아요.
build.py --caption-size로 글자 크기를 조정합니다. 자막을 끄고
lecture.srt만 별도로 쓰고 싶다면 --no-captions를 씁니다.

Q4. 슬라이드마다 다른 목소리를 쓸 수 있나요?
됩니다. notes.json의 슬라이드별 항목에 voice를 따로 지정하면 그
슬라이드만 다른 보이스로 나옵니다(질문 슬라이드만 다른 톤으로 하는 식).

Q5. 100장이 넘는 긴 자료도 되나요?
동작은 하지만 슬라이드 파일명이 두 자리(slide_01~`slide_99)라 100장부터는 정렬이 꼬입니다. extract.py`가 경고를 띄우니, 그보다 긴
자료는 여러 편으로 나누길 권합니다.

구매 안내

다운로드 후 package/ 폴더를 그대로 풀어 쓰면 됩니다. SKILL.md가
전체 절차를 안내하고, scripts/의 세 스크립트는 각각 uv run으로 바로
실행됩니다. 별도 설치나 빌드 과정은 없습니다.

apollo_frame.webp apollo_chapters.webp promo.webp

예시 슬라이드의 사진은 NASA 공개 사진(퍼블릭 도메인)이고, 슬라이드와 나레이션 원고는 예시로 직접 작성했습니다.


외부 API

Microsoft Edge TTS