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

# PartyVoiceChatTranscriptionReceivedStateChange

> 特定于 *VoiceChatTranscriptionReceived* 类型状态更改的信息。

特定于 *VoiceChatTranscriptionReceived* 类型状态更改的信息。

## 语法

```cpp theme={null}
struct PartyVoiceChatTranscriptionReceivedStateChange : PartyStateChange {  
    PartyStateChangeResult result;  
    PartyError errorDetail;  
    PartyChatControl* senderChatControl;  
    uint32_t receiverChatControlCount;  
    PartyLocalChatControlArray receiverChatControls;  
    PartyAudioSourceType sourceType;  
    PartyString languageCode;  
    PartyString transcription;  
    PartyVoiceChatTranscriptionPhraseType type;  
    uint32_t translationCount;  
    PartyTranslation* translations;  
}  
```

### 成员

**`result`**   [PartyStateChangeResult](/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult)

指示转录操作是否成功,或提供其失败的原因。

成功时,`transcription` 字段是一个非零长度的字符串。失败时,该字符串为空。失败表示尝试为讲话者进行转录操作但无法完成。如果根据与聊天控件关联的用户请求启用了转录,并且通过 UI 显示转录消息,建议也向用户指示失败,以便就转录是否正在等待或已失败提供反馈。

**`errorDetail`**   PartyError

提供有关任何潜在错误情况的其他故障排除信息的诊断值。

可通过 [PartyManager::GetErrorMessage()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_geterrormessage) 检索此错误详细信息的人类可读形式。

**`senderChatControl`**   [PartyChatControl](/services/playfab/multiplayer/networking/reference/classes/PartyChatControl/partychatcontrol)\*

发起转录消息的聊天控件对象。

**`receiverChatControlCount`**   uint32\_t

转录消息所寻址的本地接收方聊天控件的数量。

**`receiverChatControls`**   [PartyLocalChatControlArray](/services/playfab/multiplayer/networking/reference/typedefs)\
*大小为 `receiverChatControlCount` 的数组*

转录消息所寻址的本地接收方聊天控件。

**`sourceType`**   [PartyAudioSourceType](/services/playfab/multiplayer/networking/reference/enums/partyaudiosourcetype)

此转录表示的音频源的类型。

音频源类型可以选择用于游戏场景,其中来自不同源类型的转录应以不同方式处理。例如,可以根据转录是与麦克风还是与文本转语音音频关联,显示不同的图标。

**`languageCode`**   [PartyString](/services/playfab/multiplayer/networking/reference/typedefs)

转录的语言代码。

当 `result` 字段指示成功时,始终提供语言代码。否则,语言代码为空字符串。<br /><br /> 语言代码采用 BCP 47 格式,例如 en-US 表示英语(美国)。支持的语言代码在[语言支持](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-support)中枚举。

**`transcription`**   [PartyString](/services/playfab/multiplayer/networking/reference/typedefs)

转录的语音聊天文本。

该字符串最长可为 `c_maxChatTextMessageLength` 个字符(不包括 null 终止符)。当 `result` 字段指示失败时,该字符串始终为空。

**`type`**   [PartyVoiceChatTranscriptionPhraseType](/services/playfab/multiplayer/networking/reference/enums/partyvoicechattranscriptionphrasetype)

指示 `transcription` 字段中提供的文本的短语类型。

当 `result` 字段指示失败时,类型始终为 [PartyVoiceChatTranscriptionPhraseType::Final](/services/playfab/multiplayer/networking/reference/enums/partyvoicechattranscriptionphrasetype)。

**`translationCount`**   uint32\_t

与转录的语音聊天文本关联的翻译数量。

如果之前已通过此设备本地的聊天控件上的 [PartyLocalChatControl::SetTranscriptionOptions()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settranscriptionoptions) 指定了 [PartyVoiceChatTranscriptionOptions::TranslateToLocalLanguage](/services/playfab/multiplayer/networking/reference/enums/partyvoicechattranscriptionoptions),则会提供翻译。如果多个本地聊天控件已启用翻译并且本地聊天控件通过 [PartyLocalDevice::CreateChatControl()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalDevice/methods/partylocaldevice_createchatcontrol) 指定了不同的语言,则可能有多个翻译。在这种情况下,应用可以将 `translations` 中每个 PartyTranslation 的 `languageCode` 字段与通过 [PartyLocalChatControl::GetLanguage()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_getlanguage) 获取的、`receiverChatControls` 中每个本地聊天控件的语言代码进行比较,以确定每个翻译的目标本地聊天控件。

**`translations`**   [PartyTranslation](/services/playfab/multiplayer/networking/reference/structs/partytranslation)\*\
*大小为 `translationCount` 的数组*

一个包含语音聊天转录字符串翻译的数组。

如果之前已通过此设备本地的聊天控件上的 [PartyLocalChatControl::SetTranscriptionOptions()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settranscriptionoptions) 指定了 [PartyVoiceChatTranscriptionOptions::TranslateToLocalLanguage](/services/playfab/multiplayer/networking/reference/enums/partyvoicechattranscriptionoptions),则会提供翻译。如果多个本地聊天控件已启用翻译并且本地聊天控件通过 [PartyLocalDevice::CreateChatControl()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalDevice/methods/partylocaldevice_createchatcontrol) 指定了不同的语言,则可能有多个翻译。在这种情况下,应用可以将 `translations` 中每个 PartyTranslation 的 `languageCode` 字段与通过 [PartyLocalChatControl::GetLanguage()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_getlanguage) 获取的、`receiverChatControls` 中每个本地聊天控件的语言代码进行比较,以确定每个翻译的目标本地聊天控件。<br /><br /> 系统会为 `receiverChatControls` 中每个已启用翻译的聊天控件提供其对应语言的翻译,即使讲话方聊天控件的语言与本地聊天控件的语言相同也是如此。在这种情况下,转录和翻译字符串相同。

## 要求

**头文件:** Party.h

## 另请参阅

[Party 成员](/services/playfab/multiplayer/networking/reference/party_members)\
[PartyLocalDevice::CreateChatControl](/services/playfab/multiplayer/networking/reference/classes/PartyLocalDevice/methods/partylocaldevice_createchatcontrol)\
[PartyLocalChatControl::SetTranscriptionOptions](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settranscriptionoptions)


## Related topics

- [PartyVoiceChatTranscriptionOptions](/zh-CN/services/playfab/multiplayer/networking/reference/enums/partyvoicechattranscriptionoptions.md)
- [PartyVoiceChatTranscriptionPhraseType](/zh-CN/services/playfab/multiplayer/networking/reference/enums/partyvoicechattranscriptionphrasetype.md)
- [PlayFab Party 发行说明](/zh-CN/services/playfab/multiplayer/networking/release-notes.md)
- [PartyLocalChatControl::GetTranscriptionOptions](/zh-CN/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_gettranscriptionoptions.md)
- [PartyLocalChatControl::SetTranscriptionOptions](/zh-CN/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settranscriptionoptions.md)
