**부제:** S25 Ultra와 Tab S9 5G로 할 수 있는 오디오 작업의 최대치
**작성:** 2026-04-25 / 박씨 × Claude Code
**적용:** parksy-audio 전용 (보컬/악기/음악/브로드캐스트)
parksy-audio의 오디오 파이프라인은 크게 5축으로 나뉜다:
[STT] 음성→텍스트 ← Whisper
[TTS] 텍스트→음성 ← GPT-SoVITS / Edge-TTS
[RVC] 음성 변환 ← RVC (음색 씌우기)
[MIDI] 악보→연주 ← FluidSynth / BBC SO / VSCO 2
[MIX] 믹싱/마스터링 ← Demucs / matchering / sox / ffmpeg
**온디바이스 판단 기준 (변함 없음):**
실시간성·프라이버시·배터리 임계·모델 크기·GPU 필요 여부
| 작업 | 도구/모델 | 처리 시간 | 전력 소모 | 비고 | ||||
| **STT (음성→텍스트)** | Whisper.cpp 소형 (94MB) | 30초 음성 → 1~2초 | 낮음 | NPU 가속 ONNX 가능 | ||||
|---|---|---|---|---|---|---|---|---|
| **오디오 포맷 변환** | sox / ffmpeg | 파일 크기 비례 | 낮음 | wav↔mp3↔ogg | ||||
| **리샘플링** | sox | 수 초 | 극소 | 48k↔44.1k↔32k↔16k | ||||
| **노멀라이즈/게인 조정** | sox | 수 초 | 극소 | RMS 기준 자동 게인 | ||||
| **구간 트림/컷** | ffmpeg | 즉시 | 극소 | 음성/배경음 편집 | ||||
| **사일런스 제거** | sox silence | 1~3초 | 극소 | 앞뒤 묵음 제거 | ||||
| **오디오 정보 확인** | sox --stat | 즉시 | 극소 | RMS/피크/지속시간 | ||||
| **녹음** | Termux-mic / 앱 | 실시간 | 중간 | 마이크 직접 녹음 | ||||
| **파일 캐싱/관리** | termux-setup | 즉시 | 없음 | 폰↔PC 파일 전송 |
| 작업 | 도구/모델 | 조건 | 처리 시간 | 전력 | ||||
| **MP3→MIDI (basic-pitch)** | basic-pitch (TFLite) | ONNX 변환 + NPU | 1분 음원 → 10~15초 | 중간 | ||||
|---|---|---|---|---|---|---|---|---|
| **화자 분리 (Demucs 경량)** | Demucs htdemucs-light | 6채널→2채널 축소, 2GB 이하 | 3분 음원 → 30~60초 | 높음 | ||||
| **보컬 분리 (Spleeter)** | Spleeter:2stems TFLite | 모바일 TFLite 모델 필요 | 실시간 0.5배속 | 중간 | ||||
| **RVC 음성 변환** | RVC 경량 (512dim) | ONNX 변환, NPU | 30초 음원 → 5~10초 | 중간 | ||||
| **MR Style TTS 한국어** | csd_ko (DiffSinger) | .ckpt 200MB, CPU 추론 | 10초 텍스트 → 5~8초 | 중간 | ||||
| **텍스트 요약/정리** | Gemma 2B / Phi-3 Mini | NPU QNN | 단문 1~2초 | 중간 |
| 작업 | 이유 | 대체 경로 | ||
| **GPT-SoVITS TTS** | GPU 4GB+ 필요, 모델 1.5GB+ | RunPod RTX 3090 | ||
|---|---|---|---|---|
| **GPT-SoVITS 학습** | GPU 8GB+ 필요, 수 시간 소요 | GCP A100 / RunPod | ||
| **DiffSinger 학습** | GPU A100 필요 | GCP A100 | ||
| **matchering AI 마스터링** | 3GB+ RAM + CPU 집약 | PC / Cloud Run | ||
| **BBC SO MIDI 렌더링** | Windows REAPER GUI 필수 | PC loopMIDI | ||
| **장시간 인코딩 (10분+)** | 배터리/발열 초과 | PC ffmpeg | ||
| **음악 작곡 (AI 편곡)** | LLM + 휴리스틱 복합 | Claude Code + pipeline |
Tab S9 (7GB RAM, Adreno 740)는 S25보다 메모리 5GB 적음 → 큰 모델 적재 불가.
| 작업 | 도구 | 조건 | ||
| **녹음 (마이크)** | 기본 앱 / Termux | ✅ | ||
|---|---|---|---|---|
| **포맷 변환** | ffmpeg | ✅ | ||
| **트림/컷** | ffmpeg | ✅ | ||
| **오디오 정보 확인** | sox --stat | ✅ | ||
| **샘플레이트 변환** | sox | ✅ | ||
| **노멀라이즈** | sox | ✅ | ||
| **STT (Whisper 소형)** | Whisper.cpp tiny (39MB) | ⚠️ RAM 조심, NPU less |
| 작업 | 조건 | 한계 | ||
| Whisper (소형) | Tiny/Base only (39~74MB) | 7GB RAM에서 돌아는 감 | ||
|---|---|---|---|---|
| basic-pitch MIDI | TFLite, 아주 짧은 구간 | 1분 이상은 힘듦 | ||
| 텍스트 요약 (Gemini Nano) | Galaxy AI 내장 | Google 제공 기능만 |
**Tab S9의 오디오 역할:**
모니터링 / 대시보드 / 녹음 입력 / 가벼운 파일 작업
무거운 추론은 클라우드 또는 S25로 전달
L0: yt_fetch (YouTube 다운로드)
└── 온디바이스 ❌ (불법/RAM 부족) → PC에서 처리
L1: separator (Demucs 소스 분리)
└── 온디바이스 ❌ (GPU 4GB 필요)
└── S25 조건부: htdemucs-light ONNX 변환 시 (추후)
L2: transcriber (오디오→MIDI)
└── 온디바이스 ✅ (basic-pitch, CPU)
└── S25에서 basic-pitch TFLite → NPU: 10-15초 내 전사 가능
L3: arranger (조성/감정 편곡)
└── 온디바이스 ❌ (LLM + 복잡 휴리스틱) → Claude Code
L4: composer (AI 작곡)
└── 온디바이스 ❌ (대규모 연산) → Claude Code
L5: humanizer (미세 타이밍/루바토)
└── 온디바이스 ✅ (단순 MIDI 조작) → S25 or PC
L6: optimizer (FluidSynth 렌더)
└── 온디바이스 ❌ (SF2 + FluidSynth = CPU 무거움) → PC
L6b: mastering (matchering)
└── 온디바이스 ❌ (CPU + RAM 집약) → PC or Cloud
L7: score_engine (품질 채점)
└── 온디바이스 ❌ (분석 복잡) → PC
"URL 던지면 끝까지" (Parksy Air / 나레이션 자동화)
[STAGE 1] 대본 생성
└── Claude Code (PC/MCP) → LLM
[STAGE 2] 음성 생성
2a. TTS (GPT-SoVITS) → ❌ 온디바이스 → RunPod GPU
2b. Edge-TTS fallback → ✅ 브라우저/PC → MS API
2c. STT (Whisper) → ✅ S25 NPU → 온디바이스
2d. 레퍼런스 오디오 전처리 → ✅ S25 sox → 온디바이스
2e. 속도 조정 (atempo) → ✅ S25/PC → ffmpeg
[STAGE 3] 영상 렌더링
└── ❌ 온디바이스 → Vast.ai or PC
[STAGE 4] 배포
4a. 텔레그램 전송 → ✅ PC (텔레그램 봇)
4b. 유튜브 업로드 → ❌ 온디바이스 → PC Chrome
"음악 생성" (Musician Pipeline)
[MIDI 생성]
└── ❌ 온디바이스 → Claude Code + pipeline/
[MIDI 인간화]
└── ✅ S25/PC → humanizer.py (단순 MIDI 조작)
[FluidSynth 렌더]
└── ❌ 온디바이스 → PC (SF2 라이브러리 + CPU)
[BBC SO 렌더 (고급)]
└── ❌ 온디바이스 → PC (REAPER + loopMIDI)
[마스터링]
└── ❌ 온디바이스 → PC (matchering)
[배포]
└── ✅ PC → 텔레그램 / 유튜브
| 항목 | 현재 (클라우드) | 제안 (S25 NPU) | ||
| 처리 위치 | PC CPU or OpenAI API | S25 NPU (QNN) | ||
|---|---|---|---|---|
| 지연 시간 | 5~10초 (네트워크 포함) | **1~2초** | ||
| 비용 | $0.006/분 (OpenAI) | **$0** | ||
| 프라이버시 | 음성 데이터 외부 전송 | **완전 온디바이스** | ||
| 배터리 | 0% (폰 사용 안 함) | 30초 STT ≈ 1~2% | ||
| 오프라인 | ❌ | ✅ |
| 항목 | 현재 (PC) | 제안 (S25 NPU) | ||
| 처리 위치 | PC CPU | S25 NPU (TFLite) | ||
|---|---|---|---|---|
| 지연 시간 | 30초~1분 | **10~15초** | ||
| 오프라인 | ❌ | ✅ | ||
| 적합 대상 | 모든 음원 | 짧은 음원 (1~3분 이하) |
| 작업군 | 온디바이스 전환 | 병목 해소 | ||
| STT (강의록/회의록) | ✅ S25 | 네트워크 + API 요금 | ||
|---|---|---|---|---|
| 음성 전처리 (트림/노멀) | ✅ S25 | PC 부하 | ||
| MP3→MIDI (짧은 음원) | ✅ S25 | PC 부하 | ||
| TTS 생성 | ❌ RunPod | GPU 필요 — 피할 수 없음 | ||
| 음악 렌더 | ❌ PC/클라우드 | SF2/FluidSynth 필요 | ||
| BBC SO | ❌ PC | Windows REAPER 필수 |
S25 Ultra (폰)
┌────────────────────────────────────────┐
│ 🎤 STT 입력 + 오디오 전처리 + 경량 추론 │
│ │
│ [필수 온디바이스] │
│ • Whisper STT (강의 녹음 → 텍스트) │
│ • sox/ffmpeg 전처리 (트림/노멀/포맷) │
│ • 녹음 (마이크) │
│ • basic-pitch MIDI (소량/짧은 곡) │
│ │
│ [조건부 (경량화 후)] │
│ • Demucs 보컬 분리 (2stems 경량) │
│ • RVC 음성 변환 (512dim ONNX) │
│ • csd_ko 한국어 TTS (DiffSinger CPU) │
└────────────────────────────────────────┘
Tab S9 5G (태블릿)
┌────────────────────────────────────────┐
│ 🎧 모니터링 + 녹음 + 가벼운 편집 │
│ │
│ [가능] │
│ • 녹음 (마이크 + S펜 필기 동시) │
│ • sox 오디오 기본 정보 확인 │
│ • ffmpeg 포맷 변환 │
│ • 구간 트림 │
│ • PWA 대시보드 (큐/상태 모니터링) │
│ │
│ [불가] │
│ • 모든 GPU 추론 ❌ │
│ • 1GB+ 모델 ❌ │
│ • 장시간 처리 (5분+) ❌ │
└────────────────────────────────────────┘
PC (WSL2 + Windows)
┌────────────────────────────────────────┐
│ 🎛️ 봇 호스팅 + DAW + 대용량 처리 │
│ │
│ [유일하게 가능] │
│ • REAPER + BBC SO (Windows GUI 필수) │
│ • FluidSynth + SF2 (CPU + 라이브러리) │
│ • matchering 마스터링 (RAM 집약) │
│ • Demucs 4채널 분리 (htdemucs_ft) │
│ • 장시간/RAM 집약 작업 │
│ • 24/7 텔레그램 봇 + MCP 서버 │
│ • D: 1.7TB 저장소 (모델/데이터/출력) │
└────────────────────────────────────────┘
클라우드 GPU (Vast.ai / RunPod / GCP)
┌────────────────────────────────────────┐
│ 🗣️ TTS + 학습 + 대규모 GPU 연산 │
│ │
│ [유일하게 가능] │
│ • GPT-SoVITS TTS (한국어 박씨 음성) │
│ • GPT-SoVITS / RVC 모델 학습 │
│ • DiffSinger A100 학습 │
│ • 대규모 배치 처리 │
│ • 고품질 음악 생성 (작곡/편곡) │
└────────────────────────────────────────┘
| 작업 | 온디바이스 가능? | 지금 바로? | 필요한 작업 | |||
| Whisper STT | ✅ | ⚠️ | QNN 백엔드 ONNX 변환 / Termux 설치 | |||
|---|---|---|---|---|---|---|
| sox/ffmpeg | ✅ | ✅ (Termux) | pkg install sox ffmpeg | |||
| basic-pitch MIDI | ✅ | ❌ | TFLite 모델 변환 + NPU 바인딩 | |||
| Demucs 분리 | ⚠️ | ❌ | htdemucs-light ONNX / 2stems 축소 | |||
| RVC 변환 | ⚠️ | ❌ | 512dim ONNX 변환 / NPU 최적화 | |||
| csd_ko TTS | ⚠️ | ❌ | CPU 모델 경량화 / ONNX | |||
| GPT-SoVITS | ❌ | ❌ | GPU 필요 — RunPod 유지 | |||
| BBC SO | ❌ | ❌ | Windows REAPER 필수 |
**즉시 실행 가능: Whisper STT + sox/ffmpeg 전처리**
**단기 목표: basic-pitch MIDI + Demucs 경량화**
┌─────────────────────────────────────────────────────┐
│ "폰으로 강의 녹음 → Whisper 자동 STT → │
│ sox 노멀라이즈 → 구간 트림 → MIDI 전사 → │
│ 텍스트/파일 클라우드로 전송 → TTS/RunPod" │
│ │
│ → 전체 과정 중 70%가 온디바이스 가능 │
│ → TTS 생성만 RunPod (필수 GPU) │
│ → 편곡/작곡/마스터링은 PC or Claude Code │
└─────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────┐
│ "S펜 + 블루투스 키보드로 대본 작성 → │
│ PWA 대시보드에서 큐 모니터링 → │
│ 녹음 파일 S25로 전달 → 결과 확인" │
│ │
│ → Tab S9 = 입력 + 모니터링 전용 │
│ → 오디오 추론은 7GB RAM 한계로 불가 │
│ → 대신 1600×2560 화면 = 최고의 대시보드 │
└─────────────────────────────────────────────────────┘
S25 (폰) Tab S9 (탭) PC Cloud
───────── ───────── ─────────── ──────────
STT ✅ 실시간 ❌ 대안 ❌
sox 전처리 ✅ 즉시 ✅ 제한적 ✅ ❌
basic-pitch MIDI ⚠️ NPU ❌ ✅ ❌
Demucs 분리 ⚠️ 경량화 후 ❌ ✅ (htdemucs) ❌
RVC 변환 ⚠️ 경량화 후 ❌ ⚠️ CPU ❌
GPT-SoVITS TTS ❌ ❌ ❌ ✅ RunPod
작곡/편곡 ❌ ❌ ⚠️ ✅ Claude
FluidSynth 렌더 ❌ ❌ ✅ SF2 ❌
BBC SO ❌ ❌ ✅ REAPER ❌
마스터링 ❌ ❌ ✅ matchering ❌
✅=지금 가능 ⚠️=조건부 ❌=불가능
*이 백서는 parksy-audio/docs/ON_DEVICE_MAXIMUM.md 이며,
이미지 레포 백서 (~/parksy-image/docs/ON_DEVICE_WHITEPAPER.md)와 쌍을 이룬다.*