PlayFab パーティーのテキスト音声合成およびテキスト入力の UX ガイドライン
PlayFab パーティー ライブラリは、アクセシビリティの高いゲーム チャット オプションを通じて、より多くのプレイヤーを引き付ける力をゲーム作成者に提供します。 このオプションでは、ボイス チャットの内容がテキストに書き起こされ、テキスト入力では合成音声に変換される手段を提供します。 これらの機能のカスタム UI ソリューションをタイトルに実装できます。 Xbox と Windows では、プラットフォーム API を使用して関連する UI を実装できます。
このトピックは、音声テキスト変換 (STT) とテキスト音声合成 (TTS) 実装の UX ソリューションを扱う 2 部シリーズの第 1 部です。 第 1 部では、テキスト音声合成の実装、要件、コンソール、PC UI ソリューションに焦点を当てていますが、第 2 部では音声テキスト変換の実装、要件、コンソール、 PC UI ソリューションに焦点を当てています。
テキスト音声合成 (TTS) および音声からテキストへの変換 (STT)
次のチャートでは、音声テキスト変換とテキスト音声変換の機能を有効にしたときにプレイヤーが体験するシナリオについて順を追って説明します。 ゲーム エクスペリエンスの 3 つのステージ (初期セットアップ、ゲームのプレイ、ゲーム チャットへの参加) におけるユーザーへの影響の概要を示しています。
エクスペリエンス ステージ | 設定 | プレイ | チャット | Message |
---|---|---|---|---|
目標 | ユーザーが設定を有効にする | ユーザーがマルチプレイヤー ゲームに入る | ユーザーが通信を送信する | ユーザーが通信を受信する |
アクション | 音声テキスト変換 音声応答を聞くための代替手段 |
ゲームを起動する MP ロビーに入る ゲーム チャットが開始したときにオーバーレイが開く |
ユーザーが話す | STT チャット オーバーレイでテキストに変換されたチームの音声応答をユーザーが読む |
テキスト音声合成 音声応答を話すための代替方法 |
ゲームを起動する MP ロビーに入る ゲームにテキスト入力の方法が表示される (キーボード、入力フィールドなど) |
ユーザーがプラットフォームでサポートされている入力方式を使って返信を入力する 入力したメッセージが合成音声に変換される |
ユーザーがチーム メンバーの音声応答を聞く | |
UI ナレーション (ゲーム内) ゲーム内のメニューとテキストの返信を読むための代替方法 |
Xbox OS の合成音声によってゲームの起動がユーザーに求められる ゲームがテキスト音声合成 API を使ってメニュー オプションをナレーションし、ユーザーを MP ロビーに誘導する |
テキスト メッセージング システムの場合: ゲームが音声合成 API を使用して、ユーザーに Xbox OS キーボードの起動を案内する | テキスト メッセージング システムの場合: ゲームが音声合成 API を使用して返信をナレーションする | |
ナレーター (Xbox OS) Xbox メニューを読む代替方法 |
Xbox OS の合成音声によってゲームの起動がユーザーに求められる | テキスト メッセージング システムの場合: ユーザーがメッセージを入力すると仮想キーボードでナレーションされる | 該当なし |
API の概要
テキスト音声合成
テキスト音声合成の種類
パーティーでは、ボイス チャットと ナレーションの 2 種類のテキスト音声合成がサポートされています。 ボイス チャット タイプは、ユーザーが音声チャット通信用の音声としてテキスト音声合成オーディオを使用することを選択したシナリオ用です。 このページでパーティーとテキスト音声合成について説明する場合は、通常、このシナリオについて言っています。 ナレーション タイプは、ユーザーがオーディオ出力に対してテキスト音声合成オーディオを再生する必要があるシナリオ用です。 これは主に、ユーザーがテキスト音声合成の音声オプション間で音声を比較して、ボイス チャット シナリオで使用するプロファイルを選択する「音声の吹き出し」シナリオをサポートするためです。 これは任意のゲーム定義のナレーション シナリオに使用できますが、各プラットフォームは通常、Xbox や Windows の音声合成 API など、ゲーム内ナレーションに対してより柔軟なソリューションを提供します。 テキスト音声合成操作を開始するために使用される各メソッドは、使用されている 2 つのテキスト音声合成シナリオのいずれかを指定するPartySynthesizeTextToSpeechType
パラメーターを受け取ります。
テキスト音声合成の音声プロファイル
テキスト音声合成の音声プロファイルは、テキスト音声合成オーディオの生成に使用されるオーディオ特性を定義します。 プロファイルは、言語、ロケール、性別によって異なります。 組み合わせごとに複数のオプションがある場合があります。 パーティーは、Azure Cognitive Servicesでサポートされているすべてのプロファイルをサポートします。 サポートされている言語と音声オプションの詳細な一覧については、「言語サポート リファレンス」をご覧ください。
プロファイル オプションは、パーティー ライブラリで列挙することもできます。 最初の手順では、PartyLocalChatControl::PopulateAvailableTextToSpeechProfiles()
を使用してテキスト音声合成プロファイルを設定する非同期操作を開始します。 操作が完了すると、を提供する PartyPopulateAvailableTextToSpeechProfilesCompletedStateChange
PartyManager::StartProcessingStateChanges()
によって示されます。プロファイルは PartyLocalChatControl::GetAvailableTextToSpeechProfiles()
を使用してクエリを実行できます。
テキスト音声合成の音声プロファイルを構成する
パーティー ライブラリで音声合成を生成する前に、タイトルで音声合成の音声プロファイルを構成する必要があります。 プロファイルを構成するための非同期オプションは、PartyLocalChatControl::SetTextToSpeechProfile()
を使用して開始できます。 操作の完了は、PartySetTextToSpeechProfileCompletedStateChange
を提供する PartyManager::StartProcessingStateChanges()
によって示されます。
テキスト音声合成を行う
タイトルでテキスト音声合成の音声プロファイルを構成したら、PartyLocalChatControl::SynthesizeTextToSpeech()
を介してテキストを音声オーディオに合成できます。 ボイス チャットのシナリオでは、音声データは、ユーザーがテキスト音声合成操作を開始する際に、マイクによって 「自然に」拾われたかのように表現されます。 これは、あるユーザーがマイクを持ってコンピュータに向け自分の代わりにハナしてもらう状況に似ています。 ナレーションのシナリオでは、オーディオ データがユーザーのオーディオ出力に再生されます。
テキスト音声変換の合成は非同期操作です。操作の完了は、PartySynthesizeTextToSpeechCompletedStateChange
を提供する PartyManager::StartProcessingStateChanges()
によって示されます。
音声プロファイルはテキスト音声変換を合成する前に構成する必要がありますが、 PartyLocalChatControl::SetTextToSpeechProfile()
によって開始された非同期操作が完了するのを待ってから、PartyLocalChatControl::SynthesizeTextToSpeech()
を呼び出す必要はありません。 プロファイル操作が進行中の場合、テキスト音声合成操作はキューに登録され、プロファイル操作の完了後に開始されます。
文字メッセージ
パーティーでは、テキスト音声合成に加えて、従来のテキスト メッセージングもサポートされています。 多くのタイトルではテキスト音声合成とテキスト メッセージングが結び付けられますが、これは必須ではありません。パーティーでは、テキスト音声合成とテキスト メッセージングが独立した機能としてサポートされています。 詳細については、「チャットについて」を参照してください。
テキスト音声合成 UX
テキスト音声合成では、プラットフォームを使用して、アクティブなゲーム チャットの参加者に合成音声ストリームを送信できます。 これは、利用可能なテキスト チャット ベースのシステムがない場合にユーザーが参加できるようにするのに適しており、すべての通信がゲーム内ボイス チャットを通じてアクティブになります。
情報表示
Xbox と Windows の場合、ユーザーは、Xbox ホーム (Xbox 本体) または Xbox アプリ (Windows 10) の [設定]の [アクセシビリティ] セクションで、テキスト音声合成 (TTS) と音声からテキストへの変換 (STT) の設定を見つけることができます。 設定は、プラットフォーム設定と統合するユーザー プロファイルに固有のすべての Xbox ゲームの機能を有効または無効にするトグル ボタンを使用して制御されます。 他のすべてのプラットフォームの場合テキスト、音声合成 (TTS) /音声からテキストへの変換 (STT) の設定場所ごとのアクセシビリティ ガイドラインをご覧ください。
注意
ゲーム独自の設定を追加することをゲームで選択したら、それらをゲーム内に配置する必要があります。 一般に、アクセシビリティ オプションはゲームの設定/オプション メニューの下にあります。 理想としては、設定が専用ボタンとして利用可能で、どの画面からでも、または少なくとも一時停止メニューからアクセスできる必要があります。
テキスト入力/出力オプション
タイトルは、テキストのプロンプト表示と受け付けを担当します。 これは、カスタム テキスト入力フィールドまたはプラットフォームで提供されるキーボードにすることができます。 結果のエントリを PlayFab パーティーに渡して合成ストリームに加工できます。 そのストリームは、チャット セッション内で他のプレイヤーに音声として送信されます。 受信側は、マイクを通して話しているユーザーからの別の音声ストリームの場合と同じ方法でこの音声ストリームを処理します。
本体 OS 仮想キーボード (Xbox 本体の例)
注意
キーボードは、ゲームパッドがインストールされている場合にも表示されます。 ハードウェア キーボードが設置されている場合には表示されません。
PC OS の仮想キーボード (Windows 10 の例)
PlayFab パーティー API では、すべてのプラットフォームでの入力の受信がサポートされます。 ただし、テキスト入力コンポーネントはプラットフォーム間で一貫性のある方法で提供されていません。
- Xbox 本体では、ゲームは仮想キーボードに依存できます。 テキストを受け付けてタイトルに送信する独自の入力ボックスがあります。
- ただし Windows のゲームにも仮想キーボードがありますが、入力ボックスはありません。 つまり、仮想キーボードによって生成されたキーストロークを受け入れるには、ゲームがテキスト入力ボックスを提供する必要があります。 ゲームが従来のテキスト チャットをサポートしていない場合でも、テキスト音声合成のサポートにはテキスト入力が必要になる場合があります。
推奨される UX (Windows)
従来のテキスト メッセージングをサポートしていないクロスプラットフォーム ゲームでは、テキスト音声合成をサポートするために、キーストロークを受け入れるテキスト入力ボックスを提供する必要があります。
ゲームによって提供されるカスタム キーボード (本体の例)
注意
ここで使用される語句は、表示されるサンプル ゲームに固有です。
- ゲームでは、可視性を完全に制御できます。
- ゲームでは、すばやく応答するための語句を含むようにキーボードを強化できます。
クイック チャット: あらゆる人のためのソリューション
プレイヤーのチャット アクティビティ、ディスカッションの種類、画面の目的を考慮します。 たとえば、アクティブなゲームプレイ セッション中、コントローラーを使っているときにキーボードを起動して応答を入力するのは面倒ですが、これが重要な場合があります。 ユーザーが定義済みの応答の一覧からすばやく選択できる方法を提供すると、この問題に解決に役立ちます。 ナレーションを有効にするユーザーの場合、定義済みの各応答が読み上げられます。 応答の一覧は事前にスクリプト化されるので、翻訳の精度が向上します。 ゲームでは、プレイヤーに適した、コンテキストに沿ったゲーム固有の条件を制御できます。
Xbox 本体および Windows 10 プラットフォームを使った 2 つの例を次に示します。
1a. 方向パッドにマップされた語句の一覧
方向パッドで方向 (上、下、左、右) を押すと、選択したカテゴリが開きます。 カテゴリの一覧が開くと、方向パッドの方向はそのカテゴリ内の選択項目に適用されます。 カテゴリをスワップするには、ユーザーはウィンドウが閉じる (2 秒の非アクティブ状態) まで待ってから、別の方向パッドの方向を選択して新しい応答の一覧を開きます。
1b. キーボードにマップされた語句の一覧
数字キー (1 から 4) を押すと、選択したカテゴリが開きます。 カテゴリの一覧が開くと、数字キーはそのカテゴリ内の選択項目に適用されます。 カテゴリをスワップするには、ユーザーはウィンドウが閉じる (2 秒の非アクティブ状態) まで待ってから、別の数字キーを選択して新しい応答の一覧を開きます。
1c. カスタマイズ可能な応答設定でキーボードにマップされた語句の一覧
ユーザーがさまざまな応答から選択できるようにすることで、この機能を一歩先に進めます。
- 本体の例: キーボードとコントローラーのネイティブなデザイン テンプレートについては、「リソース」を参照してください。
最初のイメージでは、[オプション] メニューにチャット セクションが含まれています。 このセクションには、既定の応答とユーザーが選択した応答が、会話の種類の 4 つのカテゴリ (賛辞、指示など) に一覧表示されます。
各カテゴリはシングルタップの方向パッドの方向にマップされます。 各応答はダブルタップの方向パッドの方向にマップされます。 ユーザーは、A を押すことで編集する応答を選択できます。
2 番目のイメージでは、10 個の応答の一覧がポップアップ表示されています。 ユーザーは 4 つまで選択でき、それぞれが選択順序に基づいて方向パッドの方向にマップされます。
応答をマッピングするためのコントローラーの概要図
一部のゲームは、既にさまざまなゲームプレイの基本設定用にカスタム コントローラー マッピングを提供しています。 この例では、テキスト音声合成および音声からテキストへの変換に対して代替のコントローラー スキーマを提案します。 ユーザーは、定義済みの応答の一覧から選択し、方向パッドの 4 方向にマップできます。 L ボタンと R ボタンはカテゴリ内をスクロールし、Y ボタンはカスタム応答するために仮想キーボードを起動します。
ゲーム セッション中に、ユーザーは (ゲームによって割り当てられた) 専用ボタンを押してコントロール スキーマをスワップできます。 この場合、B ボタンでこのモードが終了します。
クイック チャット応答のガイダンス: ゲーマーをつなぎ止めておく方法
プレイヤー間のやり取りを強化するクイック チャット ソリューションをゲーマーがパーソナライズできたらどうなるでしょうか。 通信障壁を最小限に抑えながらゲーム パフォーマンスを最大化するソリューションあったらどうでしょうか。 ユーザーが定義済み応答の一覧から選択できるようにすると、クイック チャットがより身近なものになります。 ただし通常、これらの応答は限られた冗長な語句で、自動化されたつまらないものに見えました。 次のガイドラインでは、プレイヤーをつなぎ止めておくための戦略について説明します。
目的: この動作を自動化する
クイック チャットが 1 つのニーズを繰り返し満たす場合、習慣を形成することができます。 応答をトリガーする方法と、その応答がその時点での会話のニーズをどのように満たせるかを検討します。
クイック チャットの使用例
- 会話: プレイヤーは、チーム アクティビティの促進や、より深い社会的つながりの構築を望んでいます。
- シンプルさ: クイック チャット ソリューションは、高負荷アクティビティの時間帯でも簡単にアクセスできる必要があります。
- 匿名性: 通常はボイス チャットを避けているプレイヤーでも参加する方法があります。
可変の応答 応答オプションの大規模なコレクションを提供します。 これは、通常は動的な音声会話で実現される自発性に寄与します。 ユーザーが同じ応答オプションに退屈する可能性が減り、応答は自動化されているようには見えにくくなります。
必要になったときにソリューションを公開する
- ゲーム チャットに参加したときにクイック チャットを利用可能にします。
- 専用ボタンを押してクイック チャットの応答を起動します。
- 既定では、ゲームの現在のアクティビティのコンテキストに沿ったカテゴリになります。 たとえば、ユーザーが得点したときの既定のカテゴリは「賛辞」です。
返信を集中して具体的に これは、主にコグニティブ負荷を低く抑える場合に使用します。 ユーザーは、メッセージ全体を楽に読める必要があります。
- 応答をゲームプレイとそのカテゴリに関連したものにします。
- ゲームで最もよく使用される短い語句と単一音節の単語を使用します。
- 瞬時に思い描くことができる単語を使用します。
ユーモアの使用冷やかしは、プレイヤーにフレンドリーに話しかける一般的な形式のやじです。 これは、ユーザーを悩ませる非常に頻繁な嫌がらせとは異なります。 応答が善良で関連性とバリエーションがあれば、一部のユーザーは不適切な選択肢を用いない可能性があります。
スキルと進行状況に関連させる
- 進行状況とスキル レベルに基づく応答が含まれるチャットの基本設定を提供します。
- ユーザーが他のチーム メンバーとやり取りできる提案された応答を表示します。 これらのオプションは、現在のゲーム アクティビティのコンテキストに沿ったものになります。 たとえば、「斧を持っている人がこのゾンビを倒しますか?」などです。
感情にフォーカスする対象となる特定の感情を伝える応答は、エクスペリエンスをより関連の深いものにするのに役立つ場合があります。
まとめ
PlayFab パーティーのテキスト音声合成 (TTS) および音声からテキストへの変換 (STT) API は、ゲームやゲームの会話に幅広いユーザーを参加させるための非常に効果的な機能です。 エンゲージメントして関係を築くゲーマーが増えれば増えるほど、プレイを続ける可能性が高くなります。 このガイドでは、ユーザー エクスペリエンスにも役立ちます。
リソース
デザイン テンプレート
-
QuickChat_AI_Template.zip Contains:
- QuickChat_ConsolePC_Templates.ai
音声合成 (TTS) ナレーション メニューのガイドライン
PlayFab パーティーのテキスト音声合成 (TTS) および音声からテキストへの変換 (STT) の UX シリーズ
- 第 1 部: PlayFab パーティーのテキスト音声合成 (TTS) およびテキスト入力の UX ガイダンス
- 第 2 部: PlayFab パーティーの音声からテキストへの変換 (STT) およびテキスト表示の UX ガイダンス
SDK ドキュメント
- PlayFab SDK の「アクセシビリティ対応のゲーム内チャットの概要」(「SDK のダウンロード」を参照)
アクセシビリティのガイダンス
- Griffiths, Gareth。 字幕: ゲームのアクセシビリティの向上、包括Gamasutra
- ゲームのアクセシビリティ ガイドライン 包括的なゲーム設計の簡易リファレンス
- Straub, Josh。 ゲームのアクセシビリティ: その内容および重要である理由ゲームの情報提供者
包括性を備えた設計
- Xbox のすべての人のための ゲーミングの取り組み
- 包括性を備えた設計 Microsoft 設計ツールキットと教育
- Kojouharov, Stefan。 病みつきになるチャットボットを作成するための 10 のヒント 会話 UI のヒントについては、このドキュメントを参照してください。