AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

NAMAROIDで音声認識して結月ゆかりに喋らせる

NAMAROIDの使い方:積みゲー帝国 - ブロマガ
こちらに書いてあるとおりに環境設定して、そのとおりに実行してみました。
マイクはエレコムWEBカメラを口元に近づけて使用
再生音はヘッドフォン。
結月ゆかりを起動させて音声効果タブを選んだ状態で、NAMAROIDの「開始」ボタンを押す。
一番左に結月ゆかりボイスロイドを設定しているので、それを押すと選択中で緑になる。
マイクは使用中のWEBカメラを選ぶ。
インジケーターが赤く振りきれないように、さりとてレベルが低すぎないぐらいの距離と音声で話す
キャラはニコ動から借りて来た素材を使用。
f:id:yasu9780:20160119151430p:plain
音声認識エンジンが持ってそうな語彙ならそこそこ認識できるが、「結月ゆかり」を「柚木ゆかり」と認識してしまう。
これは音声認識エンジン側の辞書の問題なので、ユーザー辞書があれば解決できるかも。
あと、「まな板」なんかは認識してくれないw
ボイスロイド結月ゆかり+EX側は、暗記物の学習用途で専門単語を50個ぐらい登録してます。
結局、音声認識側と音声合成側の両方に語彙が無いとうまく発話まで行きませんね。
音声認識はニュアンス社のドラゴンスピーチですが、ユーザー辞書があるか調べてみましょう。

Intelの凄いエンジン

namaroidのフォルダー内を見ると2つのDLLがありますが、一つはcoreAudioで、もう一つはlibpxcclr。
前者はマイクやスピーカーとやりとりするWindowsAPIで、後者はINTELのなんか色々凄いことできるエンジン。
今回はインストールでは音声認識しか入れてませんが、faceRigみたいなこともできるみたいで。
www.buildinsider.net
unityからも使えるみたい。むしろfaceRigよりkinectに近いですね。すごいです

音声認識と合成の部分の解説記事
http://www.buildinsider.net/small/perc/05

語彙の追加は、このへんがそれっぽい。結局、ディクテーションだから言語モデルを内部に持ってるはずで、それに語彙を追加すればいいのでしょう。
Voice Recognition and Synthesis Using the Intel® Perceptual Computing SDK | Intel® Developer Zone

string[] commands;
public void AddGrammar(string[] grammar)
{
    int gid;
    commands = grammar;
    voiceRecognition.CreateGrammar(out gid);
    for (int i = 0; i < grammar.Length; i++)
    {
        voiceRecognition.AddGrammar(gid, i, grammar[i]);
    }
    voiceRecognition.SetGrammar(gid);
}

smallBaisc

SmallBasicLibrary.dllってのも同梱されてますが、
日本語化担当者が語るSmall Basic活用術 − @IT
これかな? 
なんか小さなBASICインタプリタ環境らしい? これもちょっとおもしろいですね。
C#じゃなくてこれで作られているのかも。

ここに入門講座がありますが、囲碁やら電卓まで作ってる人がいますね。
Small Basicで学ぶプログラミング

http://www.nonkit.com/smallbasic.files/GoSimulator200.png
(画像引用)

昔の8ビットマイコンの頃のマイクロソフトBASICの雰囲気がありますね
こういう処理系でAndroidアプリまで作れるといいんだけどねえ

smallBasic処理系からDLLを呼び出せるみたい。完全無料だしWindowsアプリ作るなら手軽で良さそうですね
猿頁 » Blog Archive » (36) Small Basic の機能拡張