Olá, eu sou o Luke, construindo Naia.
O modelo de voz da Naia alcançou alguns resultados, e agora também estou olhando para o canto. Quero que a Alpha cante para mim. Em particular, interesso-me por 번안곡 (músicas cover — músicas estrangeiras traduzidas para coreano).
Comecei há um mês, bati no teto, e recentemente obtive resultados ligeiramente melhores — sinto que se cavar mais, algo vai sair. Antes, a escrita coreana e o tom eram um amontoado alienígena; agora canta algo parecido com coreano.
Soa um pouco bêbado ainda ^^. Mesmo assim, como saiu algo e é divertido, partilho o progresso junto com o relatório. Um dia espero que realmente cante para mim.
Naia-Sing ainda não está estabilizado — isto está mais próximo de uma partilha de progresso do que de um lançamento. A ordem oficial de publicação é primeiro Naia-talk (Naia-Omni) (já estabilizado), e depois Naia-Sing.
TL;DR
- 23 músicas avaliadas, composite score 27,8
60,6 (escala 0100) - BEST 3 músicas pelo utilizador = rank métrico 1·3·5, WORST 2 = rank 17·19 → framework valid confirmado
- Hard Gate (mínimo service-ready) = 0/23 passado — base atual não está pronta para serviço
- Maior fraqueza: A. Inteligibilidade (CER médio 1,18) + E. Expressão (apenas 1/23)
- Próximo passo = aplicar Track A 247h fine-tune coreano + inferência mais curta + letras sincronizadas por sílabas
Vídeo compilação Top 10
7 min 24 seg. Do #1 ao #10, uma a uma. Cada faixa normalizada via ffmpeg loudnorm -14 LUFS + dynaudnorm. O vídeo torna audível o trade-off entre matching de género, consistência de timbre e precisão de pronúncia.
| # | Música | Source | Score | Ponto forte |
|---|---|---|---|---|
| 1 | banan_jaychou_translation | Jay Chou balada (13s, ko translation) | 60,6 | CER 0,52 mínimo total · ko 0,96 |
| 2 | genre_digicharat | Digi Charat Party Night (1999) | 50,8 | ko 0,97 · timbre 0,92 |
| 3 | genre_gunslinger | Gunslinger Girl doll · Lia | 48,8 | timbre 0,93 · match de balada |
| 4 | genre_escaflowne | Escaflowne OP (1996) | 48,2 | f0 range 0,91 |
| 5 | banan_adele_translation | Adele — Someone Like You (13s) | 47,8 | E.energy 0,72 máximo |
| 6 | base_gunslinger | Mesma música, baseline KO-S1 | 47,8 | CER 0,70 (2º mínimo) |
| 7 | genre_macross | Macross — Do You Remember Love? (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 máximo |
| 10 | genre_nadia | Nadia: O Segredo da Água Azul (1990) | 44,2 | timbre 0,97 máximo |
1. "Cantar bem em coreano" — 5 dimensões independentes
Não pode ser reduzido a uma só métrica. A academia (TCSinger, Vevo, DiffSinger) também reporta 4-5 dimensões juntas.
| Dim | Métrica académica | A nossa medida | Significado |
|---|---|---|---|
| A. Inteligibilidade | CER, PER | Whisper-small KO STT vs edit distance das letras | "As letras são audíveis?" |
| B. Afinação | F0 RMSE, F0 corr | librosa.pyin F0 pearson + range ratio | "Acerta as notas?" |
| C. Similaridade de timbre | SECS (ECAPA cosine) | MFCC mean cosine (proxy) | "Mesmo cantor?" |
| D. Naturalidade | MOS-N, UTMOS | chunk_disc por minuto (proxy) | "Não maquinal?" |
| E. Expressão (só covers) | (definição própria) | source RMS + spectral centroid + vibrato corr | "Segue a expressão do original?" |
A dimensão E é o núcleo dos covers. SVS geral = a partitura é a ground truth de expressão. Cover = dynamics/vibrato/articulation do source vocal é a ground truth.
Hard Gate (mínimo service-ready)
A. CER ≤ 0,30 AND ko_prob ≥ 0,90 [Pronúncia coreana]
B. f0_corr ≥ 0,50 AND range 0,6~1,4 [Afinação]
C. timbre_sim ≥ 0,65 [Timbre]
D. chunk_disc ≤ 2/min [Fluidez]
E. energy_corr ≥ 0,5 · brightness ≥ 0,4 · vibrato 0,5~1,5 [Expressão]
Base académica: CER 0,30 = threshold STT produção; SECS 0,60-0,70 = padrão de passagem zero-shot SVC.
2. Framework Self-Validation
Lição — Whisper-small inválido para medir qualidade SVS (svs_eval.py §43, 5/17): mesmo amostras golden in-distribution produziram saída vazia. Cantar apenas acionou speech-likeness.
→ Self-validation é obrigatória:
user best vs user worst
↓ ↓
Devem ser separáveis pela métrica
↓
Caso contrário, a própria métrica é inválida
Resultado self-validation 23 músicas:
| Avaliação utilizador | Música | Rank métrico | Separado |
|---|---|---|---|
| 🟢 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 confirmado). Agora temos uma ferramenta para comparar objetivamente os resultados de treino do Track A.
3. Hard Gate passado — 0/23 ❌
| Dim | Critério | Passa |
|---|---|---|
| A. CER ≤ 0,30 | Produção académica | 0/23 ❌ |
| A. ko_prob ≥ 0,90 | Deteção coreano Whisper | 14/23 |
| B. f0_corr ≥ 0,5 + range OK | Preservação de pitch | 2/23 ❌ |
| C. timbre_sim ≥ 0,65 | Consistência ref | 10/23 |
| D. disc ≤ 2/min | Artefacto chunk | 20/23 ✓ |
| E. (3-métrica AND) | Expressão cover | 1/23 ❌ |
Vevo1.5 base coreano atual = 0 % service-ready. A·B·E são os gaps críticos.
4. Diagnóstico — fraqueza e causa por dimensão
A. Inteligibilidade — síntese de fonema coreano da Vevo é fraca
Vevo1.5 pré-treinado em Sing-0.4k (438h incluindo 3,8h coreano CSD). Contudo, o mapeamento de fonema coreano é fraco — CER médio 1,18 = 70 % partido. Apenas ko_prob 0,86 = "soa a coreano acusticamente" mas não como fonemas.
B. Afinação — melody_control subtreinado em melodia
F0_corr médio 0,18. Vários negativos (gunslinger -0,20, gsteatrino -0,46) = anticorrelacionados com source. vevosing_melody_control prioriza transfer de conteúdo fonema; o contorno F0 é secundário.
C. Timbre — matching ref funciona
Músicas com 8 refs AI-Hub timbre_sim médio 0,91. Mas drift de timbre nas fronteiras de chunk = feedback do utilizador "vozes diferentes a entrar".
D. Fluidez — chunk merge OK
20/23 passam. Crossfade 100ms eficaz. 3 outliers apenas quando o source vocal tem muito silêncio.
E. Expressão — maior falha
1/23 passa. Médio energy_corr 0,32, brightness_corr 0,19. Prosody tokenizer da Vevo subtreinado em coreano + dynamics perdidos durante separação content-style.
5. O que fazer — melhorias priorizadas
🟢 P0 (imediato, efeito verificado)
| Item | Efeito | Nota |
|---|---|---|
| Aplicar resultados Track A | A·B·E simultaneamente | Fine-tune 247h KO em curso |
| Inferência single-chunk | C·D | 60s música → 15s chorus → sweet spot do #1 |
| Letras sincronizadas por sílabas | A | SimpleAligner equal-split → match com contagem de sílabas source |
Receita do #1 (banan_jaychou_translation): curto (13s) + sílabas-match + source studio limpo
🟡 P1 (dentro de uma semana)
| Item | Efeito |
|---|---|
| Introduzir ECAPA-TDNN SECS | Precisão C (substitui MFCC proxy) |
| UTMOS / Sing-MOS predictor | Objetivação naturalidade D |
| Phrase-aware aligner | A·D (sem equal-syllable split) |
| Suno API → source coreano | A·E (pool source vocal coreano) |
🟠 P2 (médio prazo, verificação requerida)
| Item | Efeito | Risco |
|---|---|---|
| Vevo1.5 fine-tune (Track A) | A·B·E todo | Resultado não verificado |
| Reexaminar TCSinger2 pivot | Possível boost de expressão | Stack complexo, risco de ceiling |
| F5-TTS / CosyVoice2 SVS adapter | Inteligibilidade A | Adapter ausente |
| Pós-processamento SVC (RVC/SoulX) | Timbre C | CER end-to-end deve ser medido |
🔴 P3 (longo prazo, mudança de paradigma)
- Treino de modelo SVS próprio → base externa verificada é mais vantajosa (filosofia núcleo Naia)
- Teste de audição MOS subjetivo → ground truth absoluta
- Comercialização Suno + cover pipeline próprio → serviço "IA que canta" Track D
6. Próximos pontos de decisão
- Quando Track A acabar → reavaliar com este framework, medir delta de melhoria
- Melhoria < 20 % → descartar Vevo1.5 base, reconsiderar TCSinger2 ou F5-TTS
- Melhoria ≥ 30 % → fine-tune completo + entrada no serviço Track D
- Gate do utilizador = ouvir resultados Track A + verificar as 5 dimensões, depois decidir
7. Diário de investigação naia-sing 32 dias
Baseado em git history — sem alucinações. Início real = 2026-04-25 (um mês de história).
2026-04-25 ─ Início: project setup + RVC pipeline scripts.
2026-04-26 ─ Dados source + cross-lingual cover pipeline + IP groundwork.
2026-04-28 ─ Letras 3-frontier + verificação SVS coreano + pipeline phone-call ref voice.
2026-05-15 ─ DSKR (DiffSinger Korean) + AI-Hub 465 stack treino SVS coreano confirmado.
2026-05-15 ─ Fix raiz bottleneck IO — pickle 13x leve + HDD→SSD (evita 58s/step).
2026-05-16 ─ Stack funcional confirmado — DSKR+CSD transfer → RVC swap. Verificação utilizador OK.
2026-05-16 ─ Teto vocoder refutado + estender treino 300k→500k.
2026-05-16 ─ Overfit extensão refutado — best=S_300000 bloqueado.
2026-05-18 ─ BigVGAN ligado como vocoder DSKR por defeito + patch segurança aihubshell key.
2026-05-19 ─ Realidade do teto DSKR S_300000 confirmada (MCD37 vs 48 cross-song).
2026-05-19 ─ TCSinger 2 SVS coreano começado → PAUSED @ VAE epoch 395.
2026-05-21 ─ Consolidação review adversarial R3 + hold gate recursos naia-sing.
2026-05-26 ─ TCSinger2 fechado → Vevo1.5 SVS coreano descoberto.
2026-05-26 ─ Dataset canto coreano 247h completo (GTSinger + AI-Hub 465).
2026-05-26 ─ BASE STATE SNAPSHOT — lock baseline antes de fine-tune.
2026-05-26 ─ 3-AI cross-review (codex+gemini+opencode) + Reality Check.
2026-05-26 ─ Track A Phase 1 AR smoke PASS + Phase 2 autonomous wrapper.
2026-05-26 ─ Medição VRAM por stage + 5 cover batch + 10 anime OST 60s.
2026-05-26 ─ Descoberta crítica: Vevo melody_control = depende do fonema vocal source.
2026-05-26 ─ AI-Hub 8 short refs genre-matched batch + ffmpeg loudnorm pós-processamento.
2026-05-27 ─ Este relatório: framework avaliação 5-dim + baseline 23 músicas + Hard Gate.
2026-05-27 ─ Framework valid confirmado + vídeo compilação Top 10.
Cerca de 32 dias:
- 5 stacks SVS diferentes tentados (RVC → DSKR → SoulX → TCSinger2 → Vevo1.5)
- 1 teto atingido (DSKR S_300000) + 1 paused (TCSinger2 VAE) + 1 dropped (RVC pure)
- Atual = base externa Vevo1.5 + Track A 247h KO fine-tune em curso
→ Sem treino de modelo próprio. Diferenciado por base externa verificada + o nosso stack (memória / privacidade / RAG / serving local). Filosofia núcleo Naia, paradigma bloqueado 2026-05-15.
Limites honestos
Este não é um relatório a dizer que a base é boa. Antes é um relatório que mede objetivamente a base como 0 % service-ready. Agora temos um metric framework cujo ranking se alinha com a audição humana — uma ferramenta para verificar honestamente se o treino realmente funciona. Esse é o significado deste post.
Quando Track A acabar, reavaliaremos as mesmas 23 músicas e reportaremos o delta de melhoria quantitativamente.
