Skip to main content

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)

نمونه ها :

from py_persian_tts import ChatVoice



chat = ChatVoice(
    api_key="",
    base_url= "https://api.gapgpt.app/v1",
    model= "gapgpt-qwen-3.5",
    
)




chat.ask("سلام خوبی چه خبر",voice="man4")

نصب

pip install --upgrade  py-persian-tts 

Metadata

Release files for py-persian-tts 3.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-persian-tts 3.0.2
File Size Uploaded Provenance Actions
py_persian_tts-3.0.2.tar.gz 10.8 kB Without provenance Details for py_persian_tts-3.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for py-persian-tts 3.0.2
File Interpreter ABI Platform Actions
py_persian_tts-3.0.2-py3-none-any.whl Python 3 none any Details for py_persian_tts-3.0.2-py3-none-any.whl

Total release size: 20.9 kB

Release files / py_persian_tts-3.0.2.tar.gz

Download URL py_persian_tts-3.0.2.tar.gz
Size 10.8 kB
Tags Source
SHA-256 checksum
How to use checksums
44e7c8e11819a44dddf608480d51441c5606959e67c64cf13ab99c3827e0a972
BLAKE2b-256 checksum
How to use checksums
cdb410d1e63dea44878d3bd02781679f0c0cbbe0eae5103773272204badf958e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / py_persian_tts-3.0.2-py3-none-any.whl

Download URL py_persian_tts-3.0.2-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a0c85d4c0390814eff35a7eb34a3b303d2970782528b57952fe5240fc74ee49
BLAKE2b-256 checksum
How to use checksums
30b2877e6c9709eab793ecc0a2242ee01d359aae4e3fcb8f90ec1e49559eef72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Security for py-persian-tts 3.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page