Skip to content

feat(ai): 질문 TTS를 Gemini TTS로 — 한국어 음성 합성 (기존 GEMINI_API_KEY 재사용)#74

Merged
i3months merged 1 commit into
devfrom
feature/gemini-tts
Jun 3, 2026
Merged

feat(ai): 질문 TTS를 Gemini TTS로 — 한국어 음성 합성 (기존 GEMINI_API_KEY 재사용)#74
i3months merged 1 commit into
devfrom
feature/gemini-tts

Conversation

@i3months

@i3months i3months commented Jun 3, 2026

Copy link
Copy Markdown
Member

기존 OpenAI TTS 경로는 OPENAI_API_KEY 가 없어 mock("MOCK..." 스텁)만 생성됐고, Deepgram TTS(Aura-2)는 한국어 미지원(de/en/es/fr/it/ja/nl). 이미 설정된 GEMINI_API_KEY 로 Gemini TTS 를 붙여 한국어 질문을 음성화.

  • GeminiTtsProvider: generateContent(responseModalities=AUDIO) 호출, raw PCM(L16/24kHz)을 WAV 로 감싸 audio/wav 반환. 한국어 합성 실측 검증 (RIFF, 24kHz mono, ~4.3s).
  • factory: TTS_PROVIDER=auto 시 GEMINI_API_KEY > OPENAI_API_KEY 순 선택 → 현재 env(GEMINI 키 보유)에서 자동으로 gemini 선택(env 변경 불요).
  • tts_consumer: 저장 키 확장자를 content_type 기준으로 결정(WAV→.wav). Core 오디오 프록시가 확장자로 content-type 판정.
  • settings/.env.example/CLAUDE.md 갱신, 테스트 추가.

변경 사항

기존 OpenAI TTS 경로는 OPENAI_API_KEY 가 없어 mock("MOCK..." 스텁)만
생성됐고, Deepgram TTS(Aura-2)는 한국어 미지원(de/en/es/fr/it/ja/nl).
이미 설정된 GEMINI_API_KEY 로 Gemini TTS 를 붙여 한국어 질문을 음성화.

- GeminiTtsProvider: generateContent(responseModalities=AUDIO) 호출,
  raw PCM(L16/24kHz)을 WAV 로 감싸 audio/wav 반환. 한국어 합성 실측 검증
  (RIFF, 24kHz mono, ~4.3s).
- factory: TTS_PROVIDER=auto 시 GEMINI_API_KEY > OPENAI_API_KEY 순 선택
  → 현재 env(GEMINI 키 보유)에서 자동으로 gemini 선택(env 변경 불요).
- tts_consumer: 저장 키 확장자를 content_type 기준으로 결정(WAV→.wav).
  Core 오디오 프록시가 확장자로 content-type 판정.
- settings/.env.example/CLAUDE.md 갱신, 테스트 추가.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
stackup Ready Ready Preview, Comment Jun 3, 2026 4:16am

@i3months i3months merged commit def5fee into dev Jun 3, 2026
3 checks passed
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