> ## 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 解決方案，而[第二部分](/zh-TW/services/playfab/community/voice-communications/party-speech-to-text-ux-guidelines)則著重於語音轉換文字的實作、需求，以及主機和 PC 的 UI 解決方案。

## 文字轉換語音與語音轉換文字案例

下表引導您了解啟用語音轉換文字與文字轉換語音功能時，玩家將體驗到的案例。它概述了遊戲體驗三個階段對使用者的影響：初始設定、玩遊戲，以及參與遊戲聊天。

| **體驗階段** | **設定** | **遊玩** | **聊天** | **訊息** |
| :- | :- | :- | :- | :- |
| **目標** | **使用者啟用設定** | **使用者進入多人遊戲** | **使用者傳送通訊** | **使用者接收通訊** |
| **動作** | 語音轉換文字 <br /><br /> 聆聽語音回覆的替代方式 | 啟動遊戲 <br /><br /> 進入多人遊戲大廳 <br /><br /> 起始遊戲聊天時開啟覆疊 | 使用者說話 | 使用者在語音轉換文字聊天覆疊中閱讀隊伍已轉換為文字的語音回覆 |
| | 文字轉換語音 <br /><br /> 說出語音回覆的替代方式 | 啟動遊戲 <br /><br /> 進入多人遊戲大廳 <br /><br /> 遊戲顯示文字輸入方法 (鍵盤、輸入欄位等) | 使用者使用平台支援的輸入方法輸入回覆 <br /><br /> 輸入的訊息會轉換為合成語音 | 使用者聽到隊友的語音回覆 |
| | UI 朗讀 (遊戲內) <br /><br /> 閱讀遊戲內功能表和文字回覆的替代方式 | 使用者由 XBOX OS 合成語音引導啟動遊戲 <br /><br /> 遊戲使用語音合成 API 朗讀功能表選項，引導使用者前往多人遊戲大廳 | 對於文字訊息系統：遊戲使用語音合成 API 引導使用者啟動 XBOX OS 鍵盤 | 對於文字訊息系統：遊戲使用語音合成 API 朗讀回覆 |
| | 朗讀程式 (XBOX OS) <br /><br /> 閱讀 XBOX 功能表的替代方式 | 使用者由 XBOX OS 合成語音引導啟動遊戲 | 對於文字訊息系統：使用者輸入訊息時會朗讀虛擬鍵盤 | 不適用 |

## 了解 API

### 文字轉換語音

#### 文字轉換語音的類型

Party 支援兩種文字轉換語音類型：**語音聊天**和**朗讀**。語音聊天類型適用於使用者選擇使用文字轉換語音音訊作為語音聊天通訊說話聲音的案例。當本頁討論 Party 與文字轉換語音時，通常指的是此案例。朗讀類型適用於應將文字轉換語音音訊播放至使用者音訊輸出的案例。這主要是為了支援「試聽語音」案例，讓使用者比較各種文字轉換語音選項的音訊，以選取他們偏好在語音聊天案例中使用的設定檔。雖然這可用於任意的、由遊戲定義的朗讀案例，但每個平台通常會為遊戲內朗讀提供更有彈性的解決方案，例如 XBOX 和 Windows 上的語音合成 API。每個用來啟動文字轉換語音作業的方法都會採用 [`PartySynthesizeTextToSpeechType`](/zh-TW/services/playfab/multiplayer/networking/reference/enums/partysynthesizetexttospeechtype) 參數，以指定所使用的是這兩種文字轉換語音案例中的哪一種。

#### 文字轉換語音的語音設定檔

文字轉換語音的語音設定檔定義用來產生文字轉換語音音訊的音訊特性。設定檔會因語言、地區設定和性別而異。每種組合可能有多個選項。Party 支援 Azure 認知服務所支援的所有設定檔。如需支援的語言和語音選項完整清單，請參閱[語言支援參考](https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support)。

Party 程式庫也可以列舉設定檔選項。第一步是透過 [`PartyLocalChatControl::PopulateAvailableTextToSpeechProfiles()`](/zh-TW/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_populateavailabletexttospeechprofiles) 啟動將填入文字轉換語音設定檔的非同步作業。當作業完成時 (由 [`PartyManager::StartProcessingStateChanges()`](/zh-TW/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_startprocessingstatechanges) 提供 [`PartyPopulateAvailableTextToSpeechProfilesCompletedStateChange`](/zh-TW/services/playfab/multiplayer/networking/reference/structs/partypopulateavailabletexttospeechprofilescompletedstatechange) 來表示)，即可透過 [`PartyLocalChatControl::GetAvailableTextToSpeechProfiles()`](/zh-TW/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_getavailabletexttospeechprofiles) 查詢設定檔。

#### 設定文字轉換語音的語音設定檔

在 Party 程式庫產生任何文字轉換語音之前，遊戲必須先設定文字轉換語音的語音設定檔。可以透過 [`PartyLocalChatControl::SetTextToSpeechProfile()`](/zh-TW/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settexttospeechprofile) 啟動設定設定檔的非同步作業。作業的完成由 `PartyManager::StartProcessingStateChanges()` 提供 [`PartySetTextToSpeechProfileCompletedStateChange`](/zh-TW/services/playfab/multiplayer/networking/reference/structs/partysettexttospeechprofilecompletedstatechange) 來表示。

#### 合成文字轉換語音

遊戲設定文字轉換語音的語音設定檔之後，即可透過 [`PartyLocalChatControl::SynthesizeTextToSpeech()`](/zh-TW/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_synthesizetexttospeech) 將文字合成為語音音訊。在語音聊天案例中，音訊資料會看起來像是由與啟動文字轉換語音作業之使用者相關聯的麥克風「自然」擷取的。這就像使用者將麥克風對著代替他們說話的電腦。在朗讀案例中，音訊資料將會播放至使用者的音訊輸出。

合成文字轉換語音是非同步作業；作業的完成由 `PartyManager::StartProcessingStateChanges()` 提供 [`PartySynthesizeTextToSpeechCompletedStateChange`](/zh-TW/services/playfab/multiplayer/networking/reference/structs/partysynthesizetexttospeechcompletedstatechange) 來表示。

雖然在合成文字轉換語音之前必須先設定語音設定檔，但在呼叫 `PartyLocalChatControl::SynthesizeTextToSpeech()` 之前，不需要等待 `PartyLocalChatControl::SetTextToSpeechProfile()` 所啟動的非同步作業完成。如果設定檔作業正在進行中，文字轉換語音作業將會排入佇列，並在設定檔作業完成後開始。

### 文字訊息

除了文字轉換語音之外，Party 也支援傳統的文字訊息。雖然許多遊戲會將文字轉換語音與文字訊息綁在一起，但這並非必要條件；Party 將文字轉換語音與文字訊息作為獨立功能來支援。如需詳細資訊，請參閱[了解聊天](/zh-TW/services/playfab/community/voice-communications/concepts-chat)。

## 文字轉換語音 UX

文字轉換語音讓使用者能夠使用平台將合成語音串流傳送給作用中的遊戲聊天參與者。當沒有可用的文字聊天系統，且所有通訊都透過遊戲內語音聊天進行時，這非常適合讓使用者參與其中。

### 探索

對於 XBOX 和 Windows，使用者可以在 XBOX 首頁 (XBOX 主機) 或 XBOX 應用程式 (Windows 10) 中 **設定** 下的 **協助工具** 區段找到文字轉換語音和語音轉換文字設定。這些設定由切換按鈕控制，可針對與平台設定整合的所有 XBOX 遊戲，為特定使用者設定檔啟用或停用這些功能。對於所有其他平台，請參閱其協助工具指導方針，以了解文字轉換語音和語音轉換文字設定的位置。

<Note>
  如果您的遊戲選擇新增僅限該遊戲的其他設定，則應將這些設定放在遊戲內。一般而言，協助工具選項應位於遊戲的設定/選項功能表下。理想情況下，設定應可透過專用按鈕按下來存取，並可從任何畫面存取，或至少可從暫停功能表存取。
</Note>

### 文字輸入/輸出選項

**遊戲負責提示及接受文字**。這可以是自訂文字輸入欄位或平台提供的鍵盤。產生的輸入內容接著可傳遞至 PlayFab Party，以處理為合成串流。該串流會以語音形式傳送給聊天工作階段中的其他玩家。接收端處理此語音串流的方式，與處理使用者透過麥克風說話的其他語音串流相同。

1. **主機 OS 虛擬鍵盤** (*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 OS 虛擬鍵盤**  (*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" />

## 快速聊天：適合每個人的解決方案

請考量玩家的聊天活動、討論類型和畫面目標。例如，在進行中的遊戲工作階段期間，使用控制器啟動鍵盤並輸入回覆會很麻煩，但可能至關重要。提供讓使用者能從預先定義的回覆清單中快速選擇的方法，將大大有助於解決此問題。對於啟用朗讀的使用者，每個預先定義的回覆都會被朗讀。回覆清單是預先撰寫的，因此翻譯的正確性會提高。遊戲可以控制適合其玩家的情境式、遊戲專屬用語。

以下是使用 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" />

### 快速聊天回覆指引：讓玩家參與的方法

如果玩家可以個人化快速聊天解決方案，以增進玩家之間的交流呢？如果有一種解決方案能將遊戲效能最大化，同時將溝通障礙降至最低呢？快速聊天允許使用者從預先定義的回覆清單中選擇，已相當接近這個目標。不過，這些回覆通常是有限且重複的片語，顯得自動化且乏味。以下指導方針探討讓玩家保持參與的策略。

#### 目標：讓此行為自動化

如果快速聊天能重複滿足某種需求，就能養成習慣。請考量觸發回應的方式，以及如何滿足當下的對話需求。

#### 快速聊天使用案例

* **對話**：玩家希望參與互動以促進團隊活動，或建立更深層的社交連結。
* **簡單**：快速聊天解決方案必須在高強度活動期間也易於存取。
* **匿名**：通常會避免語音聊天的玩家有方法可以參與。

1. **變化回覆**
   提供大量的回覆選項。這將有助於營造通常在動態語音對話中才能實現的自發性。使用者比較不會對相同的回覆選項感到厭倦，回覆也會顯得比較不自動化。

2. **在需求出現時提供解決方案**

   * 在遊戲聊天進行時隨時提供快速聊天。
   * 使用專用按鈕按下來啟動快速聊天回覆。
   * 預設為與目前遊戲活動相關的類別。例如，當使用者得分時，預設類別為「讚美」。

3. **讓回覆保持重點明確且具體**
   這主要是為了降低認知負荷。使用者應能毫不費力地閱讀整則訊息。

   * 讓回覆與遊戲及其類別相關。
   * 使用您的遊戲中最常用的簡短片語和單音節字詞。
   * 使用能讓人立即聯想到畫面的字詞。

4. **運用幽默**
   *打趣*是一種以友善方式對待玩家的常見嘲諷形式。這與*惡意騷擾*不同，後者經常會騷擾使用者。如果回覆巧妙、相關且多樣化，有些使用者可能就不會訴諸不當的選擇。

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 指引](/zh-TW/services/playfab/community/voice-communications/party-speech-to-text-ux-guidelines)

### SDK 文件

* PlayFab SDK 中的「無障礙遊戲內聊天概觀」(請參閱 [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 的 Gaming for Everyone 計畫](https://news.microsoft.com/gamingforeveryone/)
* [包容性設計](https://www.microsoft.com/design/inclusive)
  Microsoft 設計工具組與教育資源
* 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 版本資訊](/zh-TW/services/playfab/multiplayer/networking/release-notes.md)
- [最常失敗的測試案例](/zh-TW/publishing/certification/xr-top-failing.md)
- [GDK 無障礙概覽](/zh-TW/build/game-principles/accessibility/accessibility-overview.md)
- [XBOX 主機遊戲的認證測試 XBOX 需求](/zh-TW/publishing/certification/console-cert-tested-requirements.md)
- [XR-018：使用者產生的內容](/zh-TW/publishing/certification/xr/xr-018.md)
