2011年10月28日金曜日

MMDAI on iOS が出来るかどうか

結論から言うとレンダリング部分と Julius の2つだけなら可能であることは確認。しかしメモリ使用量的に難しい。詳細は続きにて。

MMDAI2 の開発を進めながらも並行して MMDAI の iOS 版の開発を復活させ、進めています。が、デスクトップ版の MMDAI のように動かすのは当たり前といえば当たり前かもしれませんがメモリの壁が厚く、難しいです。

音声認識の選択肢

まず音声認識エンジンですがお金がかからずに使えるものはモバイルでも MMDAI もとい MMDAgent が使用している Julius しか選択肢がありませんでした。それ以外だと商用のものしかありません。代表的なものとして Siri の音声認識エンジンで使われている Nuance 社が提供する商用の SDK である Dragon Mobile SDK がありますが、クラウド型課金かつそれなりに高価なのであまり気軽に使えません。

Julius の最低動作条件がメモリ256MB

Julius はそもそも推奨が 512MB、最低でも 256MB 必要なので、メモリが 256MB しかない iPhone3GS/iPad/iPod touch は最低条件に入ります。MMDAgent がバンドルしているデータではなく、Julius 公式が配布しているディクテーションキットのうち、軽量設定版がメモリ不足でクラッシュせず実行可能でした。ちなみに MMDAgent がバンドルしているデータを使うとメモリ不足でクラッシュしました。

MMDAI on iOS (テスト用) の実行結果

512MB ないと安定動作が厳しい

これにさらに MMDAI のレンダリングエンジンを組み込んであにまさ式ミクを表示させた結果一応クラッシュせず動作しました。が、メモリ警告のメッセージを確認しているので安定して動作させることは難しいと判断しました。もし出すならメモリが 512MB ある iPhone4/iPhone4S/iPad2 の3機種限定にしたいのですがそういう制限を課す仕組みがないので App Store に出せなさそうです...

現在考えている対策

256MB しかない環境の場合はデスクトップに Julius をおいておき、 Wi-Fi 経由で通信するという案。なければ仕方ないので音声認識機能を無効化し、テキスト入力して喋らせる。喋らせるエンジンとしてそれなりにデータが必要な OpenJTalk ではなく、組み込みに強い AquesTalk を使うとか。

0 件のコメント:

コメントを投稿