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

# Understanding How PlayFab Party chat works

> Overview of PlayFab Party voice and text chat, covering PartyLocalChatControl, networks, hardware codecs, and built-in speech-to-text and translation features.

PlayFab Party를 사용하면 게임에 음성 및 텍스트 통신을 쉽게 추가할 수 있습니다.

PlayFab Party 채팅은:

* **유연함**: 플레이어가 소통하는 방식을 완전히 제어할 수 있습니다.
* **강력함**: 지원되는 플랫폼에서 하드웨어 코덱 가속을 사용합니다.
* **접근성**: Azure Cognitive Services로 구동되며 음성-텍스트 변환, 텍스트-음성 변환 및 번역 기능이 기본 제공되며 쉽게 활성화할 수 있습니다.
* **효율적**: 채팅 시스템이 네트워킹 계층과 긴밀히 통합되어 있어 음성 데이터가 가능한 가장 효율적인 방식으로 필요한 곳으로 전송됩니다.

## 채팅 기본 사항

게임에 음성 및 텍스트 통신을 추가하려면 먼저 `PartyLocalChatControl` 개체를 만들어야 합니다. 이 `PartyLocalChatControl` 개체는 특정 로컬 사용자와 관련된 채팅 작업의 관리 개체 역할을 하며, 입력 및 출력 장치, 음소거 상태, 접근성 기본 설정을 선택할 수 있게 해줍니다. 각 로컬 사용자는 최대 하나의 채팅 컨트롤을 가질 수 있습니다. 로컬 채팅 컨트롤이 다른 채팅 컨트롤과 통신하려면 다음 요구 사항을 충족해야 합니다.

1. 두 채팅 컨트롤은 동일한 네트워크에 있어야 합니다.
2. 두 채팅 컨트롤 간의 [채팅 권한](/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 Sound Control Panel을 통해 언제든지 이 장치를 변경할 수 있으며, Party는 이러한 변경에 자동으로 응답합니다. 이 선택 유형은 XBOX One에서 지원되지 않으며, 여러 로컬 사용자가 동시에 채팅에 참여하는 경우 일반적으로 권장되지 않습니다.

### `PartyAudioDeviceSelectionType::PlatformUserDefault`

이 오디오 장치 선택 유형을 선택하면 `PartyLocalChatControl::SetAudioInput()`과 `PartyLocalChatControl::SetAudioOutput()`은 `audioDeviceSelectionContext` 매개 변수가 플랫폼 사용자 ID로 설정되어야 합니다. 그러면 Party는 해당 사용자와 연결된 플랫폼 기본 통신 장치를 사용하려고 시도합니다. XBOX One에서 `audioDeviceSelectionContext`는 현재 채팅 컨트롤에 연결된 사용자와 연관된 XBOX User ID여야 합니다.

### `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는 각 채팅 컨트롤 쌍 사이의 권한을 명시적으로 정의하도록 요구합니다. 채팅 권한, 음소거, 일반적인 채팅 시나리오 구성 방법에 대해 자세히 알아보려면 [채팅 권한 개요](/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting) 페이지를 참조하세요.

## 텍스트 채팅, 번역 및 조정

Party를 사용하면 다른 채팅 컨트롤에 텍스트 채팅을 보내고 받을 수도 있습니다. `PartyLocalChatControl::SendText()` 메서드는 임의의 수의 채팅 컨트롤에 텍스트 메시지를 보낼 수 있게 해주지만, 적절한 `PartyChatPermissionOptions::ReceiveText` 채팅 권한을 가진 채팅 컨트롤만 메시지를 수신하게 됩니다.

`PartyLocalChatControl::SetTextChatOptions()`를 호출하여 텍스트 채팅 번역을 활성화할 수도 있습니다. `PartyTextChatOptions::TranslateToLocalLanguage` 옵션을 설정하면 Party가 수신되는 텍스트 메시지를 로컬 채팅 컨트롤의 언어로 번역합니다. 채팅 컨트롤의 언어는 채팅 컨트롤 생성 시 선택적으로 구성할 수 있으며, `PartyLocalChatControl::GetLanguage()`를 호출하여 액세스할 수 있습니다. 번역은 수신되는 음성-텍스트 변환 결과에도 적용됩니다.

텍스트 채팅에 대한 텍스트 조정도 사용할 수 있습니다. 이 기능에 대해 자세히 알아보려면 [텍스트 조정 사용](/services/playfab/community/voice-communications/concepts-text-moderation) 페이지를 참조하세요.

## 접근성 채팅

Azure Speech Services로 구동되는 Party는 플레이어의 음성 채팅을 전사하고 텍스트로부터 음성을 합성할 수 있습니다. 이 기능은 여러 용도로 사용할 수 있지만, 주로 접근성 보조 수단으로 설계되었습니다. 이 기능의 활성화를 easy-of-access 플레이어 설정에 연결하는 것이 좋습니다. Party가 제공하는 접근성 기능을 사용하는 방법에 대한 자세한 내용은 [text-to-speech 가이드라인](/services/playfab/community/voice-communications/party-text-to-speech-ux-guidelines)과 [speech-to-text 가이드라인](/services/playfab/community/voice-communications/party-speech-to-text-ux-guidelines)을 참조하세요.

## 오디오 입력 노이즈 억제

Party를 사용하면 원격 채팅 컨트롤로 전송되기 전에 캡처된 마이크 오디오의 배경 소음을 억제할 수 있습니다. 이를 통해 플레이어의 음성 오디오 품질을 크게 향상시킬 수 있습니다. 노이즈 억제를 활성화하는 방법에 대한 자세한 내용은 [노이즈 억제 사용](/services/playfab/community/voice-communications/concepts-noise-suppression) 페이지를 참조하세요.

<Note>
  노이즈 억제는 현재 iOS와 Android에서만 사용할 수 있습니다.
</Note>

## 다음 단계

* [PlayFab Party 채팅 권한 및 음소거에 대해 자세히 알아보기](/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting)


## Related topics

- [PlayFab Party Chat Permissions and Muting](/ko/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting.md)
- [PartyWorkMode](/ko/services/playfab/multiplayer/networking/reference/enums/partyworkmode.md)
- [Understanding rule weight in matchmaking](/ko/services/playfab/multiplayer/matchmaking/rule-weights.md)
- [PartyManager::DoWork](/ko/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_dowork.md)
- [google-gson 라이선스](/ko/services/playfab/sdks/java/Licenses/google-gson-license.md)
