Unityで音声認識

Unityで音声認識をするための勉強

 

Unity 2017.3

 

求める音声認識の条件

・PC、Andoroidで認識できる(できればデバイスを選ばない)

・日本語対応

 

備考

・トリガーキー

音声入力するのにキー操作が必要なのは本末転倒だが

PCなら不要、スマホなら何かしらのトリガーをつけないと消費電力ヤバそう。

・通信

Googleの音声認識みたいに一度通信をする必要があるヤツは

ローカルでは使えないけど精度が高そう

・金額

無料が望ましい・・・が

有料で使えそうなものがあるなら買ってもOK

 

色々調べるも、今の実力では簡単には行きそうにないので

今回は最低限のWindows10だけで音声認識ができる状態にする。

 


Microsoftのページで

Unityの音声認識を取り扱ってるページを発見したので試してみる

https://docs.microsoft.com/ja-jp/windows/mixed-reality/voice-input-in-unity


【フレーズ認識】

指定したキーワードがあった場合にアクションを行う。

 

●音声認識を有効にする
Edit > Project Settings > Player

Windows Storeタブ
Publishing Settings > Capabilities
「Microphone」にチェックをつける

 

※反応しない場合は

windows 設定>音声認識、手書き~>音声認識サービスと入力候補をオンにします のボタンを押してみる

 

KeywordRecognizerについてはここを参照

https://docs.unity3d.com/ja/current/ScriptReference/Windows.Speech.KeywordRecognizer.html

 

ソースは紹介されているものをログに出力するように加工

とりあえず自分なりのコメントで分かったつもりになってみる。

 

このスクリプトを空のGameObjectに張り付けて実行

 

 

ボイスロイド:東北きりたんにしゃべってもらった

うまく動いてくれた。

キーワードとして指定した「おはよう」、「こんにちは」は反応して

登録してない単語「こんばんは」には反応しない。

 

 

以下のエラーが出て反応しない人はこちらを確認してみてください。

UnityException: Speech recognition is not supported on this machine.

Unity音声認識のエラーが倒せない

 


【ディクテーション】

音声をテキストに変換する。

 

●ディクテーション機能を有効にする
Edit > Project Settings > Player

Windows Storeタブ
Publishing Settings > Capabilities
InternetClient」にチェックをつける

※もしかしたらコルタナさんで音声認識を許可しておかないといけないかも?

 

DictationRecognizerについてはここを参照

https://docs.unity3d.com/ja/current/ScriptReference/Windows.Speech.DictationRecognizer.html

 

 

空のGameObjectに貼り付けて実行

 

正 解「Unity音声認識」

認識後「Unityって音声認識」

 

ちょっと間違ってるけど、いい感じで認識してくれた。

 

 


注意点

  1. 認識装置が起動し、最初の5秒間音声が聞こえない場合は、タイムアウトになる。
  2. 認識装置が結果を与えたが20秒間無音を聞くと、認識装置はタイムアウトする。

 

※フレーズ認識とディクテーションの両方を使用する場合

アプリケーションでフレーズ認識とディクテーションの両方を使用する場合は、

もう一方を開始する前に完全にシャットダウンする必要があるとのこと。

 

 

とりあえずPC側での音声認識はOK

 

 

ミクさんに踊ってもらう

 

 

 

 

 

2019.6追記

https://docs.microsoft.com/ja-jp/azure/cognitive-services/speech-service/quickstart-csharp-unity

Unity 用 Speech SDK は、現在ベータ版です。 Windows デスクトップ (x86 および x64) またはユニバーサル Windows プラットフォーム (x86、x64、ARM/ARM64)、および Android (x86、ARM32/64) がサポートされています。

こんなの出てた。今度試してみる。

 

 

 

関連記事




コメントを残す

※コメントは承認後に表示されます。
 コメントを公開されたくない場合、名前の後に「:非公開」とつけてください。