夜風のMixedReality

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

ゼロから学ぶHoloLens 初心者向けチュートリアル HoloLensの五大要素を学ぶ 音声入力

チュートリアル枠です。

今回自分が3年前HoloLens に初めて触れ右も左もわからない中開発を行った頃の自分に向けてチュートリアルを作成します。

〇HoloLensで音声入力を使用しよう!

今回はHoloLensアプリ開発環境を1から構築することを目的とします。 下のようなテーマで書いていこうと思います。

1.Unityの環境を構築しよう!

2.MRTKを使おう!MRTKとは何か?

    UnityEditorでMRTKを使おう

    アプリをUnityからビルドしよう。

    HoloLens実機にデプロイしよう

    

3.HoloLensの5大要素を学ぶ

      空間認識機能を実装する

      空間認識の表現

       AirTapの実装

      オブジェクトを動かす

  空間音響を使う。

      ・音声入力を使う。←本日はこちら

4.応用編

〇環境

・Unity2019.4.18f1(LTS)

・VisualStudio2019

●筆者PC環境

 ・OS:Windows10 Pro

 ・プロセッサ:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz 3.50 GHz

 GPU:NVIDIA GoForceRTX 3080

 Microsoft HoloLens 1st

Microsoft HoloLens 2

 スペックに関しては高いほうが良いですが、HoloLensアプリ開発の場合VRと比べ求められるスペックは低いです。

 VRアプリ開発の場合PC自体がVRReady(VRゲームを実行できる環境)であることがほぼ必須ですが、HoloLensの場合VRReadyではなくても開発自体はできます。

 Unityが動くスペックであれば最低限問題ないです。

〇音声入力とは?

音声入力はその名の通りユーザーの音声コマンドでHoloLensアプリ内でオブジェクトを操作することを指します。

近年ではSiriをはじめとして音声アシスタント機能は身の回りにありますので、そちらがイメージしやすいと思います。

今回はこの音声入力をアプリ内に組み込んでいきます。

〇音声コマンドの登録

HoloLensでは開発者側で任意の音声コマンドを登録できます。

①hierarchyウィンドウから[MixedRealityToolkit]を選択し、インスペクターウィンドウから[Input]のサイドタブを選択し展開します。

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

②MRTKの構成はデフォルト値を変更することはできません。必ずCloneしてオリジナルの構成ファイルを作成する必要があります。[Clone]を選択しInputProfileを複製します。

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

③[Speech]タブを展開します。

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

④SpeechのProfileもテンプレートのものを使用しているデフォルトの場合[Clone]を選択し、複製します。

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

このSpeechタブ内ですでに登録されている音声コマンドを見ることができます。

⑤[+Add a New Speech Command]をクリックします。

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

⑥[Speech]タブ最下部にからのコマンドリストが追加されます。

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

⑦からのコマンドリストに任意のキーワードを設定します。ここで注意が必要なことが、使用しているHoloLensの言語が英語の場合は英語のキーワード、日本語などの場合は日本語など合わせる必要があります。

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

例えば筆者環境ではOSを英語で使用しているため[Drop]と登録していますが、HoloLens側で使用してる言語が日本語の場合[ドロップ]と登録する必要があります。

以上で音声コマンドの登録が完了しました。

〇登録したコマンドを使用する

①[Cube]オブジェクトを選択し[Addcompornent]から新規のコンポーネントを追加します。

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

②[SpeechInputHandller]コンポーネントを追加します。

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

これは登録されている音声コマンドを認識した場合発火する処理をつかさどるコンポーネントです。

③[+]アイコンを選択し音声コマンドのリストを追加し、キーワードに[Drop]もしくは日本語で登録している場合[Drop]と入力します。

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

④[Responce()]にCube(自分自身)を設定し[Drop.DoropDown]と音声認識を検知するとイベントが走るようにします。

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

音声認識機能の確認

ビルドを行う前に音声認識を行うためにマイクの入力を許可する必要があります。

①[PlayerSettings]から[PublishingSettings]を開きます。

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

②[Capability]から[Microphone]にチェックが入り有効であることを確認してビルドします。

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

アプリをデプロイし、Cubeを見つめて「drop」と唱えることでCubeが地面に落ちていきます