docs(readme): record confirmed decisions + M1..M6 deployment milestones

This commit is contained in:
2026-08-11 20:51:35 +09:00
parent 35b65d0d45
commit 8b9a78ae14

View File

@@ -175,16 +175,25 @@ ffmpeg 디코드 → 프레임. DAVE는 `@snazzah/davey`(Rust NAPI), 수신은 `
---
## 8. 결정이 필요한 것 (사용자 확인 대기)
## 8. 확정된 결정 (2026-08-11) + 배포 목표
실제 STT/TTS 엔진을 붙이기 전에 정해야 할 것들:
- **GPU 사용** — OK. RTX 5050(.9)으로 STT/TTS를 돌린다. .9 로컬 도커는 NVIDIA CDI로 GPU 사용 가능.
- **파이썬 버전** — STT/TTS는 3.11(faster-whisper·TTS 자산 호환), 오케스트레이터는 기존 코드 유지.
- **TTS 엔진** — 최대한 사람 같은 음성으로 하되, **전체 지연 1초 초과 금지**가 상한. 후보(XTTS 등)의
첫 소리 지연을 GPU에서 실측해, 1초 예산에 맞는 가장 자연스러운 엔진을 채택한다(측정 기반 선택).
- **두뇌** — Claude **OAuth**, 이 호스트에 연결된 것과 **동일 크리덴셜 공유**
(`/home/claude/EJClaw/data/claude/.credentials.json`). API키 아님.
- **STT 입력 경로** — 디스코드 보이스 수신(셀프봇). 유저 음성 Opus RTP를 받아 DAVE 복호·디코드해 STT로.
- **GPU 사용 동의** — RTX 5050으로 STT/TTS를 돌리면 빠르다(규칙상 GPU는 먼저 확인 필요).
- **파이썬 버전** — 이 venv는 3.14인데 faster-whisper·MeloTTS는 3.11대가 안전하다.
호스트에 이미 MeloTTS용 3.11 자산이 있어, 별도 3.11 venv + subprocess 연결을 제안.
- **엔진 선택** — STT는 faster-whisper, TTS는 한국어 고정. 자연스러움 최우선이면 무거운
엔진(XTTS 계열)이 필요하지만 1초 예산과 상충 → 우선 빠른 MeloTTS로 시작할지, 처음부터
더 사람 같은 엔진을 GPU로 감수할지 결정 필요.
- **두뇌** — Claude OAuth(Haiku 계열)로 연결(지금 코드는 API키 기반이라 OAuth 전환 필요).
- **STT 입력 경로** — 디스코드 보이스 수신(셀프봇)으로 확정. 유저 음성 Opus RTP를 받아
복호·디코드해 STT에 넣는다(로컬 마이크 아님).
### 배포/테스트 목표
- 대상: 디스코드 서버 `1352269198297923648`의 보이스 채널 `1352269198914621465`.
- 유저봇(셀프봇) 토큰: `.env``DISCORD_SELFBOT_TOKEN`(버너 계정, 밴 리스크 수용).
- .9 로컬 GPU 도커 이미지로 올려, 그 채널에 접속한 뒤 사람이 말하면 대화하도록 한다.
- 첫 로딩 워밍업: 시작 시 모델 프리로드 + 더미 추론(CUDA 워밍) + 보이스 미리 접속 → 첫 대화도 지연 최소.
### 구현 마일스톤
- **M1** 셀프봇이 대상 보이스 채널에 상주 접속(DAVE 통과) + 발화자(SSRC) 감지 ← 지금
- **M2** 유저 음성 Opus RTP 수신 → DAVE 복호 → PCM (라이브 발화자 필요, 최고 난이도)
- **M3** faster-whisper STT(부분전사+VAD) → **M4** Claude OAuth(Haiku) 두뇌
- **M5** 한국어 TTS 첫 구절 청크를 보이스로 송신(DAVE 암호화) + barge-in
- **M6** 통합 + 워밍업 + .9 GPU 도커 이미지화, 채널 라이브 테스트