夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

HoloLens×Azure その7 Unityプロジェクトで実行(失敗)

本日はAzure調査枠です。

以下のリンクのチュートリアルドキュメントを進めています。

docs.microsoft.com

〇アプリへの Azure 予測リソースの割り当て

①[Manage]→[Azure Resource] ページに移動します。

f:id:Holomoto-Sumire:20201003153943j:plain

②[Add prediction resource]ボタンをクリックします。

f:id:Holomoto-Sumire:20201003154222j:plain

③ [Assign a resource to your app]ポップアップで次の値を選択します。

f:id:Holomoto-Sumire:20201003155207j:plain

サブスクリプションとLUISのリソースを指定して[Done]を選択します。

④リソースが完成しました。

f:id:Holomoto-Sumire:20201003155914j:plain

〇UnityプロジェクトとLUIS アプリを接続する

①[Azure Resource] ページで、アイコンをクリックして、サンプルクエリをコピーします。

f:id:Holomoto-Sumire:20201003160400j:plain

②Unityに戻り、[Hierarchy]ウィンドウで[Lunarcom]オブジェクトの[Inspector]ウィンドウで[Lunarcom Intent Recognizer]コンポーネント に前の手順でコピーしたサンプル クエリを [LUIS Endpoint]フィールドに貼り付けます。

f:id:Holomoto-Sumire:20201003160928j:plain

〇テスト

UnityエディターでIntent認識を使用するには、ディクテーションを使用できるように設定する必要があります。

Windowsの [設定] を開き、 [プライバシー] > [音声認識] を選択し [オンライン音声認識] がオンになっていることを確認します。

 f:id:Holomoto-Sumire:20201003161951j:plain

②実機でロケットボタンを選択した後「Go ahead and Launch The rocket」と発音します。

f:id:Holomoto-Sumire:20201003162107j:plain

ところが筆者の環境ではPCは日本語の言語を用いているため日本語の認識がされてしまいました。

f:id:Holomoto-Sumire:20201003164432j:plain

また[UnityException: Cannot start dictation recognition session while PhraseRecognitionSystem is running]というエラーが発生しました。

f:id:Holomoto-Sumire:20201003174035j:plain

これは下記ドキュメントによるとディクテーション認識セッションを開始するためには[PhraseRecognitionSystem]実行されていない必要があるからのようです。

docs.unity3d.com

このディクテーション認識セッションは[LunarcomIntentRecognizer]コンポーネントの79行目で行われているのでその直前でPhraseRecognitionSystemの終了を行います。

                PhraseRecognitionSystem.Shutdown();
                dictationRecognizer.Start();

f:id:Holomoto-Sumire:20201003174720j:plain

これで実行します。

エラーは表示されなくなりましたが、PhraseRecognitionSystemが終了してしまっているので認識ができなくなってしまいました。

再び調査してみる必要がありそうです。

本来成功していた場合LUISと接続し何度も発話することでより自然に認識が行えるように学習できるようです。