# Chatterbox Stimmenklonung

Chatterbox ist eine Familie hochmoderner Open-Source-Text-to-Speech-Modelle von [Resemble AI](https://resemble.ai). Es führt Zero-Shot-Stimmenklonung anhand eines kurzen Referenzclips (\~10 Sekunden) durch, unterstützt paralinguistische Tags wie `[laugh]` und `[cough]`, und bietet eine mehrsprachige Variante, die 23+ Sprachen abdeckt. Drei Modellvarianten sind verfügbar: Turbo (350M, geringe Latenz), Original (500M, kreative Steuerung) und Multilingual (500M, 23+ Sprachen).

**GitHub:** [resemble-ai/chatterbox](https://github.com/resemble-ai/chatterbox) **PyPI:** [chatterbox-tts](https://pypi.org/project/chatterbox-tts/) **Lizenz:** MIT

## Hauptmerkmale

* **Zero-Shot-Stimmenklonung** — klont jede Stimme aus \~10 Sekunden Referenzaudio
* **Paralinguistische Tags** (Turbo) — `[laugh]`, `[cough]`, `[chuckle]`, `[sigh]` für realistische Sprache
* **23+ Sprachen** (Multilingual) — Arabisch, Chinesisch, Französisch, Deutsch, Japanisch, Koreanisch, Russisch, Spanisch und mehr
* **CFG- & Übertreibungs-Tuning** (Original) — kreative Kontrolle über Expressivität
* **Drei Modellgrößen** — Turbo (350M), Original (500M), Multilingual (500M)
* **MIT-Lizenz** — vollständig offen für kommerzielle Nutzung

## Anforderungen

| Komponente | Minimum        | Empfohlen           |
| ---------- | -------------- | ------------------- |
| GPU        | RTX 3060 12 GB | RTX 3090 / RTX 4090 |
| VRAM       | 6 GB           | 10 GB+              |
| RAM        | 8 GB           | 16 GB               |
| Festplatte | 5 GB           | 15 GB               |
| Python     | 3.10+          | 3.11                |
| CUDA       | 11.8+          | 12.1+               |

**Clore.ai-Empfehlung:** RTX 3090 (~~$0.30–1.00/Tag) für komfortablen VRAM-Spielraum. Eine RTX 3060 funktioniert für das Turbo-Modell. Für das Multilingual-Modell mit langen Texten sollte man eine RTX 4090 in Betracht ziehen (~~$0.50–2.00/Tag).

## Installation

```bash
# Von PyPI installieren
pip install chatterbox-tts

# Oder aus dem Quellcode installieren
git clone https://github.com/resemble-ai/chatterbox.git
cd chatterbox
pip install -e .

# Verifizieren
python -c "from chatterbox.tts import ChatterboxTTS; print('Chatterbox ready')"
```

## Schnellstart

### Turbo-Modell (geringste Latenz)

```python
import torchaudio as ta
from chatterbox.tts_turbo import ChatterboxTurboTTS

model = ChatterboxTurboTTS.from_pretrained(device="cuda")

# Grundlegendes TTS mit paralinguistischen Tags
text = "Hey, schön dich wiederzusehen! [chuckle] Ich habe heute tolle Neuigkeiten für dich."

# Stimmenklonung — gib einen Referenzclip von 10+ Sekunden an
wav = model.generate(text, audio_prompt_path="reference_voice.wav")

ta.save("output_turbo.wav", wav, model.sr)
print(f"Gespeichert bei {model.sr} Hz")
```

### Original-Modell (Englisch, kreative Steuerung)

```python
import torchaudio as ta
from chatterbox.tts import ChatterboxTTS

model = ChatterboxTTS.from_pretrained(device="cuda")

text = "The quick brown fox jumps over the lazy dog. It was a beautiful morning."

# Generieren ohne Stimmenklonung (verwendet Standardstimme)
wav = model.generate(text)
ta.save("output_default.wav", wav, model.sr)

# Generieren mit Stimmenklonung
wav = model.generate(text, audio_prompt_path="my_voice_sample.wav")
ta.save("output_cloned.wav", wav, model.sr)
```

## Beispielanwendungen

### Mehrsprachige Stimmenklonung

```python
import torchaudio as ta
from chatterbox.mtl_tts import ChatterboxMultilingualTTS

model = ChatterboxMultilingualTTS.from_pretrained(device="cuda")

# Französisch
french_text = "Bonjour, comment allez-vous? Bienvenue dans notre démonstration."
wav_fr = model.generate(french_text, language_id="fr")
ta.save("output_french.wav", wav_fr, model.sr)

# Japanisch
japanese_text = "こんにちは、テキスト読み上げのデモンストレーションです。"
wav_ja = model.generate(japanese_text, language_id="ja")
ta.save("output_japanese.wav", wav_ja, model.sr)

# Russisch mit Stimmenklonung
russian_text = "Привет! Это демонстрация синтеза речи на русском языке."
wav_ru = model.generate(
    russian_text,
    language_id="ru",
    audio_prompt_path="russian_speaker.wav"
)
ta.save("output_russian.wav", wav_ru, model.sr)

print("Mehrsprachige Generierung abgeschlossen")
```

### Paralinguistische Tags (Turbo)

```python
import torchaudio as ta
from chatterbox.tts_turbo import ChatterboxTurboTTS

model = ChatterboxTurboTTS.from_pretrained(device="cuda")

samples = [
    ("greeting", "Hi there! [laugh] It's so good to see you again."),
    ("nervous", "Um, well [cough] I'm not really sure about that."),
    ("excited", "Oh my gosh! [chuckle] That's absolutely incredible news!"),
]

for name, text in samples:
    wav = model.generate(text, audio_prompt_path="speaker_ref.wav")
    ta.save(f"para_{name}.wav", wav, model.sr)
    print(f"Generated: {name}")
```

### Batch-Verarbeitungsskript

```python
import torchaudio as ta
from chatterbox.tts import ChatterboxTTS
import os

model = ChatterboxTTS.from_pretrained(device="cuda")

# Verarbeite eine Liste von Zeilen (z. B. für Hörbuchkapitel)
lines = [
    "Kapitel eins. Das Abenteuer beginnt.",
    "Es war eine dunkle und stürmische Nacht.",
    "Der Held stand an der Weggabelung und war unsicher, welchen Weg er einschlagen sollte.",
]

os.makedirs("output_batch", exist_ok=True)

for i, line in enumerate(lines):
    wav = model.generate(line, audio_prompt_path="narrator_voice.wav")
    ta.save(f"output_batch/line_{i:03d}.wav", wav, model.sr)
    print(f"[{i+1}/{len(lines)}] {line[:40]}...")

print("Batch-Verarbeitung abgeschlossen")
```

## Tipps für Clore.ai-Nutzer

* **Modellwahl** — verwende Turbo für latenzarme Sprachagenten, Original für kreative englische Arbeit, Multilingual für nicht-englische Inhalte
* **Referenzaudioqualität** — verwende einen sauberen, rauschfreien Clip von 10–30 Sekunden für beste Stimmenklonungsergebnisse
* **Docker-Einrichtung** — Basis-Image `pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime`, Port freigeben `7860/http` für Gradio
* **Speichermanagement** — rufen Sie `torch.cuda.empty_cache()` zwischen großen Batches, um VRAM freizugeben
* **Unterstützte Sprachen** — ar, da, de, el, en, es, fi, fr, he, hi, it, ja, ko, ms, nl, no, pl, pt, ru, sv, sw, tr, zh
* **HuggingFace Space** — vorher testen, bevor man mietet bei [huggingface.co/spaces/ResembleAI/Chatterbox](https://huggingface.co/spaces/ResembleAI/Chatterbox)

## Fehlerbehebung

| Problem                              | Lösung                                                                                                                   |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
| `CUDA out of memory`                 | Verwende Turbo (350M) statt Original/Multilingual (500M) oder miete eine größere GPU                                     |
| Geklonte Stimme stimmt nicht überein | Verwende einen längeren (15–30s), saubereren Referenzclip mit minimalem Hintergrundrauschen                              |
| `numpy` Versionskonflikt             | Ausführen `pip install numpy==1.26.4 --force-reinstall`                                                                  |
| Langsamer Modelldownload             | Modelle werden beim ersten Lauf von HuggingFace geladen (\~2 GB); vorab herunterladen mit `huggingface-cli`              |
| Audio hat Artefakte                  | Reduziere die Textlänge pro Generierung; sehr lange Texte können die Qualität verschlechtern                             |
| `ModuleNotFoundError`                | Stelle sicher, dass `pip install chatterbox-tts` ohne Fehler abgeschlossen; überprüfe die Kompatibilität mit Python 3.11 |
