diff --git a/app/Http/Controllers/RdController.php b/app/Http/Controllers/RdController.php index cfa5ab42..52802102 100644 --- a/app/Http/Controllers/RdController.php +++ b/app/Http/Controllers/RdController.php @@ -486,6 +486,7 @@ public function soundLogoTts(Request $request): JsonResponse $request->validate([ 'text' => 'required|string|max:200', 'voice_name' => 'nullable|string|max:30', + 'voice_category' => 'nullable|string|in:female,male,child', 'voice_style' => 'nullable|string|max:100', 'voice_speed' => 'nullable|integer|min:1|max:5', ]); @@ -498,6 +499,7 @@ public function soundLogoTts(Request $request): JsonResponse } $voiceName = $request->voice_name ?: 'Kore'; + $voiceCategory = $request->voice_category ?: 'female'; $voiceStyle = $request->voice_style ?: ''; $voiceSpeed = $request->voice_speed ?: 3; @@ -505,23 +507,31 @@ public function soundLogoTts(Request $request): JsonResponse $speedDirectives = [ 1 => '아주 천천히 또박또박 말해주세요.', 2 => '조금 느린 속도로 말해주세요.', - 3 => '', // 보통 — 지시 없음 + 3 => '', 4 => '조금 빠른 속도로 말해주세요.', 5 => '아주 빠른 속도로 말해주세요.', ]; - // TTS에 전달할 텍스트 구성 - $directives = []; - if ($voiceStyle) { - $directives[] = $voiceStyle; - } - if (! empty($speedDirectives[$voiceSpeed])) { - $directives[] = $speedDirectives[$voiceSpeed]; + // TTS 프롬프트 구성 — Director's Note 형식 + $ttsText = $request->text; + $notes = []; + + // 아이 카테고리: 높은 톤으로 어린이처럼 연기하도록 강한 지시문 + if ($voiceCategory === 'child') { + $notes[] = 'Speak as a young child with a high-pitched, innocent voice'; } - $ttsText = $request->text; - if (! empty($directives)) { - $ttsText = implode(' ', $directives)." \n\n{$ttsText}"; + if ($voiceStyle) { + $notes[] = $voiceStyle; + } + + if (! empty($speedDirectives[$voiceSpeed])) { + $notes[] = $speedDirectives[$voiceSpeed]; + } + + if (! empty($notes)) { + $direction = implode('. ', $notes); + $ttsText = "[{$direction}]\n\n{$ttsText}"; } // 짧은 텍스트는 TTS 모델이 텍스트 생성으로 인식할 수 있으므로 발화 컨텍스트 추가 diff --git a/resources/views/rd/sound-logo/index.blade.php b/resources/views/rd/sound-logo/index.blade.php index bc06582f..163aa8ae 100644 --- a/resources/views/rd/sound-logo/index.blade.php +++ b/resources/views/rd/sound-logo/index.blade.php @@ -355,24 +355,45 @@
+ +
+ + + +
+