Trò Chuyện Bằng Giọng Nói là một tính năng cho phép giao tiếp bằng lời nói theo thời gian thực giữa bạn và những người chơi khác. Nó chỉ có sẵn cho các địa điểm hỗ trợ tối đa 100 người chơi.

Kích hoạt Trò Chuyện Bằng Giọng Nói
Trò Chuyện Bằng Giọng Nói được kích hoạt theo mặc định cho người dùng từ 13 tuổi trở lên đã được xác minh trên tất cả các trò chơi mới với tối đa 100 người chơi. Kích hoạt Trò Chuyện Bằng Giọng Nói là cần thiết để sử dụng API chuyển đổi giọng nói thành văn bản.
Để kích hoạt giọng nói cho các trò chơi hiện có hoặc tắt nó cho các trò chơi mới:
- Mở trò chơi của bạn trong Studio.
- Mở Tệp ⟩ Cài đặt Trải Nghiệm.
- Điều hướng đến tab Giao tiếp ở bên trái của cửa sổ.
- Chuyển đổi Kích hoạt Trò Chuyện Bằng Giọng Nói sang cài đặt mong muốn của bạn.
- TÙY CHỌNĐể tăng cường giao tiếp giữa các người chơi trong trò chơi của bạn, hãy bật Kích hoạt Camera để cho phép những người chơi đủ điều kiện có thể hoạt hình hóa nhân vật của họ theo chuyển động của họ.
- Xuất bản địa điểm để lưu các thay đổi.
Đặt số lượng người chơi tối đa
Nếu bạn đã đặt số lượng người chơi tối đa trong một địa điểm là hơn 100, bạn sẽ cần giảm nó xuống để hỗ trợ Trò Chuyện Bằng Giọng Nói.
- Chọn địa điểm mong muốn và sau đó điều hướng đến Truy cập trong cột bên trái.
- Đối với Số lượng Khách Tối đa, nhập một số nhỏ hơn hoặc bằng 100.
- Nhấp vào nút Lưu Thay Đổi.
Khi bạn cập nhật số lượng người chơi tối đa trong một địa điểm xuống dưới 100, có thể có các máy chủ đã được cấu hình với một số lượng khác, cao hơn. Vì những máy chủ đó sẽ không hỗ trợ Trò Chuyện Bằng Giọng Nói, nên được khuyến nghị khởi động lại máy chủ.
Tùy chỉnh hành vi giọng nói
Trò Chuyện Bằng Giọng Nói là dựa trên khoảng cách theo mặc định, điều chỉnh âm lượng của các người tham gia dựa trên mức độ gần gũi của họ với nhau. Tuy nhiên, bạn có thể đặt UseAudioApi thành Enabled để kiểm soát cách giọng nói được thiết lập và sử dụng trong trò chơi của bạn.
Nếu VoiceChatService không xuất hiện:
Nhấp chuột phải trong cửa sổ Explorer và chọn Hiện Dịch vụ… từ menu ngữ cảnh.
Chọn VoiceChatService trong cửa sổ pop-up và nhấp Chèn. Dịch vụ sẽ xuất hiện trong cấu trúc Explorer.

Với VoiceChatService được chọn, đảm bảo rằng UseAudioApi là Enabled trong cửa sổ Thuộc tính. Điều này có thể đã được thực hiện cho bạn.
Dựa trên đội
Để triển khai trò chuyện dựa trên Team mà chỉ có đồng đội mới có thể nghe nhau, bạn có thể sử dụng Script sau trong ServerScriptService:
local Teams = game:GetService("Teams")
local function findAudioInput(forPlayer : Player) : AudioDeviceInput?
-- Giả định rằng chỉ có một AudioDeviceInput cho mỗi người chơi, được gán cho đối tượng Người chơi
-- Điều này được cung cấp cho bạn nếu VoiceChatService.EnableDefaultVoice là true
-- Có thể cần phải được làm lại cho tính tổng quát nếu địa điểm của bạn đặt các đối tượng AudioDeviceInput ở nơi khác
return forPlayer:FindFirstChildWhichIsA("AudioDeviceInput")
end
local function onTeamChanged(player : Player)
local team = player.Team
if not team then return end
local device = findAudioInput(player)
if not device then return end
-- Chỉ cho phép đồng đội nghe nhau
device.AccessType = Enum.AccessModifierType.Allow
local allowed = {}
for _, player : Player in team:GetPlayers() do
table.insert(allowed, player.UserId)
end
device:SetUserIdAccessList(allowed)
end
local function onTeamAdded(team : Team)
team.PlayerAdded:Connect(onTeamChanged)
team.PlayerRemoved:Connect(onTeamChanged)
end
for _, team : Team in Teams:GetTeams() do
onTeamAdded(team)
end
Teams.ChildAdded:Connect(function(child : Instance)
if child:IsA("Team") then
onTeamAdded(child)
end
end)Không không gian
Tùy thuộc vào nhu cầu của trò chơi của bạn, có thể hợp lý hơn khi nghe những người khác với âm lượng bằng nhau, bất kể vị trí địa lý của họ. Nếu bạn tắt Trò Chuyện Bằng Giọng Nói mặc định, bạn có thể triển khai Trò Chuyện Bằng Giọng Nói không không gian thông qua Script sau trong ServerScriptService:
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local function wireUp(source : Instance, target : Instance)
local wire = Instance.new("Wire")
wire.SourceInstance = source
wire.TargetInstance = target
wire.Parent = source
end
-- Thiết lập một thanh trượt âm lượng toàn cầu cho giọng nói của mọi người
local volumeSlider = Instance.new("AudioFader", Workspace)
local output = Instance.new("AudioDeviceOutput", Workspace)
wireUp(volumeSlider, output)
local function onPlayerAdded(player : Player)
local device = Instance.new("AudioDeviceInput", player)
device.Player = player
-- Định tuyến đầu vào microphone của mỗi người chơi mới đến thanh trượt âm lượng toàn cầu
wireUp(device, volumeSlider)
end
for _, player in Players:GetPlayers() do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function onDescendantAdded(descendant : Instance)
if descendant:IsA("Wire") then
descendant:Destroy()
end
end
for _, descendant in player:GetDescendants() do
onDescendantAdded(descendant)
end
player.DescendantAdded:Connect(onDescendantAdded)Tắt theo địa điểm
Nếu bạn không muốn kích hoạt Trò Chuyện Bằng Giọng Nói cho mọi địa điểm trong trò chơi của bạn, bạn có thể tắt nó trong các địa điểm cụ thể mà lẽ ra sẽ đủ điều kiện cho giọng nói.
Để tắt Trò Chuyện Bằng Giọng Nói cho một địa điểm cụ thể trong một trò chơi:
Nhấp chuột phải trong cửa sổ Explorer và chọn Hiện Dịch vụ… từ menu ngữ cảnh.
Chọn VoiceChatService trong cửa sổ pop-up và nhấp Chèn. Dịch vụ sẽ xuất hiện trong cấu trúc Explorer.

Với VoiceChatService được chọn, tắt EnableDefaultVoice trong cửa sổ Thuộc tính.
Xuất bản địa điểm để lưu các thay đổi và khởi động lại máy chủ để đảm bảo thay đổi có hiệu lực cho tất cả các máy chủ hiện đang chạy trò chơi của bạn.
Kiểm tra trạng thái
Bạn có thể kiểm tra xem một người chơi đã kích hoạt Trò Chuyện Bằng Giọng Nói hay chưa bằng cách gọi IsVoiceEnabledForUserIdAsync() trong một LocalScript, hoặc trong một Script với RunContext được đặt thành Enum.RunContext.Client.
local Players = game:GetService("Players")
local VoiceChatService = game:GetService("VoiceChatService")
local localPlayer = Players.LocalPlayer
local success, enabled = pcall(function()
return VoiceChatService:IsVoiceEnabledForUserIdAsync(localPlayer.UserId)
end)
if success and enabled then
print("Trò Chuyện Bằng Giọng Nói đã được kích hoạt!")
end