Skip to main content

کتابخانه تبدیل متن به گفتار فارسی با پشتیبانی از چندین شخصیت صوتی

Project description

PersianTTS

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

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


نصب

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


لیست شخصیت‌ها (Voices)

کلید شخصیت نام شخصیت
woman1 🌼 شیوا
woman2 🌷 مهتاب
woman3 🌺 نگار
woman4 🌹 ریما
man1 🌠 راد
man2 🌠 پیام
man3 🚀 بهمن
man4 🚀 برنا
man5 🚀 برنا-1
man6 🦁 کیان
man7 💧 نیما
man8 ⚡️ آریا
boy1 🌟 آرش
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 را کنترل کرده و فایل صوتی تولید کند.


🔹 نکات مهم:

  • اگر ChromeDriver یا گوگل کروم نصب نباشد، هنگام فراخوانی کلاس TextToSpeech با خطا مواجه می‌شوید.
  • توصیه می‌شود از WebDriver Manager برای مدیریت خودکار ChromeDriver استفاده کنید تا نسخه مناسب به صورت خودکار دانلود شود.
  • مسیر پیش‌فرض دانلود فایل‌های صوتی، پوشه‌ی downloads در مسیر پروژه است.
  • این روش نیاز به اینترنت دارد، زیرا متن به وب‌سایت TTS ارسال می‌شود.

🔹 نصب ChromeDriver

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

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

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

from py_persian_tts import ChatVoice

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

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

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

نصب

pip install --upgrade  py-persian-tts 

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_persian_tts-3.0.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_persian_tts-3.0.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file py_persian_tts-3.0.0.tar.gz.

File metadata

  • Download URL: py_persian_tts-3.0.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for py_persian_tts-3.0.0.tar.gz
Algorithm Hash digest
SHA256 da7b41393f29a2d47473a52d9bb8492c82f5c55be66af71a9f1e561d416dd9c6
MD5 ac78c934e5900d6dd77a4ea569130a72
BLAKE2b-256 db688302c7722f46ce56ecb44f0824e1afe692bdfb81691e8d341f3a5b595a64

See more details on using hashes here.

File details

Details for the file py_persian_tts-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: py_persian_tts-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for py_persian_tts-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe55c96fa09bfb48b621031fb57487ea15919305dbe5057d842d48bc7f9d1dbd
MD5 4f0bf57c1f5d091e0e03f5b020fdad49
BLAKE2b-256 98dacbea6a598ad2ecf0076a2f13f345526e10db7ecc2e91f384d0dd909853f7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page