feat(discord): M1 persistent selfbot voice joiner + record confirmed build decisions
join.mjs joins the target voice channel over the proven DAVE handshake and stays connected, mapping SPEAKING->ssrc and tallying incoming RTP (foundation for M2 audio decrypt). README records GPU=on, shared OAuth brain, natural-but-<=1s TTS, Discord-voice STT input, and the M1..M6 milestones. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
31
README.md
31
README.md
@@ -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 도커 이미지화, 채널 라이브 테스트
|
||||
|
||||
Reference in New Issue
Block a user