Skip to content

#455 [Feat] 배틀 시나리오 감정 톤 + 철학자 보이스 매핑 인프라 - #456

Open
si-zero wants to merge 6 commits into
devfrom
feat/#455
Open

#455 [Feat] 배틀 시나리오 감정 톤 + 철학자 보이스 매핑 인프라#456
si-zero wants to merge 6 commits into
devfrom
feat/#455

Conversation

@si-zero

@si-zero si-zero commented Sep 9, 2026

Copy link
Copy Markdown
Member

#️⃣ 연관된 이슈

📝 작업 내용

배틀 발행 자동화(붙여넣기 파서)의 선행 인프라. 감정 톤을 구조화해 저장하고 TTS(Fish Audio S2.1 Pro)에 반영하며, 철학자별 보이스를 테이블로 관리한다.

✨ Feat

내용 파일
철학자 → Fish 보이스(reference_id) 매핑 엔티티/리포지토리 + 초기 시드 SQL PhilosopherVoice.java, PhilosopherVoiceRepository.java, docs/db/20260910_seed_philosopher_voice.sql
철학자 보이스 매핑 어드민 CRUD (/api/v1/admin/philosopher-voices) AdminPhilosopherVoiceController.java, PhilosopherVoiceService.java, PhilosopherVoiceRequest.java, PhilosopherVoiceResponse.java
Tone enum 신설 (NEUTRAL 포함 9값, 인라인 태그 해석/정규화 포함) Tone.java
scenario_scripts.tone 컬럼 추가 + DTO/컨버터 반영, tone 변경 시 오디오 재생성 트리거 Script.java, ScriptRequest.java, ScriptResponse.java, AdminScenarioScriptRequest.java, AdminScenarioScriptResponse.java, ScenarioConverter.java, ScenarioServiceImpl.java, AdminScenarioService.java
TTS 합성 직전 텍스트 정규화(톤 태그 주입 + [soft]/[pause]/[long pause] → Fish 정식 표기) TtsTextNormalizer.java
TtsServiceTone 파라미터 추가, Fish 구현체에 model: s2.1-pro 헤더 명시(기존 기본값과 동일, 버전 고정), 파이프라인 연결 TtsService.java, FishAudioTtsServiceImpl.java, ElevenLabsTtsServiceImpl.java, ScenarioAudioPipelineService.java, application.yml

📌 공유 사항

  1. philosopher_voice 테이블은 ddl-auto:update가 생성한다. 초기 데이터는 docs/db/20260910_seed_philosopher_voice.sql을 dev/prod에 1회 실행해야 한다 (ON CONFLICT DO NOTHING이라 재실행 안전).
  2. FISHAUDIO_TTS_MODEL env 미설정 시 기본 s2.1-pro. 기존에도 서버 기본이 s2.1이라 합성 동작 변화 없음.
  3. 설계 문서: 배틀_발행_시나리오_현행_vs_개선.md 2.4 / 2.5 / 2.6.
  4. 후속 PR: POST /api/v1/admin/battles/parse 붙여넣기 파서 + LLM 배치 감정 분류.

✅ 체크리스트

  • 컨벤션에 맞는 Type을 선택했나요?
  • 로컬에서 실행했을 때 에러가 발생하지 않나요?
  • Merge 하려는 브랜치가 올바르게 설정되어 있나요? (dev)

💬 리뷰 요구사항

  1. 톤은 enum 컬럼, 오디오 효과 태그([sighing] 등)는 text 인라인 유지로 분리했습니다. 이 경계가 적절한지 봐주세요.
  2. 효과 표기 정규화 목록(TtsTextNormalizer.EFFECT_ALIASES)은 착수 후 Fish S2.1 프로브 테스트로 확정 예정입니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant