# Dia TTS (Nari Labs)

Dia by Nari Labs एक उन्नत टेक्स्ट-टू-स्पीच मॉडल है जो विशेष रूप से **वास्तविक बहु-वक्ता संवाद**के लिए माहिर है। पारंपरिक TTS के विपरीत जो एक समय में एक वक्ता को संभालता है, Dia कई वक्ताओं के बीच भाव, हँसी, हिचकिचाहट और अन्य गैर-मौखिक संकेतों के साथ प्राकृतिक बातचीत उत्पन्न करता है। 1.6B पैरामीटर पर, यह किसी भी 8GB+ GPU पर चलता है।

## प्रमुख विशेषताएँ

* **बहु-वक्ता संवाद**: एक ही पास में 2+ वक्ताओं के बीच वार्तालाप उत्पन्न करें
* **गैर-मौखिक संकेत**: हँसी `(हँसता है)`, हिचकिचाहट `(आह/आह भरता है)`, विराम — स्वचालित रूप से सम्मिलित
* **भावनात्मक भाषण**: स्पष्ट इमोशन टैग के बिना प्राकृतिक उच्चारण
* **1.6B पैरामीटर**: RTX 3070/3080 (8-10GB VRAM) पर फिट बैठता है
* **Apache 2.0 लाइसेंस**: पूर्ण व्यावसायिक उपयोग
* **HuggingFace एकीकरण**: Transformers लाइब्रेरी के साथ काम करता है

## आवश्यकताएँ

| घटक    | न्यूनतम        | अनुशंसित        |
| ------ | -------------- | --------------- |
| GPU    | RTX 3070 (8GB) | RTX 3080 (10GB) |
| VRAM   | 8GB            | 10GB+           |
| RAM    | 16GB           | 32GB            |
| डिस्क  | 10GB           | 15GB            |
| Python | 3.9+           | 3.11            |

**अनुशंसित Clore.ai GPU**: RTX 3080 10GB (\~$0.2–0.5/दिन)

## इंस्टॉलेशन

```bash
# विकल्प 1: pip install
pip install dia-tts

# विकल्प 2: स्रोत से
git clone https://github.com/nari-labs/dia.git
cd dia
pip install -e .
```

## त्वरित प्रारम्भ

### मूल बहु-वक्ता संवाद

```python
from dia import Dia

# मॉडल लोड करें
model = Dia.from_pretrained("nari-labs/Dia-1.6B")

# बहु-वक्ता वार्तालाप उत्पन्न करें
# [S1] = वक्ता 1, [S2] = वक्ता 2
text = """[S1] अरे, क्या आपने नए GPU रेंटल प्लेटफ़ॉर्म को आजमाया है?
[S2] आपका मतलब Clore है? हाँ, मैंने कल एक RTX 4090 किराये पर लिया था.
[S1] कैसा रहा?
[S2] (हँसता है) ईमानदारी से? अपेक्षा से बहुत सस्ता। लगभग दो डॉलर रोज़ाना जैसा।
[S1] नहीं चलता। ये... ये वास्तव में पागलपन है."""

audio = model.generate(text)

# फ़ाइल में सहेजें
import soundfile as sf
sf.write("dialog.wav", audio, samplerate=24000)
```

### भावना और गैर-मौखिक संकेतों के साथ

```python
# Dia स्वतः ही प्राकृतिक भाषण पैटर्न संभालता है
text = """[S1] मुझे अभी परिणाम मिले...
[S2] और? मुझे अनिश्चितता में मत रखो!
[S1] (आह भरता है) हम पास हो गए। हम वास्तव में सभी परीक्षण पास कर गए।
[S2] (हँसता है) मैंने कहा था! मैंने कहा था कि हम कर लेंगे!
[S1] मुझे यकीन नहीं हो रहा... (हँसता है) ठीक है, ठीक है, चलो जश्न मनाते हैं."""

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

### एकल वक्ता

```python
# एकल वक्ता के लिए भी काम करता है
text = "[S1] क्लोर AI डॉक्यूमेंटेशन में आपका स्वागत है। इस गाइड में, हम आपके पहले GPU रेंटल की सेटअप और एक मशीन लर्निंग मॉडल डिप्लॉय करने के चरणों से गुजरेंगे."

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

## Gradio वेब UI

```python
# इंटरैक्टिव डेमो लॉन्च करें
python -m dia.app --port 7860 --share

# या मैन्युअली:
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 (use [S1], [S2] tags)", lines=10),
    outputs=gr.Audio(label="Generated Speech"),
    title="Dia TTS — बहु-वक्ता संवाद"
)
demo.launch(server_port=7860)
```

## उपयोग के मामले

* **पॉडकास्ट जनरेशन**: स्क्रिप्ट से वार्तालापात्मक पॉडकास्ट बनाएँ
* **ऑडियोबुक संवाद**: अलग-अलग आवाजों वाले पात्रों के बीच बातचीत उत्पन्न करें
* **गेम संवाद**: NPC वार्तालाप जिनमें प्राकृतिक भाषण पैटर्न हों
* **प्रशिक्षण डेटा**: ASR प्रशिक्षण के लिए विविध भाषण डेटासेट उत्पन्न करें
* **चैटबोट आवाज़ें**: भावनात्मक प्रतिक्रियाओं के साथ बहु-टर्न संवाद

## Clore.ai उपयोगकर्ताओं के लिए सुझाव

* **RTX 3080 आदर्श है**: 10GB VRAM Dia को आसानी से संभालता है \~ $0.2–0.5/दिन में
* **बैच जनरेशन**: अपने रेंटल समय को अधिकतम करने के लिए लूप में कई संवाद प्रोसेस करें
* **मॉडल को परमानेंट स्टोरेज में सहेजें**: यदि आपके Clore इंस्टेंस में परमानेंट डिस्क है, तो मॉडल को कैश करें ताकि पुनः‑डाउनलोड से बचा जा सके
* **टेम्परेचर 0.7–0.9**: कम = अधिक सुसंगत, उच्च = अधिक अभिव्यक्तिपूर्ण/विविध
* **केवल अंग्रेज़ी**: वर्तमान में Dia अंग्रेज़ी पर केंद्रित है — बहुभाषी के लिए Qwen3-TTS गाइड देखें

## समस्याओं का निवारण

| समस्या                            | समाधान                                                                          |
| --------------------------------- | ------------------------------------------------------------------------------- |
| CUDA में आउट ऑफ मेमोरी            | उपयोग करें `model.to("cuda", torch_dtype=torch.float16)` आधा प्रिसिजन के लिए    |
| वक्ताओं की आवाज़ें समान लगती हैं  | प्रति वक्ता अधिक टेक्स्ट/संदर्भ जोड़ें; उच्च तापमान आज़माएँ                     |
| गैर-मौखिक संकेत अनदेखा हो रहे हैं | सुनिश्चित करें कि सही फ़ॉर्मेट है: `(हँसता है)`, `(आह/आह भरता है)` कोष्ठकों में |
| ऑडियो गुणवत्ता कम है              | बढ़ाएँ `num_steps` यदि उपलब्ध पैरामीटर; सुनिश्चित करें 24kHz सैंपल रेट          |

## अधिक पढ़ने के लिए

* [Nari Labs GitHub](https://github.com/nari-labs/dia)
* [HuggingFace मॉडल](https://huggingface.co/nari-labs/Dia-1.6B)
* [तुलना: Dia बनाम ElevenLabs](https://nari-labs.github.io/dia/) — आधिकारिक डेमो पेज
