안녕하세요. Naia를 만들고 있는 루크입니다.
Naia의 음성모델은 어느정도 결과를 내는데 성공을 했고, 뒤이어 노래를 또 좀 보고 있습니다. 알파가 노래를 불러줬으면 좋겠다는 생각 때문입니다. 그 중에 특히 번안곡에 관심이 많습니다.
한 달 전에 시작했다가 천장에 부딪쳤다 최근에 조금 더 결과가 나와서 이것도 더 파면 뭔가 될 것 같네요. 이전에는 한글도, 음정도 거의 엉망인 외계인 소리였는데 이제는 조금 노래에 한국어 같이 부릅니다.
다만 좀 술취한 것 같네요. ^^ 그래도 뭔가 나온게 재밌어서 보고서와 함께 진행사항 공유합니다. 언젠가는 정말 절 위해 노래를 불러주길 바랍니다.
Naia-Sing은 아직 안정화 단계가 아니라 진행 공유에 가깝습니다. 정식 공개 순서는 먼저 안정화된 Naia-talk (Naia-Omni) 가 먼저 나가고, Naia-Sing은 그 뒤를 잇게 됩니다.
TL;DR
- 23곡 평가 완료, Composite score 27.8
60.6 (0100 척도) - 사용자 청취 BEST 3곡 = metric rank 1·3·5위, WORST 2곡 = rank 17·19위 → framework valid 입증
- Hard Gate (서비스 가능 최소선) = 0/23 통과 — 현재 base 는 서비스 수준에 미달
- 가장 큰 약점: A 발음 (CER 평균 1.18) + E 표현 (1/23 통과)
- 다음 단계 = Track A 247h 한국어 fine-tune 결과 적용 + 단축 인퍼런스 + 음절 정확 매칭
Top 10 합산 영상
7분 24초. 1위부터 10위까지 한 곡씩 재생. 각 곡 ffmpeg loudnorm -14 LUFS + dynaudnorm 정규화. 영상에서 장르 매칭, 음색 일관성, 발음 정확도의 trade-off 가 직관적으로 들립니다.
| # | 곡 | source | score | 강점 |
|---|---|---|---|---|
| 1 | banan_jaychou_translation | 周杰倫 발라드 (13s, ko translation) | 60.6 | CER 0.52 전체 최저 · ko 0.96 |
| 2 | genre_digicharat | 디지캐럿 Party Night (1999) | 50.8 | ko 0.97 · timbre 0.92 |
| 3 | genre_gunslinger | 건슬링어 걸 doll · Lia | 48.8 | timbre 0.93 · ballad 매칭 |
| 4 | genre_escaflowne | 천공의 에스카플로네 OP (1996) | 48.2 | f0 range 0.91 매칭 |
| 5 | banan_adele_translation | Adele — Someone Like You (13s) | 47.8 | E.energy 0.72 최고 |
| 6 | base_gunslinger | 같은 곡, KO-S1 baseline | 47.8 | CER 0.70 (전체 2위) |
| 7 | genre_macross | Macross 사랑 기억 (1984) | 47.7 | ko 0.97 · timbre 0.92 |
| 8 | genre_chobits | Let Me Be With You (2002) | 46.7 | timbre 0.93 |
| 9 | pipe_01_adele | Adele source 13s pipeline | 45.9 | f0_corr 0.81 최고 |
| 10 | genre_nadia | 신비한 바다의 나디아 (1990) | 44.2 | timbre 0.97 최고 |
1. "잘 부른 한국어 노래" — 5 독립 차원
한 metric 으로 환원 불가합니다. 학계도 TCSinger, Vevo, DiffSinger 모두 4-5 차원을 동시에 보고합니다.
| 차원 | 학계 metric | 우리 측정 | 의미 |
|---|---|---|---|
| A. 발음 (Intelligibility) | CER, PER | Whisper-small KO STT vs 의도 가사 edit distance | "가사가 들리나" |
| B. 음정 (Pitch) | F0 RMSE, F0 corr | librosa.pyin F0 pearson + range ratio | "음을 맞춰 부르나" |
| C. 음색 (Similarity) | SECS (ECAPA cosine) | MFCC mean cosine (proxy) | "같은 사람이 부르나" |
| D. 매끄러움 (Naturalness) | MOS-N, UTMOS | chunk_disc per min (proxy) | "기계같이 안 들리나" |
| E. 표현 (번안곡 전용) | (자체 정의) | source RMS + spectral centroid + vibrato corr | "원곡 표현을 따라하나" |
E 차원이 번안곡의 핵심. 일반 SVS = 악보가 표현의 ground truth. 번안곡 = source 의 가창 dynamics/vibrato/articulation 이 ground truth.
Hard Gate (서비스 가능 최소선)
A. CER ≤ 0.30 AND ko_prob ≥ 0.90 [한국어 발음]
B. f0_corr ≥ 0.50 AND range 0.6~1.4 [음정]
C. timbre_sim ≥ 0.65 [음색]
D. chunk_disc ≤ 2/min [매끄러움]
E. energy_corr ≥ 0.5 · brightness ≥ 0.4 · vibrato 0.5~1.5 [표현]
학계 근거: CER 0.30 = production STT threshold, SECS 0.60-0.70 = zero-shot SVC 통과 표준.
2. Framework Self-Validation
Whisper-small 이 SVS quality 측정에 무효였던 교훈 (svs_eval.py §43, 5/17): golden in-dist 샘플도 빈 출력. 가창은 speech-likeness 만 반응했습니다.
→ metric 의 자기검증 필수:
사용자 best vs 사용자 worst
↓ ↓
metric 으로 분리되어야 valid
↓
안 되면 metric 자체가 invalid
23곡 self-validation 결과:
| 사용자 평가 | 곡 | metric ranking | 분리 |
|---|---|---|---|
| 🟢 BEST | banan_jaychou_translation | 1/23 | ✓ |
| 🟢 BEST | genre_gunslinger | 3/23 | ✓ |
| 🟢 BEST | banan_adele_translation | 5/23 | ✓ |
| 🔴 WORST | base_macross | 17/23 | ✓ |
| 🔴 WORST | base_flcl | 19/23 | ✓ |
→ framework valid (ranking proxy 입증). Track A 학습 결과를 객관적으로 비교할 도구를 확보했습니다.
3. Hard Gate 통과 — 0/23 ❌
| 차원 | 기준 | 통과 |
|---|---|---|
| A. CER ≤ 0.30 | 학계 production | 0/23 ❌ |
| A. ko_prob ≥ 0.90 | Whisper 한국어 인식 | 14/23 |
| B. f0_corr ≥ 0.5 + range OK | pitch 보존 | 2/23 ❌ |
| C. timbre_sim ≥ 0.65 | ref 일관성 | 10/23 |
| D. disc ≤ 2/min | chunk artifact | 20/23 ✓ |
| E. (3 metric AND) | 번안곡 표현 | 1/23 ❌ |
현재 Vevo1.5 한국어 base = 서비스 0% 가능. A·B·E 가 critical gap.
4. 진단 — 차원별 약점과 원인
A. 발음 — Vevo 한국어 phoneme 합성 미흡
Vevo1.5 = Sing-0.4k (한국어 CSD 3.8h 포함 438h) 사전 학습. 그러나 한국어 phoneme 매핑 약함 — CER 평균 1.18 = 70% 깨짐. ko_prob 만 0.86 = "한국어처럼 음향" 보존하나 음소는 X.
B. 음정 — melody_control 이 멜로디 학습 부족
f0_corr 평균 0.18. 일부 음수 (gunslinger -0.20, gsteatrino -0.46) = source 와 반대 방향 멜로디. vevosing_melody_control 이 phoneme content transfer 에 우선, F0 contour 는 부수.
C. 음색 — ref 매칭은 작동
AI-Hub 8 ref 매칭한 곡들 timbre_sim 평균 0.91. 그러나 chunk boundary 에서 음색 drift = 사용자 청취 "다른 목소리 들어가는" 현상.
D. 매끄러움 — chunk merge OK
20/23 통과. crossfade 100ms 효과적. outlier 3건 = source vocal silence 많을 때만.
E. 표현 — 가장 큰 실패
1/23 통과. 평균 energy_corr 0.32, brightness_corr 0.19. Vevo prosody tokenizer 가 한국어 학습 부족 + content-style 분리 시 dynamics 손실.
5. 어떻게 해야 할까 — 우선순위별 개선
🟢 P0 (즉시 가능, 검증된 효과)
| 항목 | 효과 | 비고 |
|---|---|---|
| Track A 학습 결과 적용 | A·B·E 동시 개선 가능성 | 247h KO 데이터 fine-tune 진행 중 |
| Single chunk 인퍼런스 | C·D 동시 | 60s 곡 → 15s chorus → 1위 sweet spot |
| 음절 정확 매칭 가사 | A | SimpleAligner 균등 분할 → source 음절 수 매칭 |
1위 (banan_jaychou_translation) 의 공식: 단축(13s) + 음절매칭 + clean studio source
🟡 P1 (1주 내)
| 항목 | 효과 |
|---|---|
| ECAPA-TDNN SECS 도입 | C 차원 정확도 (MFCC proxy 교체) |
| UTMOS / Sing-MOS predictor | D 자연스러움 객관화 |
| Phrase-aware aligner | A·D 동시 (음절 균등 분할 X) |
| Suno API → 한국어 source | A·E 동시 (한국어 vocal source pool) |
🟠 P2 (중기, 검증 필요)
| 항목 | 효과 | 위험 |
|---|---|---|
| Vevo1.5 fine-tune (Track A) | A·B·E 모두 | 학습 결과 미검증 |
| TCSinger2 pivot 재검토 | 표현 강화 가능성 | stack 복잡, ceiling 위험 |
| F5-TTS / CosyVoice2 SVS adapter | A 발음 | adapter 부재 |
| SVC 후처리 (RVC/SoulX) | C 음색 | end-to-end CER 측정 필요 |
🔴 P3 (장기, 패러다임 전환)
- 자체 SVS 모델 학습 → 검증된 외부 base 활용이 더 유리 (naia 핵심 철학)
- Subjective MOS listening test → 절대 ground truth
- Suno + 자체 cover 파이프라인 상용화 → "노래 부르기 서비스" Track D
6. 다음 결정점
- Track A 결과 도달 시 → 본 framework 로 재평가, 개선 폭 측정
- 개선 폭 < 20% → Vevo1.5 base 폐기, TCSinger2 또는 F5-TTS 재검토
- 개선 폭 ≥ 30% → 본격 fine-tune + Track D 서비스화 진입
- 사용자 게이트 = Track A 결과 청취 + 5 차원 metric 동시 확인 후 결정
7. naia-sing 32일 연구 일지
git history 기반 — 환각 X. 진짜 시작 = 2026-04-25 (한 달 history).
2026-04-25 ─ 시작: project setup + RVC pipeline scripts.
2026-04-26 ─ source 데이터 + cross-lingual cover pipeline + IP groundwork.
2026-04-28 ─ 3-frontier 작사 + 한국어 SVS 검증 + 통화 ref voice 파이프라인.
2026-05-15 ─ DSKR (DiffSinger Korean) + AI-Hub 465 학습 stack 확정.
2026-05-15 ─ IO bottleneck 근본해결 — pickle 13x 경량 + HDD→SSD (58s/step 회피).
2026-05-16 ─ 작동 stack 확정 — DSKR+CSD전이 → RVC swap. 사용자 검증 OK.
2026-05-16 ─ Vocoder 상한 반증 + 학습 연장 300k→500k.
2026-05-16 ─ 학습 연장 과적합 반증 — best=S_300000 확정, step 축 종료.
2026-05-18 ─ BigVGAN DSKR 기본 vocoder + aihubshell 키 보안패치.
2026-05-19 ─ DSKR S_300000 재현 상한 실재 입증 (MCD37 vs 타곡48).
2026-05-19 ─ TCSinger 2 한국어 SVS 시작 → PAUSED @ VAE epoch 395.
2026-05-21 ─ R3 적대 리뷰 종합 + naia-sing 자원 게이트 보류.
2026-05-26 ─ TCSinger2 종결 → Vevo1.5 한국어 SVS 발견.
2026-05-26 ─ Korean singing dataset 247h 완성 (GTSinger + AI-Hub 465).
2026-05-26 ─ BASE STATE SNAPSHOT — fine-tune 시작 전 baseline lock.
2026-05-26 ─ 3 AI 교차리뷰 (codex+gemini+opencode) + Reality Check.
2026-05-26 ─ Track A Phase 1 AR smoke PASS + Phase 2 자율 wrapper.
2026-05-26 ─ Stage별 VRAM 측정 + 5 번안곡 batch + 10 anime OST 60s.
2026-05-26 ─ Critical 발견: Vevo melody_control = source vocal phoneme 의존.
2026-05-26 ─ AI-Hub 8 short refs 장르 매칭 batch + ffmpeg loudnorm 후처리.
2026-05-27 ─ 본 보고서: 5 차원 평가 framework + 23곡 baseline + Hard Gate.
2026-05-27 ─ Framework valid 입증 + Top 10 합산 영상.
약 32일간:
- 5개 다른 SVS stack 시도 (RVC → DSKR → SoulX → TCSinger2 → Vevo1.5)
- 1개 ceiling (DSKR S_300000) + 1개 paused (TCSinger2 VAE) + 1개 dropped (RVC pure)
- 현재 = Vevo1.5 외부 base + Track A 247h KO fine-tune 진행 중
→ 자체 모델 학습 X, 검증된 외부 base + 우리 스택 (메모리/프라이버시/RAG/로컬 serving) 으로 차별화. naia 핵심 철학, 2026-05-15 패러다임 lock.
정직한 한계
이 글은 base 가 좋다는 보고가 아닙니다. 오히려 base 가 서비스 0% 가능 수준임을 객관적으로 측정한 보고입니다. 사람 청취 ranking 과 일치하는 metric framework 를 확보했고, 이제 학습이 정말 효과 있는지 정직하게 확인할 수 있는 도구가 생긴 것 — 이게 이 글의 의미입니다.
Track A 학습이 끝나면 같은 23곡으로 재평가해 개선 폭을 정량 보고하겠습니다.
보고서 원본 (markdown SoT) — .agents/work/benchmark-2026-05-27/BENCHMARK_REPORT.md
평가 framework SoT — 같은 경로 README.md
Top 10 합산 영상 — top10_mp4/naia_sing_top10.mp4 (7m24s, 18MB)
