以下、本発明について、実施の形態に基づいて説明する。以下の説明では、基本となる顔画像を6種類使用しているが、顔画像の数はこれには限定されない。6種類よりも少なくてもよいし、6種類よりも多くてもよい。
[第1の実施の形態]
<構成>
図1に、本発明の第1の実施の形態に係るアニメーション作成装置によるアニメーション作成過程30の概略を示す。図1を参照して、アニメーション作成過程30においては、話者40が台本44に基づき台詞を発話すると、その音声信号42に対し、音声認識装置による音素セグメンテーション(発話から、発話を構成する音素列を生成すること)が行なわれる。
予め、主要な音素については、その音素を発音するときの口の形状を含む顔画像60〜68が準備されており、音声認識の結果得られる各音素50〜58に対し、これら顔画像を割当ててアニメーション化する。
なお、個々の音素に対して発話画像を一つずつ割当てても滑らかな画像が得られないため、本実施の形態では、後述するように、主要な顔画像として「あ(/a/)」「い(/i/)」「う(/u/)」「え(/e/)」「お(/o/)」という5つの音素に対する5つの顔画像、及び無表情の顔画像の、合計6つの顔画像を準備する。「あ」〜「お」の5つの音素はそれぞれ対応の顔画像に割当て、残りの音素についてはそれぞれ上記した6つの顔画像のいずれかに割当てる。これを以下、音素から顔画像へのマッピングと呼ぶ。
さらに、音素ごとに、このようにマッピングされた顔画像を割当ててそれらを単純につないでアニメーションを作成すると、画像の動きが過大になって、いわゆる「うるさい」アニメーションとなる。そのため、本実施の形態では、音素の継続時間長及びそのパワーによって、各画像の「強さ」を調整し、調整後の画像を用い、音素間の遷移過程での顔画像を補間により生成する。また、所定のしきい値より小さな継続時間長又はパワーしか持たない音素については、あえてその音素に対応する画像を挿入せず、その直前の音素の画像に統合してしまう。こうすることで、滑らかに変化する、自然なアニメーションを音声にあわせて生成することができる。
図2に、本実施の形態に係るアニメーション生成システム80の概略の機能的構成を示す。このアニメーション生成システム80は、予め複数の書起しテキストを準備しておき、それらのいずれかを話者に選択させて発話させ、その発話音声に合致して変化する顔画像のアニメーションを、予め準備した6つの顔画像から補間により生成するものである。
図2を参照して、アニメーション生成システム80は、発話者が書起しテキストを選択する際に使用するテキスト選択インターフェイス90と、発話者の音声を音声信号に変換するマイクロフォン92と、予め複数種類のテキストを記憶しておき、話者にそのうちの一つをテキスト選択インターフェイス90を用いて選択させた上で、マイクロフォン92の出力する音声信号を録音しデジタル化した音声データファイルを作成するための入力指示ユニット94と、入力指示ユニット94から与えられる音声データファイルに対する音素セグメンテーションを、入力指示ユニット94から与えられる対応する書起しテキストを用いて行ない、その結果と、入力指示ユニット94からの音声データファイルとに基づき、アニメーションのキーフレームを規定するキーフレームデータを作成するためのキーフレームデータ作成ユニット96とを含む。
アニメーション生成システム80はさらに、入力指示ユニット94の出力する音声データファイルと、キーフレームデータ作成ユニット96により出力されるキーフレームデータとを用い、音声データファイルの音声に同期して口形状が変化する顔画像のアニメーションを作成し、音声とともに出力するためのアニメーション再生ユニット98と、いずれもアニメーション再生ユニット98に接続された、アニメーションを表示するためのモニタ102及び音声を再生するためのスピーカ100とを含む。
入力指示ユニット94は、予め複数種類の書起しテキストを記憶しておくためのテキスト記憶部110と、テキスト記憶部110に記憶されたテキストをテキスト選択インターフェイス90により話者40に提示し、いずれか一つを選択させてそのテキストをキーフレームデータ作成ユニット96に対し与えるとともに、テキスト選択インターフェイス90を用いて、話者に対し当該テキストを発話するように指示を与えるためのテキスト選択部112と、話者がテキスト選択部112の指示に対して発話するテキストの音声についてマイクロフォン92から出力される音声信号を、所定のフレーム長及びフレームシフト長でフレーム化し音声データとして保存し、キーフレームデータ作成ユニット96及びアニメーション再生ユニット98に与えるための音声収録部114とを含む。
キーフレームデータ作成ユニット96は、テキスト選択部112から与えられるテキストに基づいて音声収録部114からの音声データに対する音素セグメンテーションを行ない、音素列と、その継続時間長とを含む音素列データを出力するための音声認識装置120と、日本語を構成する全ての音素を、前述した6つの顔画像の識別子にマッピングするマッピングテーブルを記憶したマッピングテーブル記憶部130と、音声認識装置120から出力される音素列ファイル、テキスト選択部112から与えられるテキスト、及び音声収録部114から与えられる音声データに基づき、アニメーションのうち主要時点でのフレームの顔画像を、前述した6つの顔画像から作成するためのパラメータを生成してキーフレームデータとして出力するためのキーフレームデータ作成部136とを含む。
音声認識装置120は、音素セグメンテーションをし、音素列と、それぞれの継続時間長が分かる時間データとを出力できるものであればどのようなものでもよい。発話内容が予め分かっているので、音声認識装置120は音声データを確実に音素列に変換できる。
図5に、音声認識装置120の出力する音素列ファイル160の構成例を示す。図5を参照して、音素列ファイル160は、音声認識の結果得られた音素列と、各音素列の継続時間長が分かる時間情報との組を複数個含んでいる。図5において、継続時間長はミリ秒単位で示してある。
アニメーション再生ユニット98は、5つの音素(/a/,/i/,/u/,/e/,/o/)に対応する顔画像と、無表情の顔画像との6つの顔画像を、ワイヤフレームモデルとして保持する顔データファイルを記憶した顔データファイル記憶部132と、キーフレームデータ作成部136によって作成されたキーフレームにおける顔画像を作成するためのパラメータを用い、アニメーションを構成する所定時点のフレームの顔画像を顔データファイル記憶部132に記憶された6つの顔画像から作成するために使用される補間関数を記憶するための補間関数記憶部134と、キーフレームデータ作成部136から与えられるキーフレームデータと、顔データファイル記憶部132に記憶された顔データファイルと、補間関数記憶部134に記憶された補間関数とを用い、アニメーションでの所定の時点でのフレームの顔画像を補間により生成するためのアニメーション生成部138とを含む。
顔データファイル記憶部132に記憶される顔画像の例を図3に示す。図3(A)〜(E)は、それぞれ音素/a/,/i/,/u/,/e/,/o/に対応する顔画像であり、図3(F)は、無表情に対応する顔画像である。本明細書では、これら画像をそれぞれ顔画像/A/,/I/,/U/,/E/,/O/,及び/φ/と表記することにする。
なお、本実施の形態では、顔画像/A/,/I/,/U/,/E/,/O/は、いずれも顔画像/φ/を基準とし、各特徴点が、顔画像の定義されている3次元空間において、顔画像/φ/の対応する特徴点からどの程度移動しているかを示す3次元ベクトル情報によって定義されている。従って、例えば顔画像/A/と顔画像/φ/との間で、その中間の顔画像を定義することもできる。本実施の形態では、特定の顔画像と顔画像/φ/との間の中間の顔画像を定義するために、「ブレンド率」という概念を導入する。ブレンド率とは、特定の顔画像を100%、顔画像/φ/を0%として、顔画像/φ/から特定の顔画像に至るまでの特徴点の移動量の割合で中間の顔画像を表すものである。従って、顔画像/A/,/I/,/U/,/E/,/O/をそのまま音素に割当てた場合、そのブレンド率はいずれも100%となる。ブレンド率50%の顔画像/A/とは、顔画像/φ/からの特徴点の移動量の割合が、顔画像/A/の特徴点の移動量の50%となっているような顔画像のことをいう。顔画像/φ/での位置を始点とするベクトルで顔画像の特徴点の移動量を表せば、ブレンド率B%の顔画像とは、各特徴点を表すベクトルが、方向はブレンド率100%の顔画像のベクトルと等しく、長さがブレンド率B%に相当するだけ縮小されたものとなっている顔画像に相当する。
二つの顔画像の間の補間については後述する。
図4に、マッピングテーブル記憶部130に記憶されたマッピングテーブルの例の一部を示す。図4を参照して、本実施の形態では、マッピングテーブル記憶部130は、音素/a/を顔画像/A/に、音素/b/を顔画像/φ/に、音素/d/を顔画像/U/に、音素/e/を顔画像/E/に、それぞれ対応付けている。マッピングテーブルでは、図3に示す顔画像/A/,/I/,/U/,/E/,/O/のように、予めある音素に対して準備された顔画像には、その音素を必ず対応付けるようにする。さもないと得られる顔の動画像が発話内容とちぐはぐになってしまう。また/b/、/m/等、唇を閉じるような音素は無表情の顔画像/φ/に対応付ける。それ以外の音素は、前述した6つの顔画像のうち、口の形状が最も近いと思われるものに適宜割当てるようにする。
再び図2を参照して、アニメーション再生ユニット98はさらに、音声収録部114の出力する音声データを格納した音声ファイルを記憶するための音声ファイル記憶部140と、アニメーション生成部138から順次与えられる顔画像と、音声ファイル記憶部140に記憶された音声ファイルからの音声とを、互いに同期させてモニタ102及びスピーカ100にそれぞれ与えるための出力部142と、入力指示ユニット94のテキスト選択部112及び音声収録部114、キーフレームデータ作成ユニット96のキーフレームデータ作成部136及び音声認識装置120、並びにアニメーション再生ユニット98のアニメーション生成部138及び出力部142を所定のシーケンスで動作させ、それらの協働によってアニメーション生成システムを実現するようこれらを制御するためのシーケンス制御部144とを含む。
図6に、図2のキーフレームデータ作成部136の構成の詳細を示す。図6を参照して、キーフレームデータ作成部136は、音声認識装置120からの音素列データ内の各音素に対し、マッピングテーブル記憶部130を参照して顔画像をマッピングし、マッピングされた顔画像の識別子と、ブレンド率「100%」とを付して出力するためのマッピング処理部180と、マッピング処理部180により出力された、継続時間長、対応顔画像の識別子及びそのブレンド率が付された音素列の各ブレンド率を、各音素の継続時間長に基づいて調整するための、継続時間長によるブレンド率調整部182と、継続時間長によるブレンド率調整部182の出力する、継続時間長、対応顔画像及びその継続時間長により調整されたブレンド率が付された音素列のブレンド率を、各音素の継続期間におけるパワーの大きさに基づいて調整するための、パワーによるブレンド率調整部184とを含む。パワーによるブレンド率調整部184の出力は、各音素に、その継続時間長と、対応顔画像と、継続時間長及びパワーにより調整されたブレンド率とが付された音素列となる。この音素列がキーフレームデータである。なお、本実施の形態では、キーフレームとは、各音素の継続期間の先頭時刻でフレームが作成される場合のそのフレームのことをいう。
図7に、アニメーション生成部138のより詳細なブロック図を示す。図7を参照して、アニメーション生成部138は、二つのキーフレームにおける、それぞれ所定のブレンド率が割当てられた顔画像と、それら二つのキーフレームに対応する時刻と、その二つのキーフレームの間で、アニメーションを生成すべき時刻(ここでは便宜のため、「生成時刻」と呼ぶ。生成時刻は、二つのキーフレームの時刻を基準とする相対時刻で表される。)とが与えられると、その生成時刻の顔画像を、二つのキーフレームの顔画像から補間関数記憶部134に記憶された補間関数を用いた補間処理により生成して出力部142に対して出力するための補間処理部204と、所定の生成時刻が決まると、その生成時刻をはさむ二つのキーフレームを定め、それらのキーフレームにおける顔画像のデータ及びブレンド率、ならびにそれら二つのキーフレームの時刻の間における生成時刻の相対的位置を示す情報を補間処理部204に与え、生成時刻における顔画像を作成させるとともに、補間処理部204による顔画像の生成が終わると、そのときの時刻を次の生成時刻として次の顔画像を作成する処理を繰返す機能を持つアニメーション生成制御部200と、アニメーション生成制御部200が時刻を定めるために参照するタイマ202とを含む。この補間処理とアニメーションの生成処理とについては後述する。
図8から図14を参照して、本実施の形態に係るキーフレームデータ作成部136及びアニメーション生成部138による顔のアニメーションの作成処理についてより詳細に説明する。
例えば図5に示すような音素列ファイル160が与えられたとする。この場合、図6に示すマッピング処理部180の出力を図示すると図8のようになる。図8を参照して、時間軸上で、各音素/a/,/i/,/u/,/e/,/o/の発話期間がそれぞれ継続時間300、300、100、30及び250(いずれもミリ秒)で割当てられる。各期間の先頭時刻がキーフレームとなる。各キーフレームでのブレンド率は、いずれも100%である。
図8に示されるような音素列が継続時間長によるブレンド率調整部182により処理される途中の結果の一例を図9に示す。図9を参照して、まず、各音素のうちで、所定のしきい値よりも小さな継続時間長しか持たない音素については、その直前の音素の期間に統合してしまう。図8に示す例では音素/e/の継続時間長が30ミリ秒であり、しきい値が50ミリ秒であったものとすると、音素/e/は削除され、その継続時間長はその直前の音素/u/に統合される。従って図9に示されるように、音素列は/a/,/i/,/u/,/o/となり、その継続時間長はそれぞれ300、300、130、及び250(ミリ秒)となる。音素が一つ削除されるので、キーフレームの数も5つから4つに減少する。また、以下の説明では、これらのキーフレームに対応する時刻をそれぞれT0,T1,T2及びT3とし、最後の音素/o/の直後のキーフレームの時刻をT4とする。なお、以下、一般的に、k番目の音素の開始時刻Tkにより規定されるキーフレームを「キーフレームTk」と呼ぶ。
継続時間長によるブレンド率調整部182は、さらに、各キーフレームに割当てられたブレンド率を、その継続時間長に応じて調整する。具体的には、継続時間長によるブレンド率調整部182は、音素列の中の継続時間長の最大値LMAXを探し出し、各音素の継続時間長のブレンド率を次の式(1)により調整する。
ただし、B(n)はn番目の音素のブレンド率を、L(n)はn番目の音素の継続時間長を、それぞれ表す。C
1は所定の定数で、例えば短い継続時間長の音素を削除したときに使用されるしきい値と同程度の大きさに選ばれる。こうしてブレンド率が継続時間長により調整された音素列の、時間軸上での配置とそのブレンド率とを図10に模式的に示す。図10において、例えば、調整後の音素/a/,/i/,/u/,/o/のブレンド率はそれぞれa、a、b、及びc(%)である。
パワーによるブレンド率調整部184は、継続時間長によるブレンド率調整部182と同様にして、各音素のブレンド率を、各音素の継続期間における音声のパワーによって調整する。具体的には、まず、所定のしきい値以下のパワーしかない音素については削除し、その継続期間を直前の音素の継続期間に統合する。こうして得られた各継続期間の先頭がキーフレームである。各キーフレームには、ブレンド率が割当てられている。パワーによるブレンド率調整部184はこのブレンド率(n番目の音素のブレンド率を前と同様B(n)とする。)を以下の式(2)により調整する。
ただしP
MAXは全体でのパワーの最大値であり、P(n)はn番目の音素の継続期間のパワーであり、C
2は所定のしきい値である。このしきい値も、前述した音素の削除のときに使用されたしきい値と同程度の大きさに選ばれる。
こうして最終的に得られた音素列と、その継続時間長と、各キーフレームにおける調整後のブレンド率とを模式的に示したものが図11である。図11を参照して、キーフレームT0,T1,T2,T3の音素はそれぞれ/a/,/i/,/u/,/o/であり、ブレンド率はそれぞれa’、a”、b’及びc’(ただしa’≦a、a”≦a、b’≦b及びc’≦c)であり、継続時間長はそれぞれ300、300、130及び250(ミリ秒)である。
このようにしてキーフレームデータが作成される。
次に、図7に示す補間処理部204による補間処理について説明する。補間関数記憶部134に記憶される補間関数としては、様々なものが考えられるが、本実施の形態では計算処理の容易さと高速さとに重点をおき、線形補間を与えるものを使用する。線形補間の概念について図12を参照して説明する。
図12を参照して、時間軸を横軸、各キーフレームの時間T0,T1,T2,T3…におけるブレンド率を縦軸のグラフで表すものとする。本実施の形態での補間関数は、線分220,222,224及び226で表されるように、各キーフレームでのブレンド率と、隣接するキーフレームの時刻でのブレンド率「0」の点とを結んだ線分に沿って、各時間でのブレンド率を線形補間する関数である。すなわち、一方における率が100%、他方における率が0%となるように線形補間を行なう関数である。
例えば、時刻T0と時刻T1との中間の時刻tが生成時刻であるものとする。キーフレームT0及びT1での音素はそれぞれ/a/、/i/である。各キーフレームでのブレンド率はパワーによるブレンド率調整部184により算出されている。時刻T0でのブレンド率a’と、時刻T1でのブレンド率「0」の点とを結んだ線分220によって、時刻tにおけるキーフレームT0のブレンド率αが線形補間される。同様に、時刻T0でのブレンド率「0」の点と、時刻T1でのブレンド率a”の点とを結んだ線分222に沿って、時刻tにおけるキーフレームT1のブレンド率βが算出される。
時刻T0におけるキーフレームT0のブレンド率をB(T0)、時刻T1におけるキーフレームT1のブレンド率をB(T1)、補間により求められた、時刻tにおけるキーフレームT0、T1のブレンド率をそれぞれα及びβとする。すると、α及びβは次の式(3)により求められる。
本実施の形態では、このようにして算出された二つのブレンド率(例えばα及びβ)を用い、図13に示されるようにして時刻tにおける顔画像を作成する。
今、キーフレームT0での顔画像の各特徴点の、顔画像/φ/での対応特徴点を基準とした移動量を要素とする3次元ベクトルをX(T0)、同様にキーフレームT1での3次元ベクトルをX(T1)とする。すると、T0≦t≦T1における顔画像の各特徴点の、顔画像/φ/の対応特徴点を基準とした移動量を要素とする3次元ベクトルX(t)は、次の式(4)で表されるベクトル加重和で算出される。
補間処理部204は、こうした計算を顔画像の各特徴点に対して実行する。後述するようにこうした演算はグラフィックプロセッサユニット(GPU)が得意とするところである。従ってアニメーション生成システム80は、GPUを備えていることが望ましい。
アニメーション生成制御部200によるアニメーションの生成制御について説明する。図14を参照して、アニメーション生成制御部200が、最初のキーフレームの時刻T0に等しい時刻tからアニメーションの作成を開始するものとする。すなわち、時刻t0(=T0)においてアニメーション生成制御部200は、補間処理部204に対して顔画像の生成の指示240を与える。すなわち、生成時刻t=t0である。
この場合には、まずTk−1≦t≦Tkとなるような整数kを探す。ここではt=t0=T0であるから、k=1となる。補間処理部204は、時刻T0における音素/a/の顔画像/A/を構成する各特徴点の3次元ベクトルX(T0)に、このときのブレンド率a’(図11参照)を乗算する。さらに、時刻T1における音素/i/の顔画像/I/を構成する各特徴点の3次元ベクトルX(T1)に、このときのブレンド率a”(図11参照)を乗算する。補間処理部204は次に式(3)を用いてα、βを算出する。ここではt=T0なので、α=B(T0)、β=0である。これらの結果を用い、式(4)によって時刻tにおける顔画像242を生成し出力する。
この生成処理に時間s1を要したものとする。顔画像242を生成し出力すると補間処理部204は、アニメーション生成制御部200に対して処理を終了したことを示す完了通知244を与える。この時刻t2を新たな生成時刻tとする。
アニメーション生成制御部200は、新たな生成時刻t=t2において完了通知244を受けたことに応答し、この生成時刻tをはさむ二つのキーフレーム、図14に示す例では時刻T0及びT1におけるキーフレームを特定し、これら二つのキーフレームにおける顔画像/A/及び/I/と、二つの時刻T0及びT1と、時間T0〜T1の中における時刻t=t2の相対時間とを補間処理部204に与え、顔画像の生成の指示246を与える。
補間処理部204は、この指示に応答し、時間s2をかけて生成時刻t=t2における顔画像248を生成し、出力する。このとき補間処理部204は、アニメーション生成制御部200に対して完了通知250を与える。このときの時刻t3を新たな生成時刻tとする。
すると、アニメーション生成制御部200は、この新たな生成時刻t=t3に対し、直前の生成時刻t2で行なったものと同様の処理を行ない、顔画像の生成指示252を補間処理部204に対し与える。以下同様に、時間s3後に顔画像254が出力され、完了通知256が時刻t3でアニメーション生成制御部200に与えられ、これに応答してアニメーション生成制御部200から時刻t3における顔画像生成の指示258が補間処理部204に与えられる。以下同様である。
すなわち本実施の形態では、補間処理部204が常にその能力をフルに発揮するように、アニメーション生成制御部200がアニメーション生成のためのタイミングを制御する。
<動作>
図2〜図14を参照して、上記したアニメーション生成システム80は以下のように動作する。なお、以下の各部の動作は、図2に示すシーケンス制御部144による制御によって所定のシーケンスで行なわれるが、説明を分かりやすくするため、以下ではシーケンス制御部144の制御については言及しない。
予め、アニメーションのキャラクタの顔画像を、上記した6種類の音素について準備し、顔データファイル記憶部132に記憶させておく。各音素に対して顔画像をマッピングするマッピングテーブルも予め準備し、マッピングテーブル記憶部130に記憶させておく。補間関数を実現するプログラムも予め準備し、補間関数記憶部134に記憶させておく。さらに、ユーザ発話のための書起しテキストも予め何種類か準備し、テキスト記憶部110に記憶させておく。
テキスト選択部112は、テキスト記憶部110に記憶されている書起しテキストを全て読出し、テキスト選択インターフェイス90に表示して、いずれかを選択するように促すメッセージを表示する。
ユーザがいずれかのテキストを選択すると、テキスト選択部112はそのテキストをキーフレームデータ作成部136に与えるとともに、テキスト選択インターフェイス90上に、そのテキストを発話することを促すメッセージを表示する。同時にテキスト選択部112は、音声収録部114を起動し、マイクロフォン92からの音声信号の収録を開始する。
音声収録部114は、入力される音声を所定フレーム長、所定シフト長でフレーム化した音声データを作成し、ハードディスク内に音声データファイルとして記憶する。
音声信号の収録が終了すると、テキスト選択部112及び音声収録部114は、それぞれ、書起しテキストと音声データファイルとを、キーフレームデータ作成部136及び音声認識装置120の各々に与える。
キーフレームデータ作成部136及び音声認識装置120は、このデータに対し以下のように動作する。まず音声認識装置120が、音声収録部114から与えられた音声データファイルに対し、書起しデータを参照して音素セグメンテーションを行ない、図5に示すような音素列ファイル160(継続時間長を特定できる時間情報を含む)を作成する。音声認識装置120は、この音素列ファイル160のデータをキーフレームデータ作成部136のマッピング処理部180に与える。
図6を参照して、キーフレームデータ作成部136のマッピング処理部180は、音素列ファイル160内の音素の各々に対し、マッピングテーブル記憶部130を参照してそれぞれ顔画像の識別子を付与し、継続時間長によるブレンド率調整部182に与える。
継続時間長によるブレンド率調整部182は、各音素の継続時間長としきい値とを比較し、しきい値未満の継続時間長しか持たない音素を削除し、その継続期間を直前の音素の継続期間に統合する。継続時間長によるブレンド率調整部182はさらに、各音素のブレンド率を、音素継続時間長の最大値と、その音素の継続時間長とに基づき、式(1)に従って調整する。継続時間長によるブレンド率調整部182は、このようにして作成された、継続時間長、顔画像の識別子、及びブレンド率の付された音素列をパワーによるブレンド率調整部184に与える。
パワーによるブレンド率調整部184は、継続時間長によるブレンド率調整部182から与えられた音素列の各音素のうち、その期間中のパワーの値が所定のしきい値未満のものがあれば、その音素を削除する。そしてその音素の継続期間を直前の音素の継続期間と統合する。
パワーによるブレンド率調整部184はさらに、各音素のブレンド率を、パワーの最大値と、各音素のパワーとに基づき、式(2)に従って調整する。パワーによるブレンド率調整部184は、このようにしてブレンド率が調整された音素列からなるキーフレームデータを図7に示すアニメーション生成制御部200に与える。
図7を参照して、アニメーション生成制御部200は、まず、与えられたキーフレームデータのうちの最初のキーフレーム(先頭の音素の開始時刻)の時刻を生成時刻tとし、Tk−1≦t<Tkとなる整数kを探す。この場合t=T0=Tk−1なので、k=1となる。アニメーション生成制御部200は、キーフレームT0及びT1に対応する顔画像のデータを顔データファイル記憶部132から読出し、時刻T0、T1、生成時刻t、及びキーフレームT0及びT1に対応する顔画像のデータを補間処理部204に与える。
補間処理部204は、与えられた時刻T0、T1と、それらキーフレームT0、T1のブレンド率と、生成時刻tの値とに基づき、キーフレームT0及びT1のブレンド率に対する、生成時刻tにおけるブレンド率α、βを、補間関数記憶部134に記憶された補間関数(式(3))を用いてそれぞれ算出する。補間処理部204はさらに、算出されたブレンド率α、βと、キーフレームT0及びT1における顔画像データの各特徴点ベクトルX(T0)、X(T1)とを用い、前述した式(4)を用いて生成時刻tにおける顔画像の各特徴点ベクトルx(t)を算出し、出力部142に与える。出力部142はこの画像をディスプレイ102上に表示する。出力部142は、この顔画像の表示と同期して音声ファイル記憶部140に記憶された音声ファイルの再生を開始する。
アニメーション生成部138は、生成時刻tにおける顔画像の算出が終了すると、処理の終了を示す信号をアニメーション生成制御部200に与える。アニメーション生成制御部200は、この信号を受信すると、そのときの時刻をタイマ202を参照して定める。アニメーション生成制御部200は、この時刻を新たな生成時刻tに設定し、Tk−1≦t<Tkとなる整数kを定める。そして、時刻Tk−1、Tk、生成時刻t、キーフレームTk−1及びTkのデータを補間処理部204に与え、時刻tにおける顔画像の生成を実行させる。
補間処理部204は、前のサイクルと同様にして、与えられた時刻Tk−1、Tkと、それらのキーフレームTk−1、Tkのブレンド率と、生成時刻tの値とに基づき、キーフレームTk−1及びTkのブレンド率に対する、生成時刻tにおけるブレンド率α、βを補間関数記憶部134に記憶された補間関数(式(3))を用いてそれぞれ算出する。補間処理部204はさらに、算出されたブレンド率α、βと、キーフレームTk−1及びTkにおける顔画像データの各特徴点ベクトルX(Tk−1)、X(Tk)とを用い、式(4)を用いて生成時刻tにおける顔画像の各特徴点ベクトルx(t)を算出し、出力部142に与える。出力部142はこの画像をディスプレイ102上に表示する。音声ファイル記憶部140の再生は、画像の出力と同期して継続される。
補間処理部204は、生成時刻tにおける顔画像の算出が終了すると、それを示す信号をアニメーション生成制御部200に与える。アニメーション生成制御部200は、この信号を受信すると、そのときの時刻をタイマ202を参照して求める。そしてその時刻を新たな生成時刻tに定める。
以下、同様の処理を繰返す。そして、生成時刻tが音声の収録時間を上回ると、アニメーション生成システム80はアニメーション生成の処理を終了し、その後の状態は最初の書起しテキスト選択時の表示時の状態に戻る。
このようにして、ある発話テキストをユーザが選択して読み上げると、その音声データに基づき、顔データファイル記憶部132に記憶された顔画像データを用い、口の形状が音声データに同期して変形する顔画像のアニメーションが得られる。最初に収録された音声も顔画像に同期して再生されるため、アニメーションのキャラクタが発話しているように見える。その結果、ユーザの声でキャラクタが発話するアニメーションを得ることができる。
本実施の形態では、顔画像は、限定された音素に対応するものしか準備されていないが、マッピングテーブルを用いて各音素に対し、適切な顔画像をマッピングすることにより、十分に自然なアニメーションを得ることができる。音素の継続時間長が極端に短かったり、パワーが極端に小さかったりした場合、その音素については、画像の生成を省略している。通常は、このような音素を発音する際の実際の顔の動きも非常に小さい。そのため、この省略により、得られる顔画像のアニメーションは自然な動きに近く感じられる効果がある。さらに、ブレンド率という概念を用いて、各音素の発話の強さに応じて顔の変形量(各特徴点の、基準画像(無表情という画像)の各特徴点位置からの3次元的な移動量)を調整している。そのため、音素の発話の強さに応じて自然な動きの顔画像のアニメーションを得ることができる。また、隣り合うキーフレームの間の顔画像は、隣り合うキーフレームの顔画像を、キーフレームにおけるブレンド率と、キーフレームの時間と、画像の生成時間とに応じた加重和により内挿して得ている。従って、音素から音素への変化の際の口の形状変化が滑らかなものとなり、得られた顔画像のアニメーションも自然なものに感じられる。
[第2の実施の形態]
上記した第1の実施の形態に係るアニメーション生成システム80は、十分な性能のコンピュータがあれば、そのコンピュータ一台でも実現可能である。しかし、ある程度短い時間で作業を完了させるためには、複数のコンピュータを用いることが実際的である。
図15に、本発明の第2の実施の形態に係るアニメーション生成システム280の概略構成を示す。図15を参照して、このアニメーション生成システム280は、不特定のユーザによる音声入力を受け、アニメーション生成システム280でのアニメーションの生成を開始させる処理を行なう音声入力用のコンピュータ292と、音声入力用のコンピュータ292によって入力された音声に対する音素セグメンテーションを行なってキーフレームデータを作成するための音声認識サーバ294と、音声入力用のコンピュータ292による音声入力を受け、音声認識サーバ294が出力するキーフレームデータを利用して、入力された音声と同期して口の形状が変化する、所定のキャラクタの顔画像のアニメーションを作成し表示するためのアニメーション表示用コンピュータ296とを含む。音声入力用のコンピュータ292、音声認識サーバ294、及びアニメーション表示用コンピュータ296はいずれもネットワーク290を介して互いに所定のプロトコルで通信可能となっている。
図2と比較すると、音声入力用のコンピュータ292が図2の入力指示ユニット94に、音声認識サーバ294が図2の音声認識装置120に、アニメーション表示用コンピュータ296が図2のアニメーション再生ユニット98に、それぞれ相当する。音声入力用のコンピュータ292、音声認識サーバ294、及びアニメーション表示用コンピュータ296の機能構成は、それぞれ図2の入力指示ユニット94、音声認識装置120、及びアニメーション再生ユニット98の構成と同様であるので、ここではその詳細は繰返さない。
音声入力用のコンピュータ292は、タッチパネル300と、マイク302とを有する。アニメーション表示用コンピュータ296は、スピーカ312を有するモニタ310と、モニタ310の下に配置されたコンピュータ筐体314とを含む。
図16に、アニメーション表示用コンピュータ296のハードウェア構成を示す。図16を参照して、アニメーション表示用コンピュータ296は、図15に示すモニタ310及びスピーカ312に加え、いずれもコンピュータ本体314内に配置された、CPU(中央演算処理装置)350と、読出専用メモリ(ROM)352と、随時読出書込可能メモリ(RAM)354と、ハードディスクドライブ356と、DVD(Digital Versatile Disk)330を装着可能なDVDドライブ358と、顔画像の演算処理を実行するためのGPU360とを含む。これらはいずれもバス362によりCPU350に接続されている。
アニメーション表示用コンピュータ296はさらに、いずれもコンピュータ本体314内に配置され、バス362に接続された、ネットワークインターフェイス(I/F)368、フラッシュメモリからなる持運び可能なメモリ332を装着可能なメモリポート366、及びスピーカ312が接続されるサウンドボード364を含む。
なお、アニメーション表示用コンピュータ296においては、アニメーション作成処理においてキーボードを使用する必要がないため、キーボードを備えていない。もちろん、アニメーション表示用コンピュータ296を通常のコンピュータとして使用する際には、コンピュータ本体314にキーボード及びマウス等の入力装置を接続することが可能である。
図には示していないが、音声入力用のコンピュータ292及び音声認識サーバ294のハードウェア構成もアニメーション表示用コンピュータ296とほぼ同様である。相違点といえば、音声入力用のコンピュータ292において、モニタ310と入力装置とが一体となってタッチパネル300を構成していること、音声入力用のコンピュータ292がさらにマイクロフォン302を備えていること、音声入力用のコンピュータ292及び音声認識サーバ294ではGPU360が不要であること等である。
図17に、音声入力用のコンピュータ292で実行されることにより、音声入力用のコンピュータ292を図2に示す入力指示ユニット94として動作させるためのコンピュータプログラムの制御構造をフローチャート形式で示す。
図17を参照して、音声入力用のコンピュータ292の電源が投入され、このプログラムが起動されると、ステップ400で初期化処理が実行される。この処理では、音声入力用のコンピュータ292内で処理に必要な資源の確保及び初期化、通信機能の確認、発話テキストファイルからの発話テキストの読込み等が行なわれる。
初期化処理が終了すると、ステップ402において、音声入力用のコンピュータ292の準備が完了したことをアニメーション表示用コンピュータ296に通知する。続いてステップ404において、アニメーション表示用コンピュータ296より、音声入力用のコンピュータ292、音声認識サーバ294及びアニメーション表示用コンピュータ296がともに準備完了状態となったことを示す準備完了通知を受信したか否かを判定する。準備完了通知を受けたらステップ406に進む。準備完了通知を受取るまで、ステップ404の判定処理を繰返す。
このようにアニメーション表示用コンピュータ296からの準備完了通知を待つのは、同時期に音声入力用のコンピュータ292、音声認識サーバ294及びアニメーション表示用コンピュータ296が起動されたとして、全てにおいて準備が完了しないと、アニメーション生成システム280全体として機能することができないためである。
続いてステップ406において、いくつかの発話テキストをタッチパネル300に表示し、「テキストを一つ選択してください」という、入力待ちメッセージを表示する。そしてステップ408で入力待ちの状態となる。入力があると、すなわちテキストがユーザにより選択されるとステップ410に進む。
ステップ410では、選択されたテキストを発話するようにユーザに促すメッセージを表示し、録音を開始する。録音が終了するとステップ412に進む。
ステップ412では、アニメーション表示用コンピュータ296に対して録音完了を通知する。続くステップ414において、アニメーション表示用コンピュータ296から処理開始通知を受信したか否かを判定する。処理開始通知とは、音声認識サーバ294における音素セグメンテーション処理と、アニメーション表示用コンピュータ296におけるアニメーション生成処理との実行を開始したことを示すメッセージである。
ステップ416では、処理中を示す表示をタッチパネル300上に表示する。ステップ418で、ステップ410において録音した音声データと、対応するテキストデータ(書起しデータ)とをアニメーション表示用コンピュータ296に送信する。そして、ステップ420で、アニメーション表示用コンピュータ296から処理完了通知を受信するまで待機する。処理完了通知とは、ステップ418でアニメーション表示用コンピュータ296に対し送信した音声データに対して、音素セグメンテーション処理とその後のキーフレームデータ作成処理までが完了したことを示す通知である。
処理完了通知を受信すると、ステップ422において、アニメーション表示用コンピュータ296に対し、アニメーションの出力命令を送信する。後述するように、アニメーション表示用コンピュータ296は、この出力命令に対してアニメーションの生成処理及び出力処理を開始する。ステップ424ではアニメーション表示用コンピュータ296から出力中通知を受信するまで待機し、出力中表示を受けるとステップ426に進む。ステップ426では、タッチパネル300上に、アニメーションをアニメーション表示用コンピュータ296のモニタ310上に出力中であることを示すメッセージを表示する。そしてステップ428で、アニメーション表示用コンピュータ296からアニメーションの出力処理が完了したことを示す出力完了通知を待つ。出力完了通知を受信すると、ステップ410で録音した音声に対するアニメーションの生成及び表示が全て完了したということである。従って制御はステップ406に戻り、次のユーザ入力を待つ。
音声入力用のコンピュータ292は、上記した処理を繰返す。
図18は、音声認識サーバ294が実行する処理のフローチャートである。このプログラムが起動されると、ステップ440において初期化処理が実行される。初期化処理が完了すると、ステップ442においてアニメーション表示用コンピュータ296に対し音声認識サーバ294の準備が完了したことを示す通知を送信する。
ステップ444では、アニメーション表示用コンピュータ296から音素セグメンテーションの依頼を受信したか否かを判定する。音素セグメンテーションとは音声認識処理と同様の処理であって、入力された音声を、音響モデルを用いて音素に分割する処理のことをいう。依頼を受信すると、ステップ448に進む。
ステップ448で、アニメーション表示用コンピュータ296に対し、音声認識サーバ294が音素セグメンテーション処理を開始したことを通知する。
続くステップ450において、依頼に従い、音素セグメンテーションを行なうべき音声データと書起しデータとをアニメーション表示用コンピュータ296より取得する。この取得が完了したら、ステップ452において対象データの受信が完了したことを示す通知をアニメーション表示用コンピュータ296に送信する。ステップ454では、受信した音声データに対し、図示しない音響モデルと、受信した書起しデータとを用いた音素セグメンテーション処理を実行する。この処理では、書起しデータが存在するので、正確な音素セグメンテーションをすることが可能である。
音素セグメンテーションが終了し、音素列ファイルの生成が完了したら、ステップ456において、音素列ファイルの生成が完了したことをアニメーション表示用コンピュータ296に通知する。
さらに、この音素列ファイルに基づき、ステップ458において、キーフレームデータの生成処理を実行する。キーフレームデータの生成処理の詳細については図19を参照して後述する。キーフレームデータの生成処理が完了すると、ステップ460においてキーフレームデータ生成が完了したことをアニメーション表示用コンピュータ296に対して通知する。さらに、ステップ462において、音素列ファイルと、キーフレームデータとをアニメーション表示用コンピュータ296に対して送信する。ステップ464では、アニメーション表示用コンピュータ296に対して音声認識サーバ294における処理が全て完了したことを通知し、ステップ444に戻る。
図19は、図18のステップ458で実行されるキーフレームデータの作成処理のフローチャートである。図19を参照して、ステップ480において、与えられた音素列の中で、継続時間長が所定のしきい値より小さい音素、又はパワーが所定のしきい値より小さい音素があるか否かを判定する。もしあれば、ステップ482において、その音素を削除し、その音素の継続時間長を直前の音素の継続時間長に統合する処理を行ない、ステップ480に戻る。上記したような音素が存在しなくなると、ステップ484に進む。
ステップ484では、与えられた音素列を構成する全ての音素に対して、ブレンド率の初期値として100%を設定する。続くステップ486では、図2に示すマッピングテーブル記憶部130に記憶されたマッピングテーブルを用い、音素列中の各音素に対し、図3に示す顔画像/A/〜/φ/の中のいずれかを割当て、その顔画像の識別子を音素に付す。こうして割当てられた顔画像が、その音素の開始時点をフレーム時刻とするキーフレームとなる。
続いてステップ488において、与えられた全ての音素列を調べ、音素の最大継続時間長と最大パワーとを探索する。探索された最大継続時間長をLMAX、最大パワーをPMAXとする。
ステップ490では、各音素のブレンド率を、前述した式(1)により更新する。なお、式(1)でB(n)はn番目の音素のブレンド率を表す。同様に、ステップ492では、各音素のブレンド率を、前述した式(2)により更新する。
ステップ494では、上記したように算出されたブレンド率と、対応の顔画像の識別子と、時間情報とが付された音素列を、キーフレームデータとしてファイルに出力し、キーフレームデータの作成処理を終了する。
図20は、アニメーション表示用コンピュータ296により実行されるアニメーション生成制御処理を実現するコンピュータプログラムの制御構造を示すフローチャートである。図20を参照して、アニメーション生成制御処理が起動されると、ステップ500において初期化処理を行ない、ステップ502において音声入力用のコンピュータ292及び音声認識サーバ294からの準備完了通知を待つ。
音声入力用のコンピュータ292及び音声認識サーバ294から準備完了通知を受信すると、ステップ504において音声入力用のコンピュータ292に対しアニメーション生成システム280の全体が準備完了していることを示す準備完了通知を送信する。続いてステップ506で、音声入力用のコンピュータ292から録音完了通知を受信するまで待機する。
録音完了通知を受信すると、ステップ508において、音声入力用のコンピュータ292に対し音声認識サーバ294及びアニメーション表示用コンピュータ296がアニメーションを作成するための一連の処理を実行開始することを示す処理開始通知を送信する。続いてステップ510で、音声入力用のコンピュータ292から書起しテキストデータ及び音声データを受信するまで待機し、これらデータを受信するとステップ512に進む。
ステップ512では、音声認識サーバ294に対し、ステップ510で受信した書起しテキストデータ及び音声データを送信し、音素セグメンテーションを依頼する。そしてステップ514では、音素セグメンテーションの結果得られるキーフレームデータを音声認識サーバ294から受信するまで待機する。キーフレームデータを受信すると、ステップ520以下のアニメーション生成のための処理を実行する。
ステップ520において、本実施の形態では、顔画像のアニメーションの先頭フレームの時刻(生成時刻)tとして、音素列の最初の音素の時刻T0を選択する。
続いてステップ522において、直前のステップで決定されたフレームの生成時刻tに対し、Tk−1≦t<Tkとなるkを決定する。ただしTkは音素列中のk番目の音素の期間の開始時刻を指す。例えばt=T0であればT0≦t<T1であるから、k=1となる。
続いてステップ524において、時刻Tk及びTk−1と、キーフレームTk−1、Tkのブレンド率と、生成時刻tと、時刻Tk及びTk−1での音素に対応する顔画像データとをGPU360に渡し、生成時刻tにおける顔画像を補間により生成することを依頼する。
これに応答し、GPU360が実行するプログラムは、生成時刻tにおける、キーフレームTk−1のブレンド率から補間演算されるブレンド率α、及びキーフレームTkのブレンド率から補間演算されるブレンド率βをそれぞれ前述した補間式(3)により算出し、さらに生成時刻tにおける顔画像の各特徴点ベクトルX(t)を、キーフレームTk-1及びTkにおける顔画像の各特徴点ベクトルX(Tk−1)及びX(Tk)と、α、βとを用い、前述の式(4)によるベクトル加重和によって算出する。GPU360は、この計算が顔画像の全ての特徴点に対し終了すると、生成された時刻tにおける顔画像を出力し、さらに処理終了通知をCPU350に対して送信する。
図20を参照して、アニメーション生成制御処理のプログラムは、ステップ526でGPU360からの終了通知を受信するまで待ち状態となる。終了通知を受信するとステップ528に進む。
ステップ528では、タイマ202の時刻を読む。この時刻を新たな生成時刻tとする。続いてステップ530では、生成時刻tが、録音の最終時刻よりも後か否かを判定する。生成時刻tが録音時刻より後であれば、処理を終了する。さもなければ、この新たな生成時刻tにおける顔画像データを生成すべく、ステップ522に戻る。
以下、ステップ522〜ステップ530の処理を、生成時刻tが録音時間より大きくなるまで繰返す。生成時刻tが録音時間より大きくなると、ステップ532に進む。
ステップ532では、音声入力用のコンピュータ292に対し、音声認識サーバ294及びアニメーション表示用コンピュータ296における処理が完了したことを示す通知を送信する。音声入力用のコンピュータ292はこの通知を図17のステップ428で受信し、これに応答してステップ406に戻り、上記した一連の処理が音声入力から繰返される。
図17にフローチャートで示す制御構造を有するプログラムを音声入力用のコンピュータ292で、図18及び図19にフローチャートで示す制御構造を有するプログラムを音声認識サーバ294で、図20にフローチャートで示す制御構造を有するプログラムをアニメーション表示用コンピュータ296で、それぞれ実行することにより、第1の実施の形態に係るアニメーション生成システム80と同様の機能を持つアニメーション生成システム280を実現することができる。
なお、第1の実施の形態に係るアニメーション生成システム80をコンピュータで実現する際にも、上記した図17〜図20に示す制御構造を有するコンピュータプログラムと同様のプログラムを利用することができる。
<動作>
第2の実施の形態に係るアニメーション生成システム280の動作は、第1の実施の形態に係るアニメーション生成システム80と同様である。従って、ここではその詳細については繰返さない。
本実施の形態では、各コンピュータに処理を分散させている。そのため、各コンピュータの性能はそれほど高くなくてもよい。また、音声認識サーバ294としては高性能なものを準備しておき、複数の音声入力用のコンピュータ292とアニメーション表示用コンピュータ296との組からのキーフレームデータ作成要求を単一の音声認識サーバ294で処理することも可能である。
さらに、本実施の形態では、音声入力用のコンピュータ292とアニメーション表示用コンピュータ296とは別のコンピュータとしたが、これらをまとめて一つのコンピュータによって実現するようにしてもよい。
どのような音素に対応する顔画像を準備するか、及びどれだけの数の顔画像を準備するかは、アニメーション製作時の設計事項である。また、どの音素に対しどの顔画像をマッピングするかもアニメーション製作時の設計事項である。また、音素の組は対象とする言語によっても異なり、従ってマッピングも異なってくることは当然である。
上記した実施の形態では、ある音素に対しては必ず一つの顔画像が対応するように音素と顔画像とのマッピングがされているが、そうでなくてもよい。すなわち、同一の音素でも、その前後の音素によって異なる顔画像を割当てるようにしてもよい。
上記した実施の形態では、ブレンド率の算出に式(1)及び(2)を使用している。しかし本発明は、式(1)及び(2)を用いるものには限定されない。継続時間長又はパワーが短くなればブレンド率が低くなるようなものであれば、すなわち継続時間長及びパワーに対する単調関数であれば、どのような関数を用いてブレンド率を算出するようにしてもよい。また、継続時間長及びパワーに限らず、それ以外の音声特徴量を考慮してブレンド率を決定してもよい。
上記した実施の形態では、補間関数として図12に示されるような直線式に対応するものを用いた。しかし本発明はそのような実施の形態には限定されない。補間関数として、時間に対する2次以上の多項式を用いたり、非線形関数を用いたりしてもよい。本実施の形態では、キーフレームに相当する時刻においてブレンド率が最も高くなり、そこから遠ざかるにつれてブレンド率が低くなるような補間関数であれば、どのようなものを用いてもよい。補間関数として複数のものを用意しておき、ユーザが切替えて使用できるようにしておいてもよい。
また上記実施の形態では、キーフレームの位置は、各音素の継続期間の先頭位置としたが、本発明はそのような実施の形態には限定されない。キーフレームの位置を、各音素の継続期間の途中にしてもよい。キーフレームの位置についても、ユーザが任意に変更可能としてもよい。
なお、上記した実施の形態では、音素列中のある音素の継続時間長又はパワーがしきい値より小さい場合には、その音素を削除し、その継続時間長を直前の音素の継続時間長に統合した。こうすることにより、口形状の変化が滑らかで自然なものとなる効果が得られる。
しかし本発明はそのような実施の形態には限定されない。例えば、ある音素の継続時間長のみを考慮したり、パワーのみを考慮するようにしてもよい。又は、継続時間長及びパワーの双方がそれぞれしきい値より小さいときに、その音素を削除するようにしてもよい。これらの間で、切換を行なうようにしてもよい。
さらに、上記した実施の形態では、最終的にアニメーションとともに再生される音声は、最初に収録されたユーザの音声そのままである。しかし、本発明はそのような実施の形態には限定されない。口形状は主として音素との関係で決定されるので、音素の位置にさえ大きな変更を加えないのであれば、ユーザの音声に何らかの加工を加えるようにしてもよい。この場合でも、最終的に再生される音声にはユーザの発話の特徴が生かされることが多く、より多彩なアニメーションを作成できる。
上記した実施の形態では、ユーザによる書起しテキストの発話の録音後、キーデータファイルを生成し、キーデータファイルを生成した後はGPU360による顔画像の作成処理の終了時に次の顔画像の生成を開始するようにしている。従って、顔画像の生成は一定のサイクルで行なわれているわけではない。こうすることにより、GPU360はその性能をフルに発揮できる。しかし、本発明はこのようにして顔画像を作成するものには限定されない。
例えば、図12に示されるように、各キーフレームの補間によるブレンド率の分布を求めた後、一定のフレーム間隔で顔画像を生成すべき時刻の系列を求め、各時刻での顔画像を生成し、全ての顔画像が生成された後にそれらをアニメーションとして再生するようにしてもよい。この場合には、フレーム間隔が短くなると処理に長時間を要するようになり、逆にフレーム間隔が長くなるとアニメーションの動きがぎこちなくなる可能性がある。
なお、上記した実施の形態は、ユーザの音声にあわせて顔画像のアニメーションを作成し、再生する。音声の書起しテキストは決まっているため、ユーザが不特定であっても音素セグメンテーションを精度高く行なえ、滑らかなアニメーションを作成できる。
上記実施の形態では、音声が入力されると、それに基づいて作成したアニメーションを一回だけ再生し、次の音声の入力を待つ。しかし本発明はそのような実施の形態には限定されない。音声を入力し、キーフレームデータを作成した後は、そのキーフレームデータに基づいて、何回でもアニメーションの再生を行なうことができる。特に、この再生においては、使用される顔画像を変えたり、補間の関数を変えたり、音素を間引く際のしきい値を変えたりして、同じ音声から様々なアニメーションを生成できる。そのため、いわゆるプレスコ(プレレコ)方式によってアニメーションを作成するためのツールとして利用することが可能である。
さらに、上記した実施の形態は音声に基づいて顔画像のアニメーションを生成するものであった。しかし本発明はそのような実施の形態に限定されるわけではない。音声に伴って形状が変化するものであり、その形状とある音素とのマッピングが可能なものであれば、どのようなものにも適用可能である。例えば、音声にあわせて声道形状のアニメーションを作成したり、調音機構のアニメーションを作成したりすることも考えられる。
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味および範囲内でのすべての変更を含む。
40 話者、42 音声信号、44 台本、60〜68 顔画像、80,280 アニメーション生成システム、90 テキスト選択インターフェイス、92 マイクロフォン、94 入力指示ユニット、96 キーフレームデータ作成ユニット、98 アニメーション再生ユニット、100 スピーカ、102,310 モニタ、110 テキスト記憶部、112 テキスト選択部、114 音声収録部、120 音声認識装置、130 マッピングテーブル記憶部、132 顔データファイル記憶部、134 補間関数記憶部、136 キーフレームデータ作成部、138 アニメーション生成部、140 音声ファイル記憶部、142 出力部、160 音素列ファイル、180 マッピング処理部、182 継続時間長によるブレンド率調整部、184 パワーによるブレンド率調整部、200 アニメーション生成制御部、202 タイマ、204 補間処理部、290 ネットワーク、292 音声入力用のコンピュータ、294 音声認識サーバ、296 アニメーション表示用コンピュータ、300 タッチパネル、302 マイクロフォン