> ## 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 Content Safety によって支えられた PlayFab Party のテキスト モデレーションを有効にして、ゲーム内テキスト チャット メッセージから言語を自動検出し、不快な単語をフィルタリングします。

PlayFab Party は、テキスト チャットと統合されたテキスト モデレーション ソリューションを提供します。テキスト チャットはリアルタイムでモデレートして不適切な言語をフィルタリングできます。この機能は Azure AI Content Safety によってサポートされています。詳細については、[Azure AI Content Safety](https://azure.microsoft.com/products/ai-services/ai-content-safety/) を参照してください。

## 言語サポート

テキスト モデレーションは 100 を超える言語をサポートしています。ただし、テキスト モデレーションで言語の選択を構成するために何かを行う必要はありません。Azure は各テキスト メッセージの言語を自動的に検出します。自動検出と冒涜的表現のフィルタリングをサポートする対応言語の完全なリストについては、Azure AI Content Safety の [対応言語一覧](https://learn.microsoft.com/en-us/azure/ai-services/content-safety/language-support) を参照してください。

## テキスト モデレーションを有効にする

テキスト モデレーションはチャット コントロールごとに構成されます。`PartyLocalChatControl::SetTextChatOptions()` を `PartyTextChatOptions::FilterOffensiveText` オプションで呼び出すことによって有効化されます。モデレーションが有効になっているチャット コントロールは、不快な単語がアスタリスクでマスクされたテキスト チャットを受信します。モデレーションはチャット コントロールごとに有効化されるため、ユーザーが独自のモデレーション選択を設定できるように 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](/services/playfab/multiplayer/networking/reference/structs/partychattextreceivedstatechange) リファレンス ページを参照してください。

サービス エラーが発生したか、テキストがサービスによって特定の用語を識別できずに不快と判断されたためにテキスト メッセージのモデレーションが失敗した場合、テキスト メッセージ全体がアスタリスクでマスクされます。`PartyChatTextReceivedStateChange` の `options` フィールドで提供される `PartyChatTextReceivedOptions` 列挙型には、このエラー ケースが発生したときの詳細情報が含まれます。

## フィルタリング レベルの調整

英語の場合、チャット コントロールに対して行われるフィルタリングのレベルは、`PartyManager::SetOption` 関数を使用して調整できます。利用可能なフィルタリング レベルは、Family-Friendly、Medium、および Mature です。デフォルトのレベルは Family-Friendly です。

サンプル コード:

```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 チャットの仕組みを理解する](/services/playfab/community/voice-communications/concepts-chat)
* [PartyLocalChatControl::SetTextChatOptions](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settextchatoptions)
* [PartyChatTextReceivedOptions](/services/playfab/multiplayer/networking/reference/enums/partychattextreceivedoptions)


## Related topics

- [PlayFab Party リリース ノート](/ja-jp/services/playfab/multiplayer/networking/release-notes.md)
- [PlayFab Party チャットの仕組みを理解する](/ja-jp/services/playfab/community/voice-communications/concepts-chat.md)
- [PlayFab Party features](/ja-jp/services/playfab/multiplayer/networking/party-features.md)
- [XR-018 ユーザー生成コンテンツ](/ja-jp/publishing/certification/xr/xr-018.md)
- [XAG 119: 音声認識およびテキスト読み上げチャット](/ja-jp/build/game-principles/accessibility/xag-deep-dives/xag-119-chat.md)
