아키텍처
6번 WSL2 (Orchestrator) 7번 S25 Ultra (Unit Servers)
│ │
│ recipe_runner.py ├── phone_voice_mcp_sse.py (:8015)
│ └─ JSON 레시피 실행 │ ├─ edge-tts (클라우드 TTS)
│ │ └─ PhoneRVC (ONNX HuBERT + PyTorch)
│ ├── phone_audio_mcp_sse.py (:8016)
│ │ └─ sox normalize/concat/info
│ └── phone_publish_mcp_sse.py (:8018)
│ └─ Telegram API (curl)
결과
| 항목 |
상태 |
| LMK 발생 |
0회 (4.1GB available) |
| edge-tts → RVC (10s) |
✅ 79.7s (RVC 69s) |
| sox normalize |
✅ 0.06s |
| Telegram publish |
✅ 3.77s |
| 레시피 러너 3단계 |
✅ 전부 성공 |
| Telegram message_id |
1317~1321 |
주요 파일
WSL2 (6번)
~/parksy-audio/mcp_voice/phone_recipe_runner.py — 레시피 러너
~/parksy-audio/mcp_voice/run_recipe.sh — 편의 실행 스크립트
~/parksy-audio/recipes/*.json — 레시피 5개
폰 (7번, S25 Ultra)
~/parksy_tts_phone/phone_rvc.py — RVC 모듈 (ONNX HuBERT + PyTorch)
~/parksy_tts_phone/phone_voice_mcp_sse.py — voice MCP 서버 (:8015)
~/parksy_tts_phone/phone_audio_mcp_sse.py — audio MCP 서버 (:8016)
~/parksy_tts_phone/phone_publish_mcp_sse.py — publish MCP 서버 (:8018)
~/parksy_tts_phone/start_phone_mcp.sh — 3개 서버 시작 스크립트
사용법
# WSL2에서:
cd ~/parksy-audio/mcp_voice
bash run_recipe.sh test_tts # edge-tts only (빠름, ~10초)
bash run_recipe.sh full_pipeline # edge-tts → RVC → normalize → TG (~90초)
RVC 성능
- 10초 오디오: ~70초 inference (7x realtime)
- 18초 오디오: ~42초 inference (2.3x realtime)
- 최적화 필요시: ONNX Runtime으로 RVC 모델 변환, NNAPI 가속
- edge-tts only는 1~2초면 완료
LMK 안전성 확인
- edge-tts: 0MB 로컬 메모리 (클라우드 API)
- ONNX HuBERT: 182MB (로드 1.4s)
- PyTorch RVC: 55MB 모델 + ~200MB 추론 메모리
- 총 ~400MB 추가 사용, 4.1GB available → ✅ 안전