Metadata-Version: 2.4
Name: py_persian_tts
Version: 2.1.0
Summary: کتابخانه تبدیل متن به گفتار فارسی با پشتیبانی از چندین شخصیت صوتی
Home-page: https://github.com/amirhossinpython/py_persian_tts
Author: AmirhosseinPython
Author-email: amirhossinpython03@gmail.com
Keywords: persian tts text-to-speech farsi
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Natural Language :: Persian
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.31.0
Requires-Dist: aiohttp>=3.9.0
Requires-Dist: gtts>=2.3.0
Requires-Dist: selenium
Requires-Dist: openai
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# PersianTTS

یک کتابخانه فارسی برای تبدیل متن به صدا با شخصیت‌های مختلف.

این کتابخانه به شما امکان می‌دهد متن فارسی را با صدای شخصیت‌های متفاوت به فایل صوتی تبدیل کنید و آن را ذخیره نمایید.

---

## نصب

برای نصب کتابخانه، ابتدا اطمینان حاصل کنید که Python 3.8 یا بالاتر دارید و سپس از pip استفاده کنید:


---
## لیست شخصیت‌ها (Voices)
| کلید شخصیت | نام شخصیت |
| ---------- | --------- |
| woman1     | 🌼 شیوا   |
| woman2     | 🌷 مهتاب  |
| woman3     | 🌺 نگار   |
| woman4     | 🌹 ریما   |
| man1       | 🌠 راد    |
| man2       | 🌠 پیام   |
| man3       | 🚀 بهمن   |
| man4       | 🚀 برنا   |
| man5       | 🚀 برنا-1 |
| man6       | 🦁 کیان   |
| man7       | 💧 نیما   |
| man8       | ⚡️ آریا   |
| boy1       | 🌟 آرش    |



```python
from py_persian_tts import PersianTTS, list_voices
import asyncio

async def main():
    tts = PersianTTS(default_voice="man1")
    
    # نمایش شخصیت‌ها
    print("شخصیت‌ها:", list_voices())
    
    # تبدیل متن به صدا (نسخه async)
    await tts.speak_async("سلام این یک تست است.", voice="man2", filename="tewst.wav")
    print("عملیات با موفقیت انجام شد")



# اجرای تابع async
if __name__ == "__main__":
    asyncio.run(main())

import asyncio
from py_persian_tts import PersianTTS

async def main():
    tts = PersianTTS(default_voice="man1", rate_limit=0.5)  # هر 2 ثانیه یک درخواست

    texts = [
        "سلام این یک تست است",
        "این هم متن دوم برای تست صف TTS.",
        
    ]

    tasks = []
    for i, text in enumerate(texts):
        filename = f"tts_queue_{i+1}.wav"
        # اضافه کردن هر متن به صف و گرفتن Future
        tasks.append(tts.speak_async(text, filename=filename))

    # اجرای همه و گرفتن مسیر فایل‌ها
    results = await asyncio.gather(*tasks)
    for path in results:
        print("فایل صوتی ذخیره شد:", path)

    # پایان کار و توقف پردازش صف
    await tts.shutdown()

# اجرای مثال
asyncio.run(main())
```

## ⚠️ هشدار مهم درباره کلاس `TextToSpeech`

کلاس `TextToSpeech` در این کتابخانه **با استفاده از Selenium پیاده‌سازی شده است** و برای کارکرد صحیح نیاز دارد:

1. **Google Chrome** نصب شده باشد.  
2. **ChromeDriver** مناسب با نسخه کروم روی سیستم شما موجود باشد.

---

### 🔹 ChromeDriver چیست؟

**ChromeDriver** یک برنامه‌ی کمکی است که به Selenium اجازه می‌دهد با مرورگر Google Chrome تعامل کند.  
به عبارت دیگر، Selenium خودش مرورگر را اجرا نمی‌کند؛ ChromeDriver رابط بین کد پایتون شما و مرورگر کروم است.  
بدون ChromeDriver، کلاس `TextToSpeech` نمی‌تواند سایت [fa.text-to-speech.online](https://fa.text-to-speech.online/) را کنترل کرده و فایل صوتی تولید کند.

---

### 🔹 نکات مهم:

- اگر ChromeDriver یا گوگل کروم نصب نباشد، هنگام فراخوانی کلاس `TextToSpeech` با خطا مواجه می‌شوید.
- توصیه می‌شود از [WebDriver Manager](https://pypi.org/project/webdriver-manager/) برای مدیریت خودکار ChromeDriver استفاده کنید تا نسخه مناسب به صورت خودکار دانلود شود.
- مسیر پیش‌فرض دانلود فایل‌های صوتی، پوشه‌ی `downloads` در مسیر پروژه است.
- این روش **نیاز به اینترنت دارد**، زیرا متن به وب‌سایت TTS ارسال می‌شود.

---

### 🔹 نصب ChromeDriver

1. ابتدا مطمئن شوید Google Chrome روی سیستم شما نصب است.
2. نسخه مرورگر خود را بررسی کنید (مثلاً Chrome → Help → About Google Chrome).  
3. ChromeDriver مناسب همان نسخه را از لینک زیر دانلود کنید:  
   [https://chromedriver.chromium.org/downloads](https://chromedriver.chromium.org/downloads)
4. فایل ChromeDriver دانلود شده را در مسیر PATH سیستم یا یک مسیر دلخواه قرار دهید.  
5. حالا کلاس `TextToSpeech` بدون مشکل کار خواهد کرد.

---

### 🔹 مثال استفاده از کلاس

```python
from  py_persian_tts import TextToSpeech


tts = TextToSpeech()


file_path = tts.speak("سلام دنیا", gender="male")


tts.close()



```

# ChatVoice - دستیار صوتی فارسی با هوش مصنوعی
یک کلاس برای تبدیل متن به ویس وپاسخ آن به صورت صورت است که میتونید به طور چت ویس باهاش حرف بزنید  وفقط به صورت فارسی فقظ پاسخ میده


## ویژگی‌ها

- گرفتن پاسخ کوتاه و محاوره‌ای از هوش مصنوعی (Liara AI)
- تبدیل خودکار پاسخ به ویس فارسی
- ذخیره خودکار فایل صوتی با نام امن و قابل شناسایی
- انتخاب صدای شخصیت‌ها (woman1، man1، boy1، و غیره)
- پاسخ‌ها کوتاه و مناسب خواندن با صدا (حداکثر 2–3 جمله)

---

## مثال کلاس ChatVoice

```python
from py_persian_tts import ChatVoice

# ساخت کلاس با API key و صدای مورد نظر
chat = ChatVoice(
    api_key="کلید_تو_اینجا",
    voice="woman2"
)

# پرسش و دریافت فایل صوتی
audio_file = chat.ask("سلام خودتو معرفی کن؟")

print("فایل صوتی ساخته شد:", audio_file)


```

## نصب

```bash
pip install --upgrade  py-persian-tts 
