以下、本発明について、実施の形態に基づいて説明する。以下の説明では、基本となる顔画像を6種類使用しているが、顔画像の数はこれには限定されない。6種類よりも少なくてもよいし、6種類よりも多くてもよい。
[第1の実施の形態]
<構成>
図5に、本発明に係るアニメーション作成装置の一例として、本発明の第1の実施の形態に係るリップシンクアニメーション作成装置200の概略ブロック図を示す。図5を参照して、リップシンクアニメーション作成装置200は、発話記憶部152に記憶された発話の音声データと、トランスクリプション記憶部154に記憶された、発話記憶部152に記憶された発話の書き起こしテキスト(トランスクリプション)とを入力として受け、キャラクタモデル記憶部156に記憶された、/a/〜/o/及び/N/からなる6つの基本となる顔画像に相当する3Dキャラクターモデルを用いて顔画像のアニメーション260を作成するためのものである。
キャラクタモデル記憶部156に記憶される顔画像の例を図7に示す。図7(A)〜(F)は、それぞれ音素/a/,/i/,/u/,/n/,/e/,/o/に対応する顔画像である。本明細書では、これら画像をそれぞれ顔画像/A/,/I/,/U/,/N/,/E/,及び/O/と表記することにする。
なお、本実施の形態では、顔画像/A/,/I/,/U/,/E/,/O/は、いずれも顔画像/N/を基準とし、各特徴点が、顔画像の定義されている3次元空間において、顔画像/N/の対応する特徴点からどの程度移動しているかを示す3次元ベクトル情報によって定義されている。従って、例えば顔画像/A/と顔画像/N/との間で、その中間の顔画像を定義することもできる。本実施の形態では、特定の顔画像と顔画像/N/との間の中間の顔画像を定義するために、上記した「ブレンド率」という概念を使用する。
二つの顔画像の間のブレンドについては前述したとおりである。
リップシンクアニメーション作成装置200は、発話者の音声から予め作成された音響モデルを記憶するための音響モデル記憶部170と、予め準備された、音素と視覚素との間のマッピングテーブルを記憶するための音素−視覚素マッピングテーブル記憶部176と、音響モデル記憶部170に記憶された音響モデル及び音素−視覚素マッピングテーブル記憶部176に記憶された音素−視覚素マッピングテーブルを用い、発話データに対し、トランスクリプション記憶部154に記憶されたトランスクリプションに基づいた音素セグメンテーションを行なって音素シーケンスを作成し、さらに、得られた音素シーケンス内の各音素を音素−視覚素マッピングテーブル記憶部176に記憶された音素−視覚素マッピングテーブルを用いて対応の視覚素に変換することにより、継続長付き視覚素シーケンスを作成するための視覚素シーケンス作成部230と、視覚素シーケンス作成部230により出力される視覚素シーケンスを記憶するための視覚素シーケンス記憶部180とを含む。視覚素の継続期間は、対応する音素継続期間の先頭から開始する。したがって視覚素シーケンス記憶部180に記憶された視覚素シーケンスのうち、各視覚素の先頭フレームがキーフレームとなる。視覚素シーケンス内のキーフレームにより、キーフレームシーケンスが構成される。なお、視覚素シーケンス作成部230は、各視覚素に対し、置換前の音素と、デフォルトのブレンド率(例えば100%)を付して視覚素シーケンスを作成するものとする。
リップシンクアニメーション作成装置200はさらに、キャラクタモデル記憶部156に記憶された3Dキャラクタモデルの各顔画像を構成する頂点に対し、任意の二つの顔画像の間での動きベクトルを用いたVQ(ベクトル量子化)クラスタリングを行ない、任意の二つの顔画像の間での各頂点の動きを、各頂点が属するクラスタの代表ベクトルによって表した動きベクトルデータと、そのときのクラスタリング後の顔画像のモデルとを出力するためのクラスタリング処理部232と、クラスタリング処理部232の出力する、任意の顔画像モデルの組合せに対するクラスタリング後の顔画像モデルと動きベクトルデータとを記憶するためのクラスタ化顔モデル記憶部234と、キャラクタモデル記憶部156に記憶された顔画像モデルと、クラスタ化顔モデル記憶部234に記憶されたクラスタリング後の顔モデル及び動きベクトルデータとのいずれか一方を使用して、キーフレームの中で頂点の動きが速いものを検出し、そのようなキーフレームを所定の割合又は所定の数だけ削除するためのキーフレーム削除部236とを含む。なお、本実施の形態では、あるキーフレームを削除した場合、そのキーフレームの継続長だった部分は、削除されたキーフレームの直前のキーフレームの継続長に統合される。
リップシンクアニメーション作成装置200はさらに、キーフレーム削除部236によるキーフレームの削除の際の、全体のキーフレーム数のうち、削除されるキーフレームの数が示す割合を指定するための削除率入力部201と、キーフレーム削除部236によるキーフレーム削除の際の速度計算に、キャラクタモデル記憶部156に記憶されたモデルをそのまま使用するか、クラスタ化顔モデル記憶部234に記憶されたクラスタリング後の動きベクトルによるモデルを使用するかを指定するためのクラスタ処理指定部202とを含む。キーフレーム削除部236の詳細については後述する。
リップシンクアニメーション作成装置200はさらに、発話記憶部152に記憶された発話データから、各フレームにおける発話パワーを算出するための発話パワー算出部238と、発話パワー算出部238により算出された発話パワーを記憶するための発話パワー記憶部240と、キーフレーム削除部236により出力された視覚素シーケンスに対し、発話パワー記憶部240に記憶された各フレームにおける発話パワーに基づいて、後述するように、キーフレームのブレンド率を調整するための発話パワーによるブレンド率調整部244とを含む。
リップシンクアニメーション作成装置200はさらに、発話パワーによるブレンド率調整部244において、あるキーフレームのブレンド率を減衰させる関数の振舞を決めるパラメータα(以下「減衰率α」と呼ぶ。0<α<1である。)をユーザが入力するための減衰率入力部206と、発話パワーによるブレンド率調整部244によるブレンド率の調整を行なうか否かをユーザが指示する際に使用する発話パワー使用指示入力部204と、発話パワー使用指示入力部204により発話パワーが指示されたときにはキーフレーム削除部236の出力を発話パワーによるブレンド率調整部244に与え、それ以外のときにはキーフレーム削除部236の出力を発話パワーによるブレンド率調整部244をバイパスして後続する処理部に与えるために、一対の選択部242及び246とを含む。
リップシンクアニメーション作成装置200はさらに、クラスタ処理指定部202により指定された値にしたがい、キャラクタモデル記憶部156に記憶された顔画像モデルのデータ及びクラスタ化顔モデル記憶部234に記憶された動きベクトルのいずれかを用い、各キーフレームにおける頂点の動きの速さを算出して、動きの速さが所定の基準より大きなキーフレームについて、ブレンド率を小さくなるように調整するための頂点速度によるブレンド率調整部250と、ブレンド率調整部250によるブレンド率の調整の際の、ブレンド率に対する関数の振舞を決めるパラメータである減衰率β(ただし0<β<1)を入力するためにユーザが使用する減衰率入力部210と、ブレンド率調整部250によるブレンド率調整を行なうか否かをユーザが指定するための頂点速度使用指示入力部208と、使用指示入力部208により入力された指示にしたがい、選択部246の出力をブレンド率調整部250に与えるか、発話パワーによるブレンド率調整部244をバイパスして後続する処理部に与えるかを選択する一対の選択部248及び252とを含む。
リップシンクアニメーション作成装置200はさらに、選択部252の出力する、ブレンド率の調整が完了した継続長付き視覚素シーケンスを記憶するための視覚素シーケンス記憶部254と、視覚素シーケンス記憶部254に記憶された継続長付き視覚素シーケンスに基づき、キャラクタモデル記憶部156に記憶された各顔画像モデルを用いたブレンド処理を行なうことによって、顔画像のアニメーション260を作成するためのブレンド処理部256を含む。
図6に、図5の視覚素シーケンス作成部230の詳細な構成を示す。図6を参照して、視覚素シーケンス作成部230は、音響モデル記憶部170に記憶された音響モデルを用い、発話記憶部152に記憶された発話データに対して、トランスクリプション記憶部154に記憶されたトランスクリプションに基づいた音素セグメンテーションを行ない、音素シーケンスをその継続長を示す情報とともに出力するための音素セグメンテーション部172と、音素セグメンテーション部172から出力された継続長付き音素シーケンスを記憶するための音素シーケンス記憶部174とを含む。
視覚素シーケンス作成部230はさらに、音素と視覚素との間のマッピングテーブルを記憶するための音素−視覚素マッピングテーブル記憶部176と、音素−視覚素マッピングテーブル記憶部176に記憶された音素−視覚素マッピングテーブルを参照しながら、音素シーケンス記憶部174に記憶された音素シーケンス内の各音素を対応する視覚素に変換することにより、継続長付き視覚素シーケンスを出力するための音素−視覚素変換処理部178とを含む。なお、前述したとおり、音素−視覚素変換処理部178の出力する継続長付き視覚素シーケンスの各視覚素には、対応の音素と、デフォルトのブレンド率とが付されている。
音素セグメンテーション部172は、発話記憶部152に含まれる発話データに対する音素セグメンテーションをし、音素列と、それぞれの継続時間長が分かる時間データとを出力できるものであればどのようなものでもよい。発話内容がトランスクリプション記憶部154に記憶されたトランスクリプションにより予め分かっているので、音素セグメンテーション部172は音声データを精度高く音素列に変換できる。
テーブル1に、マッピングテーブル記憶部176に記憶されたマッピングテーブルの例の一部を示す。
テーブル1を参照して、本実施の形態では、マッピングテーブルは、音素/a/を視覚素/A/に、音素/i/を視覚素/I/に、音素/u/を視覚素/U/に、音素/e/を視覚素/E/に、音素/o/を視覚素/O/にそれぞれ対応付けている。マッピングテーブルでは、図3に示す顔画像/A/,/I/,/U/,/E/,/O/のように、予めある音素に対して準備された視覚素には、その音素を必ず対応付けるようにする。さもないと得られる顔の動画像が発話内容とちぐはぐになってしまう。また音素/N/、/p/、/b/、/m/等、唇を閉じるような音素は無表情の顔画像/N/に対応付ける。音素/h/、/j/、/q/、/r/については無視し、視覚素に変換しない。第1のテーブルに記載された音素以外の音素については、直前の音素のブレンド率の80%のブレンド率を割当てる。
図8〜図10を用いて、クラスタリング処理部232による処理について説明する。クラスタリング処理部232による処理は、簡略にいえば、以下のようなものとなる。
キャラクタモデル記憶部156に含まれる顔モデルのうちの任意の二つの組合せの全てについて、以下の処理を行なう。
まず、一方の顔画像の全ての頂点の座標ベクトルを、他方の対応する頂点の座標ベクトルから減算する。この減算により、一方の顔画像から他方の顔画像に変化する際の各頂点の動きベクトルが求められる。図8は、一方の顔画像として視覚素/N/の各頂点からなる顔画像280を、他方の顔画像として視覚素/O/の各頂点からなる顔画像282を例とし、視覚素/N/から視覚素/O/への動きベクトルの集合からなる画像284を示してある。なお、図8において、横軸はX軸、縦軸はZ軸であり、Y軸については図示していない。
こうして求めた動きベクトルの集合に対し、クラスタリング処理部232は、概略、以下のアルゴリズムによってクラスタリングを行なう。
(1)クラスタ数Nを決定する。
(2)動きベクトルの集合の中からN個のベクトルを任意に選択し、初期コードブックとする。
(3)動きベクトルの集合の中の全ベクトルを、初期コードブックとの間のユークリッド距離に基づいてN個のクラスタに分類する。この場合、各動きベクトルは、ユークリッド距離が最も小さくなるコードブックにより代表されるクラスタに分類される。
(4)各クラスタに属するベクトルの平均を算出することにより、新たなN個のコードブックを作成する。
(5)コードブックが変化しなくなるか、その間の差がしきい値より小さくなるまでステップ(3)及び(4)を繰返す。
なお、本実施の形態においては、各クラスタの代表頂点は、そのクラスタについて求められたセントロイド(重心)に最も近い頂点とする。
以上のようにして得られたクラスタリングの結果、各画像の組合せについて各頂点が複数個のクラスタのいずれかに属することになる。図9にそうしたクラスタリングの結果を顔画像にマッピングした例を示す。図9を参照して、画像300と他の画像(図示せず)との間の動きベクトルのクラスタリングにより、画像300を構成する顔モデルを構成する各頂点は、画像302に示すように、クラスタ310,312,314,316,318,320,322及び324に分類される。この例の場合、クラスタの個数は8、頂点数は1483個である。
図9から分かるように、口付近の頂点はその位置により明確にクラスタ化されるが、それ以外の領域の頂点の動きにはあまり差がない。
図10には、同様の処理でクラスタ数=128、頂点数1483個の場合のクラスタリングにより得られたクラスタを顔画像にマッピングした結果340を示す。このようにクラスタ数を多くすると、口付近以外の各頂点もクラスタ化されてくることが分かる。
このようにクラスタ化するのは以下の理由による。例えば図5に示すキーフレーム削除部236及びブレンド率調整部250における処理において、全ての頂点について移動量又は速度を算出すると、頂点の数だけ計算する必要があり処理に長時間を要する。これに対し、頂点をクラスタ化した場合、各頂点の移動量又は速度を、その頂点が属するクラスタの代表頂点の移動量又は速度で近似することができる。したがって、実質的な計算量はクラスタの数まで削減され、計算時間を大幅に短縮することができる。
例えば口付近の画像だけを短時間で処理する必要があればクラスタ数を小さくし、計算時間が多少長くても、口だけでなく頭部全体の画像もある程度の精密さで求める必要があればクラスタ数を大きくすればよい。さらに、計算に要する時間に制限がないのであれば、こうしたクラスタリングを行なわず、全ての頂点について個別にその移動量又は速度を計算すればよい。
図11は、キーフレーム削除部236の機能をコンピュータプログラムで実現する際の、プログラムの制御構造を示すフローチャートである。図11を参照して、ステップ360において、削除率を所定の記憶領域から読出す。この削除率は、図5に示す削除率入力部201を用いてユーザにより予め入力され、所定の記憶領域に記憶されていたものである。
ステップ362において、この削除率に基づき、削除すべきキーフレーム数Kを算出する処理が行なわれる。視覚素シーケンス記憶部180に記憶された視覚素シーケンス中のキーフレーム数をa、削除率をγ%とすると、本実施の形態では、削除すべきキーフレーム数Kをa×γ×100により求める。ここで、計算結果を四捨五入するか、切り上げるか、切り捨てるかは設計事項である。
ステップ364では、以下の繰返し処理のための繰返し変数iに0を代入する。ステップ366で変数iに1を加算し、ステップ368で変数iの値が削除すべきキーフレーム数Kより大きくなったか否かを判定する。判定結果がYESであればステップ382に進み、それ以外の場合にはステップ370に進む。
ステップ370では、以下の計算において、クラスタ化顔モデル記憶部234に記憶されたクラスタリング後の顔画像のモデルを使用するか、又はキャラクタモデル記憶部156に記憶された元の顔画像のモデルを使用するかを判定する。この判定は、クラスタ処理指定部202を用いてユーザにより予め入力されており、所定の記憶領域に記憶されていた情報に基づいて行なわれる。クラスタ化後のモデルを使用する場合にはステップ376に進み、使用しない場合にはステップ372に進む。
ステップ372では、視覚素シーケンス中で隣接するキーフレームの組合せの全てにおいて、全ての頂点を用いてキーフレーム間の距離Dを以下の式により算出する。
ここで、D(k)はk番目のキーフレームと、k+1番目のキーフレームとの間の全頂点のユークリッド距離の合計を表す。この距離D(k)を、以後k番目のキーフレームとk+1番目のキーフレームとの間のキーフレーム間の距離と呼ぶ。
続いてステップ374において、ステップ372で算出されたキーフレーム間の距離に基づいて、以下の式によって削除すべきキーフレームを決定する。
ただしDur
kはk番目のキーフレームの継続長を示す。
要するに、ステップ372及びステップ374の処理により、一つ前のキーフレームからの全ての頂点の移動速度と、一つ後のキーフレームまでの全ての頂点の移動速度との合計が最も大きなキーフレームが削除対象のキーフレームとして決定される。ステップ380でこのキーフレームを削除し、ステップ366に戻る。
一方、ステップ370においてクラスタリング後のモデルを使用すると判定された場合には、ステップ376において、以下の式により、視覚素シーケンス中で隣接するキーフレームの組合せの全てにおいて、各クラスタの代表頂点を用いてキーフレーム間の距離D’を以下の式により算出する。
ただしm
rは代表頂点rにより代表されるクラスタに属する頂点の数を示す。
ステップ378では、ステップ376で算出されたキーフレーム間の距離D’に基づいて、以下の式によって削除すべきキーフレームを決定する。
要するに、ステップ376及び378の処理により、キーフレーム間の全ての頂点の移動速度を、代表頂点の移動速度で近似し、それらを用いて一つ前及び一つ後のキーフレームの間の頂点の移動速度の合計が最も大きなキーフレームが削除対象のキーフレームとして決定される。ステップ380でこのキーフレームを削除し、ステップ366に戻る。
ステップ372での処理は、顔画像のモデルを構成する全ての頂点について行なう必要がある。一方、ステップ376での処理は、各クラスタの代表頂点のみに対して行なえばよい。したがって、ステップ376での処理に要する時間はステップ372での処理に要する時間と比較してはるかに少なくなる。ただし、ステップ376で得られる距離D’は、ステップ372の処理で得られる距離Dと比較すると概算値となり、誤差を含み、場合によっては削除されるキーフレームが両者で異なってくる。
なお、ステップ368で変数iの値が削除フレーム数Kより大きいと判定された場合、ステップ382において、K個のキーフレームが削除された後の視覚素シーケンスが出力され、処理を終了する。
図12に、キーフレーム削除部236によって行なわれるキーフレームの削除の概念を示す。図12(A)を参照して、視覚素シーケンス中に、4つのキーフレーム400、402、404及び406があるものとする。これらの全ての組合せについて、前記した距離D又はD’を算出する。そして、これらの中で前後のキーフレームとの間の頂点の移動速度の合計値として最小値を与えるキーフレームを削除する。図12(A)で示す例では、キーフレーム402がそうしたキーフレームであるものとする。すると、図12(B)に示すようにキーフレーム402を視覚素シーケンスから削除し、新たに3つの視覚素を含む視覚素シーケンスに対し、前記した処理が行なわれることになる。
図5に示す発話パワーによるブレンド率調整部244によって行なわれる処理について、図13を参照して説明する。発話パワーによるブレンド率調整部244は、各キーフレームに対応する音素の継続長にわたる発話パワーを、発話記憶部152に記憶された発話データ及び視覚素シーケンス記憶部180に記憶された視覚素シーケンスに含まれる音素シーケンスの継続長から算出する。ある音素の発話パワーは、各音素の継続長の中央における音声信号の振幅の二乗和により求める。
例えば、図13に示すように、実際の音声信号の波形がグラフ420で示されるものであり、グラフ420により示される音声信号中に、音素/a/,/i/、/o/、/e/、及び/u/からなる音素シーケンスがあったものとする。音素/a/については、その継続長の先頭から次のキーフレーム/i/に代わるまでの期間にわたる平均の発話パワーを算出する。他の音素/i/、/o/、/e/、及び/u/についても同様であり、それぞれの継続長の先頭から、次のキーフレームに代わるまでの期間にわたる平均の発話パワーを、線分430、432、434、436及び438により示すようにそれらの継続長の全体にわたり算出する。発話パワーによるブレンド率調整部244は、こうして算出された発話パワーの平均値に基づき、各音素に対応する視覚素のブレンド率を調整する。
図14に、発話パワーによるブレンド率調整部244が行なう処理をコンピュータプログラムにより実現する際の、プログラムの制御構造をフローチャート形式で示す。
図14を参照して、ステップ450において、減衰率αを所定の記憶領域から読出す。この減衰率αは、図5に示す減衰率入力部206を用いてユーザにより入力され、所定の記憶領域に格納されていたものである。
ステップ452では、音素シーケンス中の全ての音素について、その継続長にわたる発話パワーの平均を算出する。以下、N番目のキーフレームの音素の、その継続長全体にわたる発話パワーの平均をSP(N)と書く。
ステップ454では、ステップ452で算出された全ての発話パワーの平均値の内で、最大のものMAX(SP)と、最小のものMIN(SP)とを決定する。
ステップ456では、平均発話パワーの最大値を与えるキーフレームを除く全てのキーフレームについて、次の式(1)にしたがい、ブレンド率を更新する。なお、以下、N番目のキーフレームのブレンド率をBR(N)と書く。
平均発話パワーの最大値を与えるキーフレームを除く全てのキーフレームに対してこの式(1)によるブレンド率の調整を行なうと、発話パワーによるブレンド率調整部244による処理は終了する。なお、減衰率αは、最小値を与えるキーフレームのブレンド率をどの程度減衰させるかを表していることが上の式から分かる。式(1)は、平均発話パワーSP(N)に対する線形関数であり、算出された平均発話パワーが小さければ小さいほどブレンド率が小さくなるような関数である。
この処理による結果の一例を次のテーブルにより示す。調整前のブレンド率及び平均発話パワーを全てのキーフレームの音素に対して示したのがテーブル2であり、発話パワーによるブレンド率調整部244による調整後のブレンド率を示したのがテーブル3である。
ブレンド率に対しこのような調整を行なうことにより、平均発話パワーが最大となるキーフレームのブレンド率は変化しないが、平均の発話パワーが小さくなればなる程、ブレンド率が小さくなる。その結果、話し声が小さい場合には口の動きも小さくなるアニメーションが作成でき、アニメーションの動きがより自然に近くなる。
図15に、図5のブレンド率調整部250が行なう処理をコンピュータプログラムで実現する際の、プログラムの制御構造をフローチャート形式で示す。
図15を参照して、ステップ470において、減衰率βを所定の記憶領域から読出す。減衰率βは、図5に示す減衰率入力部210を用いてユーザにより入力され、所定の記憶領域に記憶されていたものである。減衰率βの意味は以下から明らかとなるが、本実施の形態では、キーフレームの間で頂点の動きに基づいてブレンド率を調整しないキーフレーム(以下「不変フレーム」と呼ぶ。)の割合を示す値が用いられる。
ステップ472では、ステップ470で読出された減衰率βを、全体のキーフレーム数に乗算することにより、不変フレームの数Lを算出する。不変フレームの数Lについて、切り上げにより求めるか、四捨五入により求めるか、切り捨てにより求めるかは設計事項である。
ステップ474では、クラスタリング後のモデルを使用するか否かを判定する。この判定は、クラスタ処理指定部202を用いてユーザにより入力され、所定の記憶領域に格納されていた値を用いて行なわれる。クラスタリング後のモデルを使用する場合はステップ480に進み、使用しない場合にはステップ476に進む。
ステップ476では、全てのキーフレームに対し、その前後のキーフレームとの間での、全頂点の平均速度を算出する。この算出方法は図11のステップ372及び374で行なうのと同様である。
ステップ478では、全キーフレームを、ステップ476で算出された平均速度の降順にソートする。
ステップ484では、このようにソートされたキーフレームのデータのうち、下位からL個のキーフレームの中の、平均速度の最大値<VS>を決定する。
ステップ486では、ステップ484で決定された値<VS>より大きな平均速度を持つキーフレームにおいて、ブレンド率BR(N)を以下の式(2)にしたがって調整する。
ただしVS(N)はN番目のキーフレームの平均速度である。式(2)は平均速度VS(N)の非線形関数である。式(2)によれば、平均速度VS(N)は平均値<VS>より大きいので、調整後のブレンド率は調整前のブレンド率より小さくなる。ステップ486の後、処理を終了する。
一方、クラスタリング後のモデルを使用する場合、ステップ480において、全てのキーフレームに対し、その前後のキーフレームとの間での頂点の平均速度を、各クラスタの代表頂点を用いて算出する。ここでの処理は、図11のステップ376及び378で行なったのと同様の考え方により行なう。
ステップ482では、全キーフレームをステップ480で算出された平均速度の降順でソートする。以下、ステップ484の処理に進む。
ここでの処理は、要するに、各頂点の動く速度が速いキーフレームについては、他のキーフレームの速さを基準として、口の動きが小さくなるようにブレンド率を調整する、というものである。頂点の動きがキーフレーム間であまりに速い場合、キーフレームでの口の形を元のままに維持すると、口の動きが不自然に見える。そこで、そうした場合にはブレンド率を小さく調整することにより、口の動きが小さくなるようにする。
次の表に、ブレンド率調整部250によるブレンド率の調整前後におけるブレンド率の変化の例を示す。テーブル4は平均速度の調整後でキーフレームのソート前、テーブル5はソート後でかつブレンド率の調整前を示す。
ここで、減衰率β=60%とすると、不変フレーム数Lは5×0.6=3となる。したがって表×における下3行についてはブレンド率の調整は行なわず、上2行のみのブレンド率の調整を行なう。ステップ484で決定する平均速度の最大値<VS>は、音素/a/の平均速度「100」となる。
<VS>=100を用いてステップ486の処理を行なうと、上位の二つの音素/i/及び/o/のブレンド率がそれぞれ以下のように訂正される。すなわち、音素/i/についてはBR(N)=90×100/200=45となり、音素/o/についてはBR(N)=60×100/150=40となる。その結果、ブレンド率調整部250によるブレンド率調整後の各キーフレームのブレンド率は以下のようになる。
すなわち、不変フレームの中の最大の平均速度より大きな平均速度を持つキーフレームのブレンド率が当初より小さな値に調整される。しかも、そのキーフレームの平均速度が大きいほど、ブレンド率は小さくなるため、キーフレームの頂点の移動速度が速いほど、そのキーフレームにおける口の位置の変化が小さくなり、一連のアニメーションはより滑らかで自然なものとなる。
<動作>
以上構成を説明したリップシンクアニメーション作成装置200は以下のように動作する。図5を参照して、最初に発話記憶部152に、所定の発話者の発話を記録した発話データが準備され、その発話の書き起こしデータであるトランスクリプションがトランスクリプション記憶部154に準備される。また、前述した6つの視覚素に対応した6つの顔画像のキャラクタモデルがワイアフレーム画像としてキャラクタモデル記憶部156に準備される。
顔画像のアニメーション260の作成のためには、種々の準備作業が必要である。以下それらの準備作業を順番に述べる。
−視覚素シーケンスの作成−
まず、視覚素シーケンス作成部230が音響モデル記憶部170に記憶された音響モデル、及び音素−視覚素マッピングテーブル記憶部176に記憶された音素−視覚素マッピングテーブル記憶部176を用い、以下のようにして視覚素シーケンスを作成し視覚素シーケンス記憶部180に記憶させる。
図6を参照して、視覚素シーケンス作成部230の音素セグメンテーション部172が、発話記憶部152中の発話データを読み、トランスクリプション記憶部154と音響モデル記憶部170とを用いて発話データに対する音素セグメンテーションを行なう。この処理の結果、音素セグメンテーション部172からは音素シーケンスが、各音素の継続長を表すデータとともに出力される。この継続長付き音素シーケンスは音素シーケンス記憶部174に記憶される。
音素−視覚素変換処理部178が、音素シーケンス記憶部174から音素シーケンスを読出し、音素−視覚素マッピングテーブル記憶部176に記憶された音素−視覚素マッピングテーブルを用いて、音素シーケンス中の音素を対応する視覚素に置き換えることにより、継続長付き視覚素シーケンスを生成する。ただしここでは、置換前の音素も各視覚素に付してあるものとする。この継続長付き視覚素シーケンスは視覚素シーケンス記憶部180に記憶される。
−顔画像の頂点のクラスタリング−
クラスタリング処理部232は、キャラクタモデル記憶部156に格納された6つの顔画像に対し、二つの顔画像の全ての組合せに対し、以下の処理を実行する。
まず、一方の顔画像から他方の顔画像に変化する際の頂点の動きベクトルを算出する。この動きベクトルの集合に対し、前述したとおりのVQクラスタリングを行なうことにより、一方の顔画像を所定個数のクラスタに分類する。逆方向の動きについては、動きベクトルの向きが逆になるだけであるから、クラスタリングは正逆で同じになる。
このようにしてクラスタリングを行なった結果、二つの顔画像の全ての組合せに対し、クラスタリング後の顔モデルと、各クラスタの代表頂点とが算出される。この顔モデルが、各クラスタの代表頂点とともにクラスタ化顔モデル記憶部234に記憶される。
−発話パワーの算出−
発話パワー算出部238は、視覚素シーケンス記憶部180に記憶された各視覚素に付された音素の情報に基づき、発話記憶部152中の各音素の平均発話パワーを算出し、発話パワーとして発話パワー記憶部240に記憶させる。
−アニメーションの作成−
アニメーションの作成においては、様々な選択肢がある。第1の選択肢は、キーフレームの削除率γである。キーフレームの削除は常に行なわれるので、この指定は必須である。ただし、指定がない場合には所定のデフォルトの値を使用するようにしてもよい。第2の選択肢は、キーフレーム削除部236での処理及びブレンド率調整部250での処理において、クラスタリングの結果を使用するか否かの指定である。第3の選択肢は、発話パワーによるブレンド率調整部244の処理を行なうか否かである。さらに、発話パワーによるブレンド率調整部244の処理を実行する場合には減衰率αを指定する必要がある。第4の選択肢は、ブレンド率調整部250の処理を行なうか否かである。ブレンド率調整部250の処理を行なう場合にはさらに、減衰率βを指定する必要がある。
発話パワーによるブレンド率調整部244による処理を行なうことが指定された場合には、選択部242及び246は、キーフレーム削除部236の出力を発話パワーによるブレンド率調整部244に与え、さらに発話パワーによるブレンド率調整部244の出力を選択部248に与えるように、接続を切替える。それ以外の場合には、選択部242及び246は、キーフレーム削除部236の出力を直接に選択部248に与えるように接続を切替える。
一方、ブレンド率調整部250による処理を行なうことが指定された場合には、選択部248及び252は、選択部246の出力をブレンド率調整部250に与え、ブレンド率調整部250の出力を視覚素シーケンス記憶部254に与えるように接続を切替える。それ以外の場合には、選択部248及び252は、選択部246の出力を直接に視覚素シーケンス記憶部254に与えるように接続を切替える。
以下、一般性を失わずに、発話パワーによるブレンド率調整部244による処理及びブレンド率調整部250による処理がともに選択されることを前提とし、クラスタリング後のモデルを使用しない場合と使用する場合とについて、それぞれキーフレーム削除部236、発話パワーによるブレンド率調整部244、及びブレンド率調整部250の動作を説明する。
(1)クラスタリング後のモデルを使用しない場合
−キーフレーム削除部236の動作−
キーフレーム削除部236は、削除率入力部201により入力された削除率γを読出し(図11、ステップ360)、視覚素シーケンス記憶部180に記憶された視覚素シーケンス中の視覚素の数に削除率γを乗ずることにより、削除フレーム数Kを算出する(ステップ362)。
キーフレーム削除部236はさらに、ステップ368で削除フレーム数Kだけのキーフレームを削除したか否かを判定する。通常は最初の判定では削除フレーム数Kだけのキーフレームの削除は行なわれていない。したがってステップ370に進む。ステップ370では、クラスタリング後のモデルを使用することが指定されていないので、ステップ372に進む。
ステップ372では、視覚素シーケンス内の隣り合う全てのキーフレーム間で、全ての頂点を用いてキーフレーム間の距離Dを算出し、ステップ374でこの距離に基づいて各点の移動速度の合計が最も早いキーフレームを削除ターゲットに定める。そしてステップ380でこのキーフレームを削除する。この後ステップ366に戻る。
以後、削除したキーフレームの数が削除フレーム数Kより大きくなると処理を終了する。
キーフレーム削除部236によりこのようにしてK個のキーフレームが削除された視覚素シーケンスは選択部242を介して発話パワーによるブレンド率調整部244に与えられる。
−発話パワーによるブレンド率調整部244の動作−
発話パワーによるブレンド率調整部244は、最初に減衰率αを読出す(図14のステップ450)。ステップ452で、キーフレーム削除部236の出力する視覚素シーケンス中の音素に関する情報に基づいて、発話記憶部152に記憶された発話データから、各音素の継続期間にわたる平均発話パワーを算出する。
ステップ454では、こうして算出された平均発話パワーのうち、最大パワーMAX(SP)と最小パワーMIN(SP)とを算出し、ステップ456において、減衰率αを用いた式により、各キーフレームについてブレンド率BR(N)を調整する。全てのキーフレームについてブレンド率を調整された視覚素シーケンスは、選択部246及び選択部248を介してブレンド率調整部250に与えられる。
−頂点速度によるブレンド率調整部250の動作−
頂点速度によるブレンド率調整部250は、最初に減衰率βを読出し(図15、ステップ470)、選択部248から与えられた視覚素シーケンス中に含まれるキーフレームにこの減衰率βを乗算して不変フレーム数Lを算出する(ステップ472)。続くステップ474では、ステップ476が選択される。
ステップ476では、選択部248から与えられた視覚素シーケンス中の全てのキーフレームに対し、その前後のキーフレームとの間での、全頂点の平均速度を算出する。ステップ478では、このようにして算出された平均速度をソートキーに、平均速度の降順にキーフレームをソートする。
ステップ484では、ステップ478でソートされたキーフレームの下位からL個のキーフレームのうちの平均速度の最大値を<VS>の値に設定する。ステップ486で、ステップ484において設定された速度<VS>の値を用い、前述した式によって、不変フレーム以外のキーフレームの各々について、そのブレンド率を調整する。不変フレーム以外の全てのキーフレームについてブレンド率の調整が終了すると、ブレンド率の調整が完了した視覚素シーケンスを図5に示す視覚素シーケンス記憶部254に出力する。
ブレンド処理部256は、視覚素シーケンス記憶部254に記憶された視覚素シーケンスを読出し、各キーフレームに対応する時刻にはそのキーフレームで指定された視覚素を用い、キーフレーム間のフレームの時刻では、そのフレームの両隣のキーフレームの間で、キーフレームに付されたブレンド率を用いた内挿によって中間の画像を作成する。このようにして、一定時間間隔のフレームの各々で、キーフレームの画像とそのブレンド率とを用いた内挿によって画像を作成することにより、アニメーションが作成される。
(2)クラスタリング後のモデルを使用する場合
クラスタリング後のモデルを使用する場合には、リップシンクアニメーション作成装置200の各部は以下のように動作する。
−キーフレーム削除部236の動作−
図11を参照して、キーフレーム削除部236は、ステップ360〜368までの処理についてはクラスタリング後のモデルを使用しない場合と同様に動作する。しかし、ステップ370の判定ではステップ376を選択する。ステップ376では、隣り合う全てのキーフレームの間で、代表頂点を用いて距離D’を算出する。代表頂点を用いた距離D’の算出については前述したとおりであるが、代表頂点の移動距離に、その代表頂点により代表されるクラスタ内の頂点の数を乗算し、その値を全てのクラスタにわたり合計することにより距離D’が得られる。
ステップ378では、こうして算出された距離D’を用い、頂点の動きが最も早いキーフレームを削除対象のキーフレームに決定する。ステップ380以下の処理は、クラスタリング後のモデルを使用しない場合と同様である。
−発話パワーによるブレンド率調整部244の動作−
発話パワーによるブレンド率調整部244は、クラスタリング後のモデルを使用しない場合と全く同様である。したがってここではその詳細は繰返さない。
−ブレンド率調整部250の動作−
この場合、ブレンド率調整部250は以下のように動作する。図15を参照して、ステップ470及び472の処理はクラスタリング後のモデルを使用しない場合と同様である。ただし、ステップ474の判定ではステップ480が選択される。
ステップ480では、全キーフレームに対し、その前後のキーフレームとの間の頂点の平均速度を、各頂点が属するクラスタの代表頂点の動きベクトルを用いて算出する。ここでの算出方法はキーフレーム削除部236での算出方法と同様である。そしてステップ482において、このようにして算出された平均速度をソートキーに、全てのキーフレームを降順にソートする。この後は、ステップ484及び486をクラスタリング後のモデルを使用しない場合と同様に実行する。
図16に、キーフレーム削除部236によるキーフレーム削除の結果の一例を示す。図16(A)はキーフレーム削除部236によるキーフレームの削除なし(視覚素シーケンス作成部230による出力のまま。ただしブレンド率については発話パワーによって初期値を付与してある。)を示し、図16(B)及び図16(C)はそれぞれ削除率γ=20%及び30%に設定したときの結果を示す。図16(D)は従来の方法にしたがい、人間のアニメータが音声を聞きながら手作業によってキーフレームを設定した結果を示す。自動的な処理で図16(D)に近い結果が得られると好ましい。
図16(A)と図16(B)とを比較すると、キーフレーム500及び502が削除されていることが分かる。この結果、図16(B)と図16(D)とはかなり近い結果となっている。さらに図16(B)と図16(C)とを比較すると、キーフレーム510が削除されている。この結果を図16(D)と比較すると、両者が非常に類似していることが分かる。特に図16(C)の結果から合成したアニメーションと、図16(D)の手作業による結果から合成したアニメーションとは、前半部分において非常によく一致しており、主観的な評価ではほとんど差がなかった。
図17の上段(A)(B)は、従来の方法によって得られた顔画像の口付近のアニメーション結果(A)と、上記実施の形態によって得られたアニメーション結果(B)とを対比して示す。図17の下段(C)(D)は、対応する各キーフレームのブレンド率を示す。従来の方法によるブレンド率を図17(D)に、本発明の実施の形態によるブレンド率を図17(C)に、それぞれ示す。図17(C)における枠530、図17(D)における枠532に相当する部分の顔アニメーションが図17(B)及び(A)に該当する。
図17(C)及び(D)を参照して、従来の方法によるブレンド率のグラフ522と、本実施の形態によるブレンド率のグラフ520とを比較すると、本実施の形態では全体にブレンド率が低くなり、その結果口画像の動きが滑らかになっていることが分かる。
以上のように本実施の形態に係る視覚素シーケンス作成部230によれば、発話音声及びそのトランスクリプションと、視覚素に相当する基本的な顔画像のモデルとから、自動的に音声に対応して滑らかに変化する顔画像を作成することができる。発話パワーが小さい部分、又は隣接するキーフレームとの間のモデルの各頂点の動きが速すぎるキーフレームなどにおいては、ブレンド率は低くなるように調整される。その結果、得られる顔画像のアニメーションはいわゆる「うるさい」アニメーションではなく、滑らかで、手作業によってキーフレーム及びそのブレンド率を調整した場合に近いアニメーションを作成することができる。
なお、上記実施の形態では、削除率入力部201によって入力された割合にしたがってキーフレームを削除する。しかし本発明はそのような実施の形態には限定されない。例えば、削除率入力部201に代えて、削除されるべきキーフレームの数を入力するための機能部を設け、入力された数だけのキーフレームを削除するようにしてもよい。
[コンピュータによる実現]
上述の実施の形態は、コンピュータシステム及びコンピュータシステム上で実行されるプログラムによって実現され得る。図18はこの実施の形態で用いられるコンピュータシステム550の外観を示し、図19はコンピュータシステム550のブロック図である。ここで示すコンピュータシステム550は単なる例であって、他の構成も利用可能である。
図18を参照して、コンピュータシステム550はコンピュータ560と、全てコンピュータ560に接続された、モニタ562と、キーボード566と、マウス568と、スピーカ558と、マイクロフォン590と、を含む。さらに、コンピュータ560はDVD−ROM(Digital Versatile Disk Read−Only−Memory:ディジタル多用途ディスク読出専用メモリ)ドライブ570と、半導体メモリドライブ572とを含む。
図19を参照して、コンピュータ560はさらに、DVD−ROMドライブ570と半導体メモリドライブ572とに接続されたバス586と、全てバス586に接続された、CPU576と、コンピュータ560のブートアッププログラムを記憶するROM578と、CPU576によって使用される作業領域を提供するとともにCPU576によって実行されるプログラムのための記憶領域となるRAM580と、音声データ、音響モデル、言語モデル、レキシコン、及びマッピングテーブルを記憶するためのハードディスクドライブ574と、ネットワーク552への接続を提供するネットワークインターフェイス596とを含む。
図5に示す発話記憶部152、トランスクリプション記憶部154、キャラクタモデル記憶部156、音響モデル記憶部170、音素−視覚素マッピングテーブル記憶部176、視覚素シーケンス記憶部180、クラスタ化顔モデル記憶部234、発話パワー記憶部240、視覚素シーケンス記憶部254などは、いずれも図19に示すハードディスクドライブ574又はRAM580により実現される。また、削除率入力部201、クラスタ処理指定部202、発話パワー使用指示入力部204、減衰率入力部206、使用指示入力部208及び減衰率入力部210等は、いずれも図18及び図19に示すモニタ562並びにキーボード566及びマウス568を用いるグラフィカルユーザインタフェースを実現するプログラムによって実現される。そのような入力のプログラムの構成は周知であるので、ここではその詳細については説明しない。
顔画像のアニメーション260の再生は、図示しないアニメーション再生プログラムによって実現される。アニメーション再生プログラム自体は、所定のタイムテーブルにしたがい、一定のフレーム間隔でフレームシーケンスを順次表示する、という機能を提供するものであればよい。
上述の実施の形態のシステムを実現するソフトウェアは、DVD−ROM582又は半導体メモリ584等の媒体に記録されたオブジェクトコードの形で流通し、DVD−ROMドライブ570又は半導体メモリドライブ572等の読出装置を介してコンピュータ560に提供され、ハードディスクドライブ574に記憶される。CPU576がプログラムを実行する際には、プログラムはハードディスクドライブ574から読出されてRAM580に記憶される。図示しないプログラムカウンタによって指定されたアドレスから命令がフェッチされ、その命令が実行される。CPU576はハードディスクドライブ574から処理すべきデータを読出し、処理の結果をこれもまたハードディスクドライブ574に記憶する。スピーカ558とマイクロフォン590とは、直接に本発明とは関係ないが、スピーカ558は、作成されたアニメーションの再生時の音声の発生に必要である。発話データの収録にコンピュータシステム550を使用するときには、マイクロフォン590が必要となる。
コンピュータシステム550の一般的動作は周知であるので、詳細な説明は省略する。
ソフトウェアの流通の方法に関して、ソフトウェアは必ずしも記憶媒体上に固定されたものでなくてもよい。例えば、ソフトウェアはネットワークに接続された別のコンピュータから分配されてもよい。ソフトウェアの一部がハードディスクドライブ574に記憶され、ソフトウェアの残りの部分をネットワークを介してハードディスクドライブ574に取込み、実行の際に統合する様にしてもよい。
典型的には、現代のコンピュータはコンピュータのオペレーティングシステム(OS)によって提供される一般的な機能を利用し、所望の目的に従って制御された態様で機能を達成する。従って、OS又はサードパーティから提供されうる一般的な機能を含まず、一般的な機能の実行順序の組合せのみを指定したプログラムであっても、そのプログラムが全体として所望の目的を達成する制御構造を有する限り、そのプログラムがこの発明の範囲に包含されることは明らかである。
[第2の実施の形態]
<概略>
上記した第1の実施の形態により、音声を基にして滑らかな顔画像のアニメーションを作成することができる。しかし、商品としてのアニメーションでは、単に画像が滑らかであることに留まらず、様々な制約が与えられることがある。例えば、通常のアニメーションは、テレビ(30fps(frame per second))又は、映画(24fps)と同様のフレームレートで作成される。しかし、商業的なアニメーションでは、これよりも小さな(遅い)フレームレートでアニメーションを作成することが要請される場合がある。例えば、12fps、8fpsなどでアニメーションを作成することが要請される場合があり得る。こうした場合には、次のような問題が生じる。
第1の実施の形態に係る装置では、アニメーション作成時のフレームレートは高く設定されており、従って滑らかな映像を得ることができる。しかし、敢えて低いフレームレートでアニメーションを作成する場合には、一つのキーフレームの継続長内に複数の音素が含まれる場合が多くなる。すると、本来は複数の視覚素を含む期間内に、口の画像が1種類しか含まれないこととなる。そのため、口画像にどの視覚素を割当てればよいかが問題となる。この場合、一つのキーフレームの継続長に含まれる複数の視覚素のうちのいずれかを、そのキーフレームの視覚素に割当てることが妥当である。しかし、そうすると、場合によっては連続するキーフレームに同じ視覚素が割当てられてしまう場合があり得る。一般的に、8fpsという遅いフレームレートでアニメーションを作成する場合にも、最終的にはテレビ、映画などのフレームレートと同じフレームレートの画像を作成することになるため、連続するキーフレームに同じ視覚素が割当てられると、かなり長い期間にわたり同じ視覚素が続いてしまうということになり、アニメーションが不自然になってしまう恐れがある。
これと関連した問題であるが、現在使用されているアニメーション作成プログラムでは、あるキーフレームと、その次のキーフレームとにそれぞれの形状を割当てると、その間に存在するフレームの映像については、これら二つのキーレフレームの映像を自動的に補間して各フレームの画像を作成するという機能が標準的に備わっている。そうした場合、キーフレーム間の画像の変化は労せずして滑らかなものとなるが、遅いフレームレートを前提として作成するアニメーションの場合には、意図したものと異なった動きが生成されることになる。遅いフレームレートの場合には、結果として作成されるアニメーションは「カクカク」とした動きをするものとなる。これは「リミット感」と呼ばれてアニメーション作成上の一つの技法とされている。そのようなリミット感を生成することが意図されたアニメーションでは、このような自動的な補間機能があるために、かえって意図したリミット感を達成することができないという問題点が生ずる。
更に、人間の発話の場合、発話終端で口を開いたままにするということはよくあるが、アニメーションでは、そのような形で発話を終わらせると不自然に感じられることがある。そこで、発話の終端では必ず口を閉じるように補正することが考えられる。しかし、この場合、どのように補正すれば自然に見えるかが問題となる。
以後に説明する第2の実施の形態に係るリップシンクアニメーション作成装置は、こうした問題を解決するためのものである。
−発話終端補正−
最初に、発話の終端で口を閉じるように補正するためのアニメーションの補正方法(以後この補正を「発話終端補正」と呼ぶ。)について説明する。図20を参照して、発話者の音声から得られたキーフレーム列610が、4つの連続するキーフレーム620,622,624,626を含むものとする。これらのうち、キーフレーム626は発話後の空白期間を表している。
本実施の形態では、発話の終端に相当するキーフレーム624について、以下のようにしてその終端位置を調整する。
図20を参照して、キーフレーム列610を作成するもととなった発話者の音声信号の発話パワー系列630を考える。本実施の形態では、キーフレーム624の終端位置(キーフレーム626の開始位置)からこの発話パワー系列630を時間軸上でさかのぼるようにして、キーフレーム624に相当する期間内で発話パワーが最大となる点640を探索する。次にこの点640における発話パワーの値から、所定の減衰量642(δ(dB))だけ減衰した発話パワーを算出し、同じくキーフレーム624の終端から時間軸をさかのぼって、その発話パワーが減衰後の発話パワーと等しくなる点644を探索する。この点644に相当する時間軸上の位置をキーフレーム624の終端位置とする。
その結果、図20に示されるように、キーフレーム626の位置が点644の位置まで進み、新たなキーフレーム652となり、その継続長はキーフレーム624の継続長が短縮された分だけ長くなる。こうして得られたキーフレーム列650を用いてアニメーションを作成すると、発話の最後において口が閉じる時期が早くなり、アニメーションとして自然なものになる。
なお、この実施の形態では、最大の発話パワーを与える点640の後で所定の割合だけ発話パワーが減衰する時間軸上の位置をキーフレームの終端位置としている。しかし本発明はそのような実施の形態には限定されない。例えば、発話パワーの大きさがある値だけ減少した時点をキーフレームの終端位置としてもよい。
−フレームレート変換及び視覚素の割当処理−
次に、低いフレームレートの時に、各キーフレームにどの視覚素を割当てるか、についての本実施の形態における決定方法について説明する。図21を参照して、キーフレーム列670が、6つのキーフレーム680,682,684,686,688及び690を含むものとする。フレームレートが8fps程度に遅くなると、キーフレームの時刻はフレーム位置に固定されてしまう。すなわち、キーフレームと所定のフレームレートの画像のフレーム位置とが、図21に示されるように一致する。
一方、第1の実施の形態に係るリップシンクアニメーション装置によって得られたキーフレーム列672から、図21の上段に示すキーフレーム列670を生成する場合を考える。なお、キーフレーム列672は、キーフレーム700,702,704,706,708,710,712,714及び716を含むものとする。
この場合、キーフレーム列670の各キーフレームの継続長は、キーフレーム列672の各キーフレームの継続長と比較して長くなるため、キーフレーム列670の一つのキーフレームの継続長に対し、キーフレーム列672の複数のキーフレームの視覚素が対応する。例えば、キーフレーム682に対しては、時間的に隣接する三つのキーフレーム702,704及び706の視覚素が割当てられる可能性がある。同様にキーフレーム688に対しては、キーフレーム714及び716の視覚素が割当てられる可能性がある。このように一つのキーフレームに複数の視覚素が割当てられる可能性があるときに、どの視覚素を選択すればよいかが問題となる。
ところで、実際の発話では、音声の発生を行なうに先立って口の動きが生ずるのが観察される。しがたって、音声より先にその音声に対応するように口を動かせるのが自然である。本実施の形態では、そのような考え方にしたがい、図21に示すキーフレーム列670の各キーフレームに視覚素を割当てる場合、キーフレーム列672の中で、そのキーフレームの継続長内に視覚素の始端を有するキーフレームの視覚素を割当てることとする。
例えば、図22を参照して、楕円730で示したキーフレーム682について考える。前述したように、このキーフレーム682に対しては、キーフレーム列672の三つのキーフレーム702,704及び706が対応する可能性がある。しかしこれらのうち、キーフレーム702についてはその始端がキーフレーム682の継続長内にないため、候補からは外れる。キーフレーム682の継続長内に始端を有するという条件を充足するのは、キーフレーム704及び706である。このように二つ以上の視覚素がキーフレーム682内に存在する場合、先に生ずる視覚素をこのキーフレーム682に割当てるのが自然である。したがって本実施の形態では、矢印734で示されるように、キーフレーム704の視覚素N(/m/)をキーフレーム682に割当てることとする。点線の矢印732及び736で示されるように、二つのキーフレーム702及び706の視覚素は、キーフレーム682には割当てられない。
ところでこうした場合、得られる映像に問題が生ずる可能性がある。例えば図22において楕円740で示すように、キーフレーム688に対し、その継続長内に始端を有するキーフレーム714及び716がある。これらのいずれもキーフレーム688の視覚素に割当てるための条件は充足している。しかし、例えば図22に示すように、その直前のキーフレーム686に対し、視覚素A(/a/)が割当てられている場合、キーフレーム688に対しキーフレーム714の視覚素A(/a/)を割当てると、二つのキーフレーム686及び688の視覚素が全く同一となってしまう。前述したようにこの場合、かなり長い時間にわたって同じ視覚素が連続してしまうため、アニメーションが不自然になるという問題点がある。
そこでこうした場合には、キーフレーム714ではなく、2番目のキーフレーム716の視覚素I(/i/)をキーフレーム688に割当てることとする。
このようにすることにより、元々高速なフレームレートを想定して作成されたキーフレーム列672から、かなり低いフレームレートのキーフレーム列670を作成し、しかもそこから得られるアニメーションの顔画像に不自然さがそれほどないものを作成することができる。
以上のようにして、図22において実線の矢印750,734,752,754,及び744で示される視覚素がキーフレーム列670の各キーフレームに割当てられる。なお、図22においてキーフレーム列670の最後尾に示されているキーフレーム690には、キーフレーム列672の、図示されない次のキーフレームの視覚素が矢印756によって示される様に割当てられる。
−形状安定化処理−
ところで、先ほど述べたリミット感について、図22に示すようにキーフレーム686及び688に異なる視覚素の口形状を割当てたとする。通常使用されているアニメーション作成プログラムでは、この二つのキーフレームの間のフレームの画像については、この二つのキーフレームの間の補間を行なうことによって生成するのが一般的である。その結果、意図したリミット感が得られなくなるという問題がある。この問題を図23(A)を参照して説明する。
図23(A)を参照して、キーフレーム686に相当する時刻を時刻t、キーフレーム688に相当する時刻を時刻t+6とする。すなわち、この二つのキーフレームの間に、5つのフレームが存在している。時刻tでは、このキーフレーム790における視覚素/a/のブレンド率は、○印770によって示されるように100%であり、視覚素/i/のブレンド率は○印774で示されるように0%である。一方、時刻t+6では、逆に視覚素/i/のブレンド率は○印776で示されるように100%であり、視覚素/a/のブレンド率は○印772で示されるように0%となる。そしてこの間の両者のブレンド率は、ブレンド率曲線780及び782によって示されるように計算される。時刻t及び時刻t+6の間の各フレームでは、このブレンド率によってこの二つの視覚素の顔画像をブレンドした顔画像が作成される。このようなブレンドを行なうと画像は滑らかに変化するが、それによってリミット感が失われ、小さなフレームレートでアニメーションを作成するという要請を充足することができなくなるという問題点がある。
そこで本実施の形態では、図23(B)に示されるように、時刻t+6の直前のフレームに相当する時刻t+5に、時刻tにおける視覚素/a/及び/i/のブレンド率をそのままにして、キーフレーム790をキーフレーム792としてコピーする。その結果、アニメーション作成プログラムによって自動的なブレンドが行なわれる場合であっても、時刻t〜t+5の間では、直線800及び802によって示されるように視覚素/a/のブレンド率は100%、視覚素/i/のブレンド率は0%に維持される。顔画像の変化は時刻t+5〜t+6の間で行なわれることになり、上記したリミット感を達成することができる。
<構成>
図24に、この第2の実施の形態に係るリップシンクアニメーション作成装置810のブロック図を示す。このリップシンクアニメーション作成装置810の構成は、図5に示す第1の実施の形態に係るリップシンクアニメーション作成装置200の構成とほぼ同様であるが、図5に示すキーフレーム削除部236と選択部242との間に、前述した発話終端の補正を行なうための発話終端補正部822、及びこの発話終端補正部822の機能を利用するか否かを選択するための選択部820及び824を更に含む点と、継続長付き視覚素シーケンス記憶部254の出力を受けるように接続され、継続長付き視覚素シーケンスのフレームレートを、フレームレート入力832によって指定されたフレームレートに変換するためのフレームレート変換部840と、フレームレート変換部840の出力する視覚素シーケンスについて、アニメーション作成プログラムによるブレンドによってリミット感が失われるのを防ぐための形状安定化処理を実行するための形状安定化処理部842と、形状安定化処理部842の出力するフレームレート変換後の継続長付き視覚素シーケンスを記憶するための継続長付き視覚素シーケンス記憶部846と、継続長付き視覚素シーケンス記憶部254及び846の出力にそれぞれ接続された第1及び第2の入力を有し、フレームレート変換を使用するか否かを指定する使用指示入力830の指示にしたがい、継続長付き視覚素シーケンス記憶部254の出力又は継続長付き視覚素シーケンス記憶部846の出力のいずれかを選択してブレンド処理部256に与えるための選択部848とを含む点において、図5に示すリップシンクアニメーション作成装置200と異なっている。
なお、図24に示す選択部820及び824は、発話終端補正を行なうか否かを指定する使用指示入力826にしたがって、キーフレーム削除部236の出力を発話終端補正部822を経由して選択部242に与える処理と、発話終端補正部822を経由せず直接に選択部242に与える処理とを選択的に行なう。また発話終端補正部822には、図20を参照して説明した減衰率δ(dB)の入力828が与えられる。使用指示入力826と使用指示入力830とは、互いに同一の指示を用いるようにしてもよい。
既に述べたように、このリップシンクアニメーション作成装置810の発話終端補正部822、フレームレート変換部840、及び形状安定化処理部842は、コンピュータハードウェアと、そのハードウェア上で実行されるコンピュータプログラムとにより実現され得る。以下、それらプログラムの制御構造について説明する。
図25は、発話終端補正部822を実現するためのコンピュータプログラムの制御構造を示すフローチャートである。
図25を参照して、このプログラムは、キーフレーム削除部236から出力されるキーフレーム列のうち、未処理の発話終端を探すステップ870と、未処理の発話終端があったか否かを判定し、発話終端がない場合には処理を終了し、発話終端があった場合には次のステップに制御を移す判定ステップ872と、未処理の発話終端があると判定ステップ872で判定された場合に、その発話終端の直前のキーフレームの視覚素継続長内の音声パワーの最大値Pmaxを求めるステップ874とを含む。
ステップ870における未処理の発話終端を探す処理は、空白の視覚素が割当てられたキーフレームの直前の、空白以外の視覚素の割当てられたキーフレームを探すことにより行なわれる。ステップ874で行なわれる最大値Pmaxを求める処理については、図20を参照して説明した通りである。ここでいう最大値Pmaxを与える点は、図20における点640に相当する。
このプログラムは更に、ステップ874の後、処理中の視覚素継続長の終端からさかのぼり、音声パワーがPmax-δ(dB)となる最初の時間tを求めるステップ876と、そのような条件を充足する点があるか否かを判定し、条件を充足する点がない場合にはステップ870に分岐し、条件を充足する点がある場合には次のステップに処理を分岐させるステップ878と、ステップ878において条件を充足する点があると判定されたことに応答して実行され、その視覚素継続長の終端を、ステップ876で発見された時間tに変更し、あわせてその直後のキーフレームの始端を同じく時間tに変更する処理を行なうステップ880とを含む。ステップ880の後、制御はステップ870に戻る。ステップ876で求める時間tの点は、図20で説明した点644に相当する。
図26は、図24に示すフレームレート変換部840を実現するためのコンピュータプログラムの制御構造を示すフローチャートである。図26を参照して、このプログラムは、以後の繰返し処理において処理対象のキーフレーム数を表す変数iに値0を設定するステップ900と、変数iに1を加算するステップ902と、ステップ902での加算処理の結果、変数iが全てのキーフレームの数より大きくなったか否かを判定し、大きくなった場合にはこの処理を終了し、それ以外の場合には次のステップに制御を分岐させるステップ904とを含む。
このプログラムは更に、ステップ904において、変数iがキーフレーム数より大きくないと判定されたことに応答して実行され、i番目のキーフレーム(以後このキーフレームを「キーフレーム(i)」と書く。)の継続長内に始端が含まれる視覚素を探すステップ906と、ステップ906で見つけられた視覚素の数Nが0か否かを判定し、その結果によって処理を分岐させるステップ908と、ステップ908で、視覚素の数N=0と判定されたことに応答して実行され、キーフレーム(i)を破棄する処理を行ない、更にステップ902に制御を戻すステップ910と、ステップ908によって視覚素の数Nが0でないと判定されたことに応答して実行され、視覚素の数Nが1か否かを判定し、その判定結果にしたがって制御を分岐させる処理を行なうステップ912と、ステップ912において視覚素の数Nが1であると判定されたことに応答して実行され、キーフレーム(i)に、ステップ906で見つけられた視覚素(この視覚素はこの場合一つしかないのでこれを視覚素(1)と書く。)を割当て、制御をステップ902に戻すステップ914と、ステップ912において視覚素の数Nが1でないと判定されたことに応答して実行され、以後の処理でキーフレーム(i)の継続長内に始端が含まれる視覚素の、先頭からの数を表す変数jに0を設定するステップ916とを含む。
このプログラムは更に、ステップ916に引き続いて、変数jに1を加算するステップ918と、ステップ918での加算の結果、変数jの値が、キーフレーム(i)内の視覚素の数Nより大きくなったか否かを判定し、その判定結果にしたがって制御を分岐するステップ920と、ステップ920において変数jの値が視覚素の数Nより大きいと判定されたことに応答して実行され、キーフレーム(i)に、キーフレーム(i)内に始端を有する先頭の視覚素(視覚素(1))を割当て、制御をステップ902に戻すステップ922と、ステップ920において変数jの値が視覚素の数Nより大きくはないと判定されたことに応答して実行され、キーフレーム(i)内のj番目の視覚素(これを「視覚素(j)」と書く。)が、一つ前のキーフレーム(キーフレーム(i−1))の視覚素と同一か否かを判定し、その判定結果にしたがって制御を分岐させるステップ924とを含む。
ステップ924において、視覚素(j)がキーフレーム(i−1)の視覚素と一致すると判定された場合には、制御はステップ918に戻り、それ以外の場合には制御は次に進む。
このプログラムは更に、ステップ924において視覚素(j)がキーフレーム(i−1)の視覚素ではないと判定されたことに応答して実行され、キーフレーム(i)に視覚素(j)を割当て、更に制御をステップ902に戻す処理を行なうステップ926を含む。
図27に、図24に示す形状安定化処理部842を実現するためのプログラムの制御構造をフローチャート形式で示す。図27を参照して、このプログラムは、以後の処理において処理対象となるキーフレームの番号を表す変数iに1を設定するステップ950と、変数iに1を加算するステップ952と、ステップ952での加算処理の結果、変数iの値が処理対象のキーフレーム数より大きくなったか否かを判定し、変数iの値がキーフレーム数を上回った場合に処理を終了させるステップ954と、ステップ954において変数iの値がキーフレーム数を上回ってはいないと判定されたことに応答して実行され、キーフレーム(i)の直前のフレームに、キーフレーム(i-1)をコピーして新たなキーフレームとする処理を行ない、その後ステップ952に制御を戻す処理を行なうステップ956等を含む。
<動作>
図24に示すリップシンクアニメーション作成装置810は以下のように動作する。以下の説明では、使用指示入力826と830とは、同一の値をリップシンクアニメーション作成装置810に指示するものとする。使用指示入力826及び830が、発話終端補正部822による処理、フレームレート変換部840による処理、及び形状安定化処理部842による処理を使用しないことを指定する値である場合、選択部820及び824はキーフレーム削除部236の出力を選択部242の入力に直接に与える。選択部848は、継続長付き視覚素シーケンス記憶部254の出力をブレンド処理部256に与える。したがってこの場合リップシンクアニメーション作成装置810の構成は事実上図5に示すリップシンクアニメーション作成装置200と同一となり、リップシンクアニメーション作成装置200と同様の動作を行なう。
使用指示入力826及び830が、発話終端補正部822、フレームレート変換部840、及び形状安定化処理部842を使用することを指定する値である場合、選択部820はキーフレーム削除部236の出力を発話終端補正部822に与える。発話終端補正部822の出力は選択部824を介して選択部242の入力に与えられる。
一方、選択部848は、継続長付き視覚素シーケンス記憶部254の出力ではなく、継続長付き視覚素シーケンス記憶部846の出力を選択し、ブレンド処理部256に与える。フレームレート変換部840は、フレームレート入力832に応答し、継続長付き視覚素シーケンス記憶部254に記憶された視覚素シーケンスを順に読出し、図21及び図22に示した手法を用いてフレームレートを変換し、さらに各フレームに視覚素を割当てて、フレームレート変換後の視覚素シーケンスを形状安定化処理部842に与える。形状安定化処理部842は、フレームレート変換部840から出力される視覚素シーケンスの中で、各キーフレームを、次のキーフレームの直前のフレームにコピーする処理を行なう。この処理は図23に示した通りである。この処理を全てのキーフレームに対して行なった後、その結果を継続長付き視覚素シーケンス記憶部846に出力する。
既に述べたように選択部848は継続長付き視覚素シーケンス記憶部846の出力を選択してブレンド処理部256に与える。ブレンド処理部256は、継続長付き視覚素シーケンス記憶部846に記憶されたキーフレーム列を読込み、隣接するキーフレームの間で、それぞれ指定されたブレンド率をその間のフレームに内挿することにより、アニメーションを作成して出力する。こうして作成されるアニメーション260のフレームレートは、テレビ又は映画のフレームレートと同じフレームレートであるが、フレームレート変換部840によってキーフレームが削除され、更に形状安定化処理部842によって、隣接するキーフレーム間でのアニメーションの内挿を防止するように形状安定化処理が行なわれているため、実質的にフレームレート入力832で指定されたフレームレートの値にしたがった低いフレームレートのアニメーションと同様のリミット感を得ることができる。
[第3の実施の形態]
<概略>
上記した第1及び第2の実施の形態により、視覚素/A/、/I/、/U/、/E/、/O/、及び/N/(以下「標準視覚素」と呼び、これらに対応する音素を「標準音素」と呼ぶ。)に基づいた顔画像のアニメーションを作成することができる。しかし、日本語の場合、視覚素は標準視覚素を含めて十数種類あるので(/K/、/S/、/T/等)、標準視覚素のみでは、日本語の滑らかなアニメーションを作成するには十分ではない可能性がある。また、上記実施の形態において、標準視覚素のための顔画像は予め用意されていたが、他の視覚素も用いて日本語のアニメーションを作成するのであれば、準備しなければならない顔画像の数が増加する。こうした顔画像のための顔モデルは、アニメーション作成に使用する基準となる標準顔モデルに対して手作業で編集を加えて作成するため、多くの視覚素のための顔画像を用意するのは困難である。英語、中国語等のような外国語のアニメーションを作成するときには、さらに異なる視覚素について顔画像を作成しなくてはならず、したがってさらに困難になる。
以後に説明する第3の実施の形態に係るリップシンクアニメーション作成装置は、標準視覚素と、標準視覚素以外の視覚素(以下、これらを「一般視覚素」と呼ぶ。)とを含む視覚素群を用いた日本語のリップシンクアニメーションの作成、及びその多言語への拡張のためのものである。
<構成>
図28に、この第3の実施の形態に係るリップシンクアニメーション作成装置1000のブロック図を示す。図28に示すこのリップシンクアニメーション作成装置1000の構成は、図24に示す第2の実施の形態に係るリップシンクアニメーション作成装置810の構成とほぼ同様であるが、標準視覚素のみではなく、一般視覚素も用いて日本語の顔画像のアニメーション260を作成するためのものである点において、図24に示すリップシンクアニメーション作成装置810と異なっている。
具体的には、リップシンクアニメーション作成装置1000は、図24に示す音素−視覚素マッピングテーブル記憶部176に代え、それと同様の構成ではあるが、日本語の音素の各々に対し、標準視覚素と、それ以外の視覚素とを含む視覚素群の中から、一つの視覚素を関連付ける点で図24に示す音素−視覚素マッピングテーブル記憶部176と異なる音素−視覚素マッピングテーブルを記憶するための音素−視覚素マッピングテーブル記憶部1002を含む点と、図24に示す、標準視覚素に対応した顔モデル(以下「標準視覚素モデル」と呼ぶ。)を格納した3Dキャラクタモデル記憶部156に代えて、標準視覚素だけでなく、それ以外の日本語の視覚素のための、標準顔モデルを基準とした顔モデル(以下「一般視覚素モデル」と呼ぶ。)からなる3Dキャラクタモデルを記憶する3Dキャラクタモデル記憶部1004を含む点とにおいて図24に示すリップシンクアニメーション作成装置810と異なっている。
リップシンクアニメーション作成装置1000はさらに、ある発話者が日本語の文を発音しているときにキャプチャした、顔の特徴点の3次元データ(以下「キャプチャデータ」と呼ぶ。)を、そのとき発音していた音素と関連付けて記憶するキャプチャデータ記憶部1006と、標準視覚素モデルを記憶した標準視覚素モデル記憶部1008と、キャプチャデータ記憶部1006に記憶されたキャプチャデータ及び標準視覚素モデル記憶部1008に記憶された標準視覚素モデルを使用して、標準音素以外の音素(/k/、/s/、/t/等)に対応するキャプチャデータの各々を、標準音素に対応するキャプチャデータの線形和で近似するための係数を算出するための係数算出部1010と、係数算出部1010により算出された係数を用いて、標準視覚素モデル記憶部1008に記憶された標準視覚素モデルの線形和で一般視覚素モデルを表し、標準視覚素モデルと一般視覚素モデルとを使用して3Dキャラクタモデルを作成してキャラクタモデル記憶部1004に格納するためのキャラクタモデル合成部1012とを含む点において、図24に示すリップシンクアニメーション作成装置810と異なっている。
一般視覚素の数をいくつにするか、一般視覚素として、どのようなものを選択するか、及び日本語の各音素を標準視覚素及び一般視覚素のうちのどの視覚素と対応付けるかは設計事項に属する。ただし、標準音素は常に標準視覚素に対応付ける必要がある。
図29を参照して、図28のキャプチャデータ記憶部1006に記憶されたキャプチャデータ、及び標準視覚素モデル記憶部1008に記憶された標準視覚素モデルを使用して、標準視覚素モデルによる線形和で一般視覚素モデルを近似するための係数を求める処理について説明する。
図29を参照して、キャプチャデータ記憶部1006に、日本語の音素/a/、/i/、/u/、/e/、/o/、/n/、/k/、/s/、/t/、/h/、及び/b/等を発話しているときの発話者の顔のキャプチャデータである、
等がそれぞれ記憶されているものとする。/〜N/(記号「〜」は式中文字の上に付されている。)は、音素/n/を発話中の発話者の顔の特徴点のキャプチャデータである。/〜N/以外のキャプチャデータはいずれも、/〜N/を基準とし、顔画像の各特徴点が、顔画像の定義されている3次元空間において、キャプチャデータ/〜N/の対応する特徴点からどの程度移動しているかを示す3次元ベクトル情報によって表されたものである。
図29を参照して、標準視覚素モデル記憶部1008は、標準視覚素モデルである/A/、/I/、/U/、/E/、及び/O/を、基準となる視覚素モデル/N/からの、各特徴点の移動ベクトルの集合という形で記憶している。これら視覚素モデルはいずれも、アニメーションのキャラクタとして使用される標準視覚素モデルについて作成されたものである。
係数算出部1010の機能は以下のとおりである。ここでは、例として、キャプチャデータ記憶部1006に記憶されているキャプチャデータから、音素/k/に対応付けられた、アニメーション作成のための一般視覚素モデル/K/を求める方法について説明する。
一般視覚素モデル/〜K/を以下のように定式化する。
ただし、〜α
KA、〜α
KI、〜α
KU、〜α
KE、及び〜α
KO(記号「〜」は式中文字の上に付されている。)は実数の値をとる変数であり、ε
Kは誤差変数である。この式は、一般視覚素モデル/〜K/を構成する各特徴点の位置を表すベクトルの全てについてたてることができる。すなわち、キャプチャデータを構成する特徴点の数がM個であれば、M個のベクトルの線形和の等式が得られる。
これらM個のベクトルの線形和の等式の全てに関して算出したεKの自乗和が最小となるような、〜αKA、〜αKI、〜αKU、〜αKE、及び〜αKOを算出する。算出された〜αKA、〜αKI、〜αKU、〜αKE、及び〜αKOの値をそれぞれαKA、αKI、αKU、αKE、及びαKOとする。係数算出部1010が行なう処理は、この係数を算出することである。
キャラクタモデル合成部1012の機能は、係数算出部1010により算出されたこれら係数αKA、αKI、αKU、αKE、及びαKOを用いて、一般視覚素モデルを構成する特徴点の各々の位置を表す3次元ベクトルの値を、標準視覚素モデルの線形和として算出し、キャラクタモデル記憶部1004に格納することである。
以下では、音素/k/に対応付ける、アニメーション作成のための一般視覚素モデル/K/を算出する場合を例としてキャラクタモデル合成部1012の機能を説明する。キャラクタモデル合成部1012は、一般視覚素モデル/K/を次の式にしたがって算出する。
この式は、一般視覚素モデル/K/を構成する特徴点の位置を表す3次元ベクトルの全てを、標準視覚素モデル/A/、/I/、/U/、/E/及び/O/を構成する特徴点の位置を表す3次元ベクトルの線形和で表すことを意味する。
キャラクタモデル合成部1012は、同様にして、一般視覚素モデル/S/、/T/、/H/、及び/B/等を、標準視覚素モデル/A/、/I/、/U/、/E/及び/O/の線形和として求める。
そのようにして求められた一般視覚素モデルを、標準視覚素モデルとともにキャラクタモデル記憶部1004に記憶させる。
テーブル7に、音素−視覚素マッピングテーブル記憶部1002に記憶されたマッピングテーブルの例を示す。
テーブル7を参照して、本実施の形態では、上から1行目の音素/a/から5行目の/o/までは、第1の実施の形態で用いられたテーブル1と同様である。ただし、テーブル1と異なり、音素/n/は視覚素/N/にのみ対応付けられている。7行目では、音素/k/が、一般視覚素/K/に対応付けられている。8行目以下の音素/s/等についても7行目の音素/k/と同様である。このようなマッピングテーブルを用いると、音素が与えられるとそれに対応する視覚素が分かり、その視覚素のラベルと一致する視覚素ラベルを持つ視覚素モデルをキャラクタモデル記憶部1004から読出すことができる。
<動作>
以上、構成を説明したリップシンクアニメーション作成装置1000は以下のように動作する。図28に示すリップシンクアニメーション作成装置1000の動作は、図24に示すリップシンクアニメーション作成装置810とほぼ同様であり、使用する日本語用3Dキャラクタモデルのみが異なっている。したがって、以下においては、本実施の形態において追加された、一般視覚素モデルを含む3Dキャラクタモデルを作成する際のリップシンクアニメーション作成装置1000の動作についてのみ詳細を述べ、それ以外の動作に関する説明は概略にとどめて、その詳細な説明は繰返さない。
本実施の形態に係るリップシンクアニメーション作成装置1000では、顔画像のアニメーション260の作成のためには、音素−視覚素マッピングテーブルの作成と、一般視覚素モデルを含む3Dキャラクタモデルの作成という準備作業が必要である。以下それらの準備作業について述べる。
−音素−視覚素マッピングテーブルの作成−
日本語の音素と、視覚素とを手作業で対応付け、機械可読な形式の音素−視覚素マッピングテーブルを作成し、音素−視覚素マッピングテーブル記憶部1002に記憶させる。このとき、第2の実施の形態と異なり、標準音素以外の音素を標準視覚素に対応付けなければならないわけではない。任意の音素を標準視覚素以外の視覚素(一般視覚素)に対応付けてもよい。こうして作成された音素−視覚素マッピングテーブルの一例が上記したテーブル7である。
−日本語用3Dキャラクタモデル記憶部1004の作成−
係数算出部1010及びキャラクタモデル合成部1012は、以下のようにして標準視覚素モデルとともに一般視覚素モデルも含む3Dキャラクタモデルを作成する。ここで作成の対象となる一般視覚素モデルは、上記した音素−視覚素マッピングテーブルで音素と対応付けられた視覚素の全てである。
図29を参照して、係数算出部1010は、音素−視覚素マッピングテーブルで音素に対応付けられている任意の音素−視覚素のペアを選択し、キャプチャデータ記憶部1006に記憶されているキャプチャデータのうち、選択されたペアの音素のラベルが付されたキャプチャデータ(これを便宜上「合成対象キャプチャデータ」と呼ぶ。)を読出す。係数算出部1010はさらに、キャプチャデータ記憶部1006に記憶されているキャプチャデータのうち、標準音素に対応するキャプチャデータを全て読出す。そして、既に述べたように、合成対象キャプチャデータを、標準音素に対応するキャプチャデータの線形和で近似するための係数を算出する。そして、この係数群に、合成対象キャプチャデータの音素と対応付けられている視覚素のラベルを付してキャラクタモデル合成部1012に与える。
係数算出部1010は、これと同様の処理を、音素−視覚素マッピングテーブル記憶部1002に記憶されている音素−視覚素マッピングのうち、一般視覚素を含むもの全てについて繰返す。
キャラクタモデル合成部1012は、係数算出部1010から与えられる係数群及び視覚素ラベルに基づき、次のような処理を行なう。すなわち、キャラクタモデル合成部1012は、与えられた視覚素ラベルに対応する一般視覚素モデルを、標準視覚素モデル記憶部1008に記憶された標準視覚素の線形和で表し、このとき、その係数として係数算出部1010から与えられた係数を使用する。この結果、与えられた視覚素ラベルに対応する一般視覚素モデルが、標準視覚素モデルの線形和として表される。
キャラクタモデル合成部1012は、係数算出部1010から与えられる係数群及び視覚素ラベルからなる全ての組に対して上記した処理を繰返し、結果をキャラクタモデル記憶部1004に記憶させる。キャラクタモデル記憶部1004に記憶される一般視覚素モデルには、該当する視覚素ラベルが付されている。
キャラクタモデル合成部1012はまた、標準視覚素モデル記憶部1008に記憶されている標準視覚素モデルも、対応する視覚素ラベルを付してキャラクタモデル記憶部1004に記憶させる。
以上の処理により、日本語用の3Dキャラクタモデルが完成する。
3Dキャラクタモデルが完成すると、後のリップシンクアニメーション作成装置1000の動作は、第2の実施の形態に係るリップシンクアニメーション作成装置810と異なるところがない。ただし、アニメーションのキーフレームに使用される顔画像として、標準視覚素モデルから得られたものだけでなく、一般視覚素モデルから得られたものも使用できる。このため、作成されるリップシンクアニメーションは、第2の実施の形態において得られたものよりもさらに滑らかなものとなる。
[多言語への拡張]
上述の第3の実施の形態の説明においては、リップシンクアニメーション作成装置1000が日本語のアニメーションを作成するための装置であることを前提としていた。しかし、実は上記第3の実施の形態における日本語用3Dキャラクタモデルの作成方法は、英語、中国語等、日本語と異なる言語のアニメーションの作成にも、日本語の標準音素及び標準視覚素モデルを用いて拡張することができる。そして、そのような3Dキャラクタモデルを使用する限り、リップシンクアニメーション作成装置1000においてリップシンクアニメーションを作成する部分の構成の基本的部分はそのまま使用することができる。
例えば、英語のアニメーションを作成する場合における考え方を説明する。使用される言語が英語であるため、図28に示すリップシンクアニメーション作成装置1000において、次のような変更が必要となる。発話者が異なることを前提とすると、音響モデル記憶部170に記憶される音響モデルを英語の話者に対応したものに変更する必要がある。当然、アニメーション作成のための発話記憶部152及びトランスクリプション記憶部154も変わってくる。音素−視覚素マッピングテーブル記憶部1002についても、英語の音素とその音素の発音時の視覚素とに基づいて新たに作成する必要がある。話者が異なることが前提となっているため、キャプチャデータ記憶部1006に記憶されるキャプチャデータも英語の発話者から収録したものとする必要がある。
そしてこの場合、キャラクタモデル記憶部1004に記憶される3Dキャラクタモデルは以下のようにして作成する。図30に、英語のアニメーションを作成するための3Dキャラクタモデルを準備するための方法について説明する。
図30を参照して、この場合には、図29に示すキャプチャデータ記憶部1006には、英語の発話時の発話者の顔の特徴点の位置を表すキャプチャデータを準備する。このキャプチャデータは、頭部の揺動によるグローバルな座標変動を補正により除去した後、無音時のキャプチャデータを基準として、各特徴点が無音時の位置からどの程度移動したかによって表される。このキャプチャデータの中には、日本語の標準音素に相当する音素の発話時のキャプチャデータも含まれるものとする。
係数算出部1010は、音素−視覚素マッピングテーブル記憶部1002に記憶されている英語の音素−視覚素マッピングを参照し、そこに出現している音素−視覚素の組合わせごとに、その音素のラベルが付されているキャプチャデータを、日本語の標準音素に相当する音素の発話時のキャプチャデータの線形和で近似するよう、その係数群を最小自乗基準で決定する。音素−視覚素マッピングテーブルに出現する全ての音素について、この係数群を用いた線形和で一般視覚素モデルを作成し、標準視覚素モデルとともにキャラクタモデル記憶部1004に記憶し、対応する視覚素ラベルを付しておく。
以上のように、英語用の音素−視覚素マッピングテーブルを準備し、英語用3Dキャラクタモデルを準備し、英語用の発話者用の音響モデル記憶部170を準備し、英語の発話記憶部152とそのトランスクリプション記憶部154とを準備すると、後は第3の実施の形態において日本語のリップシンクアニメーションを作成した場合と全く同様に、英語のリップシンクアニメーションを作成することができる。キャラクタモデル記憶部1004に記憶された一般視覚素は全て日本語の標準視覚素の線形和で表されたものであるが、その線形和は英語のキャプチャデータに基づいて求められたものであるため、英語の発話時の顔画像をよく再現することができる。
以上の説明は日本語の標準顔モデルを用いて英語のリップシンクアニメーションを作成する場合に関するものであった。しかし、以上の説明から明らかなように、第3の実施の形態に係るリップシンクアニメーション作成装置1000は、そのような言語の組合せのみに限定的に適用可能なわけではない。任意の言語の組合せに対し、それらの発話時の発話者の顔画像の3次元の位置を表すキャプチャデータが得られれば、全く同様にしてこのリップシンクアニメーション作成装置1000を適用してリップシンクアニメーションを作成できる。
[第4の実施の形態]
上記第1〜第3の実施の形態では、キーフレームの削除、発話終端の補正、発話パワーによるブレンド率の調整、及び頂点速度によるブレンド率の調整を行なっている。これらの処理のうち、発話パワーによるブレンド率の調整と、頂点速度によるブレンド率の調整とは、それぞれ減衰率α及びβを指定することによってアニメーションの口形状の変化の度合いを調整できるという点で画期的な技術である。
このように、減衰率αによるブレンド率の調整においても、減衰率βによるブレンド率の調整においても、各頂点の平均速度の調整が行なわれる場合には、各頂点の形状の変化の割合が一様になるため、安定したアニメーションが得られる。
しかし、アニメーションを作成する場合には、口形状の変化により大きな変化の幅を持たせたり、頂点によってその変化の度合いを異ならせたりする効果を実現することが望ましいことがある。そのような技術が実現できれば、アニメーションの作成者にとっては、少なくともアニメーションの表現の幅を広げることができる可能性が与えられることになる。
以下に、図31を参照して説明する本発明の第4の実施の形態に係るリップシンクアニメーション作成装置1040は、そうした技術を提供するものである。
図31を参照して、リップシンクアニメーション作成装置1040が第3の実施の形態に係るリップシンクアニメーション作成装置1000(図28参照)と異なるのは、図28の減衰率入力部206に代えて、発話パワーによるブレンド率を調整するための減衰率αと、減衰率αに対するブレンド率の変化の感度を調整する感度率αPとを入力するための減衰率入力部1050を含むこと、及び図28の減衰率入力部210に代えて、頂点速度によるブレンド率の調整に用いられる減衰率βと、この減衰率βの値に対するブレンド率の変化の感度を調整するための感度率βPとを入力するための感度率入力部1060を含むことである。感度率αP及びβPは、発話パワーに対する関数及び頂点速度に対する関数の振舞を制御するためのパラメータである。
リップシンクアニメーション作成装置1040がリップシンクアニメーション作成装置1000と異なるのはさらに、図28に示す発話パワーによるブレンド率調整部244に代えて、各キーフレームにおける発話パワーと、減衰率α及びその感度率αPとに基づいて、後述する式によってブレンド率を調整するための、発話パワーによるブレンド率調整部244を含むこと、及び図28に示す頂点速度によるブレンド率調整部250に代えて、減衰率β及びその感度率βPを用い、各キーフレームの頂点速度に基づき後述する式によってブレンド率を調整するための、頂点速度によるブレンド率調整部1062を含むことである。その他の点では、リップシンクアニメーション作成装置1040の各部は図28において同じ符号で示された各部と同一である。
図31に示すリップシンクアニメーション作成装置1040において、頂点速度によるブレンド率調整部1062は、図28の頂点速度によるブレンド率調整部250と異なり、クラスタ化された顔モデルを用いて頂点速度を算出する機能は持たず、キャラクタモデルの各頂点の速度を実際に計算する。しかし、頂点速度によるブレンド率調整部1062を拡張して、クラスタ化された顔モデルを用いるようにすることは、第3の実施の形態の記述から容易に行なえる。
図32は、図31の発話パワーによるブレンド率調整部1052を実現するためのコンピュータプログラムの制御構造をフローチャート形式で示す。図32を参照して、このプログラムは、減衰率α及び減衰感度αPをメモリから読出すステップ1080と、音素シーケンス中の全ての音素について、その継続長にわたる発話パワーの平均を算出するステップ452と、ステップ452で算出された全ての発話パワーの平均値の内で、最大のものMAX(SP)と、最小のものMIN(SP)とを決定するステップ454と、平均発話パワーの最大値を与えるキーフレームを除く全てのキーフレームについて、次の式(3)にしたがい、ブレンド率BR(N)を更新して処理を終了するステップ1082とを含む。BR(N)は、既に述べたとおりN番目のキーフレームのブレンド率を示す。
減衰率αは、既に述べたとおり、最小値を与えるキーフレームのブレンド率をどの程度減衰させるかを表している。それに対し、本実施の形態で新たに導入された減衰感度α
Pは、減衰率αの値を変化させたときのブレンド率の変化の仕方に影響を与える。式(3)から明らかなとおり、α
P=1のときには、ブレンド率調整部1052は図28に示すブレンド率調整部244と全く同じ動作をする。α
Pの値を1より小さく変化させると、減衰率αの値が一定でもブレンド率の変化の度合いは小さくなり、1より大きく変化させるとブレンド率の変化の度合いは大きくなる。
式(3)からわかるように、減衰感度αP=1のときにはこの関数は発話パワーSP(N)に対する線形関数であるが、減衰感度αP≠1のときには指数関数的変化を示し、非線形である。式(3)の小カッコの中の項
は正規化後の発話パワーを表し、その値は0以上かつ1以下である。減衰率αを一定とすると、減衰感度α
Pの値が大きければ正規化後の発話パワーの値は小さく、減衰感度α
Pの値が小さければ正規化後の発話パワーの値は大きくなる。この様子を図33に示す。
図33は、減衰率α=1.0(一定)としたときの、減衰感度αP=0.25,0.5,1,2,及び5としたときの正規化後の発話パワーの変化を示す。図33から分かるように、減衰感度αPの大きさが1のときには発話パワーの大きさは正規化後にも変化しない。減衰感度αPの値を1より小さくすると、正規化後の発話パワーは正規化前よりも大きくなる。また、1より大きくすると、正規化後の発話パワーは正規化前よりも小さくなる。実際に正規化後の発話パワーの大きさが減衰感度αPの大きさによりどのように変化するかについての例を図34に示す。
図34には、16kHz間隔で測定した各時点での発話パワーを、減衰率α=1.0、減衰感度αP=1.0、0.5及び2.0について計算した結果をグラフ形式で示す。
図34を参照して、減衰感度αPの大きさが1より小さければ、正規化後の発話パワーはαP=1の場合よりも早く立上がり、飽和値(正規化後の発話パワー=1)の状態に早く近づくことが分かる。したがって、この場合には、発話パワーが小さいところでは発話パワーの変化に対して口形状の変化率がαP=1の場合より大きくなり、発話パワーが大きいところでは逆に口形状の変化率がそれほど大きくならないことがわかる。
これに対して減衰感度αPの大きさが1より大きければ、正規化後の発話パワーの変化はαP=1の場合よりも遅くなり、飽和値(正規化後の発話パワー=1)の状態に近づくのに必要な発話パワーが大きくなることが分かる。したがって、この場合には、発話パワーが小さいところでは発話パワーの変化に対して口形状の変化率がαP=1の場合より小さくなり、発話パワーが大きいところでは逆に口形状の変化率が大きくなることがわかる。
この結果、式(3)におけるブレンド率の減衰の係数の値は、減衰感度αPの変化に対して図35のような傾向で変化することがわかる。なお図35は、減衰率α=1として計算した。
図35を参照して、減衰感度αPの値が1であれば、式(3)は式(1)と等しい。減衰感度αPの値が1より小さい場合、減衰の係数は発話パワーの小さいところでは減衰感度αP=1の場合より小さく、発話パワーの大きなところでは逆に減衰感度αP=1の場合より大きくなる。この場合、発話パワーの小さな発話シーンでは口形状の変化は非常に小さくなり、発話パワーの大きな発話シーンでは口形状の動きが通常よりも大きく感じられることになる。
式(3)において減衰感度αP=0とすると、ブレンド率の変化に対する発話パワーの寄与はなくなる。すなわち、式(3)において減衰率αはブレンド率に対する単なる定数係数となる。
減衰率αPの値が大きくなれば、発話パワーの小さなところではブレンド率の減衰の係数は減衰感度αP=1の場合より大きく、その変化率も大きくなる。逆に発話パワーの大きなところでは1に近くなってそれほど変化しない。したがってこの場合、発話パワーの小さな発話シーンでは発話者の口形状は比較的はっきりと変化するが、発話パワーの大きな発話シーンでは口形状はほとんど全開となり、発話パワーが多少変化してもそれほど形状は変化しないことになる。
図32のステップ1082において、全てのキーフレームに対して式(3)によるブレンド率の調整を行なうと、発話パワーによるブレンド率調整部1052による処理は終了する。
図36は、図31に示す頂点速度によるブレンド率調整部1062を実現するプログラムのフローチャートである。この処理では、図を明りょうにするために、頂点速度の計算はクラスタの平均速度によるのではなく、各頂点の実速度の平均によって行なうこととしている。
図36を参照して、このプログラムは、減衰率β及び減衰感度βPをメモリから読出すステップ1120と、ステップ1120に続き、処理対象の全キーフレームに対して、その前後のキーフレームとの間での全頂点の平均速度Vを算出するステップ1122と、ステップ1122の処理を受けて、全てのキーフレームについて算出された平均速度Vのうちの最大速度MAX(V)及び最小速度MIN(V)を決定するステップ1124とを含む。
このプログラムはさらに、ステップ1124の後、以下に述べる各処理を各キーフレームに対して行なうプロセス1126を含む。以後の処理は、口形状の変化を、同時調音を考慮して第1〜第3の実施の形態でのスムージングよりもさらに滑らかにするためのものである。第1〜第3の実施の形態での削除率γを調整することにより、口形状の動きを滑らかにすることはできるが、同時に発話に対する口形状の正確さは失われてしまう。以後の処理は、1つのキーフレームだけでなく、前後のキーフレームでの口形状を考慮にいれて口形状の変化をスムーズでかつ発話に対してより正確なものにするための処理である。
そのために、プロセス1126では、最初に処理対象のキーフレームを削除したものと仮定して、その前後のキーフレームから処理対象のキーフレームでの口形状を内挿により求める。この内挿により求めた口形状と、処理対象のキーフレームの口形状とをブレンドすることにより、処理対象のキーフレームにおける新たな口形状を求める。このブレンドのときの、処理対象のキーフレームに割当てられるブレンド重みをrとする。
プロセス1126は、次の式(4)により、ブレンド重みrを算出するステップ1130を含む。
ただし、βは第3の実施の形態で使用した頂点速度によるブレンド率調整における減衰率と同じ意味合いの減衰率、β
Pは減衰率βの減衰感度、V(n)はn番目のキーフレームの頂点の平均速度。
式(4)から、ブレンド重みrは減衰感度βP=1のときには頂点速度V(n)に対する線形関数であるが、βP≠1のときには非線形関数である。
プロセス1126はさらに、ステップ1130に続き、次の式(5)にしたがって処理対象のキーフレーム(n番目のキーフレームとする。)の前後のキーフレーム(n−1番目とn+1番目のキーフレーム)から内挿した、処理対象のキーフレームにおける仮想的な口形状Sn’を求めるステップ1132を含む。
ただし、t
n,t
n−1及びt
n+1はそれぞれ、n番目のキーフレーム、n−1番目のキーフレーム、及びn+1番目のキーフレームの時刻であり、S
n−1及びS
n+1はそれぞれ、n−1番目及びn+1番目のキーフレームにおける口形状。
プロセス1126はさらに、ステップ1132に続き、ステップ1132で仮想的に内挿によって求められた口形状Sn’、ステップ1130で求められたブレンド重みr、処理対象のキーフレームについて算出されている口形状Sn、及び処理対象のキーフレームに対して割当てられているブレンド率BR(n)とを用い、次の式(6)によって処理対象のキーフレームにおける口形状^Snを求めるためのブレンド率を求めるステップ1134とを含む。
式(6)によれば、処理対象のキーフレームに対して予め求められている口形状Snにブレンド率BR(n)を乗じたものと、前後のキーフレームから内挿により仮想的に求められた口形状Sn’との間で、式(4)により求められたブレンド重みrでブレンドを行なう。その結果、新たなキーフレーム^Snが得られる。式(6)のSn’に、式(5)を代入することで、新たなキーフレーム^SnをキーフレームS
n−1,S
n及びS
n+1の加重和で算出するためのブレンド率が計算できる。この新たなブレンド率が減衰感度β
P=1のときには頂点速度V(n)の頂点速度V(n)の線形関数であり、β
P≠1のときには非線形関数であることはいうまでもない。
式(5)によって、時刻tn−1及びtn+1におけるキーフレームSn−1とSn+1との間で、キーフレームSnの時刻tnにおける仮想的な口形状Sn’が求められることは、図37から容易に理解可能である。
この第4の実施の形態に係るリップシンクアニメーション作成装置1040の動作は、第3の実施の形態のリップシンクアニメーション作成装置1000において頂点速度によるブレンド率の算出でクラスタ化した顔モデルを用いない点、発話パワーによるブレンド率調整部1052及び頂点速度によるブレンド率調整部1062において、リップシンクアニメーション作成装置1000で用いた式ではなく、上記した式(3)及び式(4)〜式(6)を用いる点において異なる。その他の点ではリップシンクアニメーション作成装置1040はリップシンクアニメーション作成装置1000と同様に動作する。したがってその詳細な説明は繰返さない。
この第4の実施の形態では減衰感度αP及びβPを導入した。これら減衰感度を使用する式(3)及び式(4)〜式(6)によって、キーフレームの口形状を算出するためのブレンド率を算出する。この結果、口形状の変化は単なる線形的な変化ではなくなる。例えば発話パワーの小さな部分では口形状がそれほど変わらず、発話パワーの大きな部分で口形状が大きく変化するようなアニメーションが得られる。それとは逆に、発話パワーの小さな部分では比較的大きく口形状が変化し、発話パワーの大きな部分では口形状は飽和してそれほど大きく変化しないようなアニメーションも得られる。したがって、アニメーションの作成者が、自分の好みと、アニメーションの要求仕様とにあわせて微妙にアニメーションの登場人物の口形状を変化させることが容易に行なえる。しかもそのためには、パラメータを変化させるだけでよい。様々な要求仕様と作成者の好みとにあわせたアニメーションを容易に作成することが可能になる。
[第5の実施の形態]
上記した第1〜第4の実施の形態では、各処理を実行するか否かの指定は可能ではあるものの、キーフレームの削除、発話終端補正、発話パワーによるブレンド率の調整、及び頂点速度によるブレンド率の調整を、この順序で行なっている。しかし本発明はそのような実施の形態に限定されるわけではない。特にコンピュータを用いたソフトウェアによって本発明のリップシンクアニメーション作成装置を実現する場合には、上記した処理はそれぞれ独立したプログラムとして作成されるのが通常である。また、これら処理の実行順序を入替えても特に問題は生じない。第5の実施の形態に係るリップシンクアニメーション作成装置は、操作者が最初に処理の順序を指定することにより、指定された順番で上記したキーフレームの削除、発話終端補正、発話パワーによるブレンド率の調整、及び頂点速度によるブレンド率の調整を行なう。処理の一部を実行しない指定も可能である。
図38に、この実施の形態に係るリップシンクアニメーション装置のうち、上記した処理を実現するためのメインプログラムの制御構造をフローチャート形式で示す。図38を参照して、このプログラムは、上記した4つの処理を画面に表示し、その処理順序の指定と各処理で必要とされるパラメータの入力とを受けて、メモリ中の配列に各処理の識別子とパラメータとを記憶するステップ1160を含む。この処理では、予め4つのボックスを表示し、各ボックスについてどの処理を実行するかを選択させればよい。Graphical User Interfaceを用い、例えば各処理を示すアイコンを各ボックスにドロップすることで処理を指定するようにしてもよい。
このプログラムはさらに、ステップ1160の後、以下の繰返し処理を制御するための変数iに0を代入するステップ1162と、ステップ1162の後、変数iに1を加算するステップ1164と、変数iの値が最大値MAXを超えたか否かを判定し、変数iの値が最大値MAXを超えたときには処理を終了させるステップ1166とを含む。最大値MAXは、本実施の形態の場合には4であるが、2又は3であってもよい。また、上記した処理以外の処理をアニメーションに対して実行する場合には、最大値MAXの値は5以上でもよい。
このプログラムはさらに、ステップ1166で変数iの値が最大値MAXより大きくないと判定されたことに応答して実行され、i番目の処理の識別子が配列に記憶されているか否かを判定し判定結果に応じて制御の流れを分岐させるステップ1168と、ステップ1168においてi番目の処理の識別子が記憶されていると判定されたことに応答して実行され、i番目の処理の識別子により特定されるプログラムの入力ファイル及び出力ファイルを、i番目の入力ファイル及び出力ファイルとして予め準備されているファイル名に指定しなおすステップ1170と、ステップ1170で指定しなおされた入力ファイルから継続長付視覚素データを読出してi番目の処理のプログラムで処理し、ステップ1170で指定しなおされた出力ファイルに出力して制御をステップ1164に戻すステップと、ステップ1168でi番目の処理の識別子が記憶されていないと判定されたことに応答して実行され、i番目の処理で実際に使用される予定だった入力ファイルの内容を実際に使用される予定だった出力ファイルにコピーして制御をステップ1164に戻すステップ1174とを含む。このプログラムでは、i番目の処理の出力ファイルが、i+1番目の処理の入力ファイルとして使用される。
この第5の実施の形態に係るリップシンクアニメーション作成装置は以下のように動作する。最初に、ステップ1160でどの処理をどのような順序で実行するかに関する指示を受け、メモリ内の配列に各プログラムの識別子として記憶する。同時に、キーフレーム削除処理における削除率γ、ブレンド率調整のための減衰率α及びβ、並びに減衰感度αP及びβPのうち、指定された処理で必要とされるものの入力を受け、各プログラムに関連付けてメモリに格納する。
続いて、ステップ1162で変数iに0を代入し、ステップ1164で変数iに1を加算する(i=1)。ステップ1166の判定結果はNOとなり、最初に指定された処理に対応するプログラムが実行される。この際、メインプログラムは、プログラム内で指定されている入力ファイルを、継続長付視覚素シーケンスが格納されているファイルに指定し直し、プログラム内で指定されている出力ファイルを、1番目の処理に対応するプログラムの出力ファイルとして実際に準備されているものに指定し直す。1番目の処理に対応するプログラムは、メインプログラムにより指定し直された入力ファイルから継続長付視覚素シーケンスを読出して処理する。さらにこのプログラムは、処理後の継続長付視覚素シーケンスをメインプログラムにより指定し直された出力ファイルに出力する。
次に変数iの値に1を加算する(i=2)。ステップ1166での判定結果はNOであり、ステップ1168の処理が実行される。仮に2番目の処理が指定されていない場合、ステップ1174で、2番目の処理の入力ファイルとして準備されていたファイル(すなわち1番目の処理の実際の出力ファイル)の内容を、2番目の処理の出力ファイルとして準備されていたファイル(すなわち3番目の処理の実際の入力ファイル)にコピーする。この後、制御はステップ1164に進む。
このようにして、変数iの値が定数MAX=4より大きくなるまでプログラムの実行又はファイルのコピーが繰返され、最終的に必要な処理を全て受けた継続長付シーケンスファイルが、4番目の処理の出力ファイルとして得られる。この出力ファイルからアニメーションを作成する処理は、第1〜第4の実施の形態における処理と同様であるので、ここではその詳細は繰返さない。
以上のようにこの実施の形態に係るリップシンクアニメーション作成装置1040では、キーフレーム削除処理、発話終端補正処理、発話パワーによるブレンド率調整処理、及び頂点速度によるブレンド率調整処理のうち、所望の処理に対応するプログラムを、所望の順番で実行することができる。このようにして種々の処理をパラメータ、実行される処理の選択、及び処理の実行順序を変えながら行なうことで、口形状の変化態様が微妙に異なる多くの継続長付視覚素シーケンスを作成できる。それらの中で、要求使用に最も合致したアニメーションを生成することができたときのパラメータ、実行される処理の選択、及び処理の実行順序を採用することで、要求使用に合致し、しかも全体として一貫した印象のリップシンクアニメーションを作成することが可能になる。
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。