تسمح لك كائنات الصوت المودولارية في Roblox بالتحكم الديناميكي في الصوت والدردشة الصوتية في تجاربك. كل كائن صوت تقريبًا يتوافق مع جهاز صوت حقيقي، وتعمل جميعها معًا لالتقاط وتشغيل الصوت مثل نظرائها الفيزيائيين.
على سبيل المثال، تقع كل فكرة كائن صوتي بشكل مفهومي في الفئات التالية:
- الكائنات التي تنتج تدفقات الصوت، مثل مشغلات الصوت.
- الكائنات التي تستهلك تدفقات الصوت، مثل المرسل الصوتي.
- الكائنات التي تعدل تدفقات الصوت، مثل تأثيرات الصوت.
- الكائنات التي تنقل تدفقات الصوت من كائن صوتي إلى آخر، مثل الأسلاك.
بينما تقرأ من خلال هذا الدليل وتتعلم كيفية عمل كل هذه الكائنات الصوتية معًا لإصدار الصوت، ستتعلم كيفية التقاط وتغذية الموسيقى، وتأثيرات الصوت، والصوت البشري من التجربة إلى اللاعب والعكس بالعكس.
تشغيل الصوت
لتشغيل الصوت داخل تجربتك، من المهم فهم دور كل كائن صوت متاح:
- يقوم AudioPlayer بتحميل وتشغيل ملف الصوت باستخدام معرف أصل الصوت المحدد.
- يعتبر AudioEmitter سماعة افتراضية تصدر الصوت في البيئة ثلاثية الأبعاد.
- يعتبر AudioListener ميكروفون افتراضي يستقبل الصوت من البيئة ثلاثية الأبعاد.
- يعتبر AudioDeviceOutput جهاز مادي في العالم الحقيقي، مثل سماعة أو سماعات رأس.
- يعتبر AudioDeviceInput ميكروفون مادي في العالم الحقيقي.
- يقوم كائن AudioTextToSpeech بتحويل النص إلى صوت باستخدام صوت بشري صناعي.
- يقوم كائن AudioSpeechToText بتحويل الصوت المنطوق إلى نص.
- تقوم كائن Wire بنقل تدفقات الصوت من كائن صوتي إلى آخر.
كيف تربط هذه الكائنات الصوتية معًا يعتمد على ما إذا كنت تريد إصدار الصوت مباشرة إلى سماعة اللاعب أو سماعات الرأس أو من كائنات في الفضاء ثلاثي الأبعاد. توضح الأقسام التالية كلا السيناريوهين.
الصوت ثنائي الأبعاد
الصوت ثنائي الأبعاد هو صوت غير توجيهي يتم تشغيله من موقع غير محدد، مع بقاء الحجم ثابتًا بغض النظر عن موقع اللاعب أو اتجاهه في الفضاء ثلاثي الأبعاد. يحتاج هذا النوع من الصوت إلى ثلاثة كائنات صوتية:
- مشغل صوت لإنتاج تدفق صوتي.
- جهاز مادي لتشغيل تدفق الصوت في العالم الحقيقي.
- سلك لنقل تدفق الصوت من مشغل الصوت إلى جهاز الإخراج.
لإظهار كيفية تكوين هذه الكائنات الصوتية في الاستوديو للصوت ثنائي الأبعاد، يقارن الرسم البياني التالي كل كائن مع نظيره من جهاز الصوت الحقيقي. باختصار:
- يقوم AudioPlayer بتحميل وتشغيل أصل الصوت الخاص بك بالإعدادات المحددة.
- يسمح AudioDeviceOutput للاعب بسماع الصوت من خلال سماعته أو سماعات رأسه.
- يتصل Wire بمشغل الصوت من خلال خاصية SourceInstance، وبالجهاز المادي من خلال خاصية TargetInstance. ثم يعمل كجسر لنقل تدفق الصوت من مشغل الصوت إلى جهاز الإخراج للاعب.

لتشغيل صوت غير توجيهي:
- في نافذة Explorer، انتقل إلى SoundService وأدخل ما يلي:
- كائن AudioPlayer لإنشاء مصدر صوتي.
- كائن AudioDeviceOutput لإنشاء سماعة تلعب في جميع أنحاء التجربة.
- كائن Wire لربط التيار من مشغل الصوت إلى السماعة.
- في نافذة Properties لكائن AudioPlayer:
- اضبط AssetID على معرف أصل صوتي صالح. إذا لم يكن لديك صوت مخصص خاص بك، يمكنك العثور على أصول صوتية مجانية في متجر المبدعين.
- قم بتمكين Looping إذا كنت تريد أن يتكرر صوتك باستمرار.
- اضبط Volume على وحدة السعة التي تريد تشغيل صوتك بها.
- في نافذة Properties لكائن Wire:
- اضبط SourceInstance على AudioPlayer لتحديد أنك تريد تشغيل الصوت داخل هذا المشغل الصوتي المحدد.
- اضبط TargetInstance على AudioDeviceOutput لتحديد أنك تريد تشغيل الصوت من هذه السماعة المحددة.
من هنا، يمكنك تشغيل صوتك غير التوجيهي من خلال نصوص لتشغيله عند انضمام اللاعبين إلى التجربة أو كنتيجة لحدث لعبة أو تفاعل واجهة مستخدم. للحصول على مراجع عينة التعليمات البرمجية لهذه الحالات، راجع إضافة صوت ثنائي الأبعاد tutorial.
الصوت ثلاثي الأبعاد
الصوت ثلاثي الأبعاد هو صوت توجيهي يتم تشغيله من موقع معين في الفضاء ثلاثي الأبعاد، ليزداد أو ينقص في الحجم اعتمادًا على موقع اللاعب واتجاهه بالنسبة للصوت. يحتاج هذا النوع من الصوت إلى ستة كائنات صوتية:
- مشغل صوت لإنتاج تدفق صوتي.
- مرسل صوتي لإصدار تدفق الصوت داخل البيئة.
- مستمع لالتقاط تدفق الصوت من البيئة.
- جهاز مادي لتشغيل تدفق الصوت في العالم الحقيقي.
- سلكين: واحد لنقل تدفق الصوت من مشغل الصوت إلى المرسل، وآخر لنقله من المستمع إلى جهاز الإخراج.
لإظهار كيفية تكوين هذه الكائنات الصوتية في الاستوديو للصوت ثلاثي الأبعاد، يقارن الرسم البياني التالي كل كائن مع نظيره من جهاز الصوت الحقيقي. باختصار:
- يقوم AudioPlayer بتحميل وتشغيل أصل الصوت الخاص بك بالإعدادات المحددة.
- تحدد موضع الوالد للـ AudioEmitter في الفضاء ثلاثي الأبعاد مكان إصدار هذا الصوت في البيئة.
- يقوم AudioListener إما بالتقاط الصوت من المرسل من الكاميرا المحلية أو من الجزء الجذع للاعب Humanoid.RootPart، اعتمادًا على أين تضبط موضع المستمع الافتراضي.
- يسمح AudioDeviceOutput للاعب بسماع الصوت من خلال سماعته أو سماعات رأسه.
- يتصل أول Wire بمشغل الصوت عبر خاصية SourceInstance، وبالمرسل عبر خاصية TargetInstance. ثم يعمل كجسر لنقل تدفق الصوت من مشغل الصوت إلى المرسل.
- يتصل ثاني Wire بالمستمع عبر خاصية SourceInstance، وبالجهاز المادي عبر خاصية TargetInstance. ثم يعمل كجسر لنقل تدفق الصوت من المستمع إلى جهاز الإخراج للاعب.

لتشغيل الصوت الموضعي:
اختر المكان الذي تريد إنشاء AudioListener عندما ينضم اللاعبون إلى التجربة.
- في نافذة Explorer، حدد SoundService.
- في نافذة Properties، اضبط ListenerLocation على أحد الخيارات التالية:
- Default - ينشئ ويضم المستمع إلى Workspace.CurrentCamera في التجارب التي تتيح الدردشة الصوتية.
- None - لا ينشئ مستمعًا. هذه الخيار مفيد إذا كنت تريد إنشاء مستمع من خلال نص.
- Character - ينشئ ويضم مستمعًا إلى شخصية اللاعب المحلية.
- Camera - ينشئ ويضم المستمع إلى Workspace.CurrentCamera.
في نافذة Explorer، انتقل إلى الكائن ثلاثي الأبعاد الذي تريد إصدار الصوت منه وأدخل ما يلي:
- كائن AudioPlayer لإنشاء مصدر صوتي.
- كائن AudioEmitter لإصدار تيار موضعي من الكائن الثلاثي الأبعاد.
- كائن Wire لربط التيار من مولد الصوت إلى مرسل الصوت.
في نافذة Properties لكائن AudioPlayer:
- اضبط AssetID على معرف أصل صوتي صالح. إذا لم يكن لديك صوت مخصص خاص بك، يمكنك العثور على أصول صوتية مجانية في متجر المبدعين.
- قم بتمكين Looping إذا كنت تريد أن يتكرر صوتك باستمرار.
- اضبط Volume على وحدة السعة التي تريد تشغيل صوتك بها.
في نافذة Properties لكائن AudioEmitter، اضبط DistanceAttenuation على منحنى الصوت عبر المسافة الذي يحدد مدى قوة سماع المستمع للمرسل وفقًا للمسافة بينهما.
على سبيل المثال، يقلل المنحنى التالي صوت الصوت إلى النصف عندما يكون المستمع على بعد 50 وحدة عن المرسل، ثم ينخفض الصوت بسرعة إلى الصفر عندما يكون المستمع على بعد 70 وحدة.

في نافذة Properties لكائن Wire:
- اضبط SourceInstance على AudioPlayer لتحديد أنك تريد تشغيل الصوت داخل هذا المشغل الصوتي المحدد.
- اضبط TargetInstance على AudioEmitter لتحديد أنك تريد تشغيل الصوت من هذا المرسل الصوتي المحدد.
من هنا، يمكنك تشغيل الصوت التوجيهي الخاص بك باستخدام نصوص لتشغيله عند انضمام اللاعبين إلى التجربة أو كنتاج لحدث اللعبة أو تفاعل واجهة مستخدم. للحصول على مراجع عينة التعليمات البرمجية لهذه الحالات، راجع إضافة صوت ثلاثي الأبعاد tutorial.
تحويل النص إلى كلام
تحويل النص إلى كلام (TTS) هو شكل من أشكال التكنولوجيا المساعدة التي تحول سلاسل النص إلى أصوات كلام باستخدام صوت صناعي. يحتاج هذا النوع من الصوت إلى خمسة كائنات صوتية:
- مولد كلام صوتي لتحميل وتحويل النص إلى صوت.
- مرسل صوتي لإصدار تدفق الصوت ضمن البيئة.
- مستمع لالتقاط تدفق الصوت من البيئة.
- جهاز مادي لتشغيل تدفق الصوت في العالم الحقيقي.
- بالنسبة للصوت ثنائي الأبعاد - سلك لنقل تدفق الصوت من مولد الكلام الصوتي إلى جهاز الإخراج.
- بالنسبة للصوت ثلاثي الأبعاد - سلكين: واحد لنقل تدفق الصوت من مولد الكلام الصوتي إلى المرسل، وآخر لنقله من المستمع إلى جهاز الإخراج.
كيف تقوم بتكوين هذه الكائنات يعتمد على ما إذا كنت ترغب في إنشاء صوت TTS ثنائي الأبعاد أو صوت TTS ثلاثي الأبعاد. لمزيد من التفاصيل حول أي من العمليتين، انقر بين علامات التبويب التالية.
لإظهار كيفية تكوين هذه الكائنات الصوتية في الاستوديو للصوت TTS ثنائي الأبعاد، يقارن الرسم البياني التالي كل كائن مع نظيره من جهاز الصوت الحقيقي. باختصار:
- يقوم كائن AudioTextToSpeech بتحميل وتحويل سلاسل النص إلى أصوات كلام.
- يسمح AudioDeviceOutput للاعب بسماع الصوت من خلال سماعته أو سماعات رأسه.
- يتصل Wire بمولد الصوت عبر خاصية SourceInstance، وبالجهاز المادي عبر خاصية TargetInstance. ثم يعمل كجسر لنقل تدفق الصوت من مولد الكلام الصوتي إلى جهاز الإخراج للاعب.

لتشغيل صوت تحويل النص إلى كلام ثنائي الأبعاد:
- في نافذة Explorer، انتقل إلى SoundService وأدخل ما يلي:
- كائن AudioTextToSpeech لإنشاء مولد الكلام الصوتي.
- كائن AudioDeviceOutput لإنشاء سماعة تلعب في جميع أنحاء التجربة.
- كائن Wire لربط التيار من مولد الكلام الصوتي إلى السماعة.
- في نافذة Properties لكائن AudioTextToSpeech:
اضبط Text على أي شيء تريده أن تقوله الصوت. هناك حد أقصى يبلغ 300 حرف لكل طلب.
اضبط VoiceId على رقم بين 1 و 10، اعتمادًا على أي صوت صناعي ترغب في استخدامه في الجدول التالي.
قائمة الأصوات الصناعيةVoiceID وصف الصوت مثال صوتي 1 ذكر بريطاني 2 أنثى بريطانية 3 ذكر الولايات المتحدة #1 4 أنثى الولايات المتحدة #1 5 ذكر الولايات المتحدة #2 6 أنثى الولايات المتحدة #2 7 ذكر أسترالي 8 أنثى أسترالية 9 صوت قديم #1 10 صوت قديم #2 11 صوت المذيع 101 ذكر إسباني 102 أنثى إسبانية 201 ذكر ألماني 202 أنثى ألمانية 301 ذكر إيطالي 302 أنثى إيطالية 401 ذكر فرنسي 402 أنثى فرنسية
اضبط Volume على وحدة السعة التي تريد تشغيل صوتك بها.
- في نافذة Properties لكائن Wire:
- اضبط SourceInstance على AudioTextToSpeech لتحديد أنك تريد تشغيل الصوت داخل هذا المولد الصوتي المحدد.
- اضبط TargetInstance على AudioDeviceOutput لتحديد أنك تريد تشغيل الصوت من هذه السماعة المحددة.
من هنا، يمكنك تشغيل صوت TTS الخاص بك باستخدام نصوص. للحصول على مراجع عينة التعليمات البرمجية لصوت TTS، بما في ذلك كيفية تكوين TTS الواعي بالسياق الذي يتكيف مع اللاعب، حالة بيئته، أو حالة اللعب، راجع إضافة تحويل النص إلى كلام tutorial.
تحويل الكلام إلى نص
تحويل الكلام إلى نص (STT) هو شكل من أشكال التكنولوجيا التي تولد تلقائيًا سلاسل النص من أصوات الكلام. يحتاج هذا النوع من الصوت إلى ثلاثة كائنات صوتية:
- مولد نص لتحميل وتحويل الصوت إلى نص.
- جهاز مادي مثل ميكروفون لالتقاط إدخال الصوت.
- سلك لنقل تدفق الصوت من جهاز الإدخال إلى مولد النص.
تعمل جميع هذه الكائنات الصوتية معًا لتوليد نص STT استجابةً لإجراءات اللاعبين. على سبيل المثال، إذا كان اللاعب يرتدي سماعة رأس أثناء اللعب:
- يقوم AudioDeviceInput بالتقاط كلام اللاعب، كما يتم التحدث به إلى الميكروفون الخاص به وكتدفق صوت.
- يقوم AudioSpeechToText بتحويل كلام اللاعب إلى نص.
- تقرأ التجربة هذا النص وتقوم بعمل ما، مثل عرض النص المنطوق على الشاشة أو فتح الباب بناءً على أمر اللاعب.

لتنفيذ تحويل الكلام إلى نص في تجربتك:
- قم بتمكين استخدام أحدث واجهة برمجة التطبيقات للصوت.
- في نافذة Explorer، حدد VoiceChatService.
- في نافذة Properties، اضبط UseAudioApi على Enabled.
- في نافذة Explorer، انتقل إلى SoundService وأدخل ما يلي:
- كائن AudioDeviceInput لالتقاط الكلام.
- كائن AudioSpeechToText لتحويل الكلام إلى نص.
- سلك لنقل التيار من جهاز الصوت المدخل إلى مثيل STT.
- في نافذة Properties لكائن AudioSpeechToText، اضبط الحالة Enabled على التشغيل.
- في نافذة Properties لكائن Wire:
- اضبط SourceInstance على AudioDeviceInput الجديد الخاص بك لتحديد أنك تريد أن يحمل السلك الصوت من هذا المثيل الصوتي المحدد.
- اضبط TargetInstance على AudioSpeechToText الجديد الخاص بك لتحديد أنك تريد أن يحمل السلك الصوت إلى هذا المثيل الصوتي المحدد.
- اضبط خاصية Player لجهاز الصوت المدخل إلى اللاعب المحلي في وقت التشغيل مع audioDeviceInput.Player = game.Players.LocalPlayer. وهذا يُخبر Roblox أي ميكروفون من أي مستخدم لالتقاط الصوت منه.
بعد إعداد STT في تجربتك، يمكنك تشغيله من خلال نصوص. للحصول على مراجع عينة التعليمات البرمجية، راجع إضافة تحويل الكلام إلى نص tutorial.
اللغات المدعومة
لا يلزم أي تكوين لتمكين اللغات المدعومة. يكتشف Roblox تلقائيًا اللغة المنطوقة من الصوت ويقوم بتحويلها.
يدعم STT اللغات التالية:
- العربية
- الصينية (المبسطة)
- الصينية (التقليدية)
- الإنجليزية
- الفرنسية
- الألمانية
- الإندونيسية
- الإيطالية
- اليابانية
- الكورية
- البولندية
- البرتغالية
- الإسبانية
- الروسية
- التركية
- التايلندية
- الفيتنامية
تصفية الكلمات المتشابهة
عند تنفيذ STT في تجربتك، قد ترغب في تحسين دقة مطابقة الكلمات من خلال تصفية الكلمات التي تبدو مشابهة للكلمات التي ترغب في أن يقولها اللاعب. للقيام بذلك، يمكنك مقارنة الكلمات التي تم التعرف عليها بواسطة AudioSpeechToText مع قوائم كلمات معروفة:
- قم بتنظيف وتجزيء ناتج Text من AudioSpeechToText لإنشاء جدول من السلاسل الصغيرة التي يمكن تحليلها ومقارنتها.
- قم بإزالة أحرف الترقيم.
- قم بتحويل السلسلة بأكملها إلى أحرف صغيرة.
- قم بتجزئة السلسلة حسب الفراغ لإنتاج جدول من الكلمات.
- قم بإنشاء جداول مرشحة لتحضير سلاسك للمقارنة.
- قم بتنظيف وتجزيء كل سلسلة مرجعية.
- قم بتخزين هذه الكلمات المعالجة في جدول منفصل.
- قارن واطابق الكلمات في كلا الجدولين للتعرف على إدخالات الكلام القريبة من العبارات المستهدفة، حتى لو كانت تتضمن اختلافات صغيرة.
- للتحقق البسيط، تحقق مما إذا كانت السلاسل متطابقة تمامًا.
- لمطابقة أكثر مرونة، يمكنك كتابة منطق مخصص لقبول الاستبدالات (مثل "colour" بدلاً من "color") أو مطابقة مجموعة فرعية من الكلمات وحساب درجة التشابه.
تخصيص الصوت
تسمح لك تأثيرات الصوت بتعديل أو تحسين تدفقات الصوت قبل أن تصل إلى آذان اللاعب. يمكنك تطبيق هذه التأثيرات لجعل صوتك أكثر تفاعلية داخل التجارب، مثل استخدام كائن AudioEqualizer لجعل صوت المطر يبدو مكتومًا، أو كائن AudioCompressor للتحكم في الحد الأقصى لصوت، أو AudioReverb لإضافة انعكاسات صوتية ذات واقعية أكبر في المساحات الداخلية.
للحصول على تعليمات حول كيفية تكوين تأثيرات الصوت، بالإضافة إلى مقارنات جنبًا إلى جنب قبل وبعد تخصيص صوتك، راجع تأثيرات الصوت.


تشغيل الصوت
يمكنك تشغيل الصوت سياقيًا من نص من خلال استدعاء Play() على كائن AudioPlayer الذي تم توصيله بشكل صحيح. على سبيل المثال، إذا قمت بتضمين نص إلى مشغل الصوت، يمكنك تشغيل أصل الصوت من خلال شيء مثل هذا:
local audio = script.Parent
local something = ...
something.SomeEvent:Connect(function()
audio:Play()
end)
للحصول على عينات تعليمات برمجية أكثر تعقيدًا لتشغيل الصوت، مثل ملاحظات اللعب، تفاعلات واجهة المستخدم، وضوضاء الخلفية المتكررة، راجع إضافة صوت ثنائي الأبعاد، إضافة صوت ثلاثي الأبعاد، و إضافة تحويل النص إلى كلام tutorials.