本日は RS5 の技術調査枠です。
RS5 Insider Preview(日本語版)で日本語認識を試す方法をまとめます。
今回は KeywordRecognizer を用いてみます。
プロジェクトの作成
以下の手順ページの「HoloLens(WindowsMR) プロジェクトの基本設定」までを実施したプロジェクトを作成します。
bluebirdofoz.hatenablog.com
シーンの作り込み
以下ページのサンプルスクリプト KeywordScript.cs を作成します。
docs.unity3d.com
ただ、このままだと結果をログ確認する必要があるため、テキストUIへの出力機能を追加します。
以下のようにスクリプトを修正しました。
using System; using System.Text; using UnityEngine; using UnityEngine.UI; using UnityEngine.Windows.Speech; public class KeywordScript : MonoBehaviour { [SerializeField] private string[] m_Keywords; [SerializeField] private Text m_TextMessage; private KeywordRecognizer m_Recognizer; void Start() { m_Recognizer = new KeywordRecognizer(m_Keywords); m_Recognizer.OnPhraseRecognized += OnPhraseRecognized; m_Recognizer.Start(); } private void OnPhraseRecognized(PhraseRecognizedEventArgs args) { StringBuilder builder = new StringBuilder(); builder.AppendFormat("{0} ({1}){2}", args.text, args.confidence, Environment.NewLine); builder.AppendFormat("\tTimestamp: {0}{1}", args.phraseStartTime, Environment.NewLine); builder.AppendFormat("\tDuration: {0} seconds{1}", args.phraseDuration.TotalSeconds, Environment.NewLine); Debug.Log(builder.ToString()); m_TextMessage.text += arg.text + "\n"; } }
空の GameObject を作成して DictationScript をアタッチします。
結果確認用のテキストオブジェクトを作成します。
HoloLens のワールド空間上にキャンバスを出力するため、Render Mode は World Space にします。
テキストオブジェクトを KeywordScript の TextMessage に設定します。
最後に、認識させたい言葉を Keywords に登録します。
Capability の設定
Dictation を用いるには、アプリに Microphone の Capabillity を設定する必要があります。
メニューから Mixed Reality Toolkit -> Configure -> Apply UWP Capability Settings を開きます。
「Apply UWP Capability Settings」ダイアログが開くので、「Microphone」にチェックを入れて「Apply」を実行します。
プロジェクトのビルド
以上でアプリの作成は完了です。プロジェクトをビルドして、HoloLens にインストールします。
動作確認
アプリを起動すると、マイク利用の許可確認が表示されます。
「はい」をタップします。
登録したキーワードを喋ると、認識されたキーワードがテキスト出力されます。