本日は RS5 の技術調査枠です。
RS5 Insider Preview(日本語版)で日本語認識を試した手順をまとめます。
RS5 で日本語版 OS を利用すると、UnityEngine.Windows.Speech で日本語が認識できるという報告がありました。
日本語認識できた!!#HoloLensJP pic.twitter.com/PnaKUA3QEt
— morio🌭@8/20AR輪読会 (@morio36) July 30, 2018
このDictationRecognizerサンプルを使用。#moriomemohttps://t.co/efKtXDjLQJ
— morio🌭@8/20AR輪読会 (@morio36) July 30, 2018
是非、試してみます。
プロジェクトの作成
以下の手順ページの「HoloLens(WindowsMR) プロジェクトの基本設定」までを実施したプロジェクトを作成します。
bluebirdofoz.hatenablog.com
シーンの作り込み
以下ページのサンプルスクリプト DictationScript.cs を作成します。
docs.unity3d.com
以下の UnityEditor の一行は UWP へのビルド時にエラーになるので消しておきます。
using UnityEditor;
空の GameObject を作成して DictationScript をアタッチします。
出力用のテキストオブジェクトを2つ作成します。
HoloLens のワールド空間上にキャンバスを出力するため、Render Mode は World Space にします。
それぞれのテキストオブジェクトを DictationScript の Hypotheses と Recognitions に設定します。
Capability の設定
Dictation を用いるには、アプリに Microphone と InternetClient の Capabillity を設定する必要があります。
メニューから Mixed Reality Toolkit -> Configure -> Apply UWP Capability Settings を開きます。
「Apply UWP Capability Settings」ダイアログが開くので、「Microphone」と「Internet Client」にチェックを入れて「Apply」を実行します。
プロジェクトのビルド
以上でアプリの作成は完了です。プロジェクトをビルドして、HoloLens にインストールします。
エラー?
結果、初回起動時は正常に日本語で音声認識が動作しました。
しかし、その後2回目の起動以降は DictationHypothesis のイベントが全く起こらず、音声認識が行えない問題が発生しました。
再起動、再インストールを行っても復旧せず。
初回は正常に動作していたことから OS レベルの設定が変わったものと考えられますが、原因箇所が特定できませんでした。
一旦保留とします。
(更に言うと初回時は 「Internet Client」の Capability の設定を忘れていたのに動いていたように見えて更に困惑……以下によると必要なはずなのだが……エビデンス取りが甘かった)
docs.microsoft.com