دليل معالجة الصوت
يغطي هذا الدليل كيفية إعداد طرق إدخال صوتية مختلفة لتغذية بيانات الصوت إلى مولدات مزامنة الشفاه الخاصة بك. تأكد من إكمال دليل الإعداد قبل المتابعة.
معالجة إدخال الصوت
تحتاج إلى إعداد طريقة لمعالجة إدخال الصوت. هناك عدة طرق للقيام بذلك اعتمادًا على مصدر الصوت الخاص بك.
- الميكروفون (في الوقت الفعلي)
- الميكروفون (إعادة التشغيل)
- Text-to-Speech (محلي)
- تحويل النص إلى كلام (واجهات برمجة التطبيقات الخارجية)
- من ملف/مخزن مؤقت للصوت
- مخزن مؤقت للصوت المتدفق
يقوم هذا النهج بأداء مزامنة الشفاه في الوقت الفعلي أثناء التحدث في الميكروفون:
- النموذج القياسي
- النموذج الواقعي
- النموذج الواقعي المدعوم بالمزاج
- أنشئ موجة صوت قابلة للالتقاط باستخدام Runtime Audio Importer
- قبل البدء في التقاط الصوت، قم بالربط مع المفوض
OnPopulateAudioData
- في الدالة المرتبطة، استدعِ
ProcessAudioData
من مُولد الفيسيمات الخاص بك Runtime Viseme Generator - ابدأ في التقاط الصوت من الميكروفون
يستخدم النموذج الواقعي نفس سير عمل معالجة الصوت مثل النموذج القياسي، ولكن مع المتغير RealisticLipSyncGenerator
بدلاً من VisemeGenerator
.
يستخدم النموذج المدعوم بالمزاج نفس سير عمل معالجة الصوت، ولكن مع المتغير MoodMetaHumanLipSyncGenerator
وقدرات التهيئة الإضافية للمزاج.
هذا الأسلوب يلتقط الصوت من الميكروفون، ثم يعيد تشغيله مع مزامنة الشفاه:
- النموذج القياسي
- النموذج الواقعي
- النموذج الواقعي المدعوم بالمزاج
- أنشئ Capturable Sound Wave باستخدام Runtime Audio Importer
- ابدأ في التقاط الصوت من الميكروفون
- قبل تشغيل Capturable Sound Wave، اربط بـ
OnGeneratePCMData
delegate - في الدالة المرتبطة، استدعِ
ProcessAudioData
من Runtime Viseme Generator الخاص بك
يستخدم النموذج الواقعي نفس سير عمل معالجة الصوت مثل النموذج القياسي، ولكن مع متغير RealisticLipSyncGenerator
بدلاً من VisemeGenerator
.
يستخدم النموذج المدعوم بالمزاج نفس سير عمل معالجة الصوت، ولكن مع متغير MoodMetaHumanLipSyncGenerator
وقدرات تكوين مزاج إضافية.
- عادي
- Streaming
تقوم هذه الطريقة بتوليف الكلام من النص باستخدام Text-to-Speech المحلي وتنفيذ مزامنة الشفاه:
- النموذج القياسي
- النموذج الواقعي
- النموذج الواقعي المدعوم بالمزاج
- استخدم Runtime Text To Speech لتوليد الكلام من النص
- استخدم Runtime Audio Importer لاستيراد الصوت المُولَّف
- قبل تشغيل الموجة الصوتية المستوردة، اربط بمفوض
OnGeneratePCMData
الخاص بها - في الدالة المرتبطة، استدعِ
ProcessAudioData
من مُولِّد Viseme الخاص بك في Runtime
Text-to-Speech المحلي المقدم بواسطة إضافة Runtime Text To Speech غير مدعوم حاليًا مع النموذج الواقعي العادي بسبب تعارضات وقت تشغيل ONNX. لـ Text-to-Speech مع النموذج الواقعي العادي، فكر في:
- استخدام خدمات Text-to-Speech الخارجية (ElevenLabs، OpenAI، إلخ.)
- استخدام حلول Text-to-Speech محلية خارجية (Text-to-Speech قائم على Python، واجهات برمجة تطبيقات Text-to-Speech للنظام، أو حلول محلية أخرى غير تابعة لـ ONNX)
- استخدام النموذج القياسي أو النموذج الواقعي المدعوم بالمزاج بدلاً من ذلك، واللذان يدعمان إضافة Runtime Text To Speech
- استخدم Runtime Text To Speech لتوليد الكلام من النص
- استخدم Runtime Audio Importer لاستيراد الصوت المُولَّف
- قبل تشغيل الموجة الصوتية المستوردة، اربط بمفوض
OnGeneratePCMData
الخاص بها - في الدالة المرتبطة، استدعِ
ProcessAudioData
من مُولِّد مزامنة الشفاه المدعوم بالمزاج الخاص بك - اضبط إعدادات المزاج بناءً على محتوى النص أو التعبير العاطفي المطلوب
Text-to-Speech مع دمج المزاج:
- عيّن المشاعر المناسبة قبل أو أثناء توليد Text-to-Speech
- اضبط شدة المزاج لتتناسب مع النبرة العاطفية للنص
- استخدم مشاعر مختلفة لأقسام مختلفة من محتوى النص الطويل
هذا النهج يستخدم توليف الكلام من النص مع مزامنة الشفاه في الوقت الفعلي:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- استخدم Runtime Text To Speech لتوليد كلام متدفق من النص
- استخدم Runtime Audio Importer لاستيراد الصوت المُولَّف
- قبل تشغيل موجة الصوت المتدفقة، اربط بمفوض
OnGeneratePCMData
الخاص بها - في الدالة المرتبطة، استدعِ
ProcessAudioData
من مُولِّد Viseme الخاص بك في وقت التشغيل
TTS المحلي المقدم بواسطة إضافة Runtime Text To Speech غير مدعوم حاليًا مع النموذج الواقعي العادي بسبب تعارضات وقت تشغيل ONNX. لتوليف الكلام من النص مع النموذج الواقعي العادي، فكر في:
- استخدام خدمات TTS خارجية (ElevenLabs، OpenAI، إلخ)
- استخدام حلول TTS محلية خارجية (TTS قائم على Python، واجهات برمجة تطبيقات نظام TTS، أو حلول محلية أخرى غير تابعة لـ ONNX)
- استخدام النموذج القياسي أو النموذج الواقعي المدعوم بالمزاج بدلاً من ذلك، حيث يدعمان إضافة Runtime Text To Speech
- استخدم Runtime Text To Speech لتوليد كلام متدفق من النص
- استخدم Runtime Audio Importer لاستيراد الصوت المُولَّف
- قبل تشغيل موجة الصوت المتدفقة، اربط بمفوض
OnGeneratePCMData
الخاص بها - في الدالة المرتبطة، استدعِ
ProcessAudioData
من مُولِّد مزامنة الشفاه المدعوم بالمزاج الخاص بك - اضبط إعدادات المزاج ديناميكيًا أثناء التدفق إذا لزم الأمر
- عادي
- بث مباشر
تستخدم هذه الطريقة إضافة Runtime AI Chatbot Integrator لتوليد كلام مُركّب من خدمات الذكاء الاصطناعي (OpenAI أو ElevenLabs) وتنفيذ مزامنة الشفاه:
- النموذج القياسي
- النموذج الواقعي
- النموذج الواقعي المُمكن بالمزاج
- استخدم Runtime AI Chatbot Integrator لتوليد الكلام من النص باستخدام واجهات برمجة التطبيقات الخارجية (OpenAI، ElevenLabs، إلخ)
- استخدم Runtime Audio Importer لاستيراد بيانات الصوت المُركّب
- قبل تشغيل الموجة الصوتية المستوردة، اربط بـ
OnGeneratePCMData
المفوض - في الوظيفة المرتبطة، استدعِ
ProcessAudioData
من مُولّد Viseme الخاص بك في Runtime
يستخدم النموذج الواقعي نفس سير عمل معالجة الصوت مثل النموذج القياسي، ولكن مع متغير RealisticLipSyncGenerator
بدلاً من VisemeGenerator
.
يستخدم النموذج المُمكن بالمزاج نفس سير عمل معالجة الصوت، ولكن مع متغير MoodMetaHumanLipSyncGenerator
وقدرات التهيئة الإضافية للمزاج.
يستخدم هذا النهج إضافة Runtime AI Chatbot Integrator لتوليد كلام صوتي مُركب عبر البث المباشر من خدمات الذكاء الاصطناعي (OpenAI أو ElevenLabs) وتنفيذ مزامنة الشفاه:
- النموذج القياسي
- النموذج الواقعي
- النموذج الواقعي المدعوم بالمزاج
- استخدم Runtime AI Chatbot Integrator للاتصال بواجهات برمجة تطبيقات تحويل النص إلى كلام عبر البث المباشر (مثل ElevenLabs Streaming API)
- استخدم Runtime Audio Importer لاستيراد بيانات الصوت المُركب
- قبل تشغيل موجة الصوت المُبثوثة، اربط بمفوض
OnGeneratePCMData
الخاص بها - في الدالة المرتبطة، استدعِ
ProcessAudioData
من مُولد فيسيمات التشغيل الخاص بك
يستخدم النموذج الواقعي نفس سير عمل معالجة الصوت مثل النموذج القياسي، ولكن باستخدام المتغير RealisticLipSyncGenerator
بدلاً من VisemeGenerator
.
يستخدم النموذج المدعوم بالمزاج نفس سير عمل معالجة الصوت، ولكن باستخدام المتغير MoodMetaHumanLipSyncGenerator
وقدرات التكوين الإضافية للمزاج.
تستخدم هذه الطريقة ملفات صوت مسجلة مسبقًا أو مخازن مؤقتة للصوت لمزامنة الشفاه:
- النموذج القياسي
- النموذج الواقعي
- النموذج الواقعي المدعوم بالمزاج
- استخدم Runtime Audio Importer لاستيراد ملف صوت من القرص أو الذاكرة
- قبل تشغيل موجة الصوت المستوردة، اربط بـ
OnGeneratePCMData
المفوض - في الدالة المرتبطة، استدعِ
ProcessAudioData
من مُولد الفيسيمات الخاص بك في Runtime - شغِّل موجة الصوت المستوردة ولاحظ رسوم متحركة لمزامنة الشفاه
يستخدم النموذج الواقعي نفس سير عمل معالجة الصوت مثل النموذج القياسي، ولكن مع المتغير RealisticLipSyncGenerator
بدلاً من VisemeGenerator
.
يستخدم النموذج المدعوم بالمزاج نفس سير عمل معالجة الصوت، ولكن مع المتغير MoodMetaHumanLipSyncGenerator
وقدرات إضافية لتكوين المزاج.
لبيانات الصوت المتدفقة من مخزن مؤقت، تحتاج إلى:
- النموذج القياسي
- Realistic Model
- Mood-Enabled Realistic Model
- بيانات صوت بتنسيق PCM عائم (مصفوفة من عينات النقطة العائمة) متاحة من مصدر التدفق الخاص بك (أو استخدم Runtime Audio Importer لدعم المزيد من التنسيقات)
- معدل العينة وعدد القنوات
- استدعِ
ProcessAudioData
من مُولد الفيسيمات الخاص بك في Runtime مع هذه المعلمات عند توفر مقاطع الصوت
يستخدم النموذج الواقعي نفس سير عمل معالجة الصوت مثل النموذج القياسي، ولكن باستخدام المتغير RealisticLipSyncGenerator
بدلاً من VisemeGenerator
.
يستخدم النموذج المدعوم بالمزاج نفس سير عمل معالجة الصوت، ولكن مع المتغير MoodMetaHumanLipSyncGenerator
وقدرات إضافية لتكوين المزاج.
ملاحظة: عند استخدام مصادر الصوت المتدفقة، تأكد من إدارة توقيت تشغيل الصوت بشكل مناسب لتجنب تشويه التشغيل. راجع توثيق موجة الصوت المتدفقة لمزيد من المعلومات.
نصائح أداء المعالجة
-
حجم القطعة: إذا كنت تريد معالجة بيانات الصوت في قطع أصغر لمزامنة الشفاه الأكثر استجابة، فاضبط الحساب في دالة
SetNumSamplesPerChunk
. على سبيل المثال، قسمة معدل العينات على 150 (تدفق كل ~6.67 مللي ثانية) بدلاً من 100 (تدفق كل 10 مللي ثانية) سيوفر تحديثات أكثر تواترًا لمزامنة الشفاه. -
إدارة المخزن المؤقت: يعالج النموذج المدعوم بالمزاج الصوت في إطارات مكونة من 320 عينة (20 مللي ثانية عند 16 كيلو هرتز). تأكد من محاذاة توقيت إدخال الصوت مع هذا للأداء الأمثل.
-
إعادة إنشاء المُوَلِّد: للتشغيل الموثوق مع النماذج الواقعية، أعد إنشاء المُوَلِّد في كل مرة تريد فيها تغذية بيانات صوتية جديدة بعد فترة من عدم النشاط.
الخطوات التالية
بمجرد إعداد معالجة الصوت، قد ترغب في:
- التعرف على خيارات التكوين لضبط سلوك مزامنة الشفاه بدقة
- إضافة رسوم متحركة للضحك لتحسين التعبير
- دمج مزامنة الشفاه مع الرسوم المتحركة للوجه الحالية باستخدام تقنيات الطبقة الموضحة في دليل التكوين