Thêm chuyển đổi giọng nói thành văn bản

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Chuyển đổi giọng nói thành văn bản (STT) là một hình thức công nghệ tự động tạo ra văn bản từ âm thanh giọng nói. Với STT, bạn có thể tạo ra những thế giới sống động hơn bằng cách cho phép người chơi nói chuyện với NPC, tạo ra văn bản mà không cần phải ghi âm trước âm thanh cụ thể, cải thiện khả năng tiếp cận cho người chơi có hạn chế về vận động hoặc thị giác, và cung cấp cho người chơi các điều khiển rảnh tay thông qua các phím tắt bằng giọng nói cho các hành động như mở kho đồ hoặc triệu hồi một phép thuật.

Sử dụng tệp Gingerbread House - Start .rbxl làm điểm khởi đầu, hướng dẫn này sẽ chỉ cho bạn cách thêm văn bản được tạo ra động từ giọng nói vào trò chơi của bạn, bao gồm hướng dẫn về cách triển khai STT để người chơi có thể tương tác với các đối tượng trong thế giới 3D của bạn.

Đối tượng âm thanh

Để tạo âm thanh STT, điều quan trọng là hiểu các đối tượng âm thanh mà bạn sẽ làm việc trong suốt hướng dẫn này. Có ba loại đối tượng âm thanh cho STT:

  • Đối tượng AudioDeviceInput là một thiết bị phần cứng vật lý trong thế giới thực, chẳng hạn như một micro trong laptop, điện thoại hoặc tai nghe.
  • Đối tượng AudioSpeechToText chuyển đổi âm thanh giọng nói thành các chuỗi văn bản.
  • Wires mang các luồng âm thanh từ một đối tượng này sang đối tượng khác.

Tất cả các đối tượng âm thanh này làm việc cùng nhau để tạo ra văn bản STT phản ứng với các hành động của người chơi. Ví dụ, nếu người chơi đang đeo tai nghe trong khi chơi trò chơi với laptop của họ:

  • AudioDeviceInput ghi lại giọng nói của người chơi, như đã nói vào micro của họ và như một luồng âm thanh.
  • Một Wire mang luồng âm thanh từ AudioDeviceInput đến AudioSpeechToText.
  • AudioSpeechToText chuyển đổi giọng nói của người chơi thành văn bản.
  • Trò chơi đọc văn bản này và thực hiện một hành động, chẳng hạn như hiển thị văn bản đã nói trên màn hình hoặc mở cửa theo lệnh của người chơi.

Bật sử dụng micro

Trước khi thêm STT vào một trò chơi, bạn phải đầu tiên bật sử dụng micro và xuất bản trò chơi.

  1. Mở tệp Gingerbread House - Start trong Studio.
  2. Tạo một bản sao cục bộ.
  3. Xuất bản bản sao cục bộ của trò chơi.
  4. Quay lại Studio, đi đến TệpCài đặt Trải nghiệmGiao tiếp.
  5. Bật Bật Microphone.
  6. Lưu thay đổi của bạn.

Thêm ghi âm giọng nói đơn giản

Để thêm ghi âm giọng nói đơn giản vào bản sao cục bộ của tệp Gingerbread House - Start:

  1. Bật việc sử dụng API mới nhất cho giọng nói.

    1. Trong cửa sổ Explorer, chọn VoiceChatService.
    2. Trong cửa sổ Properties, đặt UseAudioApi thành Enabled.
  2. Tạo các đối tượng âm thanh cơ bản cho phép bạn ghi lại các từ nói.

    1. Trong cửa sổ Explorer, đi đến Workspace > DialogueVolume.
    2. Xóa tất cả các đối tượng bên trong thư mục DialogueVolume.
    3. Chèn các đối tượng sau vào thư mục DialogueVolume:
      • Một AudioDeviceInput để ghi lại giọng nói.
      • Một AudioSpeechToText để chuyển đổi giọng nói thành văn bản.
      • Một Wire để mang luồng từ đầu vào thiết bị âm thanh đến phiên bản STT.
    4. Trong cửa sổ Properties của đối tượng AudioSpeechToText, đặt trạng thái Enabled thành bật.
    5. Trong cửa sổ Properties của đối tượng Wire:
      1. Đặt SourceInstance thành AudioDeviceInput mới của bạn để chỉ định rằng bạn muốn dây mang âm thanh từ phiên bản âm thanh cụ thể này.
      2. Đặt TargetInstance thành AudioSpeechToText mới của bạn để chỉ định rằng bạn muốn dây mang âm thanh đến phiên bản âm thanh cụ thể này.
  3. Đặt thuộc tính Player của đầu vào thiết bị âm thanh thành người chơi cục bộ tại thời gian chạy. Điều này cho Roblox biết micro của người dùng nào sẽ ghi lại âm thanh.

    1. Trong cửa sổ Explorer, đi đến StarterPlayer > StarterCharacterScripts.
    2. Chèn một LocalScript và đặt tên là ListenForMagicWord.
    3. Dán mã sau vào script cục bộ mới:
    local audioDeviceInput = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioDeviceInput')
    -- Liên kết micro với người chơi cục bộ
    audioDeviceInput.Player = game.Players.LocalPlayer

Kiểm tra ghi âm giọng nói của bạn

Sau khi bạn thêm ghi âm giọng nói đơn giản, bạn có thể thử nghiệm trò chơi để đảm bảo rằng việc triển khai STT của bạn hoạt động đúng cách. Nói vào micro của bạn sẽ làm cho thuộc tính AudioSpeechToText được điền với phiên bản văn bản của giọng nói của bạn.

Để kiểm tra ghi âm giọng nói của bạn:

  1. Dưới Kiểm tra > Khách hàng và Máy chủ, chọn Kiểm tra Nhóm.
  2. Nhấp vào Bắt đầu để khởi động máy chủ thử nghiệm.
  3. Trong máy chủ thử nghiệm mới, bật micro của bạn và nói một vài từ.
  4. Trong cửa sổ Explorer, đi đến Workspace > DialogueVolume > AudioSpeechToText.
  5. Trong cửa sổ Properties của AudioSpeechToText, xác nhận rằng các từ bạn đã nói vào micro của bạn đã xuất hiện dưới dạng giá trị của thuộc tính Text.

Sử dụng STT với gameplay

Để kết nối STT với gameplay và mở cửa ngôi nhà gừng khi người chơi nói "Mở Sesame" vào micro của họ:

  1. Tạo một sự kiện từ xa để kết nối khách hàng với máy chủ.

    1. Trong cửa sổ Explorer, chèn một RemoteEvent dưới ReplicatedStorage.
    2. Đặt tên là OpenDoor.
  2. Thêm một script mới để hoạt hình mở cửa ngôi nhà gừng.

    1. Dưới ServerScriptService, chèn một Script phía máy chủ.
    2. Đặt tên là DoorService.
    3. Dán mã sau vào script mới:
    -- Lấy dịch vụ ReplicatedStorage cho lưu trữ chung giữa máy chủ và khách hàng
    -- Lấy TweenService cho hệ thống tweening
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TweenService = game:GetService("TweenService")
    -- Cho phép khách hàng yêu cầu máy chủ mở cửa
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Hàm hoạt hình cửa di chuyển xuống và mở
    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
    -- Kết nối hàm với sự kiện
    remoteEvent.OnServerEvent:Connect(openDoor)
  3. Kết nối cửa với chuyển đổi giọng nói thành văn bản để một hành động xảy ra khi người chơi nói vào micro của họ.

    1. Đi đến StarterPlayer > StarterCharacterScripts.
    2. Mở script ListenForMagicWord mà bạn đã tạo trước đó.
    3. Thêm các dòng sau:
    -- Lấy dịch vụ ReplicatedStorage cho lưu trữ chung giữa máy chủ và khách hàng
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    -- Lấy RemoveEvent mà khách hàng sẽ kích hoạt đến máy chủ
    local remoteEvent = ReplicatedStorage:WaitForChild("OpenDoor")
    -- Tìm nút STT trong đồ thị cảnh
    -- Thuộc tính Text của nút sẽ cập nhật khi nó nhận diện giọng nói
    local speechToText = workspace:WaitForChild('DialogueVolume'):WaitForChild('AudioSpeechToText')
    -- Hàm cho biết máy chủ mở cửa nếu STT ghi lại người chơi nói "Mở 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. Kiểm tra việc triển khai STT của bạn.

    1. Dưới Kiểm tra > Khách hàng và Máy chủ, chọn Kiểm tra Nhóm.
    2. Nhấp vào Bắt đầu để khởi động máy chủ thử nghiệm.
    3. Trong máy chủ thử nghiệm mới, đi đến cửa, bật micro của bạn và nói "Mở Sesame". Cửa sẽ mở và cho phép bạn vào ngôi nhà gừng.
©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.