Kokoro, 이제 약 600MB의 추가 VRAM만으로 모든 목소리를 복제할 수 있습니다!
Kokoro can now clone any voice with just ~600 MB of extra VRAM!
핵심 요약
Kokoro TTS와 OpenVoice ToneColorConverter를 결합해 적은 자원으로 목소리 복제 기능을 구현한 실험입니다.
- 기술적 구현 — Kokoro TTS와 OpenVoice를 결합한 any-tts 파이프라인 도입
- 리소스 효율성 — 약 600MB의 추가 VRAM으로 목소리 복제 기능 구현
- 성능 영향 — CUDA 환경에서 약 10% 속도 저하 발생
- 핵심 원리 — 기본 TTS 모델의 발음과 VC 모델의 음색 변환을 결합

오디오 모델 찾다가 OpenVoice라는 걸 발견했거든. 나온 지 좀 된 놈인데, 놀랍게도 아직 TTS 리더보드 상위권에 있더라.
눈길을 끈 건 구조였어. 기본적으로 TTS + 음성 변환(voice conversion) 방식이더라고. ToneColorConverter가 TTS 모델이랑 별개로 따로 돌아갈 수 있는 구조야.
그래서 생각 좀 해봤지. 다른 TTS 모델이랑 붙여보면 어떨까?
Kokoro랑 한번 돌려봤는데, 결과물 꽤 괜찮게 나오더라!
그래서 audio.cpp에 Kokoro랑 OpenVoice ToneColorConverter를 묶은 any-tts 레시피를 추가했어. 레시피는 v0.9.2부터 도입된 건데, 여러 오디오 모델을 조합해서 미리 정의해 둔 파이프라인 같은 거야.
오버헤드는 이 정도 돼:
-
~600 MB 추가 피크 VRAM
-
CUDA 기준 ~10% 속도 저하
-
CPU에서는 원래 속도의 0.5배 정도 나오지만, 그래도 실시간 대비 2배 속도는 뽑아줌
너희도 아무 작은 TTS 모델이나 골라서 ToneColorConverter랑 붙여봐. TTS 모델이 말하는 내용, 발음, 억양을 담당하고, VC 모델이 타겟 화자의 목소리 특징을 입히는 식이야. 기본으로 선택하는 목소리에 따라서도 최종 결과물 퀄리티가 달라질 수 있어.
기존 TTS 모델을 재학습시킬 필요 없이 음성 복제 기능을 달아줄 수 있는 아주 간단한 방법이지!

