เพิ่มการแปลงเสียงเป็นข้อความ

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

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

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

วัตถุเสียง

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

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

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

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

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

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

  1. เปิดไฟล์ Gingerbread House - Start ใน Studio
  2. สร้างสำเนาท้องถิ่น
  3. เผยแพร่สำเนาท้องถิ่นของเกมของคุณ
  4. กลับไปที่ Studio ไปที่ ไฟล์การตั้งค่าประสบการณ์การสื่อสาร
  5. เปิดใช้งาน เปิดไมโครโฟน
  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. ภายใต้ ทดสอบ > ลูกค้าและเซิร์ฟเวอร์ ให้เลือก Team Test
  2. คลิก เริ่ม เพื่อเริ่มเซิร์ฟเวอร์ทดสอบ
  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. ภายใต้ ทดสอบ > ลูกค้าและเซิร์ฟเวอร์ ให้เลือก Team Test
    2. คลิก เริ่ม เพื่อเริ่มเซิร์ฟเวอร์ทดสอบ
    3. ในเซิร์ฟเวอร์ทดสอบใหม่ เดินไปที่ประตู เปิดไมโครโฟนของคุณและพูดว่า "Open Sesame" ประตูควรเปิดและอนุญาตให้คุณเข้าไปในบ้านขนมปังขิง
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ