Unityの音声認識でリアルタイムに何を発しているのかを取得したくて DictationRecognizer をテストしていたときにわかった制限事項をまとめました。

環境: Windows10 Pro, Unity 5.6.0f3

まずスクリプトですがMicrosoftが使い方「Voice input in Unity」を書いています。ここに書いてあるイベントをまとめると以下のようなスクリプトができます。

制限事項ですが次の4つです。制限範囲内だと上記のコードが無事に動きます。

1. Macでは動かない

Windowsの機能使っているため。

2. ネットにつながっていないと使えない

音声認識はこういうAPIが多いです。オフラインだとエラーを吐きます。

3. Editorで動かない

EditorでPlayするとこういう感じにすぐに DictationComplete イベントが呼ばれてUnknownError表示されます。

4. Buildしないと動かない。x86しか対応していない。

ここのAnswerをみるとBuildしないとDictationRecognizerは反応しないようです。そのためBuild設定はArchitectureをx86に設定する必要があります。