# StimmeKlonen.de - Anleitung

Deine Stimme klonen — lokal, privat, kostenlos.

## 📋 Übersicht

Drei Schritte zur eigenen KI-Stimme:

1. **Aufnehmen** — 2-5 Minuten Referenz-Audio
2. **Trainieren** — Modell auf deine Stimme feinjustieren
3. **Generieren** — Beliebig Text-zu-Sprache erzeugen

---

## ⚡ Schnellstart (Zero-Shot)

Für erste Tests ohne Training. Funktioniert sofort mit jedem Audio-Sample.

### Voraussetzungen

- Python 3.11+
- 4GB RAM minimum

### Installation

```bash
# Virtuelles Environment erstellen
python3 -m venv venv
source venv/bin/activate  # Linux/Mac
# venv\Scripts\activate    # Windows

# PyTorch installieren (CPU)
pip install torch --index-url https://download.pytorch.org/whl/cpu

# TTS installieren
pip install TTS soundfile scipy numpy
```

### Usage

```bash
python clone_voice.py "Hallo Welt, das ist ein Test."
# → output.wav
```

**Mit eigener Referenz:**

```bash
python clone_voice.py "Dein Text hier" -o ergebnis.wav -r meine_stimme.wav
```

---

## 🎙️ Die Aufnahme — Qualität beginnt am Mikrofon

### Der Nordwind-Text (empfohlen)

Die Aesop-Fabel deckt alle kritischen Phoneme des Deutschen ab:
- **Umlaute:** würde, mütig, gewöhnt
- **Zischlaute:** stritten, strählte, wärme
- **Cluster:** ndwind, überflügelt, geschlossen
- **Emotion:** „Er blies und blies" — Dynamik & Betonung
- **Prosodie:** Dialog, Erzählung, Konflikt, Lösung

> Auch für einfache Sample-Klonierung bringt dieser Text **deutlich bessere Ergebnisse**
> als zufällige Alltagstexte.

### Aufnahme-Checkliste

| Aspekt | Empfehlung |
|--------|-----------|
| **Equipment** | Smartphone-Mikrofon reicht, besser: USB-Mic (Blue Yeti, Rode NT-USB) |
| **Umgebung** | Leiser Raum, keine Echos. *Tipp: Kleiderschrank = kostenloses Studio* |
| **Abstand** | 15-30cm vom Mikrofon |
| **Format** | WAV oder FLAC, 24kHz, Mono |
| **Länge** | 30 Sekunden Minimum, 2-5 Minuten optimal |
| **Stil** | Natürlich sprechen, nicht vortragen |

### Aufnahme-Workflow

1. Nordwind-Text 2-3x lesen (natürlich, nicht abgelesen)
2. Alternativ: 50 kurze Sätze über deine Themen aufnehmen
3. Audio prüfen (kein Clipping, keine Hintergrundgeräusche)
4. Als WAV/FLAC speichern (24kHz, Mono)

---

## 🧠 Deep Dive: F5-TTS Fine-Tuning

Für beste Ergebnisse bei wiederholter Nutzung.

### Wann sinnvoll?

- Du willst regelmäßig Audio generieren
- Hohe Natürlichkeit ist wichtig
- Umlaute/Zischlaute sollen perfekt klingen

### Voraussetzungen

- 30+ Minuten Aufnahme (oder 50+ einzelne Sätze)
- NVIDIA GPU mit 8GB+ VRAM (empfohlen)
- 20GB freier Speicherplatz

### Ablauf

#### 1. Audio transkribieren (Whisper)

```bash
# Whisper installieren
pip install transformers torch

# Transkription
python -c "
from transformers import pipeline
pipe = pipeline('automatic-speech-recognition', model='openai/whisper-base', return_timestamps=True)
result = pipe('meine_aufnahme.wav', generate_kwargs={'language':'german'})
print(result)
"
```

#### 2. Texte zuordnen (metadata.csv)

```csv
audio_file|text
wavs/satz_01.wav|Der Nordwind und die Sonne hatten darüber gestritten...
wavs/satz_02.wav|Sie wurden einig, dass derjenige für den Stärkeren gelten sollte...
```

#### 3. Dataset vorbereiten

```bash
python -m f5_tts.train.datasets.prepare_csv_wavs metadata.csv ./dataset
```

#### 4. Training starten

```bash
python run_training_v2.py 300  # 300 Epochen = ~2h auf RTX 3060
```

| Setup | Epochen | Zeit | Qualität |
|-------|---------|------|----------|
| Light | 300 | ~2h | Gut |
| Medium | 800 | ~4h | Sehr gut |
| Heavy | 1600 | ~8h | Exzellent |

#### 5. Generieren

```bash
python gen_f5_final.py "Dein Text hier" -o output.wav
```

---

## 🖥️ Hardware

| Konfiguration | Training | Generierung | Empfohlen |
|--------------|----------|-------------|-----------|
| **RTX 3060/4060 (12GB)** | ~2-8h | ~10s/Min | ⭐ Beste |
| **RTX 2060 (6GB)** | ~4-16h | ~20s/Min | Gut |
| **Nur CPU (i5/i7)** | ~20-80h | ~2-5m/Min | Nur Generierung |
| **Apple Silicon M1-M3** | ~6-24h | ~30s/Min | Gut |

**💡 Tipp:** Keine Grafikkarte? Nutze den [Service](service.html) fürs Training und generiere lokal auf CPU — das geht in akzeptabler Geschwindigkeit.

**VRAM-Tipps:**
- 8-Bit Adam Optimizer spart 40% VRAM: `pip install bitsandbytes`
- Batch-Size reduzieren bei wenig VRAM
- Mit 12GB VRAM: 65 Sätze bei Batch-Size 1600
- Mit 8GB VRAM: 30 Sätze bei Batch-Size 800

---

## 🔧 Fehlerbehebung

| Problem | Lösung |
|---------|--------|
| torchcodec DLL-Fehler (Windows) | Monkey-Patch mit soundfile statt torchaudio |
| PyArrow + PyTorch Kollision | `import torch, torchaudio, datasets` zuerst |
| Access Violation 0xC0000005 | Bekannter Windows-Bug, harmlos, Modell ist gespeichert |
| Whisper zerschneidet Sätze | Satzzeichen-Flush (.!?) in group_segments_to_sentences |
| MoviePy RAM-Overflow | Alle Clips .close() nach Export |
| OOM bei Training | Batch-Size halbieren, 8-Bit Adam nutzen |

---

## 📦 Code-Download

Enthaltene Dateien:
- `clone_voice.py` — XTTS Zero-Shot Klonierung
- `clone_voice2.py` — XTTS mit erweiterten Optionen
- `gen_f5.py` — F5-TTS Generierung (einfach)
- `gen_f5_final.py` — F5-TTS Generierung (produktionsreif)
- `run_training_v2.py` — LoRA Fine-Tuning Pipeline
- `process_video.py` — Automatisches Video-Dubbing
- `compare_models.py` — Modellvergleich (A/B Testing)
- `setup.sh` / `setup.ps1` — Setup-Scripte

**Hinweis:** Die Scripte benötigen eigene Aufnahmen. Basismodelle (XTTS, F5-TTS) werden automatisch bei ersten Start heruntergeladen.

---

## 📞 Support

Fragen? Probleme?
- E-Mail: marcel@verkooyen.de
- [Service buchen →](service.html)

---

*© 2025 Marcel Verkooyen — StimmeKlonen.de*
