From f8a00c3f8c6e1972db0699c0e623f15ec6c55775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Sun, 8 Mar 2026 13:37:25 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[rd]=20AI=20=EB=B0=B0=EA=B2=BD=EC=9D=8C?= =?UTF-8?q?=EC=95=85=20=EC=83=9D=EC=84=B1=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20(Google=20Lyria=20RealTime)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Lyria RealTime WebSocket 연동으로 다중 악기 배경음악 실시간 생성 - BPM, 밀도, 밝기, 스케일 컨트롤 지원 - 시퀀서 + 음성 + 배경음악 3중 합성 (playAll, exportWav) - 서버 API 키 보호 엔드포인트 (lyria-config) - 빠른 프롬프트 10종 제공 --- app/Http/Controllers/RdController.php | 19 + resources/views/rd/sound-logo/index.blade.php | 417 +++++++++++++++++- routes/web.php | 1 + 3 files changed, 435 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/RdController.php b/app/Http/Controllers/RdController.php index 65a542da..18439262 100644 --- a/app/Http/Controllers/RdController.php +++ b/app/Http/Controllers/RdController.php @@ -341,6 +341,25 @@ public function soundLogo(Request $request): View|\Illuminate\Http\Response return view('rd.sound-logo.index'); } + /** + * Lyria RealTime 접속용 API 설정 반환 + */ + public function soundLogoLyriaConfig(): JsonResponse + { + $apiKey = config('services.gemini.api_key'); + + if (! $apiKey) { + return response()->json(['success' => false, 'error' => 'API 키가 설정되지 않았습니다.'], 500); + } + + return response()->json([ + 'success' => true, + 'api_key' => $apiKey, + 'ws_url' => 'wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1alpha.GenerativeService.BidiGenerateMusic', + 'model' => 'models/lyria-realtime-exp', + ]); + } + /** * 사운드 로고 AI 생성 (Gemini API) */ diff --git a/resources/views/rd/sound-logo/index.blade.php b/resources/views/rd/sound-logo/index.blade.php index 7fc5a5ce..5970168b 100644 --- a/resources/views/rd/sound-logo/index.blade.php +++ b/resources/views/rd/sound-logo/index.blade.php @@ -220,6 +220,10 @@ +
@@ -229,6 +233,9 @@ + @@ -484,6 +491,161 @@ + + +