> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用文字內容審核

> 啟用由 Azure AI 內容安全提供支援的 PlayFab Party 文字內容審核，以自動偵測語言並從遊戲內文字聊天訊息中篩選冒犯性字詞。

PlayFab Party 提供與文字聊天整合的文字內容審核解決方案。文字聊天可以即時進行審核，以篩選掉冒犯性語言。此功能由 Azure AI 內容安全提供支援。如需詳細資訊，請參閱 [Azure AI 內容安全](https://azure.microsoft.com/products/ai-services/ai-content-safety/)。

## 語言支援

文字內容審核支援超過 100 種語言。不過，您不需要為文字內容審核設定任何語言選取；Azure 會自動偵測每則文字訊息的語言。如需支援自動偵測和不雅內容篩選的完整語言清單，請參閱 Azure AI 內容安全的[支援語言清單](https://learn.microsoft.com/en-us/azure/ai-services/content-safety/language-support)。

## 啟用文字內容審核

文字內容審核是依聊天控制項設定的。透過以 `PartyTextChatOptions::FilterOffensiveText` 選項呼叫 `PartyLocalChatControl::SetTextChatOptions()` 來啟用。已啟用內容審核的聊天控制項所收到的文字聊天中，冒犯性字詞會以星號遮蔽。由於內容審核是依聊天控制項啟用，您可以建立 UI 讓使用者設定自己的內容審核選擇。或者，您也可以對部分或所有使用者強制執行內容審核。

若要為聊天控制項停用內容審核，請使用相同的函式，並傳入不包含 `FilterOffensiveText` 旗標的 `PartyTextChatOptions` 選項。

範例程式碼：

```cpp theme={null}
// Opt into moderation
myLocalChatControl->SetTextChatOptions(PartyTextChatOptions::FilterOffensiveText, nullptr);

// Opt out of moderation
myLocalChatControl->SetTextChatOptions(PartyTextChatOptions::None, nullptr);
```

## 傳送和接收經過審核的文字

傳送至已啟用內容審核之聊天控制項的所有文字都會套用內容審核，無論傳送者本身的內容審核設定為何。已啟用內容審核的聊天控制項所收到的文字訊息，其 `PartyChatTextReceivedStateChange` 中的 `chatText` 欄位會被取代為經過審核的版本。

`PartyChatTextReceivedStateChange` 上還有更多欄位，可用於實現更複雜的情境，例如讓使用者選擇檢視未經篩選的文字版本。如需詳細資訊，請參閱 [PartyChatTextReceivedStateChange](/zh-TW/services/playfab/multiplayer/networking/reference/structs/partychattextreceivedstatechange) 參考頁面。

如果審核文字訊息失敗，無論是因為服務錯誤，或是因為服務判定文字具冒犯性但無法識別特定字詞，整則文字訊息都會以星號遮蔽。發生此錯誤情況時，`PartyChatTextReceivedStateChange` 的 `options` 欄位中提供的 `PartyChatTextReceivedOptions` 列舉會包含更多資訊。

## 調整篩選層級

對於英文，可以使用 `PartyManager::SetOption` 函式調整聊天控制項的篩選層級。可用的篩選層級為「闔家適宜」、「中等」和「成熟」。預設層級為「闔家適宜」。

範例程式碼：

```cpp theme={null}
// Set the filter level to Mature
PartyTextChatFilterLevel filterLevel = PartyTextChatFilterLevel::Mature;
PartyOption option = PartyOption::TextChatFilterLevel;
PartyError error = PartyManager::SetOption(nullptr, option, &filterLevel);
```

## 另請參閱

* [了解 PlayFab Party 聊天的運作方式](/zh-TW/services/playfab/community/voice-communications/concepts-chat)
* [PartyLocalChatControl::SetTextChatOptions](/zh-TW/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settextchatoptions)
* [PartyChatTextReceivedOptions](/zh-TW/services/playfab/multiplayer/networking/reference/enums/partychattextreceivedoptions)


## Related topics

- [XR-018：使用者產生的內容](/zh-TW/publishing/certification/xr/xr-018.md)
- [最常失敗的測試案例](/zh-TW/publishing/certification/xr-top-failing.md)
- [XBOX 主機遊戲的認證測試 XBOX 需求](/zh-TW/publishing/certification/console-cert-tested-requirements.md)
- [XBOX 遊戲的 XBOX 需求](/zh-TW/publishing/certification/xbox-requirements.md)
- [XR018 使用者產生的內容](/zh-TW/publishing/certification/fma/xr-018.md)
