숏츠 영상 제작 어플리케이션 계획 (2)
숏츠 영상 제작 어플리케이션 계획
프로젝트 개요
- 목표: 사용자가 주제나 내용을 입력하면 AI가 TTS, ASR, 영상 편집, 이미지/비디오 소싱을 처리해 유튜브 쇼츠, 인스타그램 릴스 등의 숏폼 영상 제작.
- 특징:
- 로컬 실행 가능, 클라우드 API도 활용 가능.
- 실시간성 불필요, 결과물 생성 완료면 충분.
- 개인용 어플리케이션,
configs/로 편집 스타일 템플릿화.
- 하드웨어: RTX 3060 Ti, 32GB RAM, Ryzen 5 7600.
핵심 구성 요소
1. TTS (Text-to-Speech)
- 목표: 입력 텍스트를 자연스러운 음성으로 변환.
- 도구: Piper TTS 거의 확정 고민중 별로일시 , 아래 대안 사용.
- ElevenLabs API: 고품질, 한국어 지원, 무료 플랜(월 10분).
- Google Cloud TTS: WaveNet 기반, 무료 크레딧 제공.
- Coqui TTS: 오픈소스, 로컬 실행, 한국어 지원 제한적.
- 프로세스: AI가 주제에서 나레이션 스크립트 생성,
text_to_speech.py로 음성 생성 → assets/generated_temp/tts_output_project_A.wav.
- 비용: ElevenLabs 무료 플랜, Coqui TTS 무료.
2. ASR (Automatic Speech Recognition)
- 목표: 음성을 자막(.srt)으로 변환.
- 도구: OpenAI Whisper (
base.pt, small.pt).
- 오프라인, 한국어 지원, GPU 최적화.
- 대안: AssemblyAI (무료 크레딧), Google Cloud Speech-to-Text.
- 프로세스:
speech_to_text.py로 자막 생성 → assets/generated_temp/subtitles_project_A.srt, subtitle_handler.py로 렌더링.
- 비용: Whisper 무료, API는 무료 크레딧 활용.
3. 영상 편집
- 목표: 클립, 음성, 자막 결합해 숏츠 영상 제작.
- 도구: MoviePy, OpenCV.
- 무료, 오프라인,
configs/로 스타일 커스터마이징.
- 프로세스: AI가 클립 순서/텍스트 오버레이 제안,
video_processor.py로 편집, audio_processor.py로 음성/음악 믹싱 → output/app_promo_A_final_short.mp4.
- 비용: 무료.
4. 이미지/비디오 소싱
- 목표: 주제에 맞는 비주얼 소싱.
- 도구:
- Stable Diffusion: 로컬, 텍스트로 커스텀 비주얼 생성.
- Pexels/Pixabay: 무료 스톡 영상/이미지.
- Runway API: 고품질 비디오, 무료 크레딧.
- 프로세스: AI가 비주얼 키워드 생성,
utils.py로 소싱 → assets/input_videos/.
- 비용: Stable Diffusion, Pexels 무료, Runway는 무료 크레딧.
AI 워크플로우
주제 처리 및 통합
- 사용자가 주제 입력(예: “Trendy app promo”).
- AI가 주제를 분석해 키워드, 스크립트, 비주얼 스타일 제안(
utils.py).
- 각 역할 처리:
- TTS: ElevenLabs/Coqui로 음성 생성.
- ASR: Whisper로 자막 생성.
- 영상 편집: MoviePy/OpenCV로 통합.
- 이미지/비디오: Stable Diffusion/Pexels 소싱.
- 최종 영상 출력:
output/app_promo_A_final_short.mp4.
샘플 코드
# main.py
from core.video_processor import create_video
from core.text_to_speech import generate_tts
from core.speech_to_text import generate_subtitles
from core.audio_processor import mix_audio
from core.utils import generate_visuals, analyze_prompt
# 1. Analyze prompt
user_prompt = "Create a trendy promotional video"
keywords, narration, style = analyze_prompt(user_prompt)
# 2. Source visuals
video_clips = generate_visuals(keywords, "assets/input_videos/project_app_A/", source="pexels")
# 3. Generate voiceover
generate_tts(narration, api="elevenlabs", output_path="assets/generated_temp/tts_output_project_A.wav", language="ko")
# 4. Generate subtitles
generate_subtitles("assets/generated_temp/tts_output_project_A.wav", "models/asr/base.pt", "assets/generated_temp/subtitles_project_A.srt")
# 5. Mix audio
mix_audio("assets/generated_temp/tts_output_project_A.wav", "assets/input_audio/background_music_upbeat.mp3", "assets/generated_temp/final_audio.wav")
# 6. Create video
create_video(video_clips, "assets/generated_temp/final_audio.wav", "assets/generated_temp/subtitles_project_A.srt", output_path="output/app_promo_A_final_short.mp4")
다음 단계
- TTS 모델 선정: ElevenLabs 무료 플랜 또는 Coqui TTS 테스트.
- 워크플로우 테스트: 샘플 주제로 코드 실행, 결과 확인.
- 주제 분석 AI:
utils.py에 NLP 추가.
- 설치:
requirements.txt, scripts/download_models.sh 실행.