انتقل إلى المحتوى الرئيسي

كيفية استخدام الملحق

يقوم ملحق Runtime Text To Speech بتحويل النص إلى كلام باستخدام نماذج صوتية قابلة للتنزيل. تتم إدارة هذه النماذج في إعدادات الملحق داخل المحرر، يتم تنزيلها وتعبئتها للاستخدام أثناء التشغيل. اتبع الخطوات أدناه للبدء.

جانب المحرر

قم بتنزيل نماذج الصوت المناسبة لمشروعك كما هو موضح هنا. يمكنك تنزيل عدة نماذج صوتية في نفس الوقت.

جانب التشغيل

قم بإنشاء المزج الصوتي باستخدام دالة CreateRuntimeTextToSpeech. تأكد من الحفاظ على مرجع له (مثل متغير منفصل في Blueprints أو UPROPERTY في ++C) لمنعه من جمع القمامة.

مثال لإنشاء مزج صوتي Runtime Text To Speech في Blueprints

توليف الكلام

يقدم البرنامج المساعد وضعين لتوليف النص إلى كلام:

  1. تحويل النص إلى كلام العادي: يقوم بتوليف النص بالكامل وإرجاع الصوت المكتمل عند الانتهاء
  2. تحويل النص إلى كلام المتدفق: يوفر مقاطع صوتية أثناء توليدها، مما يسمح بالمعالجة في الوقت الفعلي

يدعم كل وضع طريقتين لاختيار نماذج الصوت:

  • بالاسم: حدد نموذج صوت باسمه (موصى به لـ UE 5.4+)
  • بالكائن: حدد نموذج صوت بالإشارة المباشرة (موصى به لـ UE 5.3 والإصدارات الأقدم)

تحويل النص إلى كلام العادي

بالاسم

تكون وظيفة Text To Speech (By Name) أكثر ملاءمة في Blueprints بدءًا من UE 5.4. تتيح لك اختيار نماذج الصوت من قائمة منسدلة للنماذج التي تم تنزيلها. في إصدارات UE الأقدم من 5.3، لا تظهر هذه القائمة المنسدلة، لذا إذا كنت تستخدم إصدارًا أقدم، فستحتاج إلى التكرار يدويًا عبر مصفوفة نماذج الصوت التي تم إرجاعها بواسطة GetDownloadedVoiceModels لتحديد النموذج الذي تحتاجه.

مثال لاستخدام Text To Speech بالاسم في Blueprints

حسب الكائن

تعمل وظيفة Text To Speech (By Object) عبر جميع إصدارات Unreal Engine ولكنها تعرض نماذج الصوت كقائمة منسدلة من مراجع الأصول، مما يجعلها أقل سهولة. هذه الطريقة مناسبة لـ UE 5.3 والإصدارات الأقدم، أو إذا كان مشروعك يتطلب مرجعًا مباشرًا إلى أصل نموذج صوتي لأي سبب كان.

مثال على استخدام Text To Speech حسب الكائن في Blueprints

إذا كنت قد قمت بتنزيل النماذج ولكن لا يمكنك رؤيتها، افتح القائمة المنسدلة Voice Model، انقر على الإعدادات (أيقونة الترس)، وقم بتمكين كل من Show Plugin Content و Show Engine Content لجعل النماذج مرئية.

تحويل النص إلى كلام بشكل متدفق

للنصوص الطويلة أو عندما تريد معالجة بيانات الصوت في الوقت الفعلي أثناء توليدها، يمكنك استخدام الإصدارات المتدفقة من وظائف تحويل النص إلى كلام:

  • Streaming Text To Speech (By Name) (StreamingTextToSpeechByName في ++C)
  • Streaming Text To Speech (By Object) (StreamingTextToSpeechByObject في ++C)

توفر هذه الوظائف بيانات الصوت على شكل قطع أثناء توليدها، مما يسمح بالمعالجة الفورية دون الانتظار حتى اكتمال التوليد بالكامل. هذا مفيد لتطبيقات مختلفة مثل تشغيل الصوت في الوقت الفعلي، التصور الحي، أو أي سيناريو تحتاج فيه إلى معالجة بيانات الكلام بشكل تدريجي.

التدفق حسب الاسم

تعمل وظيفة Streaming Text To Speech (By Name) بشكل مشابه للنسخة العادية ولكنها توفر الصوت على شكل قطع من خلال المفوض On Speech Chunk.

مثال لاستخدام Streaming Text To Speech by Name في Blueprints

البث حسب الكائن

توفر دالة Streaming Text To Speech (By Object) نفس وظيفة البث ولكنها تأخذ مرجع كائن نموذج صوتي.

مثال على استخدام Streaming Text To Speech by Object في Blueprints

تشغيل الصوت

لتحويل النص إلى كلام العادي (غير المتدفق)، يوفر المفوض On Speech Result الصوت المُركب كبيانات PCM بتنسيق float (كمصفوفة بايت في Blueprints أو TArray<uint8> في C++)، بالإضافة إلى Sample Rate و Num Of Channels.

للتشغيل، يُوصى باستخدام ملحق Runtime Audio Importer لتحويل بيانات الصوت الخام إلى موجة صوت قابلة للتشغيل.

إليك مثالًا لكيفية ظهور عقد Blueprint لتركيب النص وتشغيل الصوت (عقد قابلة للنسخ):

إلغاء تحويل النص إلى كلام

يمكنك إلغاء عملية تحويل النص إلى كلام الجارية في أي وقت عن طريق استدعاء الدالة CancelSpeechSynthesis على مثيل المولّف الخاص بك:

إلغاء تحويل النص إلى كلام في Blueprints

عند إلغاء عملية التوليف:

  • ستتوقف عملية التوليف في أسرع وقت ممكن
  • سيتم إنهاء أي استدعاءات جارية
  • سيتم استدعاء مندوب الإكمال مع bSuccess = false ورسالة خطأ تشير إلى إلغاء التوليف
  • سيتم تنظيف أي موارد مخصصة للتوليف بشكل صحيح

هذا مفيد بشكل خاص للنصوص الطويلة أو عندما تحتاج إلى مقاطعة التشغيل لبدء توليف جديد.

اختيار المتحدث

تقبل وظيفتا Text To Speech معلمة اختيارية لمعرف المتحدث، وهي مفيدة عند العمل مع نماذج الأصوات التي تدعم متحدثين متعددين. يمكنك استخدام وظائف GetSpeakerCountFromVoiceModel أو GetSpeakerCountFromModelName للتحقق مما إذا كان نموذج الصوت المختار يدعم متحدثين متعددين. إذا توفر متحدثون متعددون، ما عليك سوى تحديد معرف المتحدث المطلوب عند استدعاء وظائف Text To Speech. بعض نماذج الأصوات توفر تنوعًا واسعًا - على سبيل المثال، English LibriTTS يتضمن أكثر من 900 متحدث مختلف للاختيار من بينهم.

يوفر ملحق Runtime Audio Importer أيضًا ميزات إضافية مثل تصدير بيانات الصوت إلى ملف، أو تمريرها إلى SoundCue وMetaSound وغير ذلك. لمزيد من التفاصيل، راجع وثائق Runtime Audio Importer.