> ## 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.

# 了解 PlayFab Party 聊天的運作方式

> PlayFab Party 語音與文字聊天概觀，涵蓋 PartyLocalChatControl、網路、硬體轉碼器，以及內建的語音轉文字和翻譯功能。

使用 PlayFab Party，您可以輕鬆地將語音與文字通訊新增至您的遊戲。

PlayFab Party 聊天具備以下特性：

* **彈性**：讓您完全掌控玩家的通訊方式。
* **強大**：在支援的平台上使用硬體轉碼器加速。
* **協助工具**：由 Azure 認知服務提供技術支援，內建語音轉文字、文字轉語音和翻譯功能，且容易啟用。
* **有效率**：讓聊天系統與網路層緊密整合，表示語音資料能以最有效率的方式傳送到需要的地方。

## 聊天基本概念

若要將語音與文字通訊新增至您的遊戲，您首先需要建立 `PartyLocalChatControl` 物件。此
`PartyLocalChatControl` 物件將作為與特定本機使用者相關之聊天作業的管理物件，
讓您可以選擇輸入和輸出裝置、靜音狀態與協助工具喜好設定。每位本機使用者
最多只能有一個聊天控制項。若要讓本機聊天控制項與另一個聊天控制項通訊，必須符合下列
需求：

1. 兩個聊天控制項必須位於同一個網路中。
2. 兩個聊天控制項之間的[聊天權限](/zh-TW/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting)必須允許
   音訊和/或文字通訊流動。

備妥本機聊天控制項後，您就可以呼叫 `PartyNetwork::ConnectChatControl()` 將其連線至網路。
連線後，網路中的其他裝置會透過
`PartyChatControlJoinedNetworkStateChange` 狀態變更收到您的聊天控制項已加入網路的通知。您也會針對網路中已存在的每個其他聊天控制項收到 `PartyChatControlJoinedNetworkStateChange`，
並能立即與它們通訊。

## 音訊輸入與輸出

Party 可讓您使用 `PartyLocalChatControl::SetAudioInput()`
和 `PartyLocalChatControl::SetAudioOutput()` 方法選擇聊天控制項要使用的音訊裝置。使用 `PartyAudioDeviceSelectionType` 列舉來變更
這些方法的行為：

### `PartyAudioDeviceSelectionType::None`

選擇此音訊裝置選取類型時，聊天控制項不會使用任何音訊裝置。此音訊裝置選取類型為預設值。

### `PartyAudioDeviceSelectionType::SystemDefault`

選擇此音訊裝置選取類型時，聊天控制項會嘗試使用系統的預設通訊裝置。
在 Windows 上，玩家可以隨時透過 Windows 聲音控制台變更此裝置，而 Party 會自動回應這些變更。XBOX One 不支援此選取類型，而且如果您有多位
本機使用者同時參與聊天，一般不建議使用。

### `PartyAudioDeviceSelectionType::PlatformUserDefault`

選擇此音訊裝置選取類型時，`PartyLocalChatControl::SetAudioInput()` 和 `PartyLocalChatControl::SetAudioOutput()`
需要將 `audioDeviceSelectionContext` 參數設定為平台使用者識別碼。Party 接著會嘗試
使用與該使用者相關聯的平台預設通訊裝置。在 XBOX One 上，`audioDeviceSelectionContext`
應為與目前繫結至聊天控制項之使用者相關聯的 XBOX 使用者識別碼。

### `PartyAudioDeviceSelectionType::Manual`

選擇此音訊裝置選取類型時，`PartyLocalChatControl::SetAudioInput()` 和 `PartyLocalChatControl::SetAudioOutput()`
會將 `audioDeviceSelectionContext` 參數作為有效的音訊裝置識別碼，並嘗試使用任何
符合該識別碼的裝置。請參閱下表，了解 PlayFab Party 支援哪種識別碼：

| **平台** | **使用項目** |
| :- | :- |
| Windows 10 | [`IMMDevice`](https://learn.microsoft.com/en-us/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-immdevice-getid) 或 [`Windows.Media.Devices`](https://learn.microsoft.com/en-us/uwp/api/windows.media.devices.mediadevice) |
| XBOX | 請參閱 XBOX GDK 文件 |

<Note>
  我們強烈建議在 XBOX One 上使用 `PartyAudioDeviceSelectionType::PlatformUserDefault`，並在 Windows 平台上使用 `PartyAudioDeviceSelectionType::SystemDefault`。
</Note>

## 聊天權限與靜音

Party 讓您能精細地控制玩家彼此之間的通訊方式。Party 不是指定隊伍或頻道，
而是要求明確定義每一對聊天控制項之間的權限。
若要深入了解聊天權限、靜音以及如何建置常見的聊天情境，請參閱
[聊天權限概觀](/zh-TW/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting)頁面。

## 文字聊天、翻譯與內容審核

Party 也可讓您與其他聊天控制項傳送和接收文字聊天。雖然 `PartyLocalChatControl::SendText()`
方法可讓您將文字訊息傳送給任意數量的聊天控制項，但您可以放心，只有
具備適當 `PartyChatPermissionOptions::ReceiveText` 聊天權限的聊天控制項才會收到訊息。

您也可以呼叫 `PartyLocalChatControl::SetTextChatOptions()` 來啟用文字聊天翻譯。設定
`PartyTextChatOptions::TranslateToLocalLanguage` 選項後，Party 會將傳入的文字訊息翻譯成本機
聊天控制項的語言。聊天控制項的語言可以在建立聊天控制項時選擇性地設定，並可
透過呼叫 `PartyLocalChatControl::GetLanguage()` 存取。翻譯也會套用至傳入的語音轉文字轉錄內容。

文字聊天也提供文字內容審核功能。若要深入了解此功能，請參閱[使用文字內容審核](/zh-TW/services/playfab/community/voice-communications/concepts-text-moderation)頁面。

## 協助工具聊天

Party 由 Azure 語音服務提供技術支援，可以轉錄玩家的語音聊天，並從文字合成語音。
此功能有多種用途，但主要是設計作為協助工具輔助。我們建議將此功能的啟用
與輕鬆存取玩家設定繫結。如需如何使用 Party 所提供之協助工具功能的詳細資訊，請參閱[文字轉語音指導方針](/zh-TW/services/playfab/community/voice-communications/party-text-to-speech-ux-guidelines)和[語音轉文字指導方針](/zh-TW/services/playfab/community/voice-communications/party-speech-to-text-ux-guidelines)。

## 音訊輸入雜訊抑制

Party 可讓您在擷取的麥克風音訊傳輸至遠端聊天控制項之前，先抑制其中的背景雜訊。這可以大幅提升玩家語音音訊的品質。如需如何啟用雜訊抑制的詳細資訊，請參閱[使用雜訊抑制](/zh-TW/services/playfab/community/voice-communications/concepts-noise-suppression)頁面。

<Note>
  雜訊抑制目前僅適用於 iOS 和 Android。
</Note>

## 後續步驟

* [深入了解 PlayFab Party 聊天權限與靜音](/zh-TW/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting)


## Related topics

- [了解 PlayFab Party 聊天的工作原理](/zh-CN/services/playfab/community/voice-communications/concepts-chat.md)
- [聊天](/zh-CN/services/xbox-services/multiplayer/chat/index.md)
- [使用 Microsoft Azure PlayFab Party 添加聊天](/zh-CN/services/xbox-services/multiplayer/chat/playfab-party-intro-chat.md)
- [使用文本审核](/zh-CN/services/playfab/community/voice-communications/concepts-text-moderation.md)
- [XR-015 管理玩家通訊](/zh-TW/publishing/certification/xr/xr-015.md)
