Unityで日本語の音声認識する
久々の投稿。OSとかいう低レイヤーとは打って変わって、Unityの音声認識について書きます。とは言っても、Unityも音声認識も全くの初心者なので、ググった内容をまとめるだけです。
直接的な方法はない
Unity内で直接マイクを拾って日本語に文字起こしする方法は、調べた限り分かりませんでした。何らかの方法で、外部の音声認識エンジンと連携します。Unityからそこそこ手軽に使えそうな音声認識エンジンには、以下のようなものがあるようです。先に参考リンクまとめ。
- Julius: SavantCat/Julius-Client-for-Unity · GitHub
- Intel Perceptual Computing SDK: Unity3d Sandbox: UnityとPerceptualSDKで音声認識
- Web Speech API: [HTML5] Web Speech APIに入門 - YoheiM .NET
Juliusで音声認識
この方法はUnityからJuliusサーバーを起動し、Unity(Juliusクライアント)とTCP/IPで通信して文字起こしできます。
- Windows8.1
- Unity5.0
の環境で、上記参考URL通りにセットアップしたら、サンプルシーンは特に問題なく動きました。最初は認識結果が文字化けしまくって頭を悩まされたのですが、Yahoo知恵袋で同様の問題と回答が見つかりました。 使ってみたところ認識精度はそんなに良いとは言えませんが、サンプルのようにあらかじめ用意された有限数のコマンドを実行するならば不便は無さそうです。UnityPackageになっていてさくっと導入できるのも良いところです。
その他は試してない
その他の方法は試していませんが、Perceptual SDKはVisual Studioが必要そうだったこと、Web Speech APIはChromeとWebScoketサーバー(Node.js)が必要そうだったことがあり、どちらも不可能では無さそうながら面倒だったため試していません。本当は認識の精度とか特徴とかを比較できればよかったんですが。
もし比較された方が居たらぜひご一報ください。