Compare commits
No commits in common. "4f494daffba6b04f8c49ef4af2d22070f2a9daad" and "b373f915b516d0013b609c5c5fe8141bb97a38e8" have entirely different histories.
4f494daffb
...
b373f915b5
27
README.md
27
README.md
|
|
@ -650,33 +650,6 @@ In der Diagnostic unter Einstellungen → Sprachausgabe:
|
||||||
> **Tipp:** Fuer beste Ergebnisse: saubere Aufnahme, eine Stimme, kein Hintergrund,
|
> **Tipp:** Fuer beste Ergebnisse: saubere Aufnahme, eine Stimme, kein Hintergrund,
|
||||||
> 10-30 Sekunden Gesamtlaenge. Mehrere kurze Dateien werden zusammengefuegt.
|
> 10-30 Sekunden Gesamtlaenge. Mehrere kurze Dateien werden zusammengefuegt.
|
||||||
|
|
||||||
### Deutsches Fine-Tune (bessere Qualitaet auf Deutsch)
|
|
||||||
|
|
||||||
Das Default-Modell `F5TTS_v1_Base` ist primaer auf Englisch + Chinesisch trainiert
|
|
||||||
und liefert auf Deutsch merklich schwaechere Voice-Cloning-Qualitaet als XTTS es
|
|
||||||
tat. Community-Fine-Tune von [aihpi](https://huggingface.co/aihpi/F5-TTS-German)
|
|
||||||
auf dem Emilia-Dataset + Common Voice 19.0 funktioniert deutlich besser.
|
|
||||||
|
|
||||||
**Konfiguration ueber Diagnostic → "F5-TTS Modell-Tuning (advanced)":**
|
|
||||||
|
|
||||||
| Feld | Wert |
|
|
||||||
|------|------|
|
|
||||||
| Modell-Architektur | `F5TTS_Base` *(nicht v1_Base! Fine-Tune basiert auf der alten Architektur)* |
|
|
||||||
| Custom Checkpoint | `hf://aihpi/F5-TTS-German/F5TTS_Base/model_365000.safetensors` |
|
|
||||||
| Custom Vocab | `hf://aihpi/F5-TTS-German/vocab.txt` |
|
|
||||||
| cfg_strength | `2.0` |
|
|
||||||
| nfe_step | `32` |
|
|
||||||
|
|
||||||
→ "Anwenden" klicken. Die `hf://`-Pfade werden einmalig automatisch runter-
|
|
||||||
geladen (~3-5GB, landet im `xtts/hf-cache/`) und bei Container-Restart aus
|
|
||||||
dem Cache wiederverwendet.
|
|
||||||
|
|
||||||
> **Warnung zur BigVGAN-Variante** (`F5TTS_Base_bigvgan/model_295000.safetensors`):
|
|
||||||
> funktioniert AKTUELL NICHT mit dieser Bridge. Die f5-tts Library laedt
|
|
||||||
> per Default den Vocos-Vocoder, die BigVGAN-Weights sind damit inkompatibel
|
|
||||||
> → Modell produziert NaN, App bleibt stumm. Nur die **Vocos-Variante
|
|
||||||
> (F5TTS_Base/model_365000.safetensors)** nutzen.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Docker Volumes
|
## Docker Volumes
|
||||||
|
|
|
||||||
|
|
@ -268,15 +268,7 @@ def split_sentences(text: str, max_len: int = 350) -> list[str]:
|
||||||
|
|
||||||
|
|
||||||
def float_to_pcm16(wav: np.ndarray) -> bytes:
|
def float_to_pcm16(wav: np.ndarray) -> bytes:
|
||||||
"""Float32 (-1..+1) → int16 little-endian bytes.
|
"""Float32 (-1..+1) → int16 little-endian bytes."""
|
||||||
|
|
||||||
F5-TTS generiert gelegentlich NaN/Inf bei Instabilitaeten — ohne sanitize
|
|
||||||
waere der Cast zu int16 undefiniert (RuntimeWarning + kaputter Sound).
|
|
||||||
"""
|
|
||||||
nan_count = int(np.isnan(wav).sum() + np.isinf(wav).sum())
|
|
||||||
if nan_count > 0:
|
|
||||||
logger.warning("F5-TTS Output enthaelt %d NaN/Inf samples — ersetze mit 0", nan_count)
|
|
||||||
wav = np.nan_to_num(wav, nan=0.0, posinf=1.0, neginf=-1.0)
|
|
||||||
wav = np.clip(wav, -1.0, 1.0)
|
wav = np.clip(wav, -1.0, 1.0)
|
||||||
pcm = (wav * 32767.0).astype(np.int16)
|
pcm = (wav * 32767.0).astype(np.int16)
|
||||||
return pcm.tobytes()
|
return pcm.tobytes()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue