Text-to-Speech
German
indextts
indextts-2.5
tts
german
voice-cloning
zero-shot
single-generation

IndexTTS 2.5 German – 310-hour community fine-tune

German GPT checkpoint for IndexTTS 2.5, fine-tuned on approximately 310 hours of German speech. It adds a trained German language-conditioning row while retaining the original zero-shot reference-voice conditioning.

This repository contains the German GPT checkpoint and its matching German text frontend. It does not duplicate the official codec, speech-to-mel model, vocoder, tokenizer, or other auxiliary weights. Download the official IndexTeam/IndexTTS-2.5 model separately.

Required upstream notice: 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.

Highlights

  • German zero-shot voice cloning from one reference clip
  • 310.005 hours of German training audio
  • 105,616 source utterances and 211,226 training pairs
  • balanced MLS, HUI Clean, and Emilia-YODAS mixture
  • single-generation inference (num_beams=1), with no best-of reranking
  • German numbers, dates, times, currency, units, and abbreviations are normalized
  • input is lowercased to match training; this is important for pronunciation
  • selected checkpoint: optimizer step 16,000

Files

File Purpose
gpt.pth Merged German GPT checkpoint; use this alongside the official base files
inference.py Recommended command-line inference entry point
german_text.py Dependency-free German text normalization used during training
training_config.yaml Training hyperparameters
evaluation_summary.json Machine-readable evaluation results
NOTICE.md Upstream license notice and training-data attribution
LICENSE Original Bilibili Model Use License Agreement
SHA256SUMS.txt Integrity hashes for released files

Requirements

Use the installation instructions from the official IndexTTS repository. This model repository intentionally does not redefine or pin the upstream runtime dependencies.

Quick start

Clone and prepare the official project, then download both sets of weights:

git clone https://github.com/index-tts/index-tts.git
cd index-tts
uv sync --all-extras

uv run hf download IndexTeam/IndexTTS-2.5 --local-dir checkpoints
uv run hf download <YOUR-HF-USERNAME>/IndexTTS-2.5-German --local-dir german-model

Run the included German inference script from the official repository directory:

uv run python german-model/inference.py \
  --base-model checkpoints \
  --prompt-audio /path/to/reference.wav \
  --text "Dazu kommen 3 Gigabyte Speicher." \
  --output output.wav

The frontend converts the example internally to dazu kommen drei gigabyte speicher.. Do not bypass german_text.prepare_german() unless your application performs identical normalization and lowercasing.

The checkpoint is loaded after the official base model with acceleration disabled, because an acceleration snapshot created before loading the fine-tune would keep using the original GPT weights.

Python integration

The essential integration is:

from pathlib import Path

from indextts.infer_v2_5 import IndexTTS2
from indextts.utils.checkpoint import load_checkpoint
from german_text import prepare_german

base = Path("checkpoints")
tts = IndexTTS2(
    cfg_path=str(base / "config.yaml"),
    model_dir=str(base),
    use_bf16=True,
    use_accel=False,
    use_qwen_emo=False,
)
load_checkpoint(tts.gpt, "german-model/gpt.pth")
tts.gpt.eval()

tts.infer(
    spk_audio_prompt="reference.wav",
    text=prepare_german("Heute sind es 23 Grad."),
    lang="de",
    output_path="output.wav",
    text_normalization=False,
    num_beams=1,
    temperature=0.7,
    top_p=0.8,
    top_k=30,
    repetition_penalty=10.0,
)

The stock IndexTTS-2.5 UI does not expose this new German frontend automatically. Applications that call IndexTTS2.infer() directly must use prepare_german() first and pass text_normalization=False.

Training

The fine-tune started from the official IndexTTS-2.5 base checkpoint, not from an earlier German model.

Source Selected hours Utterances Speakers
Multilingual LibriSpeech, German train 150.003 38,782 175
HUI-Audio-Corpus-German Clean 140.001 58,390 112
Emilia-YODAS German, filtered subset 20.001 8,444 645
Total 310.005 105,616

The HUI contribution was speaker-balanced. Bernd Ungerer contributed 18.198 hours / 7,075 clips, less than 6% of the complete mixture. Speaker projection and the emotion path were preserved/frozen. LoRA rank 64 / alpha 128 was applied to all 24 GPT layers; text embeddings and output heads were trained. The merged release checkpoint is directly loadable by IndexTTS.

Evaluation

Three late checkpoints were compared with 30 fixed German sentences and two held-out reference speakers. Every checkpoint received one generation per text and speaker with the same seed. Whisper Small was used only as a consistent ASR evaluator.

Checkpoint Word edits Words WER
16,000 (released) 23 430 5.35%
19,000 25 430 5.81%
19,803 26 430 6.05%

For the released checkpoint, 48/60 transcripts were word-perfect. Category WER: simple sentences 1.49%, questions 0%, punctuation 0%, targeted German sounds 5.77%, compounds 6.25%, names 6.67%, and numeric/date forms 15.62%.

A targeted follow-up on “Dazu kommen 3 Gigabyte Speicher.” produced the complete sentence with both held-out voices at step 16,000. This does not guarantee identical results with every reference clip or seed.

Sample

Text: “Der große fröhliche Bär trägt einen grünen Regenschirm.”

Listen to the included German voice-cloning sample

Limitations

  • This is a community fine-tune, not an official IndexTeam/Bilibili release.
  • It is substantially more intelligible in German, but pronunciation is not perfect.
  • Numbers, dates, names, long compounds, and dense consonant clusters remain harder.
  • Quality and word omissions can depend on the reference clip and sampling seed.
  • The ASR metric includes recognition and text-normalization errors and is not a substitute for human listening tests.
  • This release was evaluated with the included frontend and one-generation settings; other settings can change the results.
  • Voice cloning requires permission from the person whose voice is used. Do not use the model for impersonation, deception, or privacy violations.

License and data provenance

This checkpoint is a Derivative Work of IndexTTS-2.5 and is distributed under the Bilibili Model Use License Agreement. Read it before using or redistributing the model; it contains usage restrictions, downstream obligations, and thresholds that require a separate license.

Training-data details and attributions are recorded in NOTICE.md. In particular, the official HUI download page does not state a separate license for the distributed audio. The public uploader must independently verify that the intended distribution satisfies all data and recording rights.

Citation

Please cite the original IndexTTS-2.5 technical report:

@misc{li2026indextts25technicalreport,
  title        = {IndexTTS 2.5 Technical Report},
  author       = {Yunpei Li and Xun Zhou and Jinchao Wang and Lu Wang and
                  Yong Wu and Siyi Zhou and Yiquan Zhou and Yining Wang and
                  Yaogen Yang and Zhetao Hu and Jiacheng Xu and Bin Xia and
                  Jingchen Shu},
  year         = {2026},
  eprint       = {2601.03888},
  archivePrefix= {arXiv},
  primaryClass = {cs.SD},
  url          = {https://arxiv.org/abs/2601.03888}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for sharrnah/IndexTTS-2.5-German

Finetuned
(5)
this model

Datasets used to train sharrnah/IndexTTS-2.5-German

Paper for sharrnah/IndexTTS-2.5-German