Aller au contenu
ModelPrésentéExterne
Browse files

F5 TTS German ONNX

Pure-ONNX export of the German F5-TTS voice-cloning model hvoss-techfak/F5-TTS-German, runnable with plain ONNX Runtime — no PyTorch, no Python required at inference time. This makes it easy to embed German...

TypeOtherModèle de basehvoss-techfak/F5-TTS-GermanVersionF5 DecodeCClasse

Source du modèle

Type
Other
Taille du fichier
59,6 MB–1,23 GB
Modèle de base
hvoss-techfak/F5-TTS-German
Version
vF5 Decode
Mis à jour
26 oct. 2026
Source
Hugging Face

Description de la source

F5-TTS-German — ONNX

Pure-ONNX export of the German F5-TTS voice-cloning model hvoss-techfak/F5-TTS-German, runnable with plain ONNX Runtime — no PyTorch, no Python required at inference time. This makes it easy to embed German text-to-speech in native applications (C#, C++, ...) with only the ONNX Runtime dependency.

Exported with DakeQQ/F5-TTS-ONNX.

Why this export exists

hvoss-techfak/F5-TTS-German is a fine-tune of the F5TTS_Base (v0) architecture (text_mask_padding=False, pe_attn_head=1). DakeQQ's exporter was hard-wired for F5TTS_v1_Base, so exporting a v0 checkpoint produced fluent-but-wrong "word-salad" in the target language.

The root cause and fix were contributed upstream in DakeQQ/F5-TTS-ONNX#74 (merged):

  • AttnProcessor now honors pe_attn_head — for v0 checkpoints RoPE is applied to the first head only, not all heads.
  • TextEmbedding now honors mask_padding — v0 checkpoints must not zero out padding positions.

These files were exported from the fixed exporter with --omegacfg_path .../F5TTS_Base.yaml.

Files

FileSizeRole
F5_Preprocess.onnx~65 MBReference audio (int16) + text ids → mel/text conditioning, RoPE tables, initial noise
F5_Transformer.onnx~1.26 GBOne denoising step of the DiT (run in an NFE loop, default 32 steps)
F5_Decode.onnx~60 MBDenoised mel → 24 kHz int16 waveform (vocoder + ISTFT)
vocab.txt—Character/token vocabulary (unchanged from the source checkpoint)

Inference (pipeline order)

  1. Tokenize the reference text + target text to text_ids (int32). For German, a plain character → vocab-index mapping is sufficient (jieba/pinyin segmentation is not required).
  2. Load the reference voice clip as 24 kHz mono int16.
  3. F5_Preprocess → noise, rope_cos_q, rope_sin_q, rope_cos_k, rope_sin_k, cat_mel_text, cat_mel_text_drop, ref_signal_len.
  4. Loop F5_Transformer for N steps (default 32), feeding the step index into time_step.1 and the running noise/denoised back in.
  5. F5_Decode(denoised, ref_signal_len) → int16 audio @ 24 kHz.

A reference implementation is F5-TTS-ONNX-Inference.py in the DakeQQ/F5-TTS-ONNX repo.

Verification

The exported models were verified end-to-end (pure ONNX Runtime) on an umlaut-heavy German sentence and transcribed with faster-whisper large-v3: language de, confidence 1.00, exact target transcript.

License & attribution

If you use this, please credit the original hvoss-techfak/F5-TTS-German checkpoint.

Sources

1 source
Hugging FacePrincipalVersion 6d46e3a9dbdbddf022212619190fb7bb6c9a2240
huggingface.co/nibor1896/F5-TTS-German-ONNX/tree/6d46e3a9dbdbddf022212619190fb7bb6c9a2240

Vérifié 26 oct.

Download files

Artefacts du modèle

3 artefacts

F5_Decode.onnx

onnx · 59,6 MB · SHA-256 b28113f9d35a…95d7 · Hugging Face

Download file

F5_Preprocess.onnx

onnx · 65,4 MB · SHA-256 42c390abc243…d065 · Hugging Face

Download file

F5_Transformer.onnx

onnx · 1,23 GB · SHA-256 bc0d9ca95335…9fec · Hugging Face

Download file

Extraits de sources

2 extraits

--- license: cc-by-nc-4.0 language: - de base_model: - hvoss-techfak/F5-TTS-German pipeline_tag: text-to-speech tags: - f5-tts - text-to-speech - tts - onnx - onnxruntime - german - voice-cloning --- # F5-TTS-German — ONNX Pure-**ONNX** export of the German F5-TTS voice-cloning model [`hvoss-techfak/F5-TTS-German`](https://huggingface.co/hvoss-techfak/F5-TTS-German), runnable with plain [ONNX Runtime](https://onnxruntime.ai/) — **no PyTorch, no Python** required at inference time. This makes it easy to embed German text-to-speech in native applications (C#, C++, …) with only the ONNX Runtime dependency. Exported with [DakeQQ/F5-TTS-ONNX](https://github.com/DakeQQ/F5-TTS-ONNX). ## Why this export exists `hvoss-techfak/F5-TTS-German` is a fine-tune of the **F5TTS_Base (v0)** architecture (`text_mask_padding=False`, `pe_attn_head=1`). DakeQQ's exporter was hard-wired for **F5TTS_v1_Base**, so exporting a v0 checkpoint produced fluent-but-wrong "word-salad" in the target language. The root cause and fix were contributed upstream in [DakeQQ/F5-TTS-ONNX#74](https://github.com/DakeQQ/F5-TTS-ONNX/pull/74) (merged): - `AttnProcessor` now honors `pe_attn_head` — for v0 checkpoints RoPE is applied to the first head only, not all heads. - `TextEmbedding` now honors `mask_padding` — v0 checkpoints must **not** zero out padding positions. These files were exported from the fixed exporter with `--omegacfg_path .../F5TTS_Base.yaml`. ## Files | File | Size | Role | |---|---|---| | `F5_Preprocess.onnx` | ~65 MB | Reference audio (int16) + text ids → mel/text conditioning, RoPE tables, initial noise | | `F5_Transformer.onnx` | ~1.26 GB | One denoising step of the DiT (run in an NFE loop, default 32 steps) | | `F5_Decode.onnx` | ~60 MB | Denoised mel → 24 kHz int16 waveform (vocoder + ISTFT) | | `vocab.txt` | — | Character/token vocabulary (unchanged from the source checkpoint) | ## Inference (pipeline order) 1. **Tokenize** the reference text + target text to `text_ids` (int32). For German, a plain character → vocab-index mapping is sufficient (jieba/pinyin segmentation is **not** required). 2. Load the reference voice clip as **24 kHz mono int16**. 3. `F5_Preprocess` → `noise, rope_cos_q, rope_sin_q, rope_cos_k, rope_sin_k, cat_mel_text, cat_mel_text_drop, ref_signal_len`. 4. Loop `F5_Transformer` for N steps (default 32), feeding the step index into `time_s...

Source context: 0 downloads · 1 likes · Pipeline text-to-speech · Library f5-tts · Repo nibor1896/F5-TTS-German-ONNX