## نظرة عامة على المشروع
RealtimeTTS هي مكتبة Python متقدمة لتحويل النص إلى كلام (TTS) في الوقت الفعلي، مصممة خصيصًا للتطبيقات التي تتطلب زمن انتقال منخفض وجودة صوت عالية. يمكن للمكتبة تحويل تدفقات النصوص بسرعة إلى مخرجات صوتية عالية الجودة مع الحد الأدنى من التأخير، مما يجعلها مثالية لبناء مساعدين صوتيين وأنظمة حوار الذكاء الاصطناعي وأدوات إمكانية الوصول.
عنوان المشروع: https://github.com/KoljaB/RealtimeTTS
## الميزات الأساسية
تدعم RealtimeTTS مجموعة متنوعة من محركات TTS، مما يوفر خيارات غنية:
## طريقة التثبيت
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
: الحزمة الأساسية فقط (لتطوير محرك مخصص).## المكونات الأساسية
play_async()
التشغيل غير المحظور.play()
للتشغيل المحظور.يوفر وظائف رد اتصال غنية للمراقبة والتحكم:
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() # إيقاف
## تكوين متقدم
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 # رد اتصال عند جاهزية قطعة الصوت
)
## تكوين خاص بالمحرك
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
)
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
)
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:
# 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
## سيناريوهات التطبيق
## النظام البيئي للمشروع
RealtimeTTS هو جزء من نظام بيئي أكبر:
## معلومات الترخيص
المشروع نفسه مفتوح المصدر، ولكن يجب الانتباه إلى قيود الترخيص الخاصة بكل محرك:
## متطلبات النظام
## ملخص
RealtimeTTS هي مكتبة قوية ومصممة جيدًا لتحويل النص إلى كلام في الوقت الفعلي، وهي مناسبة للتطبيقات الحديثة التي تتطلب تركيبًا صوتيًا عالي الجودة ومنخفض التأخير. إن دعمها لمحركات متعددة وآلية معالجة الأخطاء القوية وخيارات التكوين الغنية تجعلها خيارًا مثاليًا لبناء تطبيقات صوتية احترافية. سواء كان مشروعًا شخصيًا أو تطبيقًا على مستوى المؤسسة، يمكن لـ RealtimeTTS توفير حلول موثوقة وفعالة.