Files
drama-studio/README.md
jungwoo choi df52a7d7ff docs: README.md 추가
- 프로젝트 개요 및 기능 설명
- 기술 스택 및 구조 문서화
- 설치/실행 방법 안내
- API 엔드포인트 목록
- 대본 형식 가이드
- GPU 요구사항 명시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:41:26 +09:00

6.1 KiB

Drama Studio

AI 기반 라디오 드라마 제작 시스템

개요

Drama Studio는 Qwen3-TTS와 MusicGen을 활용하여 텍스트 대본으로부터 완성된 라디오 드라마를 자동 생성하는 시스템입니다.

기능

  • TTS 음성 합성: Qwen3-TTS 1.7B 모델을 사용한 고품질 한국어/다국어 음성 생성
  • 배경음악 생성: MusicGen을 활용한 AI 배경음악 생성
  • 효과음 검색: Freesound API 연동으로 다양한 효과음 검색 및 사용
  • 드라마 제작: 대본 파싱 → 음성 생성 → 배경음악/효과음 믹싱 → 최종 오디오 출력
  • 음성 관리: 커스텀 음성 프로필 생성 및 관리

기술 스택

구성요소 기술
Frontend Next.js 15 + React 19 + TypeScript + Tailwind CSS 4
Backend FastAPI + Python 3.11 + Pydantic v2
TTS Engine Qwen3-TTS 1.7B (GPU)
Music Gen MusicGen-small (GPU)
Database MongoDB 7.0 + Redis 7
Container Docker + Docker Compose

프로젝트 구조

drama-studio/
├── audio-studio-api/       # FastAPI 백엔드 서버
│   ├── app/
│   │   ├── routers/        # API 엔드포인트
│   │   │   ├── drama.py    # 드라마 프로젝트 관리
│   │   │   ├── tts.py      # TTS 음성 합성
│   │   │   ├── music.py    # 배경음악 생성
│   │   │   ├── sound_effects.py  # 효과음 검색
│   │   │   ├── voices.py   # 음성 프로필 관리
│   │   │   └── recordings.py     # 녹음 파일 관리
│   │   └── services/       # 비즈니스 로직
│   │       ├── drama_orchestrator.py  # 드라마 생성 오케스트레이터
│   │       ├── script_parser.py       # 대본 파서
│   │       ├── audio_mixer.py         # 오디오 믹싱
│   │       ├── tts_client.py          # TTS 엔진 클라이언트
│   │       └── freesound_client.py    # Freesound API 클라이언트
│   ├── Dockerfile
│   └── requirements.txt
│
├── audio-studio-ui/        # Next.js 프론트엔드
│   ├── src/app/
│   │   ├── page.tsx        # 대시보드
│   │   ├── drama/          # 드라마 제작
│   │   ├── tts/            # TTS 테스트
│   │   ├── music/          # 배경음악 생성
│   │   ├── sound-effects/  # 효과음 검색
│   │   ├── voices/         # 음성 관리
│   │   └── recordings/     # 녹음 관리
│   ├── Dockerfile
│   └── package.json
│
├── audio-studio-tts/       # Qwen3-TTS 엔진 (GPU)
│   ├── app/
│   │   ├── main.py         # FastAPI 서버
│   │   └── services/
│   │       └── qwen_tts.py # TTS 모델 서비스
│   ├── Dockerfile.gpu
│   └── requirements.txt
│
├── audio-studio-musicgen/  # MusicGen 서비스 (GPU)
│   ├── app/
│   │   ├── main.py         # FastAPI 서버
│   │   └── services/
│   │       └── musicgen_service.py  # MusicGen 모델 서비스
│   ├── Dockerfile.gpu
│   └── requirements.txt
│
├── docker-compose.yml      # 운영 환경 (GPU 포함)
├── docker-compose.dev.yml  # 개발 환경 (GPU 없이)
└── .env.example            # 환경변수 템플릿

설치 및 실행

환경 설정

# 환경변수 설정
cp .env.example .env
# .env 파일을 편집하여 필요한 값 입력

개발 환경 (GPU 없음)

# API + UI + MongoDB + Redis만 실행
docker compose -f docker-compose.dev.yml up -d

운영 환경 (GPU 필요)

# 전체 서비스 실행 (TTS, MusicGen 포함)
docker compose up -d

프라이빗 레지스트리에서 Pull

# Docker 이미지 Pull
docker pull docker.yakenator.io/drama-studio/api:latest
docker pull docker.yakenator.io/drama-studio/ui:latest
docker pull docker.yakenator.io/drama-studio/tts:latest
docker pull docker.yakenator.io/drama-studio/musicgen:latest

API 엔드포인트

드라마 프로젝트

Method Endpoint 설명
GET /api/drama/projects 프로젝트 목록 조회
POST /api/drama/projects 새 프로젝트 생성
GET /api/drama/projects/{id} 프로젝트 상세 조회
POST /api/drama/projects/{id}/generate 드라마 생성 시작

TTS

Method Endpoint 설명
POST /api/tts/synthesize 텍스트를 음성으로 변환
GET /api/tts/voices 사용 가능한 음성 목록

배경음악

Method Endpoint 설명
POST /api/music/generate 프롬프트로 배경음악 생성

효과음

Method Endpoint 설명
GET /api/sound-effects/search Freesound에서 효과음 검색

대본 형식

드라마 대본은 다음 형식을 따릅니다:

[장면: 숲속, 아침]
[BGM: 잔잔한 피아노]

영희: (조용히) 여기가 그 장소야...
철수: 정말 아름답군.

[효과음: 새소리]

영희: (기쁘게) 들어봐, 새들이 노래하고 있어!

태그 설명

  • [장면: ...] - 장면 설명 (메타데이터)
  • [BGM: ...] - 배경음악 프롬프트
  • [효과음: ...] - 효과음 검색 키워드
  • 캐릭터명: (감정) 대사 - 대사 및 감정 표현

GPU 요구사항

서비스 최소 VRAM 권장 VRAM
Qwen3-TTS 1.7B 8GB 16GB
MusicGen-small 4GB 8GB
합계 12GB 24GB

개발 가이드

자세한 개발 가이드는 .claude/skills/ 디렉토리를 참조하세요:

라이선스

Private - Yakenator