Facemotion3dアプリの音声認識機能を作りながら考えてたこと
こんにちわ。PEKOです。
私は、Facemotion3dという、iPhoneを使ったフェイシャルモーションキャプチャアプリを公開しております。Maya,Unity,Blender,DAZ Studioとリアルタイムで通信できます。iOSのフェイストラッキングは非常に高精度なので、これだけでも実用的なアプリです。
音声認識機能の紹介
Facemotion3dの、iOS側のバージョン1.0.5から、音声認識によって表情(BlendShape)を変化させることができる機能がつきました。(現時点ではMaya,Unity,Blender限定の機能)
たとえば、「おはよう」という単語を話したら、「morning」のBlendShapeを動かしたりすることができます。
「うれしい!」という言葉を発したら、「happy」のBlendShapeを動かしたりすることができます。
「スーパーチャットありがとう!」という言葉を発したら、「money」のBlendShapeを動かす...といったことができます。
「おはよう」「うれしい」「スーパーチャットありがとう」とかそういったものだけではなく、反応させたい音声を、何でも反応させることができます。AppleのSiriと同じ音声認識精度なので、精度は良いはずです。下の画像の、「新しい単語を登録」というところを押すと、登録できます。
何故この機能を作ろうと思ったか
正直に言って、自分自身でこの機能を作っておきながら、あんまり使う人いないかもなとは思いながら作りました。ただでさえ、ARKitに対応する52個のBlendShapeを作るのが大変なのに、まだモデリングの負担が増えるとなると、使えるだけの時間がある人は多くなさそうです。
しかも、使い方もそこそこややこしいし、設定項目も少なくはありません。
ですが、私自身がVTuberの配信を見ていて、「表情のバリエーションの少なさ」に課題を感じていたからです。VTuberが流行り始めた頃、キズナアイちゃんのライブ配信などを見ていて、最初は楽しんで見ていたのですが、「ジト目」や「怒り顔」などの、表情のパターンが出尽くすと「あぁ、これは前にも見た表情だな」と段々飽きていってしまっていたというのがあります。
ライブ配信で表情を切り替えるには、「キーボード操作で切り替える」とか「モーションキャプチャのパラメータが一定以上になったら切り替える」とかそういった方法があります。
ただ、キー操作だと、表情パターンが増えてきた時に、操作する側がキー操作を覚えるのが大変です。1人でVTuberをやっている場合などは、特に手が使えなくなるのが痛いです。パラメータによる操作だと、表情数がそこまで多くはなりません。
そんな中で、音声認識による表情切り替えだと、ユーザーが何を登録したか忘れていても、喋っている間に自然に「単語」がトリガーになって、表情が切り替わります。これだったら表情を増やしやすいんじゃないかなぁ、と思ってこの機能を付けました。
Facemotion3dの前身(?)となるiFacialMocapにも、ユーザーさんからの要望でキーボード入力機能が過去につきました。iFacialMocapのキーボード入力機能を作っている時から、音声で表情を動かせるといいなと考えていました。
また、この音声認識に反応してBlendShapeを動かす機能は、「自分が作らないとあんまり他の人は作らないだろうな」と思えるあたりも実装に少しやる気が出たポイントでした。
あんまり使う人は多くないかもしれないですが、モデリングする人が知恵を絞って頑張れば頑張るほど、表現の幅が無限に増える機能なので、ぜひ有効活用してもらえるとうれしいです。
この機能の現状の問題点
Appleの音声認識機能は、1分間ごとに動作が停止する仕様になっているため、1分間ごとに音声の切れ目が発生します。また、自分の実装が悪いのか、時々音声認識が途切れることがあるのですが、1分以内には復帰します。
音声認識の時間差があるため、「BlendShapeを動かしたい!」と思った瞬間に動かすということができません。遅れてやってくるような表現になってしまいます。なので、例えば、「スーパーチャットありがとう」を登録しようと思ったら「スーパーチャットありが」くらいの登録にしとけばタイミングよく出せるかもしれません...。
実用的な機能というよりは、実験的な機能だと思って使う方が良いかもしれません。
モデル制作コストについて思うこと
僕の作ってるアプリは、モデル制作のコストをどんどん上げていく傾向があります。これはあんまりデザインやってない人間ではあるんですが、自分が一応デザイナーという肩書出身なので、そういったことに躊躇しないというのがあるんじゃないかと思ったりはします。
一方で、やっぱり現行のBoothなどのアバター買い切り方式だと、こういう風にモデルをどんどんアップデートしていくということが難しいよなと思ったりしており、モデル販売にもサブスクリプションとか、アバター自体の販売以外でもアバター制作者が収益を得られるシステムが必要なんじゃないかなとか思ったりしています。
YouTube動画で紹介しています
使用方法について、YouTube動画で詳しく紹介しています。ぜひ見てください。