【文献】
中野敦, 外1名,”ゲームキャラクタのための行動制御技術”,人工知能学会誌,日本,(社)人工知能学会,2008年 1月 1日,第23巻, 第1号,p.62-67
【文献】
中野敦, 外1名,”階層化プランニングによる会話と連動した複合ジェスチャの生成”,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2005年 4月 1日,第J88−D−II巻, 第4号,p.737-746
(58)【調査した分野】(Int.Cl.,DB名)
セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置であり、
前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行う仕草データ生成部を備えたことを特徴とする仕草生成装置。
前記仕草データ生成部は、前記選択されたパスの仕草データのストロークに対応する前記セリフ中のキーワードの音声データに対して、前記ストロークの開始タイミングと終了タイミングを合わせる調整を行うことを特徴とする請求項1に記載の仕草生成装置。
前記仕草データ生成部は、前記選択されたパスの仕草データの準備期の終了タイミングを前記ストロークの開始タイミングに合わせるように該準備期の継続時間を伸縮させることを特徴とする請求項3に記載の仕草生成装置。
前記仕草データ生成部は、前記選択されたパスの仕草データの終了期について、開始タイミングを前記ストロークの終了タイミングに合わせるように、且つ、終了タイミングを前記セリフの音声データ終了タイミングに合わせるように、該終了期の継続時間を伸縮させることを特徴とする請求項3または4のいずれか1項に記載の仕草生成装置。
前記仕草データ生成部は、前記モーショングラフ内に含まれる仕草データの最初のノードのうち、仕草データの最後のポーズと最も連結性の良いノードを始点ノードにすることを特徴とする請求項1から5のいずれか1項に記載の仕草生成装置。
前記仕草データ生成部は、前記選択されたパスの仕草データの準備期または終了期のフレームに対して、所定の仕草データの中から似ているフレームで入れ替えることを特徴とする請求項1から7のいずれか1項に記載の仕草生成装置。
前記仕草データ生成部は、ストロークしかない仕草データに対して、所定の定常ポーズを用いて、ストロークの前と後に一定時間の準備期と終了期を追加することを特徴とする請求項1から8のいずれか1項に記載の仕草生成装置。
前記仕草データ生成部は、終了期がない仕草データに対して、準備期のポーズを用いて、ストロークの後に一定時間の終了期を追加することを特徴とする請求項1から8のいずれか1項に記載の仕草生成装置。
前記仕草データ生成部は、準備期がない仕草データに対して、終了期のポーズを用いて、ストロークの前に一定時間の準備期を追加することを特徴とする請求項1から8のいずれか1項に記載の仕草生成装置。
前記仕草データ生成部は、前記モーショングラフのストロークの長さがセリフの継続時間よりも所定倍以上である場合には、所定の定常モーショングラフに切り替える、または、前記モーショングラフのストロークに対応する音声データのセリフの直後に一定時間の無音区間を挿入する、ことを特徴とする請求項1から11のいずれか1項に記載の仕草生成装置。
セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置の仕草生成方法であり、
前記仕草生成装置が、前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行うことを特徴とする仕草生成方法。
セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置のコンピュータに、
前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行うステップを実行させるためのコンピュータプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、上述した従来技術では、セリフのテキストデータと該セリフの音声データとが与えられた場合に、セリフの音声に合わせた自然なCGアニメーションを自動生成することが困難である。特許文献1〜3の従来技術では、テキストデータに合わせたCGアニメーションを生成することはできるが、該テキストデータの音声のタイミングに合ったCGアニメーションを生成することはできない。また、非特許文献1の従来技術では、同期技術を導入していないため、与えられた音声にCGアニメーションのタイミングを合わせることができない。
【0006】
本発明は、このような事情を考慮してなされたもので、セリフの音声に合わせた自然な仕草の動画像を生成することができる仕草生成装置、仕草生成システム、仕草生成方法およびコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【0007】
(1)本発明に係る仕草生成装置は、セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置であり、前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行う仕草データ生成部を備えたことを特徴とする。
【0008】
(2)本発明に係る仕草生成装置においては、上記(1)の仕草生成装置において、前記仕草データ生成部は、前記選択されたパスの仕草データのストロークに対応する前記セリフ中のキーワードの音声データに対して、前記ストロークの開始タイミングと終了タイミングを合わせる調整を行うことを特徴とする。
【0009】
(3)本発明に係る仕草生成装置においては、上記(2)の仕草生成装置において、前記仕草データ生成部は、前記セリフの継続時間に前記選択されたパスの仕草データの長さを合わせる調整を行うことを特徴とする。
【0010】
(4)本発明に係る仕草生成装置においては、上記(3)の仕草生成装置において、前記仕草データ生成部は、前記選択されたパスの仕草データの準備期の終了タイミングを前記ストロークの開始タイミングに合わせるように該準備期の継続時間を伸縮させることを特徴とする。
【0011】
(5)本発明に係る仕草生成装置においては、上記(3)または(4)の仕草生成装置において、前記仕草データ生成部は、前記選択されたパスの仕草データの終了期について、開始タイミングを前記ストロークの終了タイミングに合わせるように、且つ、終了タイミングを前記セリフの音声データ終了タイミングに合わせるように、該終了期の継続時間を伸縮させることを特徴とする。
【0012】
(6)本発明に係る仕草生成装置においては、上記(1)から(5)のいずれかの仕草生成装置において、前記仕草データ生成部は、前記モーショングラフ内に含まれる仕草データの最初のノードのうち、仕草データの最後のポーズと最も連結性の良いノードを始点ノードにすることを特徴とする。
【0013】
(7)本発明に係る仕草生成装置においては、上記(1)から(6)のいずれかの仕草生成装置において、前記モーショングラフはカテゴリ別に複数あり、前記仕草データ生成部は、前記セリフ中のキーワードのカテゴリと同じ前記モーショングラフを使用して前記セリフの音声に合わせた仕草データを生成することを特徴とする。
【0014】
(8)本発明に係る仕草生成装置においては、上記(1)から(7)のいずれかの仕草生成装置において、前記仕草データ生成部は、前記選択されたパスの仕草データの準備期または終了期のフレームに対して、所定の仕草データの中から似ているフレームで入れ替えることを特徴とする。
【0015】
(9)本発明に係る仕草生成装置においては、上記(1)から(8)のいずれかの仕草生成装置において、前記仕草データ生成部は、ストロークしかない仕草データに対して、所定の定常ポーズを用いて、ストロークの前と後に一定時間の準備期と終了期を追加することを特徴とする。
【0016】
(10)本発明に係る仕草生成装置においては、上記(1)から(8)のいずれかの仕草生成装置において、前記仕草データ生成部は、終了期がない仕草データに対して、準備期のポーズを用いて、ストロークの後に一定時間の終了期を追加することを特徴とする。
【0017】
(11)本発明に係る仕草生成装置においては、上記(1)から(8)のいずれかの仕草生成装置において、前記仕草データ生成部は、準備期がない仕草データに対して、終了期のポーズを用いて、ストロークの前に一定時間の準備期を追加することを特徴とする。
【0018】
(12)本発明に係る仕草生成装置においては、上記(1)から(11)のいずれかの仕草生成装置において、前記仕草データ生成部は、前記モーショングラフのストロークの長さがセリフの継続時間よりも所定倍以上である場合には、所定の定常モーショングラフに切り替える、または、前記モーショングラフのストロークに対応する音声データのセリフの直後に一定時間の無音区間を挿入する、ことを特徴とする。
【0019】
(13)本発明に係る仕草生成システムは、上記(1)から(12)のいずれかの仕草生成装置と、入力仕草データの準備期、ストローク、終了期の各フェーズ境界をノードに設定し、且つ、前記ノード間の連結性に基づいてエッジを設けたモーショングラフを生成するモーショングラフ生成部と、前記モーショングラフを記憶するモーショングラフデータベースと、を備えたことを特徴とする。
【0020】
(14)本発明に係る仕草生成方法は、セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置の仕草生成方法であり、前記仕草生成装置が、前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行うことを特徴とする。
【0021】
(15)本発明に係るコンピュータプログラムは、セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置のコンピュータに、前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行うステップを実行させるためのコンピュータプログラムであることを特徴とする。
【発明の効果】
【0022】
本発明によれば、セリフの音声に合わせた自然な仕草の動画像を生成することができるという効果が得られる。
【発明を実施するための形態】
【0024】
以下、図面を参照し、本発明の実施形態について説明する。
図1は、本発明の一実施形態に係る仕草生成システム1の構成を示すブロック図である。
図1において、仕草生成システム1は、仕草生成装置10とモーショングラフ生成部20とモーショングラフデータベース30を有する。仕草生成装置10は、モーショングラフデータベース30を使用して、入力データ(セリフデータ、音声データ)のセリフの音声に合わせた仕草データを生成し、生成した仕草データを出力する。モーショングラフ生成部20は、入力仕草データを使用して、モーショングラフを生成する。モーショングラフデータベース30は、モーショングラフ生成部20により生成されたモーショングラフを記憶する。
【0025】
ここで、本実施形態に係る仕草データを説明する。仕草データは、人や動物などの動きを表す動きデータである。特には、仕草データは、仕草と呼ばれる動きを表す動きデータである。一般的に、仕草は、準備期(preparation)に始まって実行期(ストローク(stroke))を経て終了期(retraction)で終わる一連の3つのフェーズの動きから構成される(例えば、非特許文献2参照)。準備期は、仕草の最初のポーズ(以下、定常ポーズと称する)からストロークが始まるまでのフェーズである。例えば、準備期として、人の手が置かれていた位置(定常ポーズ)からストロークが始まるまでの動きが挙げられる。ストロークは、仕草の主なフェーズである。例えば、ストロークとして、人の手の強い振りの動きが挙げられる。終了期は、ストロークの後に仕草の最後のポーズになるフェーズである。例えば、終了期として、ストロークの後に定常ポーズに戻ることが挙げられる。なお、準備期と終了期は、必須ではなく、なくてもよい。
【0026】
図2は、本実施形態に係る仕草データの定義例の概略図である。
図2の例では、仕草データとして、人体のスケルトン型動きデータを使用している。人体のスケルトン型動きデータは、人の骨格を基に、骨及び骨の連結点(ジョイント)を用い、一ジョイントを根(ルート)とし、ルートからジョイント経由で順次連結される骨の構造を木(ツリー)構造として定義される。
図2には、スケルトン型動きデータの定義の一部分のみを示している。
図2において、ジョイント100は腰の部分であり、ルートとして定義される。ジョイント101は左腕の肘の部分、ジョイント102は左腕の手首の部分、ジョイント103は右腕の肘の部分、ジョイント104は右腕の手首の部分、ジョイント105は左足の膝の部分、ジョイント106は左足の足首の部分、ジョイント107は右足の膝の部分、ジョイント108は右足の足首の部分、ジョイント109は鎖骨の部分、ジョイント110、111は肩の部分、ジョイント112は頭の部分、ジョイント113、114は股関節の部分、である。
【0027】
スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであり、スケルトン型対象物としては人体や動物などが適用可能である。スケルトン型動きデータは、例えばモーションキャプチャデータに基づいて生成される。
【0028】
本実施形態では、仕草データとして
図2に例示される人体のスケルトン型動きデータを使用する。仕草データは、人の一連の動きを複数の姿勢(ポーズ)の連続により表すものである。一つのポーズは、一つのフレームに対応し、全ての関節(ジョイント)の位置情報を記録する。一つのフレームx(t)は、式(1)で表される。
【0030】
但し、p
k(t)は、時刻tにおけるk番目のジョイントの位置であり、3次元座標で表される。時刻tはフレームの時刻である。Kはジョイントの数である。したがって、x(t)は3K次元のベクトルである。
【0031】
T個のフレームからなる仕草データXは、式(2)で表される。
【0033】
Xは3K×Tの行列である。本実施形態では、時刻tを単に「フレームインデックス」として扱う。これにより、時刻tは、「0,1,2,・・・,T−1」の値をとる。Tは、仕草データに含まれるフレームの個数である。
【0034】
また、他のフレームの定義例として、基本ポーズからの移動量をジョイント毎に表すことも可能である。一フレームは、基本ポーズに対して各ジョイントの移動量が加味された一ポーズを特定する。これにより、各フレームによって特定される各ポーズの連続により、人の一連の動きが特定される。この場合、移動量として角度情報を利用する。そして、角度情報データ内の基本ポーズデータとフレームデータを用いて、ジョイント位置を算出する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなど、基本ポーズを特定する情報を有する。フレームデータは、ジョイント毎に、基本ポーズからの移動量を表す角度情報を有する。時刻tにおけるk番目のジョイントの位置p
k(t)は、式(3)および式(4)により算出される。
【0037】
但し、0番目(i=0)のジョイントはルートである。R
axisi−1,i(t)は、i番目のジョイントとその親ジョイント(「i−1」番目のジョイント)間の座標回転マトリックスであり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が定義されており、座標回転マトリックスは親子関係にあるジョイント間のローカル座標系の対応関係を表す。R
i(t)は、i番目のジョイントのローカル座標系におけるi番目のジョイントの回転マトリックスであり、フレームデータに含まれる角度情報である。T
i(t)は、i番目のジョイントとその親ジョイント間の遷移マトリックスであり、基本ポーズデータに含まれる。遷移マトリックスは、i番目のジョイントとその親ジョイント間の骨の長さを表す。
【0038】
以上が仕草データの説明である。説明を
図1に戻す。
【0039】
[モーショングラフ生成部]
モーショングラフ生成部20には、入力仕草データが入力される。入力仕草データは、仕草データとメタデータを有する。該メタデータは、仕草データのカテゴリを示すカテゴリ識別子(カテゴリID)と、仕草データを仕草の3つのフェーズに区分するフェーズ識別子(フェーズID)とを有する。フェーズIDは、準備期を示す「P」、ストロークを示す「S」、終了期を示す「R」である。フェーズIDによって、仕草データの準備期、ストローク、終了期が特定される。
【0040】
仕草データをカテゴリに分類する方法の例を以下に説明する。利用可能なセリフ集合に対して、セリフのテキストを形態素解析してキーワードを抽出する。そして、各キーワードに対して、概念辞書(意味辞書)を用いてカテゴリのラベルを付ける。概念辞書として、例えば非特許文献3に記載される「WordNet」を利用可能である。例えば、「おはよう」、「おはようございます」、「こんにちは」、「こんばんは」といったキーワードに対して、「挨拶」というカテゴリのカテゴリIDを付ける。これにより、セリフ集合に対してカテゴリ集合を作成する。次いで、利用可能な仕草データ集合に含まれる各仕草データに対して、カテゴリ集合に含まれるカテゴリのカテゴリIDを付ける。この仕草データに対するカテゴリIDの付与は、人手により行われる。例えば、「お辞儀」の仕草データに対して「挨拶」のカテゴリIDを付ける。
【0041】
仕草データに対して仕草の3つのフェーズ(準備期、ストローク、終了期)に区分することは人手により行われる。この区分に従って、仕草データに対して、フェーズID「P(準備期)」、「S(ストローク)」、「R(終了期)」が付与される。但し、仕草データによっては、準備期または終了期がない場合がある。
【0042】
モーショングラフ生成部20は、入力仕草データを使用してモーショングラフを生成する。モーショングラフは、カテゴリ別に生成される。したがって、ある一つのカテゴリのモーショングラフの生成には、当該カテゴリのカテゴリIDが付された入力仕草データのみが使用される。
【0043】
図3は、本実施形態に係るモーショングラフ生成方法の流れを示す概念図である。以下、
図3を参照して、モーショングラフ生成部20がモーショングラフを生成する動作を説明する。
【0044】
[フレーム抽出ステップ]
まず、フレーム抽出ステップにおいて、モーショングラフ生成対象カテゴリの全ての入力仕草データから、仕草データのフェーズ境界に該当するフレームを全て抽出する。この抽出されたフェーズ境界のフレームの集合をF
iALLBと表す。
【0045】
[連結性算出ステップ]
次いで、連結性算出ステップにおいて、集合F
iALLBに含まれる全フレームをそれぞれ、モーショングラフのノードに設定する。従って、モーショングラフのノード数の初期値は、集合F
iALLBに含まれるフレームの個数に一致する。次いで、全ノードを対象とした全てのペアについて、式(5)又は式(6)により距離を算出する。あるノードF
iBとあるノードF
jBとの距離をd(F
iB,F
jB)と表す。
【0047】
但し、q
i,kはノードF
iBのk番目のジョイントの四元数(quaternion)である。w
kはk番目のジョイントに係る重みである。重みw
kは予め設定される。
【0049】
但し、p
i,kはノードF
iBのk番目のジョイントのルートに対する相対位置のベクトルである。つまり、p
i,kは、ルートの位置と方向は考えずに算出したノードF
iBのk番目のジョイントの位置のベクトルである。
【0050】
なお、ノード間の距離は、対象ノードにおけるポーズを構成する各ジョイントの位置、速度、加速度、角度、角速度、角加速度などの物理量の差分の重み付き平均として算出することができる。
【0051】
次いで、式(7)式により、連結性を算出する。あるノードF
iBとあるノードF
jBとの連結性をc(F
iB,F
jB)と表す。
【0053】
但し、d(F
iB)はノードF
iBの前フレームと後フレームの間の距離である(式(5)又は式(6)と同様の計算式で算出する)。THは予め設定される閾値である。
【0054】
連結性c(F
iB,F
jB)が1である場合、ノードF
iBのポーズとノードF
jBのポーズは似ていると判断できる。連結性c(F
iB,F
jB)が0である場合、ノードF
iBのポーズとノードF
jBのポーズは似ているとは判断できない。
【0055】
[モーショングラフ構築ステップ]
次いで、モーショングラフ構築ステップにおいて、連結性c(F
iB,F
jB)が1である場合、ノードF
iBとノードF
jBの間に双方向のエッジを設ける。連結性c(F
iB,F
jB)が0である場合には、ノードF
iBとノードF
jBの間に双方向のエッジを設けない。
【0056】
次いで、同じ仕草データの中で隣接するノード間には、単方向のエッジを設ける。単方向のエッジは、時間的に前のノードから後のノードへ向かう。
【0057】
次いで、双方向エッジの両端のノードに係る仕草データに対して、ブレンディング(blending)処理を行う。ブレンディング処理は、双方向エッジの方向ごとに、それぞれ行う。従って、一つの双方向エッジに対して、
図4(1),(2)に示されるように、2つのブレンディング処理を行うことになる。
図4は、ノードiとノードjの間の双方向エッジに係るブレンディング処理の概念図である。
図4(1)はノードiからノードjへ向かう方向に係るブレンディング処理を表し、
図4(2)はノードjからノードiへ向かう方向に係るブレンディング処理を表す。
【0058】
図5は、ブレンディング処理を説明するための概念図であり、
図4(1)に対応している。ここでは、
図5を参照し、
図4(1)に示されるノードiからノードjへ向かう方向に係るブレンディング処理を例に挙げて説明する。
【0059】
ブレンディング処理では、ノードiを有する仕草データ1とノードjを有する仕草データ2に対して、動きのつながりが不自然にならないように、両者の仕草データの接続部分を混合した補間データ(ブレンディングデータ)1_2を生成する。本実施形態では、一定時間分のフレームを使用しクォータニオンによる球面線形補間を利用して連結部分を補間する。具体的には、仕草データ1と仕草データ2を接続する接続区間(区間長m、但し、mは所定値)のブレンディングデータ1_2を、仕草データ1のノードiを中心に周りの区間長mのデータ1_mと仕草データ2のノードjを中心に区間長mのデータ2_mを用いて生成する。
【0060】
このとき、接続区間の区間長mに対する接続区間の先頭からの距離uの比(u/m)に応じて、データ1_mのうち距離uに対応するフレームiとデータ2_mのうち距離uに対応するフレームjを混合する。具体的には、式(8)および式(9)により、ブレンディングデータ1_2を構成する各フレームを生成する。なお、式(8)は、ある一つの骨についての式となっている。
【0063】
但し、mはブレンディング動きデータ1_2を構成するフレーム(ブレンディングフレーム)の総数(所定値)、uはブレンディングフレームの先頭からの順番(1≦u≦m)、q(k,u)はu番目のブレンディングフレームにおける第k骨の四元数、q(k,i)はフレームiにおける第k骨の四元数、q(j)はフレームjにおける第k骨の四元数、である。但し、ルートにはブレンディングを行わない。なお、式(9)はslerp(spherical linear interpolation)の算出式である。
【0064】
ブレンディングデータ1_2は、仕草データ1と仕草データ2の接続部分のデータとする。
【0065】
次いで、モーショングラフからデッドエンド(Dead end)を除去する。デッドエンドとは次数が1であるノードのことである。なお、モーショングラフにおいて、ノードに接続するエッジの数のことを次数という。また、ノードに入ってくるエッジの数のことを入次数、ノードから出て行くエッジの数のことを出次数という。モーショングラフからデッドエンドを除去すると、新たなデッドエンドが発生する可能性があるが、デッドエンドがなくなるまでデッドエンド除去を繰り返す。
【0066】
次いで、モーショングラフの各エッジにメタデータを付ける。双方向のエッジに対して、当該エッジに係るノードF
iBとノードF
jBとの距離d(F
iB,F
jB)を重みとして付与する。また、単方向のエッジに対して、フェーズIDと、当該エッジに係る継続時間をラベルとして付与する。
【0067】
以上がモーショングラフ生成処理の説明である。これにより、カテゴリ別にモーショングラフが生成される。なお、モーショングラフ生成部20は、特別なモーショングラフとして、定常モーショングラフを生成する。定常モーショングラフは、特定のカテゴリに属さないモーショングラフである。定常モーショングラフは、特定のカテゴリに限定せず、定常用の仕草データを使用して、上述のモーショングラフ生成処理により同様に生成される。
【0068】
[モーショングラフデータベース]
モーショングラフデータベース30は、モーショングラフ生成部20により生成されたモーショングラフを記憶する。モーショングラフデータベース30には、カテゴリ別のモーショングラフと、定常モーショングラフとが格納される。
【0069】
次に、
図1に示される仕草生成装置10について説明する。
図1において、仕草生成装置10は、入力処理部11とメタデータ生成部12と仕草データ生成部13を備える。
【0070】
仕草生成装置10には、入力データとして、セリフデータと音声データの組が入力される。セリフデータは、セリフのテキストデータである。音声データは、同じ組のセリフデータのセリフの音声データである。
【0071】
[入力処理部]
入力処理部11は、入力データのセリフデータに対して形態素解析を行い、この形態素解析の結果としてキーワード列を出力する。例えば、セリフデータ「じゃあ今日はウォーキングしなきゃね」の形態素解析の結果として、キーワード列「じゃあ|今日|は|ウォーキング|し|なきゃ|ね」を出力する。次いで、入力処理部11は、音声データとキーワード列の時間上の対応関係を設定する。セリフデータと音声データとの時間上の対応関係は、予め、設定しておく。音声データが合成音声である場合、音声合成時に音声とセリフの対応関係が得られるので、該対応関係を設定する。合成音声以外の音声データ(録音音声)である場合には、人手によって音声とセリフの対応関係を設定する。次いで、入力処理部11は、セリフの継続時間を記録する。
【0072】
[メタデータ生成部]
メタデータ生成部12は、入力処理部11により出力されたキーワード列の各キーワードに対して、概念辞書を用いてカテゴリのラベルを付ける。概念辞書として、例えば非特許文献3に記載される「WordNet」を利用可能である。次いで、メタデータ生成部12は、キーワード毎に、モーショングラフデータベース30から、同じカテゴリのモーショングラフを選択する。この結果、複数のモーショングラフが選択された場合には、いずれか一つのモーショングラフを選択する。例えば、無作為に一つのモーショングラフを選択する。一方、モーショングラフが一つも選択されなかった場合には、定常モーショングラフを選択する。
【0073】
次いで、メタデータ生成部12は、仕草のストロークのタイミングを決定する。具体的には、メタデータ生成部12は、選択したモーショングラフに対して同じカテゴリのキーワードの開始タイミングと終了タイミングをストロークのタイミングに設定する。但し、定常モーショングラフが選択された場合には、定常モーショングラフに対してストロークのタイミングを無限大にする(特に定めない)。
【0074】
メタデータ生成部12は、音声データとキーワード列の時間上の対応関係の情報と、セリフの継続時間の情報と、モーショングラフの情報と、該モーショングラフに対するストロークのタイミングの情報と、をメタデータとする。
【0075】
なお、ユーザが、オーサリングツールを用いて、手作業により、入力データ(セリフデータ、音声データ)に対して、該メタデータを生成するようにしてもよい。この場合、ユーザが、モーショングラフの選択、該モーショングラフのストロークに対応させるキーワードの選択(ストロークのタイミングの設定)、音声データとキーワード列の時間上の対応関係の設定などを任意に行う。
【0076】
[仕草データ生成部]
仕草データ生成部13は、メタデータ生成部12により生成されたメタデータを用いて、セリフの音声に合わせた仕草データを生成する。
図6は、本実施形態に係る仕草データ生成方法の流れを示すフローチャートである。以下、
図6を参照して、仕草データ生成部13が仕草データを生成する動作を説明する。
【0077】
(ステップS11)仕草データ生成部13は、モーショングラフから仕草データの始点となるノードを選択する。例えば、モーショングラフ内のノードであって、仕草データの最初のノードのうち、仕草データの最後のポーズと最も距離が小さい(連結性の良い)ノードを始点ノードにする。
【0078】
(ステップS12)仕草データ生成部13は、モーショングラフ上の始点ノードからの最適パスを探索し、最小コストのパスを選択する。このパス探索方法には、非特許文献4に記載されるパス探索技術を用いる。非特許文献4に記載されるパス探索技術は、始点からダイナミックプログラミングで最適なパスを探索するものである。以下、最適パス探索ステップの詳細を説明する。
【0079】
まず、始点ノードuからモーショングラフ上の全てのノードiまでの各パスのコストを式(10)により算出する。始点ノードuに係る最初の最短パス算出操作は第1回の操作である。
【0081】
但し、shortestPath(i,1)は、第1回の最短パス算出操作による、始点ノードuからノードiまでのパスのコストである。edgeCost(u,i)はノードuからノードiまでのエッジコストである。エッジコストは毎回計算される。エッジコストの計算式は式(11)である。
【0083】
なお、定常モーショングラフのエッジコストの計算式は式(12)である。
【0085】
次いで、第2回目以降の第k回の最短パス算出操作では、式(13)により、始点ノードuからモーショングラフ上の全てのノードvまでの最適パスのコストを算出する。
【0087】
但し、Vはモーショングラフ上のノードの集合である。shortestPath(v,k)は、第k回の最短パス算出操作による、始点ノードuからノードvまでの最適パスのコストである。edgeCost(i,v)はノードiからノードvまでのエッジコストである。
【0088】
この式(13)を用いた第2回目以降の最短パス算出操作は、最適パス探索の終了条件を満たすまで行う。
【0089】
(ステップS13)仕草データ生成部13は、最適パス探索の終了条件の判定を行う。最適パス探索の終了条件(a)〜(d)を以下に示す。
(a)モーショングラフ内の最後のノード以外でパス長が所定フレーム数N(セルフの継続時間に対応)を超えた場合には「超過」として当該探索結果のパスを破棄する。
(b)モーショングラフ内の最後のノードに到達した場合、当該探索結果のパスを最適パス候補として保存する。
(c)最適パス候補の中から、パス長と所定フレーム数Nの差が所定範囲内である最適パス候補を抽出する。この抽出された最適パス候補として、パス長が所定フレーム数N未満であるものと、パス長が所定フレーム数N超過であるものとがある場合には、パス長が所定フレーム数N未満である最適パス候補を選択する。
(d)上記(c)で選択された最適パス候補が複数ある場合には、コストが最小である最適パス候補を最適パスとする。
【0090】
(ステップS14)上記最適パス探索の終了条件(a)〜(d)を満たした場合にはステップS15に進む。一方、上記最適パス探索の終了条件(a)〜(d)を満たさない場合にはステップS12に戻る。
【0091】
(ステップS15)仕草データ生成部13は、選択した最適パスに基づいて、モーショングラフから最適パスに対応する仕草データを特定する。次いで、仕草データ生成部13は、該最適パスに対応する仕草データに対して、セリフの音声に合わせる調整を行う。
図7は、本実施形態に係る仕草データ調整方法の説明図である。
図7を参照して本実施形態に係る仕草データ調整方法を以下に説明する。
【0092】
図7に示されるように、調整前の仕草データにおいて、ストロークのタイミングは対応するキーワード「ウォーキング」の音声データのタイミングと合っていない。このため、まず、ストロークの開始タイミングを対応キーワード「ウォーキング」の音声データ開始タイミングに合わせるように移動させる。次いで、ストロークの継続時間を、対応キーワード「ウォーキング」のの音声データ終了タイミングに合わせるように伸縮させる。この伸縮率の範囲は、不自然にならないように、予め設定しておく。
【0093】
次いで、準備期を調整する。準備期の開始タイミングはセリフの音声データ開始タイミングと一致しているので、準備期の終了タイミングをストロークの開始タイミングに合わせるように準備期の継続時間を伸縮させる。この伸縮率の範囲は、不自然にならないように、予め設定しておく
【0094】
次いで、終了期を調整する。終了期について、開始タイミングをストロークの終了タイミングに合わせるように、且つ、終了タイミングをセリフの音声データ終了タイミングに合わせるように、終了期の継続時間を伸縮させる。この伸縮率の範囲は、不自然にならないように、予め設定しておく。
【0095】
(ステップS16)仕草データ生成部13は、調整後の仕草データに対して、ランダム性の導入処理を行う。このランダム性の導入処理では、事前に短い仕草データ(ランダム仕草データと称する)を複数用意し、準備期または終了期の中にランダム仕草データと似ているフレームがあれば、当該フレームを該似ているランダム仕草データと入れ替える。具体的には、式(6)により各ランダム仕草データの第一フレームと準備期または終了期の各フレームとの距離を算出する。そして、距離算出対象フレームと距離算出対象ランダム仕草データに関して算出された距離が閾値以下である場合に、準備期または終了期の該距離算出対象フレームから該距離算出対象ランダム仕草データの継続時間分のフレームまでを該距離算出対象ランダム仕草データで入れ替える。
図7の例では、準備期および終了期においてランダム仕草データ1000との入れ替えが行われている。
【0096】
ランダム仕草データとして、例えば、首をかしげる仕草、体をゆする仕草、舌を出す仕草などが挙げられる。このランダム仕草データで準備期または終了期のフレームを入れ替えることにより、準備期または終了期にアクセントを加えることができる。準備期や終了期はセリフを待っている無音区間である場合があるが、ランダム性の導入処理によって、ユーザに対して該無音区間にアクセントを与え、ユーザにあきさせない効果を得ることができる。
【0097】
仕草データ生成部13は、生成した仕草データを入力データ(セリフデータ、音声データ)と共に出力する。この出力された仕草データによって、入力データのセリフの音声に合わせた自然な仕草の動画像を再生することができる。
【0098】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0099】
例えば、仕草データ生成部13は、ストロークしかない仕草データに対して、所定の定常ポーズを用いて、ストロークの前と後に一定時間の準備期と終了期を追加するようにしてもよい。また、仕草データ生成部13は、終了期がない仕草データに対して、準備期のポーズを用いて、ストロークの後に一定時間の終了期を追加するようにしてもよい。また、仕草データ生成部13は、準備期がない仕草データに対して、終了期のポーズを用いて、ストロークの前に一定時間の準備期を追加するようにしてもよい。
【0100】
また、モーショングラフのストロークの長さがセリフの継続時間よりも所定倍以上である場合には、定常モーショングラフに切り替えたり、または、ストロークに対応する音声データのセリフの直後に一定時間の無音区間を挿入したりするようにしてもよい。
【0101】
また、上述した仕草生成システム1を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
【0102】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0103】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。