本日はAzure調査枠です。
以下のリンクのチュートリアルドキュメントを進めています。
〇アプリへの Azure 予測リソースの割り当て
①[Manage]→[Azure Resource] ページに移動します。
②[Add prediction resource]ボタンをクリックします。
③ [Assign a resource to your app]ポップアップで次の値を選択します。
サブスクリプションとLUISのリソースを指定して[Done]を選択します。
④リソースが完成しました。
〇UnityプロジェクトとLUIS アプリを接続する
①[Azure Resource] ページで、アイコンをクリックして、サンプルクエリをコピーします。
②Unityに戻り、[Hierarchy]ウィンドウで[Lunarcom]オブジェクトの[Inspector]ウィンドウで[Lunarcom Intent Recognizer]コンポーネント に前の手順でコピーしたサンプル クエリを [LUIS Endpoint]フィールドに貼り付けます。
〇テスト
UnityエディターでIntent認識を使用するには、ディクテーションを使用できるように設定する必要があります。
①Windowsの [設定] を開き、 [プライバシー] > [音声認識] を選択し [オンライン音声認識] がオンになっていることを確認します。
②実機でロケットボタンを選択した後「Go ahead and Launch The rocket」と発音します。
ところが筆者の環境ではPCは日本語の言語を用いているため日本語の認識がされてしまいました。
また[UnityException: Cannot start dictation recognition session while PhraseRecognitionSystem is running]というエラーが発生しました。
これは下記ドキュメントによるとディクテーション認識セッションを開始するためには[PhraseRecognitionSystem]実行されていない必要があるからのようです。
このディクテーション認識セッションは[LunarcomIntentRecognizer]コンポーネントの79行目で行われているのでその直前でPhraseRecognitionSystemの終了を行います。
PhraseRecognitionSystem.Shutdown(); dictationRecognizer.Start();
これで実行します。
エラーは表示されなくなりましたが、PhraseRecognitionSystemが終了してしまっているので認識ができなくなってしまいました。
再び調査してみる必要がありそうです。
本来成功していた場合LUISと接続し何度も発話することでより自然に認識が行えるように学習できるようです。