IndexTTS-KO: 180,100-Step Korean Zero-Shot Voice & Emotion Cloning TTS
πΊπΈ English | π°π· νκ΅μ΄ | π¨π³ δΈζ | π―π΅ ζ₯ζ¬θͺ
π¦ κ΅λ΄ κ³μ’μ΄μ²΄ νμ (Korean Bank Transfer): NHλν(λμΆν) 352-1556-0640-33 (μκΈμ£Ό: μ€μ¬μ) |
π μΉ΄μΉ΄μ€νμ΄ QR μ‘κΈ |
β Buy Me a Coffee
π¬ Audio Comparison Demo: Reference Voice vs Base IndexTTS-2 (Untrained Korean) vs IndexTTS-KO (180,100 Steps, 16k Korean BPE + Emotion Cloning β Turn Sound ON π)
π 100% Ungated Open Release (Zero-Gate Access): All checkpoint weights (
gpt.pth,s2mel.pth,qwen0.6bemo4-merge,16,000Korean BPE tokenizer) are openly downloadable without manual approval or login tokens. β‘ Want another language finetuned or a large model quantized (Rung Ξ©Base-243 +TheoremFlow-Ξ©)? Leave a request on our Community Board (Discussions #1) or get Priority Queue processing via Buy Me a Coffee (buymeacoffee.com/tripleyoung)!
yeowon/index-tts-ko is a Korean-finetuned release of IndexTeam/IndexTTS-2 trained for 180,100 steps on emilia-yodas/KO_preprocessed. Given a short reference audio prompt (reference.wav) and Korean text, it synthesizes natural 22.05 kHz Korean speech while cloning speaker timbre and emotional prosody. Inference runs with edu-ide/index-tts.
This release extracts the clean inference-only weights from best_model.pth at step 180,100 (optimizer states stripped, torch.compile _orig_mod. prefixes removed, original dtypes preserved, and all 665 GPT tensors verified for bit-exact equality against the trained checkpoint).
π Quickstart (Linux & Python 3.10)
git clone https://github.com/edu-ide/index-tts.git
cd index-tts
git checkout 80060cced8cd0015dfaaaadfc70509fdec5bfb1f
uv python install 3.10
uv sync --python 3.10 --frozen --no-dev
export HF_MODEL_ID="yeowon/index-tts-ko"
Place a reference voice clip at reference.wav in the current directory and run FP16 synthesis:
.venv/bin/python - <<'PY'
import os
from pathlib import Path
from huggingface_hub import snapshot_download
from indextts.infer_v2 import IndexTTS2
model_dir = Path(snapshot_download(repo_id=os.environ["HF_MODEL_ID"]))
tts = IndexTTS2(
cfg_path=str(model_dir / "config.yaml"),
model_dir=str(model_dir),
use_fp16=True,
use_cuda_kernel=False,
use_deepspeed=False,
)
tts.normalizer.preferred_language = "ko"
tts.infer(
spk_audio_prompt="reference.wav",
text="μλ
νμΈμ. νκ΅μ΄ μμ± ν©μ± λͺ¨λΈμ
λλ€. μ€λ μ€ν μΈ μμ λ§λμ.",
output_path="output.wav",
)
PY
Key Usage Notes
tts.normalizer.preferred_language = "ko": Ensures Korean text is routed through the Korean text normalizer rather than CJK/English fallback paths (infer(language="ko")is not a separate argument). Spell out numbers and units in Korean Hangul as you want them pronounced.- Dedicated
16,000Korean BPE Tokenizer: Always use the bundledconfig.yamlandbpe.modeltogether. Mixing configs or tokenizers from the base IndexTTS-2 checkpoint will cause vocabulary dimension mismatches. - Automatic Auxiliary Downloads on First Run:
π¦ Included Files & SHA-256 Verified Artifacts
| File | Size / Role |
|---|---|
gpt.pth (3.53 GB) |
Step-180,100 Korean-finetuned autoregressive GPT weights (665 tensors verified, optimizer stripped) |
config.yaml, bpe.model |
Model architecture configuration & 16,000-token Korean BPE tokenizer |
s2mel.pth (1.20 GB) |
Semantic-to-Mel spectrogram synthesis weights |
wav2vec2bert_stats.pt |
Speech feature normalization statistics |
feat1.pt, feat2.pt |
Speaker timbre & emotion conditioning feature matrices |
qwen0.6bemo4-merge/ (1.19 GB) |
Merged Qwen-0.6B emotion conditioning encoder & tokenizer |
release.json, smoke-test.json |
Tensor equality verification manifest (SHA-256) & RTX 4090 FP16 smoke-test report |
LICENSE, LICENSE_ZH.txt |
Original bilibili Model Use License Agreement |
π¬ Training Data & Verification Scope
- Training Manifest:
emilia-yodas/KO_preprocessedderived from Emilia / Emilia-YODAS and YODAS. Raw training audio is not redistributed in this repository. - Verification: Tensor equality before/after checkpoint extraction (
665GPT keys) and tokenizer/config alignment were verified. On an NVIDIA GeForce RTX 4090 (FP16,use_cuda_kernel=False,use_deepspeed=False), synthesizing"μλ νμΈμ. νκ΅μ΄ μμ± ν©μ± ν μ€νΈμ λλ€."withexamples/voice_01.wavproduced a finite, non-silent22,050 Hz(3.61s, peak0.632) WAV waveform (smoke-test.json). Formal MOS/CER human evaluations are not claimed insmoke-test.json.
π License & Derivative Work Notice
This model is governed by the original IndexTTS-2 bilibili Model Use License Agreement (English LICENSE / Chinese LICENSE_ZH.txt).
Any modifications made to the original model in this Derivative Work are not endorsed, warranted, or guaranteed by the original right-holder of the original model, and the original right-holder disclaims all liability related to this Derivative Work.
θ―₯θ‘ηεε―Ήε樑εζδ½ηδ»»δ½ζΉε¨δΈε樑εεε§ζε©δΊΊζ ε ³οΌεε§ζε©δΊΊε―Ήθ―₯θ‘ηεδΈθδΉ¦γδΈζ δΏγδΈζΏζ θ΄£δ»»γ
β Support Our Open-Source Research & Priority Model Queue
We release IndexTTS-KO and our Rung Ξ© / TheoremFlow-Ξ© models with zero gated barriers. If this model helps your Korean voice workflow or research:
- β‘ Priority Supporter Queue: Leave a target model or language request in your Buy Me a Coffee support note (
buymeacoffee.com/tripleyoung) or KakaoPay/Bank transfer memo β supporter requests are prioritized first! - π¬ Community Request Board: Open a thread anytime in Hugging Face Discussions.
- β Buy Me a Coffee (Global Support & Priority Requests): https://buymeacoffee.com/tripleyoung
- π KakaoPay QR Transfer (νκ΅ μΉ΄μΉ΄μ€νμ΄ QR μ‘κΈ νμ): https://qr.kakaopay.com/FVgCIrWbX
- π¦ Korean Bank Transfer (κ΅λ΄ κ³μ’μ΄μ²΄ νμ):
NHλν(λμΆν) 352-1556-0640-33 (μκΈμ£Ό: μ€μ¬μ) - π¬ Community & Model Request Board: https://huggingface.co/yeowon/index-tts-ko/discussions
- Downloads last month
- 74
Model tree for yeowon/index-tts-ko
Base model
IndexTeam/IndexTTS-2
