말로 영상 강좌 만들기 — 대본·슬라이드·목소리를 영상 한 편으로
이 페이지 목차
시작 전에1단계 · 장면 목록부터 받기2단계 · 대본 파일 만들기3단계 · 3분이 정말 3분인지 보기4단계 · 슬라이드 만들기5단계 · 목소리 만들기 (예시 답)6단계 · 그림과 목소리를 합쳐 영상으로 (예시 답)7단계 · 영상 보고 고칠 곳만 다시 만들기 (예시 답)다 됐습니다 — 이제 이렇게 말하면 됩니다막히면한 번에 맡기기 (익숙해진 다음에)내가 만들 때는강좌 영상은 「무엇을 말할지(대본) → 화면(슬라이드) → 목소리 → 합치기」 순서로 만듭니다. 클로드에게 이 순서를 한 단계씩 말로 시키면 됩니다. (예시 자료는 가짜 이름입니다.)
시작 전에
- 빈 폴더 하나를 만들고(이름은 영문으로, 예: 문서 폴더 안
my-course), 그 폴더에서 클로드(Claude Code)를 엽니다. 데스크톱 앱이면 Code 탭에서 Local → Select folder, 터미널이면 그 폴더 안에서claude를 입력합니다. 설치·구독은 아래 「준비물 자세히」에 있습니다. - 1~4단계는 설치나 키 없이 됩니다. 5단계부터 사람 손이 필요한 준비가 둘 있습니다. ① 목소리용 키(구글 AI Studio), ② 영상을 합치는 프로그램 ffmpeg. 5단계에 도착하면 준비하세요.
- 클로드가 파일을 만들 때 허락을 묻는 창이 뜨면 무엇을 쓰거나 실행하는지 읽고 허락하세요. 처음에는 이렇게 묻는 방식(Manual)이 안전합니다.
준비물 자세히 (구독 · 키 받기 · ffmpeg · 용어)
- 클로드(Claude Code): 둘 중 하나입니다. 일반 채팅 화면(웹·데스크톱의 Chat 탭)은 기본으로는 내 PC 의 파일에 손이 닿지 않아 이 편의 방법에는 쓸 수 없습니다.
- 데스크톱 앱의 Code 탭 — Claude 데스크톱 앱 시작하기. Claude Pro·Max·Team·Enterprise 구독이 필요합니다.
- 터미널용 Claude Code — 설치 안내. Claude 구독이나 Console 계정이 필요합니다. 처음 여는 폴더에서는 「이 폴더의 파일을 믿느냐」는 확인 창이 뜨는데, 방금 만든 빈 폴더이니 허락하면 됩니다.
- 목소리 키 (5단계 전에, 내가 직접): AI Studio 키 페이지에서 구글 계정으로 들어가 Create API key 를 누르고 키를 복사합니다. 그 키를 내 PC 의 환경 변수
GEMINI_API_KEY로 저장합니다. Windows 는 시작 검색에 「Environment Variables」(한글 화면은 「환경 변수」)를 찾아 열고, User variables 아래 New… 에서 이름GEMINI_API_KEY, 값에 키를 넣고 OK 를 누른 뒤 새 터미널을 엽니다(데스크톱 앱이면 앱을 껐다 켭니다). 공식 안내는 API 키 사용하기입니다. 키가 유출되면 새 키를 만들고 옛 키를 끄라고 안내합니다. Create API key 단추가 안 보이면 권한이 없는 것이니 회사 관리자에게 물어보세요. 회사 구글 계정을 쓰면 회사 규정이 있을 수 있으니 확인하세요. - ffmpeg (6단계 전에, 내가 직접): 그림과 소리를 영상으로 합치는 프로그램입니다. ffmpeg 공식 사이트는 소스 코드만 내놓고, 윈도우용 완성 파일은 공식 사이트가 안내하는 외부 빌드(gyan.dev, BtbN)에서 받습니다(ffmpeg.org/download.html). 회사 PC 에서 설치 권한이 없으면 관리자에게 부탁하세요. 클로드에게 설치를 시키지 않는 것이 안전합니다. 설치한 뒤 새 터미널에서
ffmpeg -version이 버전을 보여 주면 됩니다. - 크롬: 슬라이드를 그림 파일로 저장할 때 화면 없이 돌립니다. 이미 있으면 됩니다.
- 용어
- 대본은 영상에서 읽을 글입니다. 이 편에서는
script.json한 파일에 장면별 읽을 문장과 자막을 담습니다. JSON 은 컴퓨터가 읽기 쉽게 칸을 나눠 적은 글 형식입니다. - 읽을 문장 / 자막은 다릅니다. 목소리가 읽을 문장은 「오 퍼센트」처럼 소리 나는 대로 한글로 적고, 화면에 보일 자막은 「5%」처럼 보기 좋은 표기로 적습니다.
- **목소리 합성(TTS)**은 글을 AI 목소리로 읽어 파일로 만드는 것입니다. 이 편은 Gemini 의 음성 합성(목소리 이름 Zephyr)을 씁니다.
- 환경 변수는 프로그램이 읽어 가는 이름표 붙은 값입니다. 키를 파일에 적지 않고 여기에 두면 대본·영상 파일에 키가 섞이지 않습니다.
- 대본은 영상에서 읽을 글입니다. 이 편에서는
1단계 · 장면 목록부터 받기
처음부터 대본을 쓰게 하지 않고 장면 목록만 받아 봅니다. 목록에서 고치는 것이 대본을 고치는 것보다 훨씬 쌉니다. 이 단계에서는 파일이 만들어지지 않습니다. 주제는 내 것으로 바꿔 쳐도 됩니다.
✅ 이렇게 나오면 성공 — 장면 6개가 표로 나오고 파일은 생기지 않았으면 다음 단계로. 장면이 마음에 안 들면 「3번과 4번을 합쳐 줘」처럼 고쳐 달라고 한 뒤 넘어가세요.
2단계 · 대본 파일 만들기
목록대로 가자고 하면서, 읽을 문장과 자막을 짝으로 대본 파일에 적게 합니다. 괄호 속 「30~70자」는 한 문장의 길이로, 목소리가 한 호흡에 읽기 좋은 길이입니다. 읽을 문장의 영어·숫자를 소리 나는 대로 바꾸라는 말을 이때 같이 해 두면, 목소리가 「AI」를 이상하게 읽는 일을 미리 막습니다. 허락 창이 뜨면 내용을 훑고 허락하세요.
✅ 이렇게 나오면 성공 — 폴더에 script.json 이 생기고, 열어 보면 장면마다 lines 칸 안에 narration(읽을 문장)과 subtitle(자막)이 한 쌍씩 들어 있으면 됩니다. 칸 이름은 클로드마다 조금 달라도 괜찮습니다. 읽을 문장에 숫자나 영어가 남아 있지 않은지도 눈으로 훑어 보세요.
3단계 · 3분이 정말 3분인지 보기
「3분짜리」라고 말했어도 대본이 3분에 맞는다는 보장은 없습니다. 글자 수로 읽는 시간을 어림해서 장면별 시간을 고치게 합니다.
✅ 이렇게 나오면 성공 — 예상 길이와 3분의 차이가 숫자로 나오고, script.json 맨 위에 계산 기준(제 화면에서는 timingBasis)이 적히면 됩니다. 이 시간은 어림값입니다. 클로드가 「어느 쪽으로 할지 정해 달라」고 물으면 지금은 대답하지 않고 다음 단계로 가도 됩니다. 목소리가 나온 다음 실제 길이로 한 번 더 맞춥니다(7단계).
4단계 · 슬라이드 만들기
장면마다 슬라이드를 한 장씩, 파일 하나로 만들게 합니다. 사진이나 그림 없이 큰 글씨만 쓰면 실수가 적습니다.
✅ 이렇게 나오면 성공 — 내가 직접 폴더의 slides.html 을 더블클릭해 브라우저로 엽니다. 큰 제목이 보이고 아래 검은 띠에 자막이 나오며, → 키로 자막이 한 줄씩 넘어가다 장면이 바뀌면 슬라이드도 바뀌면 됩니다. 클로드가 말했듯 클로드는 화면을 직접 보지 못했으니 눈으로 확인하는 것은 내 몫입니다. (제가 따로 크롬으로 첫 장을 찍어 보니 큰 제목 「빈 양식 앞에서 막막하신가요?」와 아래 자막 띠가 의도대로 나왔습니다.) 어색한 곳은 「3번 슬라이드 글씨를 더 크게」처럼 고쳐 달라고 하세요. 대본(script.json)을 고치면 슬라이드 파일 안의 글도 같이 고쳐야 하니 「대본을 고쳤으니 슬라이드도 맞춰 줘」라고 덧붙이세요.
5단계 · 목소리 만들기 (예시 답)
여기서부터 사람 손이 필요합니다. 「시작 전에」의 키(GEMINI_API_KEY) 를 준비하고 새 터미널(또는 앱 재시작)에서 클로드를 다시 연 뒤 같은 폴더에서 말하세요. 키를 클로드에게 붙여 넣지 않습니다. 환경 변수에서 읽게 시킵니다.
✅ 이렇게 나오면 성공 — audio 폴더에 문장 수(제 파일은 23개)만큼 음성 파일이 생기고, 하나를 내가 직접 재생해 한국어로 또렷하게 들리면 됩니다. 이 단계에서 목소리 모델·한도 문제가 나면 「막히면」 4번을 보세요. 문장마다 따로 합성하는 이유는 길이를 문장 단위로 정확히 알아야 자막이 밀리지 않기 때문입니다(「막히면」 3번).
6단계 · 그림과 목소리를 합쳐 영상으로 (예시 답)
ffmpeg 를 설치해 두었으면, 이 단계에서 클로드가 슬라이드를 그림으로 저장하고 목소리와 합쳐 mp4 를 만듭니다.
✅ 이렇게 나오면 성공 — 폴더에 lecture.mp4 가 생기고 재생이 됩니다. 길이가 대본 어림값과 조금 달라도 정상입니다. ffmpeg 가 없다는 말이 나오면 「막히면」 6번을 보세요. (조각 영상을 만들고 잇는 명령은 시험 소리와 슬라이드 한 장으로 제가 따로 돌려 보았습니다. 1920×1080, 영상 h264, 소리 aac 의 mp4 가 나왔습니다.)
7단계 · 영상 보고 고칠 곳만 다시 만들기 (예시 답)
이 단계는 내가 직접 영상을 처음부터 끝까지 봅니다. 확인할 것은 네 가지입니다. ① 목소리가 또렷한 한국어인가 ② 자막과 목소리가 같은 문장인가 ③ 숫자·영어가 이상하게 읽히는 곳이 없는가 ④ 장면이 어색하게 길거나 짧지 않은가. 고칠 곳은 시각과 증상을 적어 말합니다. 문장 하나만 다시 만들면 나머지는 그대로입니다.
✅ 이렇게 나오면 성공 — 고친 곳만 달라지고 나머지는 그대로인 영상을 다시 봤을 때 어색함이 사라지면 끝입니다. 영상을 사내에 올릴 때는 설명이나 첫 화면에 **「목소리는 AI 가 합성한 것입니다」**라고 밝히세요. 사람이 녹음한 것이 아닌데 그렇게 보이면 안 되기 때문입니다.
다 됐습니다 — 이제 이렇게 말하면 됩니다
새 영상도 같은 순서입니다. 폴더를 새로 만들어 시작하세요.
- 「이번엔 '회의록 쓰는 법'으로 3분 강좌를 만들 거야. 장면 6개 목록부터 보여 줘.」
- 「장면 4 문장을 더 쉬운 말로 고치고, 그 장면 목소리만 다시 만들어 줘.」
- 「영상 맨 앞에 '이 영상의 목소리는 AI 가 합성한 것입니다' 안내 장면을 한 장 더해 줘.」
- 「자막 파일(srt)만 다시 만들어 줘.」
막히면
- 대본을 읽어 보니 3분이 안 되거나 넘는다 → 3단계 말을 다시 하세요. 이렇게 말하세요: "읽는 속도를 초당 5음절로 보고 장면별 길이를 다시 계산해서, 모자라는 장면에 문장을 더하고 넘치는 장면은 줄여 줘." 목소리가 나온 뒤에는 이렇게 말하세요: "음성 파일의 실제 길이로 장면 시간표를 고쳐 줘."
- 목소리가 숫자나 영어를 이상하게 읽는다 → 읽을 문장에 숫자·영어가 남은 것입니다. 이렇게 말하세요: "script.json 의 읽을 문장에서 숫자·영어·기호를 찾아 소리 나는 대로 한글로 바꿔 줘. 바꾼 곳은 표로 보여 주고, 자막은 건드리지 마."
- 자막이 한 문장씩 밀린다 / 장면을 건너뛴다 → 제가 겪은 일입니다. 장면 여러 개를 한 번에 합성한 뒤 글자 수 비율로 문장 경계를 나눴더니 한 문장씩 밀렸습니다. 문장마다 따로 합성하면 길이를 정확히 알 수 있어 안 밀립니다. 이렇게 말하세요: "문장마다 따로 합성하고, 각 음성 파일의 실제 길이로 자막 시각을 계산해 줘."
- 목소리 합성이 한도(429)나 모델 이름 오류(404)로 멈춘다 → 무료로 쓸 수 있는 양에는 하루 한도가 있습니다(제가 겪은 건 하루 스무 번쯤이었습니다. 지금 한도는 공식 문서에서 확인하지 못했습니다). 이미 만든 파일은 두고 내일 이어서 만들면 됩니다. 모델 이름은 자주 바뀝니다. 이렇게 말하세요: "Gemini 음성 합성 공식 문서에서 지금 쓸 수 있는 모델 이름을 찾아서 바꿔 줘. 이미 만든 음성 파일은 다시 만들지 말고 이어서 만들어 줘."
- 키가 화면이나 파일에 찍혔다 → 그 키는 이미 새어 나간 것으로 보고, 내가 직접 AI Studio 에서 새 키를 만들고 옛 키를 끕니다(공식 안내). 이렇게 말하세요: "방금 키가 찍힌 파일과 대화 내용을 알려 주고, 앞으로는 키를 출력하거나 파일에 쓰지 않게 이 폴더 CLAUDE.md 에 한 줄 적어 줘." (CLAUDE.md 는 15편에서 만듭니다.)
- ffmpeg 를 찾을 수 없다고 한다 → 설치가 안 됐거나, 설치한 뒤 새 터미널을 열지 않은 경우가 많습니다. 설치는 내가 직접 합니다(「준비물 자세히」). 새 터미널에서
ffmpeg -version이 되는지 보고, 클로드에게는 이렇게 말하세요: "ffmpeg 가 있는지ffmpeg -version으로 확인하고, 없으면 설치하지 말고 알려만 줘." - 영상에 회사 이름·사람 이름·내부 자료가 그대로 보인다 → 만든 뒤에 내가 눈으로 확인합니다. 이렇게 말하세요: "대본과 슬라이드에서 실제 회사·사람·고객 이름처럼 보이는 것을 모두 찾아 가짜 이름으로 바꾸자고 제안해 줘. 바꾸기 전에 목록을 먼저 보여 줘."
한 번에 맡기기 (익숙해진 다음에)
긴 프롬프트 펼치기 — 1\~4단계를 한 번에 시키는 말 (목소리는 내가 준비된 뒤에)
1~4단계(장면 목록·대본·분량 점검·슬라이드)를 한 번에 시키고, 5단계 목소리부터는 내가 키와 ffmpeg 를 준비했다고 말한 뒤에만 하게 합니다. 빈 폴더에서 클로드를 연 뒤 꺾쇠 <…> 자리를 내 것으로 바꿔 붙여 넣으세요. 단계로 만든 것과 파일 칸 이름이 조금 다를 수 있습니다.
역할: 너는 내 PC 에서 일하는 도우미다. 주제 하나를 받아 짧은 강좌 영상의 장면 목록·대본·슬라이드를 만들고, 내가 허락한 뒤에만 목소리와 영상 합치기까지 해 준다. 나는 초보자이니 어려운 말은 풀어서, 한 단계씩 말해 줘.
맥락: 지금 열려 있는 이 폴더가 작업 폴더다. 대본의 글은 목소리 합성 때 구글 서버로 나가므로 사외비·고객 자료·개인정보·미공개 수치를 쓰지 않고, 회사·사람 이름은 가짜로 쓴다. 목소리 키(환경 변수 GEMINI_API_KEY)와 ffmpeg 는 내가 직접 준비한다. 너는 키를 발급하거나 프로그램을 설치하지 않는다.
입력: <운영체제>, <쓰는 클로드: Claude Code 터미널 / 데스크톱 앱의 Code 탭>, <주제>, <듣는 사람>, <길이: 예 3분>, <장면 수: 예 6>, <목록 확인 생략: 하려면 「목록 확인 생략」이라고 적기>
작업:
① 확인 — 아무것도 만들기 전에 폴더가 비어 있는지 본다. script.json·slides.html 이 이미 있으면 덮어쓰지 말고 멈춰서 묻는다.
② 장면 목록 — 장면 번호·제목·시간·화면·핵심 내용을 표로 보여 준다. 내 입력에 「목록 확인 생략」이 없으면 내가 「이대로」라고 말할 때까지 파일을 만들지 않고 멈춘다.
③ 대본 — script.json 을 만든다. 장면마다 id, title, start, end, narration(읽을 문장 배열), subtitles(자막 배열)를 두고 두 배열의 개수를 같게 한다. 읽을 문장은 한 호흡에 하나(30~70자)이고 숫자·영어·기호를 소리 나는 대로 한글로 쓴다(AI는 에이 아이). 자막은 화면에 보일 표기 그대로 쓴다.
④ 분량 점검 — 읽을 문장의 한글 음절 수를 세어 초당 5음절로 읽을 때 걸리는 시간을 적고, 목표 길이와의 차이를 알린 뒤 장면 시간을 고친다. 어림값이라고 적고, 목소리가 나오면 실제 길이로 다시 맞춘다고 말한다.
⑤ 슬라이드 — slides.html 한 파일에 장면마다 한 장, 글은 적게·큰 글씨로, 자막은 슬라이드 아래에 넣는다. 브라우저로 열어 확인하지 못했으면 못 했다고 적는다.
⑥ 사람 확인 후 멈춤 — 내가 직접 할 일을 말해 주고 멈춘다. 가) slides.html 을 브라우저로 열어 본다. 나) 목소리가 필요하면 AI Studio 에서 키를 받아 환경 변수 GEMINI_API_KEY 로 저장하고 ffmpeg 를 설치한 뒤 「준비됐어」라고 말한다. 내가 「준비됐어」라고 하기 전에는 목소리·영상을 만들지 않고 키가 있는지 찾아보지도 않는다.
⑦ 목소리 (「준비됐어」 뒤에만) — GEMINI_API_KEY 가 있는지만 확인하고 값은 출력하지 않는다. 공식 문서에서 지금 쓸 수 있는 음성 모델과 Zephyr 목소리를 확인한 뒤 읽을 문장을 문장마다 따로 합성해 audio 폴더에 저장하고 파일마다 길이를 재서 durations.json 에 적는다. 한도(429)나 오류가 나면 멈추고 어디까지 했는지 알린다. 이미 만든 파일은 다시 만들지 않는다.
⑧ 합치기 (⑦ 뒤에) — ffmpeg -version 으로 확인하고, 없으면 설치하지 말고 알려 준다. 크롬을 화면 없이 돌려 문장마다 슬라이드를 1920x1080 그림으로 저장하고, 문장마다 그림과 음성을 음성 길이만큼 이은 조각 영상을 만든 뒤 순서대로 이어 lecture.mp4 와 lecture.srt 를 만든다.
제약: 비밀키·토큰·비밀번호를 출력하거나 파일에 쓰지 않기(환경 변수 이름만 쓴다). 오류를 건너뛰지 않기. 기존 파일을 지우거나 덮어쓰지 않기. 이 폴더 밖의 파일을 읽지도 쓰지도 않기. 프로그램을 대신 설치하지 않기. 대본과 슬라이드에 개인정보·고객 자료·반출금지 도면 내용을 쓰지 않기.
출력: 한 일, 확인된 상태(폴더가 비어 있었는지), 만든 파일 목록, 검증 결과((가)~(라) 각각 통과/실패), 내가 해야 할 일(⑥ 그대로), 남은 문제와 다음 조치.
검증: 아래가 파일을 다시 열어서 확인돼야 「자동 확인 통과」라고 보고한다. 하나라도 실패하면 완료로 보고하지 말 것.
(가) script.json 이 JSON 으로 읽히고, 모든 장면에서 narration 과 subtitles 의 개수가 같다.
(나) narration 의 어떤 문장에도 숫자·영문 알파벳·% 같은 기호가 없다.
(다) slides.html 이 있고 슬라이드가 장면 수만큼 있다.
(라) 키 값처럼 보이는 글자가 어떤 파일에도 없다.
단, 사람이 직접 할 ⑥은 네가 확인할 수 없으므로 「완료」가 아니라 「남은 일」로 적는다. 내가 슬라이드를 눈으로 보고 영상까지 재생해 봐야 전체 완료다.
내가 만들 때는
처음엔 이렇게 시켰습니다. 2026-10-07 밤 11시 28분, 「나의 AI 비서 만들기」 강좌를 들은 교육생들이 기초가 없어 막힌다고 해서 이렇게 말했습니다. 「교육생들이.. 아까 AI 비서 만드는거 하였더니.. 기초가 너무 없어서 차근차근 가르쳐줘야될것 같애.. … 기초부터 설명하는 영상과 설명페이지 만들어줘 … 물어보지 말고.. 다 만들어놔.. … 아니다 먼저 어떤씩으로 설명해야될지.. 너가 생각해서 챕터부터 나눠봐..」 마지막 문장이 이 편 1단계(목록부터)와 같은 뜻입니다. 10분 뒤에는 순서를 확인해 주었고, 이튿날 새벽까지 10편이 영상과 자막까지 나왔습니다. 한 편은 장면 10개, 읽는 글은 공백을 뺀 1,662~2,009자였고 편집본은 4분 58초에서 6분 13초, 10편 합계는 55분 3초입니다.
목소리는 처음 계획과 달랐습니다. 10월 6일 오후에 이렇게 말했습니다. 「승인했어 너가 합성해서 영상에 그 목소리 전부 그 순서와 속도에 맞게 전부 넣어줘」 계획 문서에는 유료 목소리 서비스로 적혀 있었는데 제 비서는 9월 30일부터 이미 구글의 무료 음성(Zephyr)을 쓰고 있었습니다. 계획대로 1편 첫 판을 만들었다가 약 3천 자를 쓰고 버렸습니다. 그래서 이 편도 「문서가 아니라 지금 쓰는 쪽을 먼저 확인」하라는 뜻으로 5단계에서 모델 이름을 공식 문서에서 찾게 합니다. 대본도 초안이었습니다. 1편 첫 판은 초안을 그대로 읽혀서 실제 화면과 달랐고, 그 뒤로는 화면을 확정한 다음에 목소리를 만들었습니다(이 편에서는 3단계의 어림값을 7단계에서 실제 길이로 고치는 이유입니다).
가장 크게 틀린 것은 문장 경계입니다. 한 번에 여러 장면을 합성하면 문장이 어디서 끝나는지 알아야 자막을 맞출 수 있는데, 글자 수 비율로 나눴더니 6편에서 한 문장씩 밀려 장면을 건너 틀렸습니다. 8편은 그 계산이 오류로 죽어 장면 9가 통째로 안 만들어졌습니다. 받아쓰기 모델로 낱말 시각을 뽑아 맞추는 방식으로 바꿨습니다. 이 편이 문장마다 따로 합성하게 한 것은 그 일 때문이지만, 대신 호출 수가 늘어 무료 한도를 먼저 만납니다. 합성 목소리를 쓸 때는 「이 목소리는 사람이 녹음한 것이 아니라 AI 가 합성한 것」이라고 대본에 적었습니다(9월 9일 발표판에서). (참고로 앞서 만든 비서 만들기 강좌 10편은 녹화 원본 14시간 34분이 편집본 52분 30초가 되었습니다.)
→ 뒷이야기 16단계에서 자세히 보세요.