# Dia TTS (Nari Labs)

Dia von Nari Labs ist ein fortschrittliches Text-zu-Sprache-Modell, das sich spezialisiert auf **realistischen Mehrsprecher-Dialog**. Im Gegensatz zu traditionellen TTS-Systemen, die jeweils einen Sprecher verarbeiten, erzeugt Dia natürliche Gespräche zwischen mehreren Sprechern mit Emotion, Lachen, Zögern und anderen nonverbalen Hinweisen. Mit 1,6 Milliarden Parametern läuft es auf jeder GPU mit 8GB+.

## Hauptmerkmale

* **Mehrsprecher-Dialog**: Erzeuge Gespräche zwischen 2+ Sprechern in einem Durchgang
* **Nonverbale Hinweise**: Lachen `(lacht)`, Zögern `(seufzt)`, Pausen — automatisch eingebettet
* **Emotionale Sprache**: Natürliche Intonation ohne explizite Emotions-Tags
* **1,6B Parameter**: Passt auf RTX 3070/3080 (8–10GB VRAM)
* **Apache-2.0-Lizenz**: Volle kommerzielle Nutzung
* **HuggingFace-Integration**: Funktioniert mit der Transformers-Bibliothek

## Anforderungen

| Komponente | Minimum        | Empfohlen       |
| ---------- | -------------- | --------------- |
| GPU        | RTX 3070 (8GB) | RTX 3080 (10GB) |
| VRAM       | 8GB            | 10GB+           |
| RAM        | 16GB           | 32GB            |
| Festplatte | 10GB           | 15GB            |
| Python     | 3.9+           | 3.11            |

**Empfohlene Clore.ai-GPU**: RTX 3080 10GB (\~0,2–0,5 $/Tag)

## Installation

```bash
# Option 1: pip install
pip install dia-tts

# Option 2: Aus dem Quellcode
git clone https://github.com/nari-labs/dia.git
cd dia
pip install -e .
```

## Schnellstart

### Grundlegender Mehrsprecher-Dialog

```python
from dia import Dia

# Modell laden
model = Dia.from_pretrained("nari-labs/Dia-1.6B")

# Erzeuge Mehrsprecher-Gespräch
# [S1] = Sprecher 1, [S2] = Sprecher 2
text = """[S1] Hey, hast du die neue GPU-Vermietungsplattform schon ausprobiert?
[S2] Du meinst Clore? Ja, ich habe gestern eine RTX 4090 gemietet.
[S1] Wie war sie?
[S2] (lacht) Ehrlich? Viel günstiger als ich erwartet hatte. So zwei Dollar am Tag.
[S1] Kein Weg. Das ist... das ist tatsächlich verrückt."""

audio = model.generate(text)

# In Datei speichern
import soundfile as sf
sf.write("dialog.wav", audio, samplerate=24000)
```

### Mit Emotion und nonverbalen Hinweisen

```python
# Dia behandelt automatisch natürliche Sprechmuster
text = """[S1] Ich habe gerade die Ergebnisse bekommen...
[S2] Und? Halt mich nicht in Spannung!
[S1] (seufzt) Wir haben bestanden. Wir haben tatsächlich alle Tests bestanden.
[S2] (lacht) Ich hab's dir gesagt! Ich hab dir gesagt, dass wir es schaffen!
[S1] Ich kann es kaum glauben... (lacht) okay, okay, lass uns feiern."""

audio = model.generate(text, temperature=0.8)
sf.write("emotional_dialog.wav", audio, samplerate=24000)
```

### Einzelner Sprecher

```python
# Funktioniert auch für einen einzelnen Sprecher
text = "[S1] Willkommen zur Clore AI Dokumentation. In diesem Leitfaden führen wir durch die Einrichtung Ihrer ersten GPU-Vermietung und die Bereitstellung eines Machine-Learning-Modells."

audio = model.generate(text)
sf.write("narration.wav", audio, samplerate=24000)
```

## Gradio Web-UI

```python
# Interaktive Demo starten
python -m dia.app --port 7860 --share

# Oder manuell:
import gradio as gr
from dia import Dia

model = Dia.from_pretrained("nari-labs/Dia-1.6B")

def generate_speech(text):
    audio = model.generate(text)
    return (24000, audio)

demo = gr.Interface(
    fn=generate_speech,
    inputs=gr.Textbox(label="Dialog (verwende [S1], [S2] Tags)", lines=10),
    outputs=gr.Audio(label="Generated Speech"),
    title="Dia TTS — Mehrsprecher-Dialog"
)
demo.launch(server_port=7860)
```

## Anwendungsfälle

* **Podcast-Erstellung**: Erstelle gesprächsbasierte Podcasts aus Skripten
* **Hörbuch-Dialoge**: Erzeuge Charaktergespräche mit unverwechselbaren Stimmen
* **Spieldialoge**: NPC-Gespräche mit natürlichen Sprechmustern
* **Trainingsdaten**: Erzeuge vielfältige Sprachdatensätze für ASR-Training
* **Chatbot-Stimmen**: Mehrtüriger Dialog mit emotionalen Antworten

## Tipps für Clore.ai-Nutzer

* **RTX 3080 ist ideal**: 10GB VRAM bewältigt Dia problemlos bei \~0,2–0,5 $/Tag
* **Batch-Erzeugung**: Verarbeite mehrere Dialoge in einer Schleife, um deine Mietzeit zu maximieren
* **Modelle im persistenten Speicher speichern**: Wenn deine Clore-Instanz persistenten Speicher hat, cache das Modell, um erneutes Herunterladen zu vermeiden
* **Temperatur 0,7–0,9**: Niedriger = konsistenter, höher = ausdrucksstärker/variabler
* **Nur Englisch**: Dia konzentriert sich derzeit auf Englisch — für mehrsprachige Nutzung siehe Qwen3-TTS-Anleitung

## Fehlerbehebung

| Problem                              | Lösung                                                                                              |
| ------------------------------------ | --------------------------------------------------------------------------------------------------- |
| CUDA out of memory                   | Verwenden Sie `model.to("cuda", torch_dtype=torch.float16)` für Halbpräzision                       |
| Sprecher klingen ähnlich             | Füge mehr Text/Kontext pro Sprecher hinzu; versuche eine höhere Temperatur                          |
| Nonverbale Hinweise werden ignoriert | Stelle das richtige Format sicher: `(lacht)`, `(seufzt)` in Klammern                                |
| Audioqualität niedrig                | Erhöhen Sie `num_steps` Parameter falls verfügbar; stelle sicher, dass die Abtastrate 24kHz beträgt |

## Weiterführende Lektüre

* [Nari Labs GitHub](https://github.com/nari-labs/dia)
* [HuggingFace Modell](https://huggingface.co/nari-labs/Dia-1.6B)
* [Vergleich: Dia vs ElevenLabs](https://nari-labs.github.io/dia/) — offizielle Demo-Seite
