IndexTTS-KO: 180,100-Step Korean Zero-Shot Voice & Emotion Cloning TTS

πŸ‡ΊπŸ‡Έ English  |  πŸ‡°πŸ‡· ν•œκ΅­μ–΄  |  πŸ‡¨πŸ‡³ δΈ­ζ–‡  |  πŸ‡―πŸ‡΅ ζ—₯本θͺž

Buy Me A Coffee KakaoPay QR NHλ†ν˜‘ 352-1556-0640-33 (μœ€μ—¬μ›) Community Discussions

KakaoPay QR Transfer (μœ€μ—¬μ›)

🏦 κ΅­λ‚΄ κ³„μ’Œμ΄μ²΄ 후원 (Korean Bank Transfer): NHλ†ν˜‘(λ†μΆ•ν˜‘) 352-1556-0640-33 (예금주: μœ€μ—¬μ›)  |  πŸ’› 카카였페이 QR μ†‘κΈˆ  |  β˜• Buy Me a Coffee

IndexTTS-KO Overview

🎬 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,000 Korean 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)

Install Git and uv, then run:

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,000 Korean BPE Tokenizer: Always use the bundled config.yaml and bpe.model together. 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_preprocessed derived from Emilia / Emilia-YODAS and YODAS. Raw training audio is not redistributed in this repository.
  • Verification: Tensor equality before/after checkpoint extraction (665 GPT keys) and tokenizer/config alignment were verified. On an NVIDIA GeForce RTX 4090 (FP16, use_cuda_kernel=False, use_deepspeed=False), synthesizing "μ•ˆλ…•ν•˜μ„Έμš”. ν•œκ΅­μ–΄ μŒμ„± ν•©μ„± ν…ŒμŠ€νŠΈμž…λ‹ˆλ‹€." with examples/voice_01.wav produced a finite, non-silent 22,050 Hz (3.61s, peak 0.632) WAV waveform (smoke-test.json). Formal MOS/CER human evaluations are not claimed in smoke-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:

  1. ⚑ 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!
  2. πŸ’¬ Community Request Board: Open a thread anytime in Hugging Face Discussions.

Buy Me A Coffee

KakaoPay QR Transfer (μœ€μ—¬μ›)

Downloads last month
74
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for yeowon/index-tts-ko

Finetuned
(10)
this model