# دليل إعداد تحويل النص إلى صوت (TTS) في الباك إند

## نظرة عامة

تم إضافة نظام تحويل النص إلى صوت (Text-to-Speech) في الباك إند لتحويل نصوص الدروس إلى ملفات صوتية تلقائياً.

## كيفية العمل

1. **رفع ملف PDF أو نص** من لوحة الإدارة (Django Admin)
2. **استخراج النص** تلقائياً من PDF (إذا كان الملف PDF)
3. **تحويل النص إلى صوت** تلقائياً باستخدام gTTS (Google Text-to-Speech)
4. **حفظ الملف الصوتي** في قاعدة البيانات

## التثبيت

### 1. تثبيت المكتبات المطلوبة

```bash
pip install -r requirements.txt
```

المكتبات المطلوبة:
- `gtts>=2.5.0` - Google Text-to-Speech (أفضل للعربية)
- `PyPDF2>=3.0.0` - لاستخراج النص من PDF
- `pdfplumber>=0.10.0` - لاستخراج النص من PDF (محسن للعربية)
- `pydub>=0.25.0` - لدمج الملفات الصوتية

### 2. التأكد من تثبيت FFmpeg (لدمج الملفات الصوتية)

**Windows:**
- تحميل من: https://ffmpeg.org/download.html
- إضافة إلى PATH

**Linux:**
```bash
sudo apt-get install ffmpeg
```

**Mac:**
```bash
brew install ffmpeg
```

## الاستخدام

### في لوحة الإدارة (Django Admin)

1. افتح لوحة الإدارة: `http://127.0.0.1:8000/admin/`
2. اذهب إلى **Lessons** (الدروس)
3. أضف درس جديد أو عدل درس موجود
4. اختر أحد الخيارات التالية:
   - **رفع ملف PDF**: اختر ملف PDF من حقل `pdf_file`
   - **إدخال نص مباشر**: اكتب النص في حقل `text_content`
5. احفظ الدرس
6. النظام سيقوم تلقائياً بـ:
   - استخراج النص من PDF (إذا كان الملف PDF)
   - تحويل النص إلى صوت
   - حفظ الملف الصوتي في `audio_file`

### الحقول المتاحة

- **pdf_file**: ملف PDF (سيتم استخراج النص منه تلقائياً)
- **text_content**: نص مباشر (يمكن كتابته مباشرة)
- **transcribed_text**: النص المستخرج (يتم ملؤه تلقائياً)
- **audio_file**: الملف الصوتي (يتم إنشاؤه تلقائياً)

## ملاحظات مهمة

1. **الإنترنت مطلوب**: gTTS يحتاج اتصال بالإنترنت لتحويل النص إلى صوت
2. **الحد الأقصى للنص**: gTTS يدعم حتى ~5000 حرف لكل طلب. النصوص الأطول سيتم تقسيمها تلقائياً ودمجها
3. **جودة الصوت**: gTTS يوفر جودة صوت جيدة للعربية
4. **الوقت**: التحويل قد يستغرق بعض الوقت حسب طول النص

## استكشاف الأخطاء

### المشكلة: "gTTS غير مثبت"
**الحل:** 
```bash
pip install gtts
```

### المشكلة: "فشل تحويل النص إلى صوت"
**التحقق من:**
- اتصال الإنترنت
- صحة النص (غير فارغ)
- وجود مساحة كافية على القرص

### المشكلة: "فشل دمج الملفات الصوتية"
**الحل:** 
- تثبيت FFmpeg
- التأكد من تثبيت `pydub`

## البدائل

يمكن استخدام `pyttsx3` بدلاً من `gTTS` (لا يحتاج إنترنت، لكن جودة الصوت أقل للعربية):

```python
# في signals.py
TTSService.convert_text_to_speech(
    instance.transcribed_text,
    output_path=temp_audio_path,
    use_gtts=False  # استخدام pyttsx3
)
```
