> ## 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 文本转语音和文本输入 UX 指南

> 介绍 PlayFab Party API，重点关注文本输入和文本转语音的实现、要求以及主机和 PC UI 解决方案。

PlayFab Party 库让游戏创作者能够通过可访问的游戏聊天选项吸引更多玩家。它提供了将语音聊天转录为文本以及将文本输入转换为合成语音的方法。你可以在游戏中为这些功能实现自定义 UI 解决方案。在 XBOX 和 Windows 上，你可以使用平台 API 来实现相关 UI。

本主题是关于语音转文本和文本转语音实现 UX 解决方案的两篇系列文章中的第一篇。第一部分聚焦于文本转语音的实现、要求以及主机和 PC UI 解决方案，而 [第二部分](/services/playfab/community/voice-communications/party-speech-to-text-ux-guidelines) 聚焦于语音转文本的实现、要求以及主机和 PC UI 解决方案。

## 文本转语音和语音转文本场景

以下图表引导你了解玩家在启用语音转文本和文本转语音功能时将会遇到的场景。它概述了游戏体验三个阶段的用户影响：初始设置、玩游戏和参与游戏聊天。

| **体验阶段** | **设置**                                     | **游戏**                                                                              | **聊天**                                                 | **消息**                                    |
| :------- | :----------------------------------------- | :---------------------------------------------------------------------------------- | :----------------------------------------------------- | :---------------------------------------- |
| **目标**   | **用户启用设置**                                 | **用户进入多人游戏**                                                                        | **用户发送通信**                                             | **用户接收通信**                                |
| **操作**   | 语音转文本 <br /><br /> 听取语音回复的替代方案             | 启动游戏 <br /><br /> 进入 MP 大厅 <br /><br /> 发起游戏聊天时打开叠加层                                | 用户说话                                                   | 用户阅读队友的语音回复，这些回复在语音转文本聊天叠加层中被转换为文本        |
|          | 文本转语音 <br /><br /> 说出语音回复的替代方案             | 启动游戏 <br /><br /> 进入 MP 大厅 <br /><br /> 游戏显示文本输入方式（键盘、输入字段等）                        | 用户使用平台支持的输入方式输入回复 <br /><br /> 输入的消息被转换为合成语音           | 用户听到队友的语音回复                               |
|          | UI 旁白（游戏内） <br /><br /> 阅读游戏内菜单和文本回复的替代方案  | 用户在 XBOX OS 合成语音的引导下启动游戏 <br /><br /> 游戏使用 Speech Synthesis API 朗读菜单选项，引导用户进入 MP 大厅 | 对于文本消息传递系统：游戏使用 Speech synthesis API 引导用户启动 XBOX OS 键盘 | 对于文本消息传递系统：游戏使用 Speech Synthesis API 朗读回复 |
|          | 讲述人 (XBOX OS) <br /><br /> 阅读 XBOX 菜单的替代方案 | 用户在 XBOX OS 合成语音的引导下启动游戏                                                            | 对于文本消息传递系统：当用户输入消息时，虚拟键盘会被朗读                           | 不适用                                       |

## 了解 API

### 文本转语音

#### 文本转语音的类型

Party 支持两种类型的文本转语音 - **Voice Chat** 和 **Narration**。Voice Chat 类型适用于用户选择将文本转语音音频用作其语音聊天通信的说话声音的场景。当本页讨论 Party 和文本转语音时，通常是指这种场景。Narration 类型适用于应向用户的音频输出播放文本转语音音频的场景。这主要是为了支持"语音试听"场景，即用户比较不同文本转语音语音选项之间的音频，以选择他们希望在 Voice Chat 场景中使用的配置文件。虽然这可以用于任意的、游戏定义的旁白场景，但每个平台通常都提供更灵活的游戏内旁白解决方案，例如 XBOX 和 Windows 上的 Speech Synthesis API。用于启动文本转语音操作的每个方法都接受一个 [`PartySynthesizeTextToSpeechType`](/services/playfab/multiplayer/networking/reference/enums/partysynthesizetexttospeechtype) 参数，指定使用的是这两种文本转语音场景中的哪一种。

#### 文本转语音语音配置文件

文本转语音语音配置文件定义用于生成文本转语音音频的音频特性。配置文件按语言、区域设置和性别而异。每种组合可能都有多个选项。Party 支持 Azure Cognitive Services 支持的所有配置文件。有关支持的语言和语音选项的完整列表，请参阅 [语言支持参考](https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support)。

配置文件选项也可以由 Party 库枚举。第一步是通过 [`PartyLocalChatControl::PopulateAvailableTextToSpeechProfiles()`](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_populateavailabletexttospeechprofiles) 启动一个异步操作，该操作将填充文本转语音配置文件。操作完成后（由 [`PartyManager::StartProcessingStateChanges()`](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_startprocessingstatechanges) 提供 [`PartyPopulateAvailableTextToSpeechProfilesCompletedStateChange`](/services/playfab/multiplayer/networking/reference/structs/partypopulateavailabletexttospeechprofilescompletedstatechange) 指示），可以通过 [`PartyLocalChatControl::GetAvailableTextToSpeechProfiles()`](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_getavailabletexttospeechprofiles) 查询配置文件。

#### 配置文本转语音语音配置文件

在 Party 库能够生成任何文本转语音之前，游戏必须先配置文本转语音语音配置文件。可以通过 [`PartyLocalChatControl::SetTextToSpeechProfile()`](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settexttospeechprofile) 启动一个用于配置配置文件的异步选项。操作完成由 `PartyManager::StartProcessingStateChanges()` 提供 [`PartySetTextToSpeechProfileCompletedStateChange`](/services/playfab/multiplayer/networking/reference/structs/partysettexttospeechprofilecompletedstatechange) 来指示。

#### 合成文本转语音

游戏配置了文本转语音语音配置文件后，可以通过 [`PartyLocalChatControl::SynthesizeTextToSpeech()`](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_synthesizetexttospeech) 将文本合成为语音音频。对于 Voice Chat 场景，音频数据将显示为好像是由与启动文本转语音操作的用户关联的麦克风"自然"捕获的一样。这类似于用户将麦克风对准一台代表他们说话的计算机。对于 Narration 场景，音频数据将播放到用户的音频输出。

合成文本转语音是一个异步操作；操作的完成由 `PartyManager::StartProcessingStateChanges()` 提供 [`PartySynthesizeTextToSpeechCompletedStateChange`](/services/playfab/multiplayer/networking/reference/structs/partysynthesizetexttospeechcompletedstatechange) 来指示。

虽然在合成文本转语音之前必须先配置语音配置文件，但在调用 `PartyLocalChatControl::SynthesizeTextToSpeech()` 之前无需等待 `PartyLocalChatControl::SetTextToSpeechProfile()` 启动的异步操作完成。如果配置文件操作正在进行中，则文本转语音操作将被排队，并在配置文件操作完成后开始。

### 文本消息

除了文本转语音外，Party 还支持传统的文本消息。虽然许多游戏将文本转语音与文本消息绑定，但这并不是要求 - Party 将文本转语音和文本消息作为独立的功能来支持。有关详细信息，请参阅 [了解聊天](/services/playfab/community/voice-communications/concepts-chat)。

## 文本转语音 UX

文本转语音使人能够使用平台向活动的游戏聊天参与者发送合成语音流。这非常适合让人在没有可用的基于文本聊天的系统时进行参与，所有通信都通过游戏内的语音聊天进行。

### 发现

对于 XBOX 和 Windows，用户可以在 XBOX 主页（XBOX 主机）或 XBOX 应用 (Windows 10) 的 **设置** 下的 **辅助功能** 部分找到文本转语音和语音转文本设置。这些设置通过切换按钮控制，可启用或禁用与平台设置集成的、特定于用户配置文件的所有 XBOX 游戏的功能。对于所有其他平台，请参阅其辅助功能指南以了解文本转语音和语音转文本设置的位置。

<Note>
  如果你的游戏选择添加仅特定于游戏的额外设置，则应将其放置在你的游戏内部。一般而言，辅助功能选项应位于游戏的设置/选项菜单下。理想情况下，设置应作为专用按钮按压提供，并且可以从任何屏幕（或至少从暂停菜单）访问。
</Note>

### 文本输入/输出选项

**游戏负责提示和接受文本**。这可以是自定义文本输入字段或平台提供的键盘。然后可以将生成的输入传递到 PlayFab Party 中，以处理为合成流。该流作为语音发送给聊天会话中的其他玩家。接收端将以与处理用户通过麦克风说话的另一个语音流相同的方式来处理此语音流。

1. **主机操作系统虚拟键盘** (*XBOX 主机示例*)

<Note>
  安装游戏手柄时键盘仍会出现。安装硬件键盘时它不会出现。
</Note>

<img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/multiplayer/networking/xbox-one-virtual-keyboard.jpg?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=cc7ea2ff7207933eade78e8943526e98" alt="XBOX One - 虚拟键盘" width="1038" height="584" data-path="images/playfab/multiplayer/networking/xbox-one-virtual-keyboard.jpg" />

2. **PC 操作系统虚拟键盘**  (*Windows 10 示例*)

   PlayFab Party API 支持在所有平台上接收输入。但是，在这些平台上文本输入组件的提供并不一致。

   * 在 XBOX 主机上，游戏可以依赖虚拟键盘。它有自己的输入框，接受文本，然后将其提供给游戏。
   * 在 Windows 上，游戏可以依赖虚拟键盘，但有一个警告 - 它没有输入框。这意味着游戏必须提供一个文本输入框来接受由虚拟键盘生成的按键。即使游戏不支持传统的文本聊天，可能也需要文本输入来支持文本转语音。

   #### UX 建议 (Windows)

   不支持传统文本消息的跨平台游戏必须提供一个文本输入框来接受按键，以支持文本转语音。

   <img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/multiplayer/networking/windows-input-box.jpg?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=88f0c89264b6bc59d806e089a5798fe8" alt="Windows - 输入框" width="1085" height="59" data-path="images/playfab/multiplayer/networking/windows-input-box.jpg" />

3. **游戏提供的自定义键盘** (*主机示例*)

<Note>
  此处使用的短语特定于所显示的示例游戏。
</Note>

* 游戏对可见性拥有完全控制权。
* 游戏可以增强键盘以包含用于快速回复的短语。

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/multiplayer/networking/custom-keyboard.jpg?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=d179bba68ffeed14749d6d56b73f9787" alt="自定义键盘" width="1432" height="360" data-path="images/playfab/multiplayer/networking/custom-keyboard.jpg" />

## Quick Chat：适合所有人的解决方案

考虑玩家的聊天活动、讨论类型和屏幕目标。例如，在活跃的游戏会话期间，使用控制器启动键盘和输入回复会很麻烦，但可能很关键。为用户提供一种从预定义回复列表中快速选择的方法将大大有助于解决此问题。对于启用旁白的用户，每个预定义回复都将被朗读。回复列表将是预编写的，因此翻译的准确性会提高。游戏将控制适合其玩家的上下文相关的、游戏特定的术语。

以下是使用 XBOX 主机和 Windows 10 平台的两个示例：

### 1a. 映射到方向键的短语列表

按方向键 (D-pad) 上的方向（上、下、左、右）会打开所选类别。类别列表打开后，方向键的方向应用于该类别中的选项。要切换类别，用户等待窗口关闭（两秒钟的非活动），然后选择一个替代的方向键方向来打开一个新的回复列表。

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/multiplayer/networking/phrase-list-mapped-to-d-pad.png?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=aa4b1cb2033a2b86e23afe4daabbc289" alt="映射到方向键的短语列表" width="1005" height="466" data-path="images/playfab/multiplayer/networking/phrase-list-mapped-to-d-pad.png" />

### 1b. 映射到键盘的短语列表

按数字键 (1-4) 会打开所选类别。类别列表打开后，数字键应用于该类别中的选项。要切换类别，用户等待窗口关闭（两秒钟的非活动），然后选择一个替代的数字键来打开一个新的回复列表。

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/multiplayer/networking/phrase-list-mapped-to-keyboard.png?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=8daffba72c73e174a6949e4f046eac93" alt="映射到键盘的短语列表" width="974" height="408" data-path="images/playfab/multiplayer/networking/phrase-list-mapped-to-keyboard.png" />

### 1c. 映射到键盘的短语列表（带可自定义的回复设置）

通过允许用户从一系列响应中选择，将此功能提升到一个新的水平。

* **主机示例**：有关键盘和控制器设计模板原生文件，请参阅 [资源](#resources)。

在第一张图片中，选项菜单包含一个"聊天"部分。此屏幕显示默认和用户选择的回复，列在四类对话类型（赞美、教学等）下。

每个类别映射到方向键的单击方向。每个回复映射到方向键的双击方向。用户可以通过按 A 键选择要编辑的回复。

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/multiplayer/networking/options-menu-chat.jpg?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=673c4ca924ef0f84696afebf19465d6f" alt="选项菜单 - 聊天" width="1920" height="1080" data-path="images/playfab/multiplayer/networking/options-menu-chat.jpg" />

在第二张图片中，弹出显示提供了十个回复的列表。用户可以选择最多四个，每个都根据选择顺序映射到一个方向键方向。

<img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/multiplayer/networking/pop-up-display-chat.jpg?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=231f023c13f14a16998fb7adf446051d" alt="弹出显示 - 聊天" width="1149" height="646" data-path="images/playfab/multiplayer/networking/pop-up-display-chat.jpg" />

### 用于映射回复的控制器示意图

某些游戏已经为各种游戏偏好提供自定义控制器映射。此示例为文本转语音和语音转文本提出了一种替代控制器方案。用户可以从预定义回复列表中选择并映射到四个方向键方向。左右缓冲键在类别之间滚动；Y 按钮启动虚拟键盘以进行自定义回复。

在游戏会话期间，用户可以通过专用按钮按压（由游戏分配）切换控制方案。在这种情况下，B 按钮退出此模式。

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/multiplayer/networking/controller-schematic.png?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=2a5384e5a613f894b22a7dbc513a5c4a" alt="控制器示意图" width="773" height="663" data-path="images/playfab/multiplayer/networking/controller-schematic.png" />

### Quick Chat 回复指南：让玩家参与的方法

如果玩家可以个性化一个增强玩家间交流的快速聊天解决方案，会怎样？如果有一个既能最大化游戏性能又能最小化通信障碍的解决方案，会怎样？Quick Chat 通过允许用户从预定义回复列表中选择接近了这一目标。然而，这些回复通常是有限的、冗余的短语，看起来自动化且无聊。以下指南探讨了一种保持玩家参与的策略。

#### 目标：使此行为自动化

如果 Quick Chat 反复满足需求，可以形成一种习惯。考虑触发响应的方式以及这如何满足当时的对话需求。

#### Quick Chat 用例

* **对话式**：玩家希望参与以促进团队活动或建立更深层的社交联系。
* **简单性**：Quick Chat 解决方案在高强度活动期间必须易于访问。
* **匿名性**：通常避免语音聊天的玩家有一种参与的方式。

1. **多样化回复**
   提供大量的回复选项。这将有助于在动态语音对话中通常实现的自发性。用户不太可能对相同的回复选项感到厌倦，回复看起来也不那么自动化。

2. **在需要出现时展现解决方案**

   * 无论何时参与游戏聊天，都可使用 Quick Chat。
   * 使用专用按钮按压启动 Quick Chat 回复。
   * 默认使用与当前游戏活动相关的类别。例如，当用户得分时，默认类别为"赞美"。

3. **保持回复聚焦且具体**
   这主要是为了保持认知负担低。用户应能够毫不费力地阅读整条消息。

   * 使回复与游戏及其类别相关。
   * 使用你游戏中最常用的短语和单音节词。
   * 使用你可以立即想到的词语。

4. **使用幽默**
   *Banter*（打趣）是一种以友好方式对待玩家的常见嘲讽形式。这与 *griefing*（捣乱）不同，在后者中，用户经常受到骚扰。如果回复聪明、相关和多样化，一些用户可能不会诉诸不适当的选择。

5. **与技能和进度相关**

   * 提供包括基于进度和技能级别的回复的聊天偏好。
   * 展现用户可以传达给其他团队成员的建议回复。这些选项将与当前游戏活动相关。例如，"有人有斧头来打这个僵尸吗？"

6. **关注情绪**
   传达某些目标情绪的回复可以帮助使他们的体验更具关联性。

## 结论

PlayFab Party 文本转语音和语音转文本 API 是将更广泛的用户纳入游戏和游戏对话的高效功能。玩家参与和发展关系越多，他们继续游戏的可能性就越大。本指南将有助于确保尽可能最佳的用户体验。

## 资源

### 设计模板

* [QuickChat\_AI\_Template.zip](https://aka.ms/quickchat-ai-template)
  包含：
  * QuickChat\_ConsolePC\_Templates.ai

### 文本转语音旁白菜单指南

* [语音交互](https://learn.microsoft.com/en-us/windows/uwp/design/input/speech-interactions)
* [语音合成 API (Windows)](https://learn.microsoft.com/en-us/uwp/api/Windows.Media.SpeechSynthesis)

### PlayFab Party 文本转语音和语音转文本 UX 系列

* 第 1 部分：PlayFab Party 文本转语音和文本输入 UX 指南
* 第 2 部分：[PlayFab Party 语音转文本和文本显示 UX 指南](/services/playfab/community/voice-communications/party-speech-to-text-ux-guidelines)

### SDK 文档

* PlayFab SDK 中的"Accessible in-game chat overview"（请参阅 [SDK 下载](https://developer.xboxlive.com/live/development/Pages/Downloads.aspx)）

### 辅助功能指南

* Griffiths, Gareth. [Subtitles: Increasing Game Accessibility, Comprehension](https://www.gamasutra.com/view/feature/132315/subtitles_increasing_game_.php?print=1)
  *Gamasutra*
* [Game Accessibility Guidelines](http://gameaccessibilityguidelines.com/)
  一个简洁明了的包容性游戏设计参考

### 包容性设计

* [XBOX's Gaming for Everyone Initiative](https://news.microsoft.com/gamingforeveryone/)
* [Inclusive Design](https://www.microsoft.com/design/inclusive)
  Microsoft Design Toolkit 和教育
* Kojouharov, Stefan. [10 Tips on Creating an Addictive ChatBot](https://chatbotslife.com/10-tips-on-creating-an-addictive-chatbot-experience-b796ea6d1178#.ka4jz0vk7)
  在本文档中引用，用于对话式 UI 提示。


## Related topics

- [PlayFab Party 语音转文本和文本显示 UX 指南](/zh-CN/services/playfab/community/voice-communications/party-speech-to-text-ux-guidelines.md)
- [PlayFab Party 功能](/zh-CN/services/playfab/multiplayer/networking/party-features.md)
- [文本转语音](/zh-CN/build/console-features/text-to-speech/text-to-speech.md)
- [了解 PlayFab Party 聊天的工作原理](/zh-CN/services/playfab/community/voice-communications/concepts-chat.md)
- [使用 Game Chat 2 C++ API](/zh-CN/services/xbox-services/multiplayer/chat/game-chat2/using-game-chat-2.md)
