하려던 것 📝
영어 회화 학습용 이중 자막 동영상을 자동으로 생성하는 프로그램을 개발한 사례
기존 파이썬 기반 수동 화면 녹화 방식의 비효율성을 개선하고자 함
엑셀/워드 문서를 입력하면 TTS 음성과 자막이 포함된 학습 동영상을 자동 제작하는 시스템을 구축함
다양한 음성, 해상도, 포맷 옵션을 선택할 수 있는 커스터마이징 기능을 구현함
활용한 툴 ⚒️
Claude : 프로그램 목표 설정 및 전체 프로그램 개발, 최적의 기술 스택 선정
진행 세부 내용 🔍
1️⃣ 프로그램 요구사항 정의 및 Claude 활용
Claude에게 프로그램의 목표와 요구사항을 명확히 설명함
한국어-영어 이중 자막 표시, 음성 재생, 다양한 포맷 지원 등 구체적 기능을 요청함
엑셀(A열: 한국어, B열: 영어), 워드 문서, JSON 등 다양한 입력 형식 지원을 요구함
음성(WAV, FLAC, MP3) 및 영상 화질 선택 기능을 명시함
2️⃣ TTS 음성 생성 시스템 구현
Microsoft Edge TTS 무료 API를 활용하여 음성 생성 기능을 개발함
한국어 3종(선희, 인준, 현수), 영어 10종(Jenny, Guy 등) 총 13종의 음성을 지원함
음성 미리듣기 기능과 1배속부터 5배속까지 배속 조절 기능을 추가함
문장당 약 0.5초의 빠른 TTS 생성 속도를 달성함
3️⃣ 이중 자막 비디오 생성 기능 개발
MoviePy, FFmpeg, Pydub를 활용한 비디오 처리 시스템을 구축함
한국어-영어 동시 자막을 자동으로 타이밍 동기화하는 기능을 구현함
문장별 하이라이트 효과와 720p/1080p 해상도 옵션을 제공함
30문장 기준 챕터당 2-3분의 비디오 생성 시간을 기록함
4️⃣ 사용자 인터페이스 및 커스터마이징 기능 구축
FastAPI 백엔드와 HTML/CSS/JavaScript 프론트엔드로 웹 UI를 구현함
Charcoal/Chalkboard 테마, 문장 번호, 챕터 번호 표시 등 다양한 옵션을 제공함
단일(1), 다중(1,2,3), 범위(1-10) 형식의 챕터 선택 기능을 구현함
캐시 적용으로 50-70% 시간 단축, 병렬 처리로 3-4배 속도 향상을 달성함
시행착오 ⚠️
처음에는 파이썬으로 학습 프로그램을 먼저 구현한 후 녹화 기능을 추가하려는 접근 방식을 시도함
화면 녹화 기능 추가 과정에서 원하는 영상 포맷이 나오지 않는 문제를 겪으며 수많은 시행착오를 경험함
녹화 기능 추가 방식으로는 목표 달성이 어렵다고 판단하여 해당 접근법을 포기함
접근 방식을 전환하여 처음부터 동영상 제작을 목표로 하는 프로그램 설계를 다시 시작함
배운 점 📚
구현 방법을 먼저 정하는 것보다 목적을 명확히 설명하고 AI에게 최적의 기술 선택을 맡기는 것이 효과적임을 학습함
기존 프로그램에 기능을 추가하는 방식보다, 처음부터 목표에 부합하는 구조로 설계하는 것이 더 효율적임을 경험함
Claude에게 구체적인 프로그래밍 언어나 도구를 지정하지 않고 목적을 설명했을 때 더 나은 기술 스택 조합을 제안받음
화면 녹화 방식이 아닌 MoviePy/FFmpeg 기반 직접 비디오 생성 방식이 포맷 제어와 자동화에 훨씬 유리함을 확인함