คู่มือการใช้งานระดับกลาง

เพิ่มการแปลงคำพูดเป็นข้อความ

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

การแปลงคำพูดเป็นข้อความ (STT) เป็นรูปแบบของเทคโนโลยีที่สร้างข้อความจากเสียงพูดโดยอัตโนมัติ ด้วย STT คุณสามารถสร้างโลกที่มีสุขภาพสมบูรณ์ยิ่งขึ้นโดยอนุญาตให้ผู้เล่นพูดคุยกับ NPCs, สร้างข้อความโดยไม่จำเป็นต้องบันทึกเสียงไว้ล่วงหน้า, ปรับปรุงการเข้าถึงสำหรับผู้เล่นที่มีข้อจำกัดในการเคลื่อนไหวหรือการมองเห็น, และให้ผู้เล่นสามารถควบคุมโดยไม่ต้องใช้มือผ่านทางลัดเสียงสำหรับการทำงาน เช่น การเปิดคลังของพวกเขาหรือการร่ายมนต์

โดยใช้ไฟล์ Gingerbread House - Start .rbxl เป็นจุดเริ่มต้น การสอนนี้จะแสดงให้คุณเห็นวิธีการเพิ่มข้อความที่สร้างขึ้นแบบไดนามิกจากคำพูดลงในประสบการณ์ของคุณ รวมถึงแนวทางในการใช้ STT เพื่อให้ผู้เล่นสามารถโต้ตอบกับวัตถุในโลก 3 มิติของคุณ

วัตถุเสียง

ในการสร้างเสียง STT สิ่งสำคัญคือการเข้าใจว่าวัตถุเสียงที่คุณจะทำงานด้วยตลอดการสอนนี้ ได้แก่ สามประเภทดังนี้:

  • วัตถุ AudioDeviceInput เป็นอุปกรณ์ฮาร์ดแวร์จริงในโลก เช่น ไมโครโฟนในแล็ปท็อป โทรศัพท์ หรือหูฟัง
  • วัตถุ AudioSpeechToText แปลงเสียงพูดให้เป็นสตริงข้อความ
  • Wires ส่งสัญญาณเสียงจากวัตถุหนึ่งไปยังอีกวัตถุหนึ่ง

วัตถุเสียงทั้งหมดนี้ทำงานร่วมกันเพื่อตอบสนองต่อการกระทำของผู้เล่นด้วยการสร้างข้อความ STT ตัวอย่างเช่น หากผู้เล่นสวมใส่หูฟังในขณะเล่นประสบการณ์ด้วยแล็ปท็อปของพวกเขา:

  • AudioDeviceInput จะจับเสียงพูดของผู้เล่นที่พูดเข้าไมโครโฟนและเป็นสตรีมเสียง
  • Wire จะส่งสัญญาณเสียงจาก AudioDeviceInput ไปยัง AudioSpeechToText
  • AudioSpeechToText แปลงเสียงพูดของผู้เล่นให้เป็นข้อความ
  • ประสบการณ์จะอ่านข้อความนี้และทำการส่งแฟง เช่น แสดงข้อความที่พูดออกมาบนหน้าจอ หรือเปิดประตูตามคำสั่งของผู้เล่น

เปิดใช้งานการใช้ไมโครโฟน

ก่อนที่จะเพิ่ม STT ในประสบการณ์ คุณต้องเปิดใช้งานการใช้ไมโครโฟนและเผยแพร่ประสบการณ์ก่อน

  1. เปิดไฟล์ Gingerbread House - Start ใน Studio
  2. สร้างสำเนาท้องถิ่น
  3. เผยแพร่สำเนาท้องถิ่นของประสบการณ์ของคุณ
  4. กลับไปที่ Studio ไปที่ FileExperience SettingsCommunication
  5. เปิดใช้งาน Enable Microphone
  6. บันทึกการเปลี่ยนแปลงของคุณ

เพิ่มการจับเสียงพูดอย่างง่าย

ในการเพิ่มการจับเสียงพูดอย่างง่ายในสำเนาท้องถิ่นของไฟล์ Gingerbread House - Start:

  1. เปิดใช้งานการใช้ API ล่าสุดสำหรับเสียง

    1. ในหน้าต่าง Explorer ให้เลือก VoiceChatService
    2. ในหน้าต่าง Properties ให้ตั้งค่า UseAudioApi เป็น Enabled
  2. สร้างวัตถุเสียงพื้นฐานที่จะช่วยให้คุณจับคำพูดได้

    1. ในหน้าต่าง Explorer ไปที่ Workspace > DialogueVolume
    2. ลบวัตถุทั้งหมดภายในโฟลเดอร์ DialogueVolume
    3. ใส่วัตถุดังต่อไปนี้ในโฟลเดอร์ DialogueVolume:
      • AudioDeviceInput เพื่อจับเสียงพูด
      • AudioSpeechToText เพื่อแปลงเสียงพูดเป็นข้อความ
      • Wire เพื่อส่งสัญญาณจากการป้อนอุปกรณ์เสียงไปยังอิง STT
    4. ในหน้าต่าง Properties ของวัตถุ AudioSpeechToText ให้ตั้งสถานะ Enabled เป็นเปิด
    5. ในหน้าต่าง Properties ของวัตถุ Wire:
      1. ตั้งค่า SourceInstance เป็น AudioDeviceInput ใหม่ของคุณเพื่อระบุว่าคุณต้องการให้สายส่งเสียงจากอิงเสียงนี้
      2. ตั้งค่า TargetInstance เป็น AudioSpeechToText ใหม่ของคุณเพื่อตรวจสอบว่าสายจะส่งเสียงไปยังอิงเสียงนี้
  3. ตั้งค่าคุณสมบัติ Player ของการป้อนอุปกรณ์เสียงเป็นผู้เล่นท้องถิ่นในขณะใช้งาน นี่จะบอก Roblox ว่าไมโครโฟนของผู้ใช้คนใดที่จะจับเสียง

    1. ในหน้าต่าง Explorer ไปที่ StarterPlayer > StarterCharacterScripts
    2. ใส่ LocalScript และตั้งชื่อว่า ListenForMagicWord
    3. วางโค้ดต่อไปนี้ในสคริปต์ท้องถิ่นใหม่:

    local audioDeviceInput = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioDeviceInput')
    -- ผูกไมโครโฟนกับผู้เล่นท้องถิ่น
    audioDeviceInput.Player = game.Players.LocalPlayer

ทดสอบการจับเสียงพูดของคุณ

หลังจากที่คุณเพิ่มการจับเสียงพูดอย่างง่าย คุณสามารถทดสอบการเล่นประสบการณ์เพื่อให้แน่ใจว่าการใช้งาน STT ของคุณทำงานได้อย่างถูกต้อง การพูดเข้าสู่อุปกรณ์ไมโครโฟนของคุณควรเติมคุณสมบัติ AudioSpeechToText ด้วยเวอร์ชันข้อความของเสียงพูดของคุณ

เพื่อทดสอบการจับเสียงพูดของคุณ:

  1. ภายใต้ Test > Clients and Servers ให้เลือก Team Test
  2. คลิก Start เพื่อเริ่มเซิร์ฟเวอร์ทดสอบ
  3. ในเซิร์ฟเวอร์ทดสอบใหม่ ให้ปิดเสียงไมโครโฟนของคุณและพูดคำไม่กี่คำ
  4. ในหน้าต่าง Explorer ไปที่ Workspace > DialogueVolume > AudioSpeechToText
  5. ในหน้าต่าง Properties ของ AudioSpeechToText ให้ยืนยันว่าคำที่คุณพูดเข้าสู่อุปกรณ์ไมโครโฟนของคุณปรากฏขึ้นเป็นค่าในคุณสมบัติ Text

ใช้ STT กับการเล่นเกม

เพื่อเชื่อมต่อ STT เข้ากับการเล่นเกมและเพื่อเปิดประตูบ้านขนมปังขิงเมื่อผู้เล่นพูดว่า "Open Sesame" ในไมโครโฟนของพวกเขา:

  1. สร้างเหตุการณ์ระยะไกลเพื่อเชื่อมต่อไคลเอนต์กับเซิร์ฟเวอร์

    1. ในหน้าต่าง Explorer ให้วาง 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 ในกราฟฉาก
    -- คุณสมบัติ Text ของโหนดจะได้รับการปรับปรุงเมื่อมันจดจำคำพูด
    local speechToText = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioSpeechToText')
    -- ฟังก์ชันที่บอกเซิร์ฟเวอร์ว่าให้เปิดประตูถ้า STT จับคำกล่าว "Open Sesame"
    speechToText:GetPropertyChangedSignal('Text'):Connect(function()
    local text = speechToText.Text
    if text == '' then
    return
    end
    print(text)
    if (text.find(text, 'open sesame') ~= nil) then
    remoteEvent:FireServer()
    end
    speechToText.Text = ''
    end)
  4. ทดสอบการใช้งาน STT ของคุณ

    1. ภายใต้ Test > Clients and Servers ให้เลือก Team Test
    2. คลิก Start เพื่อเริ่มเซิร์ฟเวอร์ทดสอบ
    3. ในเซิร์ฟเวอร์ทดสอบใหม่ ให้เดินไปที่ประตู ปิดเสียงไมโครโฟนของคุณ และพูดว่า "Open Sesame" ประตูจะต้องเปิดและอนุญาตให้คุณเข้าสู่บ้านขนมปังขิง
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ