HoloLens 公式チュートリアル Holograms 212 Voice 3章

こんにちは。ナレコム前川です。

今回はMicrosoft公式にあるチュートリアル Holograms 212 Voice 3章 Understanding and the Dictation Recognizer を進めていきたいと思います。

前回からの続きになるのでHolograms 212 Voice 1章から始めてください。

第3章 Understanding and the Dictation Recognizer

第3章を進めるにあたって、以下のことに注意してください。

    • Dictation Recognizerを機能させるために、WiFi接続が必要です。
    • 設定した時間以降はタイムアウトが発生するので以下のことに気をつける必要があります。

– レコグナイザーが起動してから、最初の5秒間に音声が聞こえなければタイムアウトします。
– レコグナイザーが結果を提示しても、20秒間何も聞こえなければタイムアウトします。

  • 一度に実行できるのは一種類のレコグナイザー (Keyword または Dictation) のみです。

それでは、まずUnityに戻ります。Build Settingsが開いている場合は閉じましょう。

[Project] パネルで [MicrophoneManager.cs] スクリプトをダブルクリックして、Visual Stadioで開いてください。

ここでは、以下について編集し、追加します。
1. [Record] ボタンが押されたら、DictationRecognizer を起動。
2. DictationRecognizer が理解した音声をテキストとして表示する。
3. DictationRecognizer が理解した結果をロックする。
4. DictationRecognizer からタイムアウトをチェックする。
5. 停止ボタンが押されるかセッションがタイムアウトしたら、DictationRecognizer を停止する。
6. KeywordRecognizer を再起動する。※これによって、”Send Message” コマンドが聞かれるようになります。

以下のファイルの内容を全てコピーして、貼り付けてください。
MicrophoneManager.cs


配置とビルド

次に、ビルドと配置を行います。
上部ツールバーから[File] -> [Build Setting] を選択します。
[Player Settings] -> [Publishing Settings] -> [Capabilities]で
“InternetClient”と”InternetClientServer”がチェックされていることを確認しましょう。

※[Scene Build]の中に[Scenes/ModelExplorer]がない場合は、[Add Open Scenes]をクリックして追加してください。
1. [Windows Store]を選択。
2.[Switch Platform]をクリック。
3.[SDK]を[Universal 10]に変更。
4.[UWP Build Type]を[D3D]に変更。
5.[Unity C# Projects]にチェックを入れる。
6.[Build]をクリック。

Buildクリック後、フォルダが開くので”App”というフォルダを作成します。
作成したら[App]フォルダを選択します。

その後、[App]フォルダを開き、[ModelExplorer Visual Studio Solution]をVisual Stadioで開きます。

1. [Debug] -> [Release]に変更し、[ARM] -> [x86]に変更します。
2. [デバイス]ボタンを[リモート コンピューター]に変更します。

デバイスのIPアドレスを入力し、[認証モード]を[ユニバーサル]に設定します。
メニューで [デバッグ]、[デバッグなしで開始] の順に選択するか、Ctrl + F5で実行します。

アプリを配置したら、ジェスチャーで空中をタップします。
宇宙飛行士の腕時計に視線を送るとカーソルがマイクに変わります。
腕時計に視線を送りながら、「Open Communicator」と発音するとコミュニケーターパネルが開きます。

[Record]ボタンをタップして、宇宙飛行士への音声メッセージを録音します。
話し始めると、Dictation Recognizer が発話内容を翻訳するために仮説テキストをコミュニケーターに表示します。

メッセージの録音中に「Send Message」 と発話してみてもKeyword Recognizer は応答しないことがわかります。
これは、Dictation Recognizerが動いているためです。
数秒間発話を止めてみると、Dictation Recognizer が仮説テキストを完成させ、最終結果が表示されます。
話し始めてから、20 秒間発話を一時停止します。こうすることで、Dictation Recognizer がタイムアウトします。

タイムアウト後に、Keyword Recognizer が再び有効になるのが確認できたら、コミュニケーターは音声コマンドに反応するようになります。
「Send Message」と言うとコミュニケーターが閉じ、「Message Received」と宇宙飛行士から応答があればOKです。

アプリを実行した際の動画はこちらです。

第3章はこれで以上です。お疲れ様でした。

この記事を書いた人

azure-recipe-user