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

注意

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

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

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

セットアップ

注意

このガイドでは、新しい 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. [プレーヤー設定] で適切な機能が設定されていることを確認する

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

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

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

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

KeywordRecognitionSubsystem の使用

KeywordRecognitionSubsystem を と一緒に StatefulInteractable使用する (ボタンなど)

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

KeywordRecognitionSubsystem を手動で使用する

別の方法KeywordRecognitionSubsystemとして、キーワード (keyword)を手動で登録し、UnityActionサブシステムでキーワード (keyword)が聞こえたときに呼び出される を確認することもできます。

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

// If we found one...
if (keywordRecognitionSubsystem != null)
{
    // Register a keyword and its associated action with the subsystem
    keywordRecognitionSubsystem.CreateOrGetEventForKeyword("your keyword").AddListener(() => Debug.Log("Keyword recognized"));
}