コア サブシステム: PhraseRecognitionSubsystem — MRTK3

注意

MRTK3 のサブシステムに関する一般的な情報については、こちらを参照してください。

Core Definitions パッケージには、PhraseRecognitionSubsystemMRTKSubsystem の基本実装である IPhraseRecognitionSubsystem が付属しています。これは、MRTK3 でのキーワードまたはフレーズの認識を担うサブシステムのベースとして機能します。 MRTK の一部として提供される WindowsPhraseRecognitionSubsystem などの具体的な実装と、構築する可能性のある他のフレーズ認識サブシステムはすべて、このクラスに基づいている必要があります。 PhraseRecognitionSubsystem から継承するサブシステムでは、SpeechInteractor と連携して、インタラクタブルの設定に基づいてStatefulInteractable の選択イベントをトリガーできます。 継承元サブクラスでは、任意の UnityAction を任意のキーワードに登録して、そのような単語が言われたときにアクションが呼び出されるようにすることもできます。

詳細については、使用する具体的な PhraseRecognitionSubsystem 実装のドキュメントを参照してください。

セットアップ

注意

このガイドでは、新しい MRTK プロジェクトで音声サブシステムを有効にする手順について説明します (その他の基本的な非音声関連のセットアップは行われているとします)。 サンプル プロジェクトを使用している場合は、いくつかの手順が実行されていることがわかります。

1. 音声サブシステムを有効にする

[プロジェクト設定]>[MRTK3] [Available MRTK Subsystems] (使用可能な MRTK サブシステム) に移動し、使用する音声サブシステムを有効にします。

2. 構成アセットを割り当てる (特定のサブシステムの場合)

特定のサブシステムでは、正常に実行するために構成アセットが必要です。

  1. セットアップ 1 で有効にしたサブシステムをクリックします。
  2. 右側の [サブシステムの詳細] に空 Configuration Asset のスロットが表示されているかどうかを確認します。 該当する場合は、[アセット] ->[作成][MRTK]>[サブシステム]>[<サブシステムの名前> Config] (<サブシステムの名前> の構成) を選択し、作成された構成をスロットにドラッグします。
  3. 構成スロットが設定されていることを確認したら、新しく作成した特定プロジェクトの構成の設定を変更します。 完了したら、必ずプロジェクトを保存してください。

3. MRTK Speech GameObject がアクティブであることを確認する (StatefulInteractable (ボタンなど) でフレーズに応答するためには必須)

[MRTK XR Rig] -> [MRTK Speech] がアクティブであり、アタッチされたスクリプトが有効になっていることを確認します。

4. [プレーヤー設定] で適切な機能が設定されていることを確認する

PhraseRecognitionSubsystem の実装が異なると、必要な機能が異なります。 詳細については、使用するサブシステムのドキュメントを参照してください。

例として UWP プラットフォームで WindowsPhraseRecognitionSubsystem を使用するには、[プロジェクト設定]>[プレーヤー]>[Publishing Settings] (発行の設定)>[機能] に移動し、マイク機能が設定されていることを確認します。

5. デバイス/エディターでシーンを実行する

これで、プロジェクトをデバイスまたはエディターで実行する準備が整いました。

PhraseRecognitionSubsystem の使用

StatefulInteractable (ボタンなど) と共に PhraseRecognitionSubsystem を使用する

PhraseRecognitionSubsystem の最も簡単な使用方法は、StatefulInteractable と共に使用する方法です。 セットアップ セクションの手順 3 を実行すると、このようなインタラクタブルで指定された条件が満たされた (たとえば、指定されたフレーズが聞こえ、インタラクタブルが視線入力でホバーされている) 場合、SpeechInteractor によって StatefulInteractable に対する選択イベントがトリガーされます。 構成可能な設定については、StatefulInteractableSpeechInteractor のインスペクター ([MRTK XR Rig] -> [MRTK Speech]) を参照してください。

PhraseRecognitionSubsystem を手動で使用する

PhraseRecognitionSubsystem の別の使用方法は、フレーズと、そのフレーズがサブシステムで聞こえたときに呼び出す UnityAction を手動で登録する方法です。

// Get the first running phrase recognition subsystem.
var phraseRecognitionSubsystem = XRSubsystemHelpers.GetFirstRunningSubsystem<PhraseRecognitionSubsystem>();

// If we found one...
if (phraseRecognitionSubsystem != null)
{
    // Register a phrase and its associated action with the subsystem
    phraseRecognitionSubsystem.CreateOrGetEventForPhrase("your phrase").AddListener(() => Debug.Log("Phrase recognized"));
}