# Dia TTS (Nari Labs)

Dia de Nari Labs est un modèle avancé de synthèse vocale qui se spécialise dans **dialogues multi-intervenants réalistes**. Contrairement aux TTS traditionnels qui traitent un seul locuteur à la fois, Dia génère des conversations naturelles entre plusieurs intervenants avec émotion, rires, hésitations et autres indices non verbaux. Avec 1,6 milliard de paramètres, il fonctionne sur n'importe quel GPU 8 Go+.

## Principales caractéristiques

* **Dialogue multi-intervenants**: Générer des conversations entre 2+ locuteurs en une seule passe
* **Indices non verbaux**: Rires `(rit)`, hésitation `(soupire)`, pauses — intégrées automatiquement
* **Voix émotionnelle**: Intonation naturelle sans balises d'émotion explicites
* **1,6B paramètres**: Tient sur RTX 3070/3080 (8-10 Go de VRAM)
* **Licence Apache 2.0**: Utilisation commerciale complète
* **Intégration HuggingFace**: Fonctionne avec la bibliothèque Transformers

## Exigences

| Composant | Minimum         | Recommandé       |
| --------- | --------------- | ---------------- |
| GPU       | RTX 3070 (8 Go) | RTX 3080 (10 Go) |
| VRAM      | 8 Go            | 10 Go+           |
| RAM       | 16Go            | 32Go             |
| Disque    | 10Go            | 15 Go            |
| Python    | 3.9+            | 3.11             |

**GPU recommandé par Clore.ai**: RTX 3080 10 Go (\~0,2–0,5 $/jour)

## Installation

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

# Option 2 : Depuis la source
git clone https://github.com/nari-labs/dia.git
cd dia
pip install -e .
```

## Démarrage rapide

### Dialogue multi-intervenants basique

```python
from dia import Dia

# Charger le modèle
model = Dia.from_pretrained("nari-labs/Dia-1.6B")

# Générer une conversation multi-intervenants
# [S1] = Intervenant 1, [S2] = Intervenant 2
text = """[S1] Hé, as-tu essayé la nouvelle plateforme de location de GPU ?
[S2] Tu veux dire Clore ? Oui, j'ai loué une RTX 4090 hier.
[S1] C'était comment ?
[S2] (rit) Honnêtement ? Beaucoup moins cher que ce que j'attendais. Genre deux dollars par jour.
[S1] Non mais sérieusement. C'est... c'est vraiment fou."""

audio = model.generate(text)

# Enregistrer dans un fichier
import soundfile as sf
sf.write("dialog.wav", audio, samplerate=24000)
```

### Avec émotion et indices non verbaux

```python
# Dia gère automatiquement les schémas de parole naturels
text = """[S1] Je viens de recevoir les résultats...
[S2] Et ? Ne me laisse pas en suspense !
[S1] (soupire) Nous avons réussi. Nous avons en fait passé tous les tests.
[S2] (rit) Je te l'avais dit ! Je te l'avais dit qu'on y arriverait !
[S1] Je n'arrive pas à y croire... (rit) d'accord, d'accord, fêtons ça."""

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

### Locuteur unique

```python
# Fonctionne aussi pour un seul locuteur
text = "[S1] Bienvenue dans la documentation Clore AI. Dans ce guide, nous allons vous expliquer comment configurer votre première location de GPU et déployer un modèle d'apprentissage automatique."

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

## Interface Web Gradio

```python
# Lancer la démo interactive
python -m dia.app --port 7860 --share

# Ou manuellement :
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="Dialogue (utilisez les balises [S1], [S2])", lines=10),
    outputs=gr.Audio(label="Discours généré"),
    title="Dia TTS — Dialogue multi-intervenants"
)
demo.launch(server_port=7860)
```

## Cas d'utilisation

* **Génération de podcasts**: Créer des podcasts conversationnels à partir de scripts
* **Dialogues de livres audio**: Générer des conversations de personnages avec des voix distinctes
* **Dialogues de jeux**: Conversations PNJ avec des schémas de parole naturels
* **Données d'entraînement**: Générer des jeux de données vocaux divers pour l'entraînement ASR
* **Voix de chatbot**: Dialogue multi-tours avec réponses émotionnelles

## Conseils pour les utilisateurs de Clore.ai

* **La RTX 3080 est idéale**: 10 Go de VRAM gèrent Dia facilement à \~0,2–0,5 $/jour
* **Génération par lot**: Traitez plusieurs dialogues en boucle pour maximiser votre temps de location
* **Enregistrez les modèles sur un stockage persistant**: Si votre instance Clore dispose d'un disque persistant, mettez en cache le modèle pour éviter de le retélécharger
* **Température 0,7–0,9**: Plus bas = plus cohérent, plus haut = plus expressif/varié
* **Anglais uniquement**: Dia se concentre actuellement sur l'anglais — pour le multilingue, voir le guide Qwen3-TTS

## Dépannage

| Problème                     | Solution                                                                                           |
| ---------------------------- | -------------------------------------------------------------------------------------------------- |
| CUDA out of memory           | Utilisez `model.to("cuda", torch_dtype=torch.float16)` pour la demi-précision                      |
| Les locuteurs se ressemblent | Ajoutez plus de texte/contexte par locuteur ; essayez une température plus élevée                  |
| Indices non verbaux ignorés  | Assurez-vous du format correct : `(rit)`, `(soupire)` entre parenthèses                            |
| Qualité audio faible         | Augmentez `num_steps` paramètre si disponible ; assurez-vous d'un taux d'échantillonnage de 24 kHz |

## Lectures complémentaires

* [GitHub de Nari Labs](https://github.com/nari-labs/dia)
* [Modèle HuggingFace](https://huggingface.co/nari-labs/Dia-1.6B)
* [Comparaison : Dia vs ElevenLabs](https://nari-labs.github.io/dia/) — page de démonstration officielle


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-fr/audio-et-voix/dia-tts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
