diff --git a/backend/app/services/songs.py b/backend/app/services/songs.py index 05f5ef2..24557d9 100644 --- a/backend/app/services/songs.py +++ b/backend/app/services/songs.py @@ -466,9 +466,7 @@ def _lyrics_prompt(team_name: str, context: str, league: str = "kbo") -> str: "- 경기장에서 수만 관중이 떼창하는 웅장한 스타디움 앤섬\n" "- 오늘 경기 맥락(어제/최근 결과 설욕·기세, 순위 싸움, 연전 차수, 선발·라인업)을 " "가사에 구체적으로 녹일 것 — 선수 실명 사용 가능\n" - "- 가사에 아라비아 숫자를 절대 쓰지 말 것 — 모두 한글 발음으로 표기 " - "(1승→일승, 1위→일위, 78승→칠십팔승, 2차전→이차전, 1번→일번, " - "7게임→일곱 게임, 15호→십오호, 5:3→오 대 삼)\n" + "- 숫자는 자연스럽게 표기 (13:1, 78승, 2차전 등 — 발음 변환은 시스템이 처리)\n" "- 괄호로 관중 콜앤리스폰스 파트 표기, 섹션 태그에 연주 지시 포함\n" "- 분량은 1분 30초~2분 (Verse 2개 + Chorus 반복 + Bridge + Final Chorus)\n\n" f"[가사 형식 레퍼런스 — 구조와 톤만 참고, 내용은 오늘 경기에 맞게 새로 쓸 것]\n{_REFERENCE}\n\n" @@ -608,10 +606,11 @@ async def _start_one(db, m: Match, side: str, lineups: dict | None) -> bool: lyrics = str(piece.get("lyrics") or "").strip() if not lyrics: raise RuntimeError("LLM 가사 비어있음") - lyrics = hangulize_numbers(lyrics) # 프롬프트를 뚫고 남은 숫자 안전망 - title = hangulize_numbers(title) # 제목도 Suno 가 부르는 경우 대비 + # 표기용(화면 '가사 보기')은 원문 그대로 저장하고, + # Suno 전송본만 숫자를 한글 발음으로 치환 (13:1 → 십삼 대 일) + sung_lyrics = hangulize_numbers(lyrics) - task_id = await suno.start_generation(title, style, lyrics) + task_id = await suno.start_generation(title, style, sung_lyrics) upgrade = bool(row and row.status == "complete") if row is None: row = Song(match_id=m.match_id, team_code=code)