5 Commits

Author SHA1 Message Date
김보곤
85e8d8635d fix:음성+자막 속도 20% 증가 (1.2x → 1.4x)
- TTS 속도: 1.2x → 1.4x
- 자막 타이밍: 장면의 90% → 75% 구간에 압축 (음성과 싱크)
- 쇼츠 트렌드에 맞춘 빠른 템포

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:35:50 +09:00
김보곤
85654799be fix:이모지 TTS 읽기 버그 + 자막 과다 표시 수정
이모지/특수문자 제거:
- TtsService: TTS 전송 전 이모지, *강조*, (효과음), [동작] 등 제거
- VideoAssemblyService: 자막 생성 시에도 동일하게 이모지 제거
- 유니코드 이모지 전체 블록 커버 (이모티콘~태그 문자)

자막 분리 로직 개선:
- 5자 미만 조각만 병합 (기존 10자 → 과도한 병합 제거)
- 정상 문장(5자+)은 독립 자막으로 표시
- 장면당 2~3개 자막으로 깔끔하게 전환

시나리오 프롬프트 수정:
- 이모지/이모티콘 절대 금지 규칙 명시
- *강조*, (효과음), [동작], ○기호 금지
- 숫자 한글 표기 권장 (3가지 → 세 가지)
- 장면당 글자 수 40~70자로 조정 (1.2x 속도에 맞춤)
- 한 문장 10~20자로 축소 (자막 가독성)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:34:04 +09:00
김보곤
a8d87e2b92 fix:여성 음성 변경 + 속도 20% 감속 + 자막 한글자 버그 수정
TTS 설정:
- 음성: Neural2-C (남성) → Neural2-A (여성)
- 속도: 1.5x → 1.2x (20% 감속)
- 피치: 2.0 → 0.0 (자연스러운 여성 톤)

자막 한글자/한단어 버그 수정:
- 최소 청크 길이 10자 보장 (짧은 조각 인접 청크에 병합)
- 전체 25자 이하면 분리하지 않고 한 블록으로 표시
- 남은 짧은 버퍼는 마지막 청크에 합치기
- 최소 표시 시간 0.8초 → 1.5초로 증가
- 줄바꿈 기준 14자 → 16자 (가독성 향상)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:18:47 +09:00
김보곤
e093c7b7e7 fix:TTS 속도 1.5x + Neural2 음성 변경 + 자막 문장 단위 싱크
TTS 개선:
- 음성: ko-KR-Wavenet-A → ko-KR-Neural2-C (남성, 자연스럽고 개성있는 음성)
- 속도: 1.0x → 1.5x (기존 대비 50% 빠르게)
- 피치: 0.0 → 2.0 (더 에너지 있는 톤)

자막 싱크 버그 수정:
- 장면 전체 나레이션을 한 블록으로 표시 → 문장 단위로 분리 표시
- 각 문장 타이밍을 글자 수 비례로 자동 계산
- 문장 분리 로직: 마침표/느낌표/물음표 기준, 폴백으로 쉼표 분리
- 장면 끝 0.3초 여백으로 자연스러운 전환

시나리오 프롬프트:
- 나레이션 문장 길이 규칙 추가 (한 문장 15~25자)
- 반드시 마침표/느낌표/물음표로 문장 구분하도록 명시
- 장면당 글자 수 60~100자로 밀도 향상

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:59:36 +09:00
김보곤
6ab93aedd2 feat:YouTube Shorts AI 자동 생성 시스템 구현 (Veo 3.1 + Gemini)
- GeminiScriptService: 트렌딩 제목/시나리오 생성
- VeoVideoService: Veo 3.1 영상 클립 생성
- TtsService: Google TTS 나레이션 생성
- BgmService: 분위기별 BGM 선택
- VideoAssemblyService: FFmpeg 영상 합성
- VideoGenerationJob: 백그라운드 처리
- Veo3Controller: API 엔드포인트
- React 프론트엔드 (5단계 위저드)
- GoogleCloudService.getAccessToken() public 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 08:46:28 +09:00