إضافة تحويل الكلام إلى نص

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

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

باستخدام ملف Gingerbread House - Start .rbxl كنقطة انطلاق، يوضح لك هذا الدليل كيفية إضافة نص يتم توليده ديناميكيًا من الكلام إلى لعبتك، بما في ذلك إرشادات حول كيفية تنفيذ STT بحيث يمكن للاعب التفاعل مع الكائنات في عالمك ثلاثي الأبعاد.

كائنات الصوت

لإنشاء صوت STT، من المهم فهم كائنات الصوت التي ستعمل معها طوال هذا الدليل. هناك ثلاثة أنواع من كائنات الصوت لـ STT:

  • كائن AudioDeviceInput هو جهاز مادي في العالم الحقيقي، مثل ميكروفون في لابتوب أو هاتف أو سماعة رأس.
  • كائن AudioSpeechToText يقوم بتحويل أصوات الكلام إلى سلاسل نصية.
  • Wires تحمل تدفقات الصوت من كائن إلى آخر.

تعمل جميع هذه الكائنات الصوتية معًا لتوليد نص STT استجابةً لأفعال اللاعب. على سبيل المثال، إذا كان اللاعب يرتدي سماعة رأس أثناء اللعب على لابتوبه:

  • يقوم AudioDeviceInput بالتقاط كلام اللاعب، كما يُنطق في ميكروفونه وكتيار من الصوت.
  • تحمل Wire تدفق الصوت من AudioDeviceInput إلى AudioSpeechToText.
  • يقوم AudioSpeechToText بتحويل كلام اللاعب إلى نص.
  • تقرأ اللعبة هذا النص وتقوم بإجراء، مثل عرض النص المنطوق على الشاشة أو فتح باب بناءً على أمر اللاعب.

تفعيل استخدام الميكروفون

قبل إضافة STT إلى لعبة، يجب أولاً تفعيل استخدام الميكروفون ونشر اللعبة.

  1. افتح ملف Gingerbread House - Start في الاستوديو.
  2. أنشئ نسخة محلية.
  3. انشر نسختك المحلية من اللعبة.
  4. عد إلى الاستوديو، انتقل إلى ملفإعدادات التجربةالاتصالات.
  5. قم بتشغيل تفعيل الميكروفون.
  6. احفظ تغييراتك.

إضافة التقاط الكلام البسيط

لإضافة التقاط كلام بسيط إلى نسختك المحلية من ملف Gingerbread House - Start:

  1. قم بتمكين استخدام أحدث واجهة برمجة التطبيقات للصوت.

    1. في نافذة المستكشف، حدد VoiceChatService.
    2. في نافذة الخصائص، قم بتعيين UseAudioApi إلى مفعل.
  2. أنشئ كائنات الصوت الأساسية التي ستتيح لك التقاط الكلمات المنطوقة.

    1. في نافذة المستكشف، انتقل إلى Workspace > DialogueVolume.
    2. احذف جميع الكائنات داخل مجلد DialogueVolume.
    3. أدخل الكائنات التالية في مجلد DialogueVolume:
      • AudioDeviceInput لالتقاط الكلام.
      • AudioSpeechToText لتحويل الكلام إلى نص.
      • Wire لنقل التدفق من إدخال جهاز الصوت إلى مثيل STT.
    4. في نافذة الخصائص لكائن AudioSpeechToText، قم بتعيين حالة Enabled إلى التشغيل.
    5. في نافذة الخصائص لكائن Wire:
      1. قم بتعيين SourceInstance إلى AudioDeviceInput الجديد الخاص بك لتحديد أنك تريد أن تحمل السلك الصوت من هذا المثيل الصوتي المحدد.
      2. قم بتعيين TargetInstance إلى AudioSpeechToText الجديد الخاص بك لتحديد أنك تريد أن تحمل السلك الصوت إلى هذا المثيل الصوتي المحدد.
  3. قم بتعيين خاصية Player لإدخال جهاز الصوت إلى اللاعب المحلي في وقت التشغيل. هذا يخبر Roblox من أي ميكروفون مستخدم يجب التقاط الصوت.

    1. في نافذة المستكشف، انتقل إلى StarterPlayer > StarterCharacterScripts.
    2. أدخل LocalScript وسمه ListenForMagicWord.
    3. الصق الكود التالي في البرنامج النصي المحلي الجديد:
    local audioDeviceInput = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioDeviceInput')
    -- يربط الميكروفون باللاعب المحلي
    audioDeviceInput.Player = game.Players.LocalPlayer

اختبار التقاط الكلام الخاص بك

بعد إضافة التقاط الكلام البسيط، يمكنك اختبار اللعبة للتأكد من أن تنفيذ STT الخاص بك يعمل بشكل صحيح. يجب أن يؤدي التحدث في الميكروفون الخاص بك إلى ملء خاصية AudioSpeechToText بنسخة نصية من كلامك.

لاختبار التقاط الكلام الخاص بك:

  1. تحت اختبار > العملاء والخوادم، حدد اختبار الفريق.
  2. انقر على بدء لبدء خادم الاختبار.
  3. في خادم الاختبار الجديد، قم بإلغاء كتم صوت الميكروفون الخاص بك وتحدث بضع كلمات.
  4. في نافذة المستكشف، انتقل إلى Workspace > DialogueVolume > AudioSpeechToText.
  5. في نافذة الخصائص لـ AudioSpeechToText، تأكد من أن الكلمات التي نطقتها في الميكروفون الخاص بك قد ظهرت كقيمة لخاصية Text.

استخدام STT مع طريقة اللعب

لربط STT بطريقة اللعب وجعل باب منزل الزنجبيل يفتح عندما يقول اللاعب "افتح يا سمسم" في ميكروفونه:

  1. أنشئ حدثًا بعيدًا لربط العميل بالخادم.

    1. في نافذة المستكشف، أدخل RemoteEvent تحت ReplicatedStorage.
    2. سمها OpenDoor.
  2. أضف برنامج نصي جديد لتحريك فتح باب منزل الزنجبيل.

    1. تحت ServerScriptService، أدخل Script من جانب الخادم.
    2. سمها DoorService.
    3. الصق الكود التالي في البرنامج النصي الجديد:
    -- يحصل على خدمة ReplicatedStorage للتخزين المشترك بين الخادم والعميل
    -- يحصل على TweenService لنظام التويين
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TweenService = game:GetService("TweenService")
    -- يسمح للعميل بطلب من الخادم فتح الباب
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- وظيفة تحرك الباب لأسفل وتفتحه
    local function openDoor()
    local doorPart = workspace:WaitForChild("Door")
    local tweenInfo = TweenInfo.new(2, Enum.EasingStyle.Linear)
    local tween = TweenService:Create(doorPart, tweenInfo, {Position = doorPart.Position + Vector3.new(0, -15, 0)})
    tween:Play()
    end
    -- يربط الوظيفة بالحدث
    remoteEvent.OnServerEvent:Connect(openDoor)
  3. اربط الباب بتحويل الكلام إلى نص بحيث يحدث إجراء عندما يتحدث اللاعب في ميكروفونه.

    1. انتقل إلى StarterPlayer > StarterCharacterScripts.
    2. افتح البرنامج النصي ListenForMagicWord الذي أنشأته سابقًا.
    3. أضف الأسطر التالية:
    -- يحصل على خدمة ReplicatedStorage للتخزين المشترك بين الخادم والعميل
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    -- يحصل على RemoveEvent الذي سيطلقه العميل إلى الخادم
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- يجد عقدة STT في رسم المشهد
    -- يتم تحديث خاصية النص للعقدة عندما تتعرف على الكلام
    local speechToText = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioSpeechToText')
    -- وظيفة تخبر الخادم بفتح الباب إذا تم التقاط STT للاعب وهو يقول "افتح يا سمسم"
    speechToText:GetPropertyChangedSignal('Text'):Connect(function()
    local text = speechToText.Text
    if text == '' then
    return
    end
    print(text)
    if (text.find(text, 'افتح يا سمسم') ~= nil) then
    remoteEvent:FireServer()
    end
    speechToText.Text = ''
    end)
  4. اختبر تنفيذ STT الخاص بك.

    1. تحت اختبار > العملاء والخوادم، حدد اختبار الفريق.
    2. انقر على بدء لبدء خادم الاختبار.
    3. في خادم الاختبار الجديد، اقترب من الباب، قم بإلغاء كتم صوت الميكروفون الخاص بك، وقل "افتح يا سمسم". يجب أن يفتح الباب ويسمح لك بالدخول إلى منزل الزنجبيل.
©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.