Home
Login

مكتبة بايثون متقدمة لتحويل النص إلى كلام في الوقت الفعلي، تدعم محركات TTS متعددة، مع زمن انتقال منخفض وجودة صوت عالية.

MITPython 3.2kKoljaBRealtimeTTS Last Updated: 2025-06-17

مشروع RealtimeTTS: شرح تفصيلي

## نظرة عامة على المشروع

RealtimeTTS هي مكتبة Python متقدمة لتحويل النص إلى كلام (TTS) في الوقت الفعلي، مصممة خصيصًا للتطبيقات التي تتطلب زمن انتقال منخفض وجودة صوت عالية. يمكن للمكتبة تحويل تدفقات النصوص بسرعة إلى مخرجات صوتية عالية الجودة مع الحد الأدنى من التأخير، مما يجعلها مثالية لبناء مساعدين صوتيين وأنظمة حوار الذكاء الاصطناعي وأدوات إمكانية الوصول.

عنوان المشروع: https://github.com/KoljaB/RealtimeTTS

## الميزات الأساسية

1. معالجة بزمن انتقال منخفض

  • تحويل النص إلى كلام شبه فوري: تضمن عمليات المعالجة المحسّنة الحد الأدنى من التأخير.
  • متوافقة مع مخرجات نماذج اللغة الكبيرة (LLM): يمكنها معالجة المخرجات المتدفقة من نماذج اللغة الكبيرة مباشرة.
  • معالجة تدفقية في الوقت الفعلي: تدعم المعالجة في الوقت الفعلي على مستوى الأحرف والجمل.

2. مخرجات صوتية عالية الجودة

  • صوت واضح وطبيعي: توليد صوت طبيعي قريب من صوت الإنسان.
  • دعم تنسيقات صوتية متعددة: تدعم مجموعة متنوعة من تنسيقات الإخراج الصوتي.
  • معلمات صوتية قابلة للتكوين: يمكن تعديل معدل العينة ومعدل البت وغيرها من المعلمات.

3. دعم محركات متعددة

تدعم RealtimeTTS مجموعة متنوعة من محركات TTS، مما يوفر خيارات غنية:

محركات سحابية 🌐

  • OpenAIEngine: خدمة TTS من OpenAI، توفر 6 أصوات عالية الجودة.
  • AzureEngine: خدمة Azure Speech من Microsoft، توفر 500 ألف حرف مجاني شهريًا.
  • ElevenlabsEngine: جودة صوت عالية، توفر خيارات صوتية غنية.
  • GTTSEngine: خدمة Google Translate TTS مجانية، لا تتطلب وحدة معالجة رسومات (GPU).
  • EdgeEngine: خدمة Microsoft Edge TTS مجانية.

محركات محلية 🏠

  • CoquiEngine: نظام عصبي عالي الجودة لتحويل النص إلى كلام، يدعم المعالجة المحلية واستنساخ الصوت.
  • ParlerEngine: نظام عصبي محلي لتحويل النص إلى كلام، مناسب لوحدات معالجة الرسومات المتطورة.
  • SystemEngine: نظام TTS مدمج، إعداد سريع.
  • PiperEngine: نظام TTS سريع للغاية، يمكن تشغيله حتى على Raspberry Pi.
  • StyleTTS2Engine: توليد صوت مُنمّط.
  • KokoroEngine: محرك جديد يدعم لغات متعددة.
  • OrpheusEngine: خيار محرك تمت إضافته مؤخرًا.

4. دعم لغات متعددة

  • دعم توليد الصوت بلغات متعددة.
  • تقسيم ذكي للجمل وكشف اللغة.
  • معلمات خاصة باللغة قابلة للتكوين.

5. المتانة والموثوقية

  • آلية تجاوز الفشل: التبديل تلقائيًا إلى محرك احتياطي عند وجود مشكلة في محرك ما.
  • ضمان التشغيل المستمر: ضمان أداء وموثوقية متسقين لحالات الاستخدام الهامة والمهنية.
  • معالجة الأخطاء: معالجة أخطاء شاملة وآليات استعادة.

## طريقة التثبيت

التثبيت الموصى به (النسخة الكاملة)

pip install -U realtimetts[all]

التثبيت المخصص

يمكنك اختيار دعم محركات معينة حسب الحاجة:

# نظام TTS فقط
pip install realtimetts[system]

# دعم Azure
pip install realtimetts[azure]

# مجموعة محركات متعددة
pip install realtimetts[azure,elevenlabs,openai]

خيارات التثبيت المتاحة

  • all: تثبيت كامل، يدعم جميع المحركات.
  • system: نظام TTS محلي (pyttsx3).
  • azure: دعم خدمة Azure Speech.
  • elevenlabs: تكامل ElevenLabs API.
  • openai: خدمة OpenAI TTS.
  • gtts: Google Text-to-Speech.
  • edge: Microsoft Edge TTS.
  • coqui: محرك Coqui TTS.
  • minimal: الحزمة الأساسية فقط (لتطوير محرك مخصص).

## المكونات الأساسية

1. معالجة تدفق النص

  • الكشف عن حدود الجملة: دعم NLTK و Stanza tokenizers.
  • تقسيم ذكي: تقسيم النص بناءً على علامات الترقيم والقواعد اللغوية.
  • معالجة تدفقية: دعم تكرار الأحرف والمولدات.

2. إدارة تدفق الصوت

  • تشغيل غير متزامن: تدعم طريقة play_async() التشغيل غير المحظور.
  • تشغيل متزامن: تستخدم طريقة play() للتشغيل المحظور.
  • التحكم في التدفق: دعم عمليات الإيقاف المؤقت والاستئناف والإيقاف.

3. نظام ردود الاتصال

يوفر وظائف رد اتصال غنية للمراقبة والتحكم:

  • on_text_stream_start(): يتم تشغيله عند بدء تدفق النص.
  • on_text_stream_stop(): يتم تشغيله عند انتهاء تدفق النص.
  • on_audio_stream_start(): يتم تشغيله عند بدء تشغيل الصوت.
  • on_audio_stream_stop(): يتم تشغيله عند انتهاء تشغيل الصوت.
  • on_character(): يتم تشغيله عند معالجة كل حرف.
  • on_word(): مزامنة الوقت على مستوى الكلمة (يدعم محركات Azure و Kokoro).

## أمثلة الاستخدام الأساسية

استخدام بسيط

from RealtimeTTS import TextToAudioStream, SystemEngine

# إنشاء المحرك والتدفق
engine = SystemEngine()
stream = TextToAudioStream(engine)

# إدخال النص وتشغيله
stream.feed("Hello world! How are you today?")
stream.play_async()

معالجة النص المتدفق

# معالجة سلسلة نصية
stream.feed("Hello, this is a sentence.")

# معالجة مولد (مناسب لمخرجات LLM)
def write(prompt: str):
    for chunk in openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}],
        stream=True
    ):
        if (text_chunk := chunk["choices"][0]["delta"].get("content")) is not None:
            yield text_chunk

text_stream = write("A three-sentence relaxing speech.")
stream.feed(text_stream)

# معالجة مكرر الأحرف
char_iterator = iter("Streaming this character by character.")
stream.feed(char_iterator)

التحكم في التشغيل

# تشغيل غير متزامن
stream.play_async()
while stream.is_playing():
    time.sleep(0.1)

# تشغيل متزامن
stream.play()

# عمليات التحكم
stream.pause()   # إيقاف مؤقت
stream.resume()  # استئناف
stream.stop()    # إيقاف

## تكوين متقدم

معلمات TextToAudioStream

stream = TextToAudioStream(
    engine=engine,                    # محرك TTS
    on_text_stream_start=callback,    # رد اتصال عند بدء تدفق النص
    on_audio_stream_start=callback,   # رد اتصال عند بدء تدفق الصوت
    output_device_index=None,         # جهاز إخراج الصوت
    tokenizer="nltk",                # اختيار محلل الكلمات
    language="en",                   # رمز اللغة
    muted=False,                     # كتم الصوت أم لا
    level=logging.WARNING            # مستوى التسجيل
)

معلمات التشغيل

stream.play(
    fast_sentence_fragment=True,      # معالجة سريعة لأجزاء الجملة
    buffer_threshold_seconds=0.0,     # عتبة التخزين المؤقت
    minimum_sentence_length=10,       # الحد الأدنى لطول الجملة
    log_synthesized_text=False,       # تسجيل النص المركب
    reset_generated_text=True,        # إعادة تعيين النص الذي تم إنشاؤه
    output_wavfile=None,             # حفظ في ملف WAV
    on_sentence_synthesized=callback, # رد اتصال عند اكتمال تركيب الجملة
    before_sentence_synthesized=callback, # رد اتصال قبل تركيب الجملة
    on_audio_chunk=callback          # رد اتصال عند جاهزية قطعة الصوت
)

## تكوين خاص بالمحرك

محرك OpenAI

from RealtimeTTS import OpenAIEngine

engine = OpenAIEngine(
    api_key="your-api-key",  # أو قم بتعيين متغير البيئة OPENAI_API_KEY
    voice="alloy",           # اختياري: alloy, echo, fable, onyx, nova, shimmer
    model="tts-1"           # أو tts-1-hd
)

محرك Azure

from RealtimeTTS import AzureEngine

engine = AzureEngine(
    speech_key="your-speech-key",    # أو قم بتعيين متغير البيئة AZURE_SPEECH_KEY
    service_region="your-region",    # على سبيل المثال: "eastus"
    voice_name="en-US-AriaNeural"   # اسم صوت Azure
)

محرك Coqui (استنساخ الصوت)

from RealtimeTTS import CoquiEngine

engine = CoquiEngine(
    voice="path/to/voice/sample.wav",  # ملف مصدر استنساخ الصوت
    language="en"                      # رمز اللغة
)

## ملفات الاختبار

يوفر المشروع أمثلة اختبار غنية:

  • simple_test.py: عرض توضيحي أساسي لـ "Hello World".
  • complex_test.py: عرض توضيحي كامل الميزات.
  • coqui_test.py: اختبار محرك Coqui TTS المحلي.
  • translator.py: ترجمة متعددة اللغات في الوقت الفعلي (تتطلب تثبيت openai realtimestt).
  • openai_voice_interface.py: واجهة OpenAI API المنشطة بالصوت.
  • advanced_talk.py: نظام حوار متقدم.
  • minimalistic_talkbot.py: روبوت محادثة بسيط مكون من 20 سطرًا من التعليمات البرمجية.
  • test_callbacks.py: اختبار وظائف رد الاتصال والتأخير.

## دعم CUDA

للحصول على أداء أفضل، خاصة عند استخدام المحركات العصبية المحلية، يوصى بتثبيت دعم CUDA:

خطوات التثبيت

  1. تثبيت NVIDIA CUDA Toolkit (الإصدار 11.8 أو 12.X)
  2. تثبيت NVIDIA cuDNN
  3. تثبيت ffmpeg
  4. تثبيت PyTorch الذي يدعم CUDA:
# CUDA 11.8
pip install torch==2.5.1+cu118 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu118

# CUDA 12.X
pip install torch==2.5.1+cu121 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu121

## سيناريوهات التطبيق

1. مساعدو الذكاء الاصطناعي وروبوتات المحادثة

  • الاستجابة لاستفسارات المستخدم في الوقت الفعلي.
  • تجربة محادثة طبيعية.
  • دعم لغات متعددة.

2. أدوات إمكانية الوصول

  • قارئات الشاشة.
  • مساعدات الإعاقة البصرية.
  • أدوات المساعدة التعليمية.

3. إنشاء المحتوى

  • إنتاج البودكاست.
  • الكتب الصوتية.
  • المحتوى التعليمي.

4. خدمة العملاء

  • أنظمة خدمة العملاء الآلية.
  • روبوتات الهاتف.
  • خدمات الترجمة في الوقت الفعلي.

5. الألعاب والترفيه

  • الصوت داخل اللعبة.
  • دبلجة الشخصيات الافتراضية.
  • تطبيقات الترفيه التفاعلية.

## النظام البيئي للمشروع

RealtimeTTS هو جزء من نظام بيئي أكبر:

  • RealtimeSTT: مكتبة مصاحبة لتحويل الكلام إلى نص، يمكن دمجها لإنشاء نظام معالجة صوتية كامل في الوقت الفعلي.
  • Linguflex: المشروع الأصلي، مساعد ذكاء اصطناعي مفتوح المصدر قوي.
  • LocalAIVoiceChat: نظام حوار صوتي للذكاء الاصطناعي المحلي يعتمد على نموذج Zephyr 7B.

## معلومات الترخيص

المشروع نفسه مفتوح المصدر، ولكن يجب الانتباه إلى قيود الترخيص الخاصة بكل محرك:

  • محركات مفتوحة المصدر: SystemEngine و GTTSEngine (ترخيص MIT).
  • محركات ذات قيود تجارية: CoquiEngine و ElevenlabsEngine و AzureEngine (مجانية للاستخدام غير التجاري).
  • خدمات مدفوعة: يتطلب OpenAI مفتاح API وخطة مدفوعة.

## متطلبات النظام

  • إصدار Python: >= 3.9, < 3.13
  • نظام التشغيل: Windows, macOS, Linux
  • التبعيات: PyAudio, pyttsx3, pydub, إلخ.
  • دعم GPU: يوصى ببطاقة NVIDIA الرسومية للمحركات العصبية المحلية.

## ملخص

RealtimeTTS هي مكتبة قوية ومصممة جيدًا لتحويل النص إلى كلام في الوقت الفعلي، وهي مناسبة للتطبيقات الحديثة التي تتطلب تركيبًا صوتيًا عالي الجودة ومنخفض التأخير. إن دعمها لمحركات متعددة وآلية معالجة الأخطاء القوية وخيارات التكوين الغنية تجعلها خيارًا مثاليًا لبناء تطبيقات صوتية احترافية. سواء كان مشروعًا شخصيًا أو تطبيقًا على مستوى المؤسسة، يمكن لـ RealtimeTTS توفير حلول موثوقة وفعالة.

Star History Chart