From 85e8d8635df5318e78ff04f6a7ff4e0285c60b38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Sun, 15 Feb 2026 13:35:50 +0900 Subject: [PATCH] =?UTF-8?q?fix:=EC=9D=8C=EC=84=B1+=EC=9E=90=EB=A7=89=20?= =?UTF-8?q?=EC=86=8D=EB=8F=84=2020%=20=EC=A6=9D=EA=B0=80=20(1.2x=20?= =?UTF-8?q?=E2=86=92=201.4x)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - TTS 속도: 1.2x → 1.4x - 자막 타이밍: 장면의 90% → 75% 구간에 압축 (음성과 싱크) - 쇼츠 트렌드에 맞춘 빠른 템포 Co-Authored-By: Claude Opus 4.6 --- app/Services/Video/TtsService.php | 2 +- app/Services/Video/VideoAssemblyService.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Services/Video/TtsService.php b/app/Services/Video/TtsService.php index b9498ab7..acbf0946 100644 --- a/app/Services/Video/TtsService.php +++ b/app/Services/Video/TtsService.php @@ -32,7 +32,7 @@ public function synthesize(string $text, string $savePath, array $options = []): try { $languageCode = $options['language_code'] ?? 'ko-KR'; $voiceName = $options['voice_name'] ?? 'ko-KR-Neural2-A'; - $speakingRate = $options['speaking_rate'] ?? 1.2; + $speakingRate = $options['speaking_rate'] ?? 1.4; $pitch = $options['pitch'] ?? 0.0; // TTS 전송 전 이모지/특수문자 제거 (읽어버리는 문제 방지) diff --git a/app/Services/Video/VideoAssemblyService.php b/app/Services/Video/VideoAssemblyService.php index df23f4c5..64e850e5 100644 --- a/app/Services/Video/VideoAssemblyService.php +++ b/app/Services/Video/VideoAssemblyService.php @@ -227,8 +227,8 @@ public function generateAssSubtitle(array $scenes, string $outputPath): string // 총 글자 수 기준으로 각 문장의 시간 비율 계산 $totalChars = array_sum(array_map('mb_strlen', $sentences)); - // 나레이션이 차지하는 시간 (장면 끝에 0.3초 여백) - $activeTime = max($duration - 0.3, $duration * 0.9); + // 나레이션이 차지하는 시간 (1.4x 속도에 맞춰 75% 구간에 압축) + $activeTime = $duration * 0.75; $offset = 0.0; foreach ($sentences as $sentence) {