MRが楽しい

MRやVRについて学習したことを書き残す

RS5 Insider Preview(日本語版)で日本語認識を試…せた?

本日は RS5 の技術調査枠です。
RS5 Insider Preview(日本語版)で日本語認識を試した手順をまとめます。

RS5 で日本語版 OS を利用すると、UnityEngine.Windows.Speech で日本語が認識できるという報告がありました。


是非、試してみます。

プロジェクトの作成

以下の手順ページの「HoloLens(WindowsMR) プロジェクトの基本設定」までを実施したプロジェクトを作成します。
bluebirdofoz.hatenablog.com
f:id:bluebirdofoz:20180802072104j:plain

シーンの作り込み

以下ページのサンプルスクリプト DictationScript.cs を作成します。
docs.unity3d.com
f:id:bluebirdofoz:20180802072629j:plain

以下の UnityEditor の一行は UWP へのビルド時にエラーになるので消しておきます。

using UnityEditor;

空の GameObject を作成して DictationScript をアタッチします。
f:id:bluebirdofoz:20180802072347j:plain

出力用のテキストオブジェクトを2つ作成します。
HoloLens のワールド空間上にキャンバスを出力するため、Render Mode は World Space にします。
f:id:bluebirdofoz:20180802072322j:plain

それぞれのテキストオブジェクトを DictationScript の Hypotheses と Recognitions に設定します。
f:id:bluebirdofoz:20180802072357j:plain

Capability の設定

Dictation を用いるには、アプリに Microphone と InternetClient の Capabillity を設定する必要があります。
メニューから Mixed Reality Toolkit -> Configure -> Apply UWP Capability Settings を開きます。
f:id:bluebirdofoz:20180802072408j:plain

「Apply UWP Capability Settings」ダイアログが開くので、「Microphone」と「Internet Client」にチェックを入れて「Apply」を実行します。
f:id:bluebirdofoz:20180802072421j:plain

プロジェクトのビルド

以上でアプリの作成は完了です。プロジェクトをビルドして、HoloLens にインストールします。
f:id:bluebirdofoz:20180802072435j:plain

エラー?

結果、初回起動時は正常に日本語で音声認識が動作しました。
しかし、その後2回目の起動以降は DictationHypothesis のイベントが全く起こらず、音声認識が行えない問題が発生しました。
再起動、再インストールを行っても復旧せず。
初回は正常に動作していたことから OS レベルの設定が変わったものと考えられますが、原因箇所が特定できませんでした。
一旦保留とします。
(更に言うと初回時は 「Internet Client」の Capability の設定を忘れていたのに動いていたように見えて更に困惑……以下によると必要なはずなのだが……エビデンス取りが甘かった)
docs.microsoft.com