(57)【要約】【課題】セリフの音声に合わせた自然な仕草の動画像を生成することを図る。【解決手段】セリフのテキストデータであるセリフデータ、該セリフの音声データ、および複数の仕草データの連結性に基づいて該複数の仕草データが連結されたモーショングラフを入力し、該セリフの音声に合わせた仕草データを生成する仕草生成装置であり、セリフの継続時間に基づいてモーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対してセリフの音声に合わせる調整を行う仕草データ生成部１３を備えたことを特徴とする。【選択図】図１
2015032032.tif 000002
【特許請求の範囲】
【請求項１】
セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置であり、
前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行う仕草データ生成部を備えたことを特徴とする仕草生成装置。
【請求項２】
前記仕草データ生成部は、前記選択されたパスの仕草データのストロークに対応する前記セリフ中のキーワードの音声データに対して、前記ストロークの開始タイミングと終了タイミングを合わせる調整を行うことを特徴とする請求項１に記載の仕草生成装置。
【請求項３】
前記仕草データ生成部は、前記セリフの継続時間に前記選択されたパスの仕草データの長さを合わせる調整を行うことを特徴とする請求項２に記載の仕草生成装置。
【請求項４】
前記仕草データ生成部は、前記選択されたパスの仕草データの準備期の終了タイミングを前記ストロークの開始タイミングに合わせるように該準備期の継続時間を伸縮させることを特徴とする請求項３に記載の仕草生成装置。
【請求項５】
前記仕草データ生成部は、前記選択されたパスの仕草データの終了期について、開始タイミングを前記ストロークの終了タイミングに合わせるように、且つ、終了タイミングを前記セリフの音声データ終了タイミングに合わせるように、該終了期の継続時間を伸縮させることを特徴とする請求項３または４のいずれか１項に記載の仕草生成装置。
【請求項６】
前記仕草データ生成部は、前記モーショングラフ内に含まれる仕草データの最初のノードのうち、仕草データの最後のポーズと最も連結性の良いノードを始点ノードにすることを特徴とする請求項１から５のいずれか１項に記載の仕草生成装置。
【請求項７】
前記モーショングラフはカテゴリ別に複数あり、
前記仕草データ生成部は、前記セリフ中のキーワードのカテゴリと同じ前記モーショングラフを使用して前記セリフの音声に合わせた仕草データを生成することを特徴とする請求項１から６のいずれか１項に記載の仕草生成装置。
【請求項８】
前記仕草データ生成部は、前記選択されたパスの仕草データの準備期または終了期のフレームに対して、所定の仕草データの中から似ているフレームで入れ替えることを特徴とする請求項１から７のいずれか１項に記載の仕草生成装置。
【請求項９】
前記仕草データ生成部は、ストロークしかない仕草データに対して、所定の定常ポーズを用いて、ストロークの前と後に一定時間の準備期と終了期を追加することを特徴とする請求項１から８のいずれか１項に記載の仕草生成装置。
【請求項１０】
前記仕草データ生成部は、終了期がない仕草データに対して、準備期のポーズを用いて、ストロークの後に一定時間の終了期を追加することを特徴とする請求項１から８のいずれか１項に記載の仕草生成装置。
【請求項１１】
前記仕草データ生成部は、準備期がない仕草データに対して、終了期のポーズを用いて、ストロークの前に一定時間の準備期を追加することを特徴とする請求項１から８のいずれか１項に記載の仕草生成装置。
【請求項１２】
前記仕草データ生成部は、前記モーショングラフのストロークの長さがセリフの継続時間よりも所定倍以上である場合には、所定の定常モーショングラフに切り替える、または、前記モーショングラフのストロークに対応する音声データのセリフの直後に一定時間の無音区間を挿入する、ことを特徴とする請求項１から１１のいずれか１項に記載の仕草生成装置。
【請求項１３】
請求項１から１２のいずれか１項に記載の仕草生成装置と、
入力仕草データの準備期、ストローク、終了期の各フェーズ境界をノードに設定し、且つ、前記ノード間の連結性に基づいてエッジを設けたモーショングラフを生成するモーショングラフ生成部と、
前記モーショングラフを記憶するモーショングラフデータベースと、
を備えたことを特徴とする仕草生成システム。
【請求項１４】
セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置の仕草生成方法であり、
前記仕草生成装置が、前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行うことを特徴とする仕草生成方法。
【請求項１５】
セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置のコンピュータに、
前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行うステップを実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仕草生成装置、仕草生成システム、仕草生成方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、携帯端末上で動作する音声対話型インタフェースが実現されているが、さらに、擬人化されたエージェントとしてのキャラクタを携帯端末の表示画面上に表示し、このキャラクタに情報に合わせて話したり動いたりさせることが検討されている。例えば、非特許文献１に記載の従来技術では、ＡＰＥ（Automatic Production Engine）を用いたＴＶＭＬ（TV program Making language）による映像コンテンツの自動生成技術として、ニュースや天気予報などの特定のシナリオに使用されるテンプレートを用意することにより、コンピュータ・グラフィックス（ＣＧ）アニメーションを自動生成している。また、電子メールやブログのテキストデータからＣＧアニメーションを自動生成したり（例えば、特許文献１、２参照）、ユーザから入力されたテキストデータに対応する手話をＣＧアニメーションで生成したり（例えば、特許文献３参照）する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−８８３３５号公報
【特許文献２】特開２００８−１０７９０４号公報
【特許文献３】特開２０１１−１７５５９８号公報
【非特許文献】
【０００４】
【非特許文献１】Hayashi, M.; Douke, M.; Hamaguchi, N., ‘Automatic TV program production with APEs,' Creating, Connecting and Collaborating through Computing, 2004. Proceedings. Second International Conference on , vol., no., pp.20,25, 29-30 Jan. 2004
【非特許文献２】McNeill, D. 1992 Hand and Mind. Chicago: University of Chicago Press
【非特許文献３】Hitoshi Isahara, Francis Bond, Kiyotaka Uchimoto, Masao Utiyama and Kyoko Kanzaki, Development of Japanese WordNet. In LREC-2008, Marrakech.
【非特許文献４】Cormen，Thomas H.; Leiserson，Charles E.，Rivest，Ronald L. (1990). Introduction to Algorithms (2st ed.). MIT Press and McGraw-Hill. ISBN 0-262-03141-8. pp. 323-69
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上述した従来技術では、セリフのテキストデータと該セリフの音声データとが与えられた場合に、セリフの音声に合わせた自然なＣＧアニメーションを自動生成することが困難である。特許文献１〜３の従来技術では、テキストデータに合わせたＣＧアニメーションを生成することはできるが、該テキストデータの音声のタイミングに合ったＣＧアニメーションを生成することはできない。また、非特許文献１の従来技術では、同期技術を導入していないため、与えられた音声にＣＧアニメーションのタイミングを合わせることができない。
【０００６】
本発明は、このような事情を考慮してなされたもので、セリフの音声に合わせた自然な仕草の動画像を生成することができる仕草生成装置、仕草生成システム、仕草生成方法およびコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
（１）本発明に係る仕草生成装置は、セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置であり、前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行う仕草データ生成部を備えたことを特徴とする。
【０００８】
（２）本発明に係る仕草生成装置においては、上記（１）の仕草生成装置において、前記仕草データ生成部は、前記選択されたパスの仕草データのストロークに対応する前記セリフ中のキーワードの音声データに対して、前記ストロークの開始タイミングと終了タイミングを合わせる調整を行うことを特徴とする。
【０００９】
（３）本発明に係る仕草生成装置においては、上記（２）の仕草生成装置において、前記仕草データ生成部は、前記セリフの継続時間に前記選択されたパスの仕草データの長さを合わせる調整を行うことを特徴とする。
【００１０】
（４）本発明に係る仕草生成装置においては、上記（３）の仕草生成装置において、前記仕草データ生成部は、前記選択されたパスの仕草データの準備期の終了タイミングを前記ストロークの開始タイミングに合わせるように該準備期の継続時間を伸縮させることを特徴とする。
【００１１】
（５）本発明に係る仕草生成装置においては、上記（３）または（４）の仕草生成装置において、前記仕草データ生成部は、前記選択されたパスの仕草データの終了期について、開始タイミングを前記ストロークの終了タイミングに合わせるように、且つ、終了タイミングを前記セリフの音声データ終了タイミングに合わせるように、該終了期の継続時間を伸縮させることを特徴とする。
【００１２】
（６）本発明に係る仕草生成装置においては、上記（１）から（５）のいずれかの仕草生成装置において、前記仕草データ生成部は、前記モーショングラフ内に含まれる仕草データの最初のノードのうち、仕草データの最後のポーズと最も連結性の良いノードを始点ノードにすることを特徴とする。
【００１３】
（７）本発明に係る仕草生成装置においては、上記（１）から（６）のいずれかの仕草生成装置において、前記モーショングラフはカテゴリ別に複数あり、前記仕草データ生成部は、前記セリフ中のキーワードのカテゴリと同じ前記モーショングラフを使用して前記セリフの音声に合わせた仕草データを生成することを特徴とする。
【００１４】
（８）本発明に係る仕草生成装置においては、上記（１）から（７）のいずれかの仕草生成装置において、前記仕草データ生成部は、前記選択されたパスの仕草データの準備期または終了期のフレームに対して、所定の仕草データの中から似ているフレームで入れ替えることを特徴とする。
【００１５】
（９）本発明に係る仕草生成装置においては、上記（１）から（８）のいずれかの仕草生成装置において、前記仕草データ生成部は、ストロークしかない仕草データに対して、所定の定常ポーズを用いて、ストロークの前と後に一定時間の準備期と終了期を追加することを特徴とする。
【００１６】
（１０）本発明に係る仕草生成装置においては、上記（１）から（８）のいずれかの仕草生成装置において、前記仕草データ生成部は、終了期がない仕草データに対して、準備期のポーズを用いて、ストロークの後に一定時間の終了期を追加することを特徴とする。
【００１７】
（１１）本発明に係る仕草生成装置においては、上記（１）から（８）のいずれかの仕草生成装置において、前記仕草データ生成部は、準備期がない仕草データに対して、終了期のポーズを用いて、ストロークの前に一定時間の準備期を追加することを特徴とする。
【００１８】
（１２）本発明に係る仕草生成装置においては、上記（１）から（１１）のいずれかの仕草生成装置において、前記仕草データ生成部は、前記モーショングラフのストロークの長さがセリフの継続時間よりも所定倍以上である場合には、所定の定常モーショングラフに切り替える、または、前記モーショングラフのストロークに対応する音声データのセリフの直後に一定時間の無音区間を挿入する、ことを特徴とする。
【００１９】
（１３）本発明に係る仕草生成システムは、上記（１）から（１２）のいずれかの仕草生成装置と、入力仕草データの準備期、ストローク、終了期の各フェーズ境界をノードに設定し、且つ、前記ノード間の連結性に基づいてエッジを設けたモーショングラフを生成するモーショングラフ生成部と、前記モーショングラフを記憶するモーショングラフデータベースと、を備えたことを特徴とする。
【００２０】
（１４）本発明に係る仕草生成方法は、セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置の仕草生成方法であり、前記仕草生成装置が、前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行うことを特徴とする。
【００２１】
（１５）本発明に係るコンピュータプログラムは、セリフのテキストデータであるセリフデータ、前記セリフの音声データ、および複数の仕草データの連結性に基づいて前記複数の仕草データが連結されたモーショングラフを入力し、前記セリフの音声に合わせた仕草データを生成する仕草生成装置のコンピュータに、前記セリフの継続時間に基づいて前記モーショングラフ上の最小コストのパスを選択し、該選択されたパスの仕草データに対して前記セリフの音声に合わせる調整を行うステップを実行させるためのコンピュータプログラムであることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、セリフの音声に合わせた自然な仕草の動画像を生成することができるという効果が得られる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態に係る仕草生成システム１の構成を示すブロック図である。
【図２】本発明の一実施形態に係る仕草データの定義例の概略図である。
【図３】本発明の一実施形態に係るモーショングラフ生成方法の流れを示す概念図である。
【図４】本発明の一実施形態に係るブレンディング処理の概念図である。
【図５】本発明の一実施形態に係るブレンディング処理を説明するための概念図である。
【図６】本発明の一実施形態に係る仕草データ生成方法の流れを示すフローチャートである。
【図７】本発明の一実施形態に係る仕草データ調整方法の説明図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照し、本発明の実施形態について説明する。
図１は、本発明の一実施形態に係る仕草生成システム１の構成を示すブロック図である。図１において、仕草生成システム１は、仕草生成装置１０とモーショングラフ生成部２０とモーショングラフデータベース３０を有する。仕草生成装置１０は、モーショングラフデータベース３０を使用して、入力データ（セリフデータ、音声データ）のセリフの音声に合わせた仕草データを生成し、生成した仕草データを出力する。モーショングラフ生成部２０は、入力仕草データを使用して、モーショングラフを生成する。モーショングラフデータベース３０は、モーショングラフ生成部２０により生成されたモーショングラフを記憶する。
【００２５】
ここで、本実施形態に係る仕草データを説明する。仕草データは、人や動物などの動きを表す動きデータである。特には、仕草データは、仕草と呼ばれる動きを表す動きデータである。一般的に、仕草は、準備期（preparation）に始まって実行期（ストローク（stroke））を経て終了期（retraction）で終わる一連の３つのフェーズの動きから構成される（例えば、非特許文献２参照）。準備期は、仕草の最初のポーズ（以下、定常ポーズと称する）からストロークが始まるまでのフェーズである。例えば、準備期として、人の手が置かれていた位置（定常ポーズ）からストロークが始まるまでの動きが挙げられる。ストロークは、仕草の主なフェーズである。例えば、ストロークとして、人の手の強い振りの動きが挙げられる。終了期は、ストロークの後に仕草の最後のポーズになるフェーズである。例えば、終了期として、ストロークの後に定常ポーズに戻ることが挙げられる。なお、準備期と終了期は、必須ではなく、なくてもよい。
【００２６】
図２は、本実施形態に係る仕草データの定義例の概略図である。図２の例では、仕草データとして、人体のスケルトン型動きデータを使用している。人体のスケルトン型動きデータは、人の骨格を基に、骨及び骨の連結点（ジョイント）を用い、一ジョイントを根（ルート）とし、ルートからジョイント経由で順次連結される骨の構造を木（ツリー）構造として定義される。図２には、スケルトン型動きデータの定義の一部分のみを示している。図２において、ジョイント１００は腰の部分であり、ルートとして定義される。ジョイント１０１は左腕の肘の部分、ジョイント１０２は左腕の手首の部分、ジョイント１０３は右腕の肘の部分、ジョイント１０４は右腕の手首の部分、ジョイント１０５は左足の膝の部分、ジョイント１０６は左足の足首の部分、ジョイント１０７は右足の膝の部分、ジョイント１０８は右足の足首の部分、ジョイント１０９は鎖骨の部分、ジョイント１１０、１１１は肩の部分、ジョイント１１２は頭の部分、ジョイント１１３、１１４は股関節の部分、である。
【００２７】
スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであり、スケルトン型対象物としては人体や動物などが適用可能である。スケルトン型動きデータは、例えばモーションキャプチャデータに基づいて生成される。
【００２８】
本実施形態では、仕草データとして図２に例示される人体のスケルトン型動きデータを使用する。仕草データは、人の一連の動きを複数の姿勢（ポーズ）の連続により表すものである。一つのポーズは、一つのフレームに対応し、全ての関節（ジョイント）の位置情報を記録する。一つのフレームｘ（ｔ）は、式（１）で表される。
【００２９】
【数１】
2015032032.tif 000003
【００３０】
但し、pｋ（ｔ）は、時刻ｔにおけるｋ番目のジョイントの位置であり、３次元座標で表される。時刻ｔはフレームの時刻である。Ｋはジョイントの数である。したがって、ｘ（ｔ）は３Ｋ次元のベクトルである。
【００３１】
Ｔ個のフレームからなる仕草データＸは、式（２）で表される。
【００３２】
【数２】
2015032032.tif 000004
【００３３】
Ｘは３Ｋ×Ｔの行列である。本実施形態では、時刻ｔを単に「フレームインデックス」として扱う。これにより、時刻ｔは、「０，１，２，・・・，Ｔ−１」の値をとる。Ｔは、仕草データに含まれるフレームの個数である。
【００３４】
また、他のフレームの定義例として、基本ポーズからの移動量をジョイント毎に表すことも可能である。一フレームは、基本ポーズに対して各ジョイントの移動量が加味された一ポーズを特定する。これにより、各フレームによって特定される各ポーズの連続により、人の一連の動きが特定される。この場合、移動量として角度情報を利用する。そして、角度情報データ内の基本ポーズデータとフレームデータを用いて、ジョイント位置を算出する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなど、基本ポーズを特定する情報を有する。フレームデータは、ジョイント毎に、基本ポーズからの移動量を表す角度情報を有する。時刻ｔにおけるｋ番目のジョイントの位置pｋ（ｔ）は、式（３）および式（４）により算出される。
【００３５】
【数３】
2015032032.tif 000005
【００３６】
【数４】
2015032032.tif 000006
【００３７】
但し、０番目（ｉ＝０）のジョイントはルートである。Ｒａｘｉｓｉ−１，ｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント（「ｉ−１」番目のジョイント）間の座標回転マトリックスであり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が定義されており、座標回転マトリックスは親子関係にあるジョイント間のローカル座標系の対応関係を表す。Ｒｉ（ｔ）は、ｉ番目のジョイントのローカル座標系におけるｉ番目のジョイントの回転マトリックスであり、フレームデータに含まれる角度情報である。Ｔｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント間の遷移マトリックスであり、基本ポーズデータに含まれる。遷移マトリックスは、ｉ番目のジョイントとその親ジョイント間の骨の長さを表す。
【００３８】
以上が仕草データの説明である。説明を図１に戻す。
【００３９】
［モーショングラフ生成部］
モーショングラフ生成部２０には、入力仕草データが入力される。入力仕草データは、仕草データとメタデータを有する。該メタデータは、仕草データのカテゴリを示すカテゴリ識別子（カテゴリＩＤ）と、仕草データを仕草の３つのフェーズに区分するフェーズ識別子（フェーズＩＤ）とを有する。フェーズＩＤは、準備期を示す「Ｐ」、ストロークを示す「Ｓ」、終了期を示す「Ｒ」である。フェーズＩＤによって、仕草データの準備期、ストローク、終了期が特定される。
【００４０】
仕草データをカテゴリに分類する方法の例を以下に説明する。利用可能なセリフ集合に対して、セリフのテキストを形態素解析してキーワードを抽出する。そして、各キーワードに対して、概念辞書（意味辞書）を用いてカテゴリのラベルを付ける。概念辞書として、例えば非特許文献３に記載される「WordNet」を利用可能である。例えば、「おはよう」、「おはようございます」、「こんにちは」、「こんばんは」といったキーワードに対して、「挨拶」というカテゴリのカテゴリＩＤを付ける。これにより、セリフ集合に対してカテゴリ集合を作成する。次いで、利用可能な仕草データ集合に含まれる各仕草データに対して、カテゴリ集合に含まれるカテゴリのカテゴリＩＤを付ける。この仕草データに対するカテゴリＩＤの付与は、人手により行われる。例えば、「お辞儀」の仕草データに対して「挨拶」のカテゴリＩＤを付ける。
【００４１】
仕草データに対して仕草の３つのフェーズ（準備期、ストローク、終了期）に区分することは人手により行われる。この区分に従って、仕草データに対して、フェーズＩＤ「Ｐ（準備期）」、「Ｓ（ストローク）」、「Ｒ（終了期）」が付与される。但し、仕草データによっては、準備期または終了期がない場合がある。
【００４２】
モーショングラフ生成部２０は、入力仕草データを使用してモーショングラフを生成する。モーショングラフは、カテゴリ別に生成される。したがって、ある一つのカテゴリのモーショングラフの生成には、当該カテゴリのカテゴリＩＤが付された入力仕草データのみが使用される。
【００４３】
図３は、本実施形態に係るモーショングラフ生成方法の流れを示す概念図である。以下、図３を参照して、モーショングラフ生成部２０がモーショングラフを生成する動作を説明する。
【００４４】
［フレーム抽出ステップ］
まず、フレーム抽出ステップにおいて、モーショングラフ生成対象カテゴリの全ての入力仕草データから、仕草データのフェーズ境界に該当するフレームを全て抽出する。この抽出されたフェーズ境界のフレームの集合をＦｉＡＬＬＢと表す。
【００４５】
［連結性算出ステップ］
次いで、連結性算出ステップにおいて、集合ＦｉＡＬＬＢに含まれる全フレームをそれぞれ、モーショングラフのノードに設定する。従って、モーショングラフのノード数の初期値は、集合ＦｉＡＬＬＢに含まれるフレームの個数に一致する。次いで、全ノードを対象とした全てのペアについて、式（５）又は式（６）により距離を算出する。あるノードＦｉＢとあるノードＦｊＢとの距離をｄ（ＦｉＢ，ＦｊＢ）と表す。
【００４６】
【数５】
2015032032.tif 000007
【００４７】
但し、ｑｉ，ｋはノードＦｉＢのｋ番目のジョイントの四元数（quaternion）である。ｗｋはｋ番目のジョイントに係る重みである。重みｗｋは予め設定される。
【００４８】
【数６】
2015032032.tif 000008
【００４９】
但し、ｐｉ，ｋはノードＦｉＢのｋ番目のジョイントのルートに対する相対位置のベクトルである。つまり、ｐｉ，ｋは、ルートの位置と方向は考えずに算出したノードＦｉＢのｋ番目のジョイントの位置のベクトルである。
【００５０】
なお、ノード間の距離は、対象ノードにおけるポーズを構成する各ジョイントの位置、速度、加速度、角度、角速度、角加速度などの物理量の差分の重み付き平均として算出することができる。
【００５１】
次いで、式（７）式により、連結性を算出する。あるノードＦｉＢとあるノードＦｊＢとの連結性をｃ（ＦｉＢ，ＦｊＢ）と表す。
【００５２】
【数７】
2015032032.tif 000009
【００５３】
但し、ｄ（ＦｉＢ）はノードＦｉＢの前フレームと後フレームの間の距離である（式（５）又は式（６）と同様の計算式で算出する）。ＴＨは予め設定される閾値である。
【００５４】
連結性ｃ（ＦｉＢ，ＦｊＢ）が１である場合、ノードＦｉＢのポーズとノードＦｊＢのポーズは似ていると判断できる。連結性ｃ（ＦｉＢ，ＦｊＢ）が０である場合、ノードＦｉＢのポーズとノードＦｊＢのポーズは似ているとは判断できない。
【００５５】
［モーショングラフ構築ステップ］
次いで、モーショングラフ構築ステップにおいて、連結性ｃ（ＦｉＢ，ＦｊＢ）が１である場合、ノードＦｉＢとノードＦｊＢの間に双方向のエッジを設ける。連結性ｃ（ＦｉＢ，ＦｊＢ）が０である場合には、ノードＦｉＢとノードＦｊＢの間に双方向のエッジを設けない。
【００５６】
次いで、同じ仕草データの中で隣接するノード間には、単方向のエッジを設ける。単方向のエッジは、時間的に前のノードから後のノードへ向かう。
【００５７】
次いで、双方向エッジの両端のノードに係る仕草データに対して、ブレンディング（blending）処理を行う。ブレンディング処理は、双方向エッジの方向ごとに、それぞれ行う。従って、一つの双方向エッジに対して、図４（１），（２）に示されるように、２つのブレンディング処理を行うことになる。図４は、ノードｉとノードｊの間の双方向エッジに係るブレンディング処理の概念図である。図４（１）はノードｉからノードｊへ向かう方向に係るブレンディング処理を表し、図４（２）はノードｊからノードｉへ向かう方向に係るブレンディング処理を表す。
【００５８】
図５は、ブレンディング処理を説明するための概念図であり、図４（１）に対応している。ここでは、図５を参照し、図４（１）に示されるノードｉからノードｊへ向かう方向に係るブレンディング処理を例に挙げて説明する。
【００５９】
ブレンディング処理では、ノードｉを有する仕草データ１とノードｊを有する仕草データ２に対して、動きのつながりが不自然にならないように、両者の仕草データの接続部分を混合した補間データ（ブレンディングデータ）１＿２を生成する。本実施形態では、一定時間分のフレームを使用しクォータニオンによる球面線形補間を利用して連結部分を補間する。具体的には、仕草データ１と仕草データ２を接続する接続区間（区間長ｍ、但し、ｍは所定値）のブレンディングデータ１＿２を、仕草データ１のノードｉを中心に周りの区間長ｍのデータ１＿ｍと仕草データ２のノードｊを中心に区間長ｍのデータ２＿ｍを用いて生成する。
【００６０】
このとき、接続区間の区間長ｍに対する接続区間の先頭からの距離ｕの比（ｕ／ｍ）に応じて、データ１＿ｍのうち距離ｕに対応するフレームｉとデータ２＿ｍのうち距離ｕに対応するフレームｊを混合する。具体的には、式（８）および式（９）により、ブレンディングデータ１＿２を構成する各フレームを生成する。なお、式（８）は、ある一つの骨についての式となっている。
【００６１】
【数８】
2015032032.tif 000010
【００６２】
【数９】
2015032032.tif 000011
【００６３】
但し、ｍはブレンディング動きデータ１＿２を構成するフレーム（ブレンディングフレーム）の総数（所定値）、ｕはブレンディングフレームの先頭からの順番（１≦ｕ≦ｍ）、ｑ（ｋ，ｕ）はｕ番目のブレンディングフレームにおける第ｋ骨の四元数、ｑ（ｋ，ｉ）はフレームｉにおける第ｋ骨の四元数、ｑ（ｊ）はフレームｊにおける第k骨の四元数、である。但し、ルートにはブレンディングを行わない。なお、式（９）はslerp（spherical linear interpolation）の算出式である。
【００６４】
ブレンディングデータ１＿２は、仕草データ１と仕草データ２の接続部分のデータとする。
【００６５】
次いで、モーショングラフからデッドエンド（Dead end）を除去する。デッドエンドとは次数が１であるノードのことである。なお、モーショングラフにおいて、ノードに接続するエッジの数のことを次数という。また、ノードに入ってくるエッジの数のことを入次数、ノードから出て行くエッジの数のことを出次数という。モーショングラフからデッドエンドを除去すると、新たなデッドエンドが発生する可能性があるが、デッドエンドがなくなるまでデッドエンド除去を繰り返す。
【００６６】
次いで、モーショングラフの各エッジにメタデータを付ける。双方向のエッジに対して、当該エッジに係るノードＦｉＢとノードＦｊＢとの距離ｄ（ＦｉＢ，ＦｊＢ）を重みとして付与する。また、単方向のエッジに対して、フェーズＩＤと、当該エッジに係る継続時間をラベルとして付与する。
【００６７】
以上がモーショングラフ生成処理の説明である。これにより、カテゴリ別にモーショングラフが生成される。なお、モーショングラフ生成部２０は、特別なモーショングラフとして、定常モーショングラフを生成する。定常モーショングラフは、特定のカテゴリに属さないモーショングラフである。定常モーショングラフは、特定のカテゴリに限定せず、定常用の仕草データを使用して、上述のモーショングラフ生成処理により同様に生成される。
【００６８】
［モーショングラフデータベース］
モーショングラフデータベース３０は、モーショングラフ生成部２０により生成されたモーショングラフを記憶する。モーショングラフデータベース３０には、カテゴリ別のモーショングラフと、定常モーショングラフとが格納される。
【００６９】
次に、図１に示される仕草生成装置１０について説明する。図１において、仕草生成装置１０は、入力処理部１１とメタデータ生成部１２と仕草データ生成部１３を備える。
【００７０】
仕草生成装置１０には、入力データとして、セリフデータと音声データの組が入力される。セリフデータは、セリフのテキストデータである。音声データは、同じ組のセリフデータのセリフの音声データである。
【００７１】
［入力処理部］
入力処理部１１は、入力データのセリフデータに対して形態素解析を行い、この形態素解析の結果としてキーワード列を出力する。例えば、セリフデータ「じゃあ今日はウォーキングしなきゃね」の形態素解析の結果として、キーワード列「じゃあ｜今日｜は｜ウォーキング｜し｜なきゃ｜ね」を出力する。次いで、入力処理部１１は、音声データとキーワード列の時間上の対応関係を設定する。セリフデータと音声データとの時間上の対応関係は、予め、設定しておく。音声データが合成音声である場合、音声合成時に音声とセリフの対応関係が得られるので、該対応関係を設定する。合成音声以外の音声データ（録音音声）である場合には、人手によって音声とセリフの対応関係を設定する。次いで、入力処理部１１は、セリフの継続時間を記録する。
【００７２】
［メタデータ生成部］
メタデータ生成部１２は、入力処理部１１により出力されたキーワード列の各キーワードに対して、概念辞書を用いてカテゴリのラベルを付ける。概念辞書として、例えば非特許文献３に記載される「WordNet」を利用可能である。次いで、メタデータ生成部１２は、キーワード毎に、モーショングラフデータベース３０から、同じカテゴリのモーショングラフを選択する。この結果、複数のモーショングラフが選択された場合には、いずれか一つのモーショングラフを選択する。例えば、無作為に一つのモーショングラフを選択する。一方、モーショングラフが一つも選択されなかった場合には、定常モーショングラフを選択する。
【００７３】
次いで、メタデータ生成部１２は、仕草のストロークのタイミングを決定する。具体的には、メタデータ生成部１２は、選択したモーショングラフに対して同じカテゴリのキーワードの開始タイミングと終了タイミングをストロークのタイミングに設定する。但し、定常モーショングラフが選択された場合には、定常モーショングラフに対してストロークのタイミングを無限大にする（特に定めない）。
【００７４】
メタデータ生成部１２は、音声データとキーワード列の時間上の対応関係の情報と、セリフの継続時間の情報と、モーショングラフの情報と、該モーショングラフに対するストロークのタイミングの情報と、をメタデータとする。
【００７５】
なお、ユーザが、オーサリングツールを用いて、手作業により、入力データ（セリフデータ、音声データ）に対して、該メタデータを生成するようにしてもよい。この場合、ユーザが、モーショングラフの選択、該モーショングラフのストロークに対応させるキーワードの選択（ストロークのタイミングの設定）、音声データとキーワード列の時間上の対応関係の設定などを任意に行う。
【００７６】
［仕草データ生成部］
仕草データ生成部１３は、メタデータ生成部１２により生成されたメタデータを用いて、セリフの音声に合わせた仕草データを生成する。図６は、本実施形態に係る仕草データ生成方法の流れを示すフローチャートである。以下、図６を参照して、仕草データ生成部１３が仕草データを生成する動作を説明する。
【００７７】
（ステップＳ１１）仕草データ生成部１３は、モーショングラフから仕草データの始点となるノードを選択する。例えば、モーショングラフ内のノードであって、仕草データの最初のノードのうち、仕草データの最後のポーズと最も距離が小さい（連結性の良い）ノードを始点ノードにする。
【００７８】
（ステップＳ１２）仕草データ生成部１３は、モーショングラフ上の始点ノードからの最適パスを探索し、最小コストのパスを選択する。このパス探索方法には、非特許文献４に記載されるパス探索技術を用いる。非特許文献４に記載されるパス探索技術は、始点からダイナミックプログラミングで最適なパスを探索するものである。以下、最適パス探索ステップの詳細を説明する。
【００７９】
まず、始点ノードｕからモーショングラフ上の全てのノードｉまでの各パスのコストを式（１０）により算出する。始点ノードｕに係る最初の最短パス算出操作は第１回の操作である。
【００８０】
【数１０】
2015032032.tif 000012
【００８１】
但し、ｓｈｏｒｔｅｓｔＰａｔｈ（ｉ，１）は、第１回の最短パス算出操作による、始点ノードｕからノードｉまでのパスのコストである。ｅｄｇｅＣｏｓｔ（ｕ，ｉ）はノードｕからノードｉまでのエッジコストである。エッジコストは毎回計算される。エッジコストの計算式は式（１１）である。
【００８２】
【数１１】
2015032032.tif 000013
【００８３】
なお、定常モーショングラフのエッジコストの計算式は式（１２）である。
【００８４】
【数１２】
2015032032.tif 000014
【００８５】
次いで、第２回目以降の第ｋ回の最短パス算出操作では、式（１３）により、始点ノードｕからモーショングラフ上の全てのノードｖまでの最適パスのコストを算出する。
【００８６】
【数１３】
2015032032.tif 000015
【００８７】
但し、Ｖはモーショングラフ上のノードの集合である。ｓｈｏｒｔｅｓｔＰａｔｈ（ｖ，ｋ）は、第ｋ回の最短パス算出操作による、始点ノードｕからノードｖまでの最適パスのコストである。ｅｄｇｅＣｏｓｔ（ｉ，ｖ）はノードｉからノードｖまでのエッジコストである。
【００８８】
この式（１３）を用いた第２回目以降の最短パス算出操作は、最適パス探索の終了条件を満たすまで行う。
【００８９】
（ステップＳ１３）仕草データ生成部１３は、最適パス探索の終了条件の判定を行う。最適パス探索の終了条件（ａ）〜（ｄ）を以下に示す。
（ａ）モーショングラフ内の最後のノード以外でパス長が所定フレーム数Ｎ（セルフの継続時間に対応）を超えた場合には「超過」として当該探索結果のパスを破棄する。
（ｂ）モーショングラフ内の最後のノードに到達した場合、当該探索結果のパスを最適パス候補として保存する。
（ｃ）最適パス候補の中から、パス長と所定フレーム数Ｎの差が所定範囲内である最適パス候補を抽出する。この抽出された最適パス候補として、パス長が所定フレーム数Ｎ未満であるものと、パス長が所定フレーム数Ｎ超過であるものとがある場合には、パス長が所定フレーム数Ｎ未満である最適パス候補を選択する。
（ｄ）上記（ｃ）で選択された最適パス候補が複数ある場合には、コストが最小である最適パス候補を最適パスとする。
【００９０】
（ステップＳ１４）上記最適パス探索の終了条件（ａ）〜（ｄ）を満たした場合にはステップＳ１５に進む。一方、上記最適パス探索の終了条件（ａ）〜（ｄ）を満たさない場合にはステップＳ１２に戻る。
【００９１】
（ステップＳ１５）仕草データ生成部１３は、選択した最適パスに基づいて、モーショングラフから最適パスに対応する仕草データを特定する。次いで、仕草データ生成部１３は、該最適パスに対応する仕草データに対して、セリフの音声に合わせる調整を行う。図７は、本実施形態に係る仕草データ調整方法の説明図である。図７を参照して本実施形態に係る仕草データ調整方法を以下に説明する。
【００９２】
図７に示されるように、調整前の仕草データにおいて、ストロークのタイミングは対応するキーワード「ウォーキング」の音声データのタイミングと合っていない。このため、まず、ストロークの開始タイミングを対応キーワード「ウォーキング」の音声データ開始タイミングに合わせるように移動させる。次いで、ストロークの継続時間を、対応キーワード「ウォーキング」のの音声データ終了タイミングに合わせるように伸縮させる。この伸縮率の範囲は、不自然にならないように、予め設定しておく。
【００９３】
次いで、準備期を調整する。準備期の開始タイミングはセリフの音声データ開始タイミングと一致しているので、準備期の終了タイミングをストロークの開始タイミングに合わせるように準備期の継続時間を伸縮させる。この伸縮率の範囲は、不自然にならないように、予め設定しておく
【００９４】
次いで、終了期を調整する。終了期について、開始タイミングをストロークの終了タイミングに合わせるように、且つ、終了タイミングをセリフの音声データ終了タイミングに合わせるように、終了期の継続時間を伸縮させる。この伸縮率の範囲は、不自然にならないように、予め設定しておく。
【００９５】
（ステップＳ１６）仕草データ生成部１３は、調整後の仕草データに対して、ランダム性の導入処理を行う。このランダム性の導入処理では、事前に短い仕草データ（ランダム仕草データと称する）を複数用意し、準備期または終了期の中にランダム仕草データと似ているフレームがあれば、当該フレームを該似ているランダム仕草データと入れ替える。具体的には、式（６）により各ランダム仕草データの第一フレームと準備期または終了期の各フレームとの距離を算出する。そして、距離算出対象フレームと距離算出対象ランダム仕草データに関して算出された距離が閾値以下である場合に、準備期または終了期の該距離算出対象フレームから該距離算出対象ランダム仕草データの継続時間分のフレームまでを該距離算出対象ランダム仕草データで入れ替える。図７の例では、準備期および終了期においてランダム仕草データ１０００との入れ替えが行われている。
【００９６】
ランダム仕草データとして、例えば、首をかしげる仕草、体をゆする仕草、舌を出す仕草などが挙げられる。このランダム仕草データで準備期または終了期のフレームを入れ替えることにより、準備期または終了期にアクセントを加えることができる。準備期や終了期はセリフを待っている無音区間である場合があるが、ランダム性の導入処理によって、ユーザに対して該無音区間にアクセントを与え、ユーザにあきさせない効果を得ることができる。
【００９７】
仕草データ生成部１３は、生成した仕草データを入力データ（セリフデータ、音声データ）と共に出力する。この出力された仕草データによって、入力データのセリフの音声に合わせた自然な仕草の動画像を再生することができる。
【００９８】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【００９９】
例えば、仕草データ生成部１３は、ストロークしかない仕草データに対して、所定の定常ポーズを用いて、ストロークの前と後に一定時間の準備期と終了期を追加するようにしてもよい。また、仕草データ生成部１３は、終了期がない仕草データに対して、準備期のポーズを用いて、ストロークの後に一定時間の終了期を追加するようにしてもよい。また、仕草データ生成部１３は、準備期がない仕草データに対して、終了期のポーズを用いて、ストロークの前に一定時間の準備期を追加するようにしてもよい。
【０１００】
また、モーショングラフのストロークの長さがセリフの継続時間よりも所定倍以上である場合には、定常モーショングラフに切り替えたり、または、ストロークに対応する音声データのセリフの直後に一定時間の無音区間を挿入したりするようにしてもよい。
【０１０１】
また、上述した仕草生成システム１を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
【０１０２】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disk）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【０１０３】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【０１０４】
１…仕草生成システム、１０…仕草生成装置、１１…入力処理部、１２…メタデータ生成部、１３…仕草データ生成部、２０…モーショングラフ生成部、３０…モーショングラフデータベース
【図１】
2015032032.tif 000016
【図２】
2015032032.tif 000017
【図３】
2015032032.tif 000018
【図４】
2015032032.tif 000019
【図５】
2015032032.tif 000020
【図６】
2015032032.tif 000021
【図７】
2015032032.tif 000022