(57)【要約】【課題】キャラクタの動きと音声とを精度高く同期させて再生することが可能な情報処理装置を提供する。【解決手段】情報処理装置２は、アバタモデルを記憶した記憶部３４と、被写体の特徴量及び第１タイムスタンプを含む複数の第１パケット、並びに音声データ及び第２タイムスタンプを含む複数の第２パケットを受信する受信部３１と、複数の第１パケットのそれぞれから特徴量を抽出し、特徴量をアバタモデルに入力することにより得られるアバタを表示部に表示させるアバタ出力処理部３３と、複数の第２パケットのそれぞれから音声データを抽出し、音声データに基づいた音声を音声出力部４４に出力させる音声出力処理部３５と、を備え、アバタ出力処理部３３は、複数の第２パケットのそれぞれに含まれる第２タイムスタンプを取得し、第１タイムスタンプ及び第２タイムスタンプに基づいて、音声及びアバタが同期するようにアバタを表示部４３に表示させる。【選択図】図４
2020060898.tif 000002
【特許請求の範囲】
【請求項１】
撮像部により生成された動画データから所定の第１周期毎に部分動画データを抽出する部分動画データ抽出部と、
前記部分動画データに含まれる被写体の特徴量を抽出する特徴量抽出部と、
前記部分動画データが前記部分動画データ抽出部により抽出された時刻に応じた第１タイムスタンプを生成する第１タイムスタンプ部と、
前記特徴量及び前記第１タイムスタンプを含む第１パケットを生成しこれを送信する第１パケット生成部と、
音声入力部により生成された音声データから所定の第２周期毎に部分音声データを抽出する部分音声データ抽出部と、
前記部分音声データが前記部分音声データ抽出部により抽出された時刻に応じた第２タイムスタンプを生成する第２タイムスタンプ部と、
前記部分音声データ及び前記第２タイムスタンプを含む第２パケットを生成しこれを送信する第２パケット生成部と、
を備える情報処理装置。
【請求項２】
前記特徴量は、前記被写体に含まれる少なくとも一の部位の特徴量である、請求項１に記載の情報処理装置。
【請求項３】
前記少なくとも一の部位は、前記被写体の顔に含まれる部位である、請求項２に記載の情報処理装置。
【請求項４】
前記音声データは、前記被写体から発せられる音声のデータを含む、請求項１〜３のいずれか一項に記載の情報処理装置。
【請求項５】
記憶部を備えるコンピュータに、
撮像部により生成された動画データから所定の第１周期毎に部分動画データを抽出する部分動画データ抽出部と、
前記部分動画データに含まれる被写体の特徴量を抽出する特徴量抽出部と、
前記部分動画データが前記部分動画データ抽出部により抽出された時刻に応じた第１タイムスタンプを生成する第１タイムスタンプ部と、
前記特徴量及び前記第１タイムスタンプを含む第１パケットを生成しこれを送信する第１パケット生成部と、
音声入力部により生成された音声データから所定の第２周期毎に部分音声データを抽出する部分音声データ抽出部と、
前記部分音声データが前記部分音声データ抽出部により抽出された時刻に応じた第２タイムスタンプを生成する第２タイムスタンプ部と、
前記部分音声データ及び前記第２タイムスタンプを含む第２パケットを生成しこれを送信する第２パケット生成部と、
を実現させるためのプログラム。
【請求項６】
アバタモデルを記憶した記憶部と、
被写体の特徴量及び第１タイムスタンプを含む複数の第１パケット、並びに音声データ及び第２タイムスタンプを含む複数の第２パケットを受信する受信部と、
前記複数の第１パケットのそれぞれから前記特徴量を抽出し、前記特徴量を前記アバタモデルに入力することにより得られるアバタを表示部に表示させるアバタ出力処理部と、
前記複数の第２パケットのそれぞれから前記音声データを抽出し、前記音声データに基づいた音声を音声出力部に出力させる音声出力処理部と、を備え、
前記アバタ出力処理部は、前記複数の第２パケットのそれぞれに含まれる前記第２タイムスタンプを取得し、前記第１タイムスタンプ及び前記第２タイムスタンプに基づいて、音声及びアバタが同期するようにアバタを前記表示部に表示させる、情報処理装置。
【請求項７】
記憶部を備えるコンピュータに、
被写体の特徴量及び第１タイムスタンプを含む複数の第１パケット、並びに音声データ及び第２タイムスタンプを含む複数の第２パケットを受信する受信部と、
前記複数の第１パケットのそれぞれから前記特徴量を抽出し、前記特徴量をアバタモデルに入力することにより得られるアバタを表示部に表示させるアバタ出力処理部と、
前記複数の第２パケットのそれぞれから前記音声データを抽出し、前記音声データに基づいた音声を音声出力部に出力させる音声出力処理部と、を実現させるためのプログラムであって、
前記アバタ出力処理部は、前記複数の第２パケットのそれぞれに含まれる前記第２タイムスタンプを取得し、前記第１タイムスタンプ及び前記第２タイムスタンプに基づいて、音声及びアバタが同期するようにアバタを前記表示部に表示させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来から、個人の顔を撮像した画像データ等から抽出した特徴量をアバタモデルに適用して、個人の顔の表情を反映したアバタを表示させることが行われている。例えば、特許文献１には、個人の顔の表情を示すデータをモーションデータストリームから抽出する顔認識コンポーネントと、当該個人の顔の表情を示すデータに基づいて、個人の顔の表情を反映するようにキャラクタをアニメーションするレンダーコンポーネントとを備えるシステムが開示されている。当該システムにより、個人の表情が反映されたキャラクタをディスプレイに表示させることが可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１３−５３５０５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載のシステムにおいて、臨場感を向上させるために、更に個人が発する音声データをデータストリームに追加し、キャラクタを表示させながら当該音声データに基づく音声を出力させることも考えられる。しかしながら、キャラクタの動きと音声とを精度高く同期させて再生させることは困難であった。
【０００５】
そこで、本発明は、キャラクタの動きと音声とを精度高く同期させて再生することが可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る情報処理装置は、アバタモデルを記憶した記憶部と、被写体の特徴量及び第１タイムスタンプを含む複数の第１パケット、並びに音声データ及び第２タイムスタンプを含む複数の第２パケットを受信する受信部と、複数の第１パケットのそれぞれから特徴量を抽出し、特徴量をアバタモデルに入力することにより得られるアバタを表示部に表示させるアバタ出力処理部と、複数の第２パケットのそれぞれから音声データを抽出し、音声データに基づいた音声を音声出力部に出力させる音声出力処理部と、を備え、アバタ出力処理部は、複数の第２パケットのそれぞれに含まれる第２タイムスタンプを取得し、第１タイムスタンプ及び第２タイムスタンプに基づいて、音声及びアバタが同期するようにアバタを表示部に表示させる、情報処理装置。
【０００７】
この態様によれば、キャラクタの動きと音声とを精度高く同期させて再生することが可能となる。
【発明の効果】
【０００８】
本発明によれば、キャラクタの動きと音声とを精度高く同期させて再生することが可能な情報処理装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係るアバタ操作システム１の一例を示すネットワーク構成図である。
【図２】第１実施形態に係るユーザ端末２Ａの機能上の構成を示すブロック図である。
【図３】送信処理部の機能モジュールを示す概略構成図である。
【図４】受信処理部の機能モジュールを示す概略構成図である。
【図５Ａ】表情パケットのデータ構造を示す概略構成図である。
【図５Ｂ】音声パケットのデータ構造を示す概略構成図である。
【図６】サーバ装置３の機能上の構成を示すブロック図である。
【図７】初期設定処理を説明するための動作シーケンス図である。
【図８】アバタ操作処理を説明するための動作シーケンス図である。
【図９】表情パケット生成処理を説明するための動作フロー図である。
【図１０】音声パケット生成処理を説明するための動作フローである。
【図１１】音声出力処理を説明するための動作フローである。
【図１２】アバタ表示処理を説明するための動作フローである。
【発明を実施するための形態】
【００１０】
添付図面を参照して、本発明の好適な実施形態について説明する。（なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。）
【００１１】
［第１実施形態］
（１）構成
（１−１）アバタ操作システム１
図１は、第１実施形態に係るアバタ操作システム１の一例を示すネットワーク構成図である。
【００１２】
図１に示すとおり、アバタ操作システム１は、ユーザ端末２Ａと、ユーザ端末２Ｂと、サーバ装置３とを備える。サーバ装置３は、インターネット等の通信ネットワークを介して、ユーザ端末２Ａ及び２Ｂそれぞれに通信可能に接続されている。以下では、ユーザ端末２Ａ、２Ｂ等をまとめて「ユーザ端末２」と総称する場合がある。
【００１３】
アバタ操作システム１では、一のユーザ端末２が他のユーザ端末２に被写体の特徴量を送信し、当該他のユーザ端末２が受信した特徴量を所定のアバタモデルに適用することにより、他のユーザ端末２においてアバタ（キャラクタ）が出力される。以下では、被写体の特徴量を送信する装置ないし機能を「トラッカー」と称し、被写体の特徴量を受信してアバタを出力する装置ないし機能を「ビューワー」と称する場合がある。
【００１４】
（１−２）ユーザ端末
図２は、第１実施形態に係るユーザ端末２Ａの機能上の構成を示すブロック図である。以下では、ユーザ端末２Ａは、トラッカー及びビューワーの双方の機能を有するものとして説明するが、ユーザ端末２Ａは、トラッカー及びビューワーのいずれか一方の機能のみを有していてもよい。なお、ユーザ端末２Ｂも、ユーザ端末２Ａと同様の構成を有するため、説明を省略する。
【００１５】
ユーザ端末２Ａは、情報処理装置の一例であって、例えば、ＲＯＭやＲＡＭ等のメモリと、ＣＰＵ等のプロセッサとを備えるコンピュータによって構成される。ユーザ端末２Ａのメモリには、コンピュータプログラムやデータ等が格納される。コンピュータプログラムは、例えばＣＤ−ＲＯＭ等のコンピュータ読み取り可能な可搬型記録媒体からユーザ端末２Ａのメモリにインストールされてもよいし、通信ネットワークを介して他の情報処理装置からダウンロードされることによりユーザ端末２Ａのメモリにインストールされてもよい。ユーザ端末２Ａのプロセッサは、ユーザ端末２Ａのメモリに記憶されたコンピュータプログラム等に基づいて、ユーザ端末２Ａの各部の動作を統括的に制御する。
【００１６】
ユーザ端末２Ａは、例えば、ユーザ端末設定処理部１０と、送信処理部２０と、受信処理部３０と、撮像部４１と、音声入力部４２と、表示部４３と、音声出力部４４とを備える。ユーザ端末設定処理部１０と、送信処理部２０と、受信処理部３０とは、ユーザ端末２Ａのメモリに記憶されたプログラム等に基づいて、ユーザ端末２Ａが備えるプロセッサにより実現される機能モジュールである。撮像部４１と、音声入力部４２と、表示部４３と、音声出力部４４とは、それぞれ、ユーザ端末２Ａの外部に設けられていてもよい。
【００１７】
ユーザ端末設定処理部１０は、後述するように、サーバ装置３と通信を行い、ルームＩＤやクライアントＩＤ等に係る種々の設定処理を行う。
【００１８】
送信処理部２０は、トラッカー機能を実現する機能モジュールの一例であって、撮像部４１により生成された動画データに基づいて表情パケット（第１パケット）を生成し、当該表情パケットを他の情報処理装置に送信する。また、送信処理部２０は、音声入力部４２により生成された音声データに基づいて音声パケット（第２パケット）を生成し、当該音声パケットを他の情報処理装置に送信する。
【００１９】
受信処理部３０は、ビューワー機能を実現する機能モジュールの一例であって、他の情報処理装置から表情パケットを受信し、当該表情パケットに基づいて表示部４３にアバタを表示する。また、受信処理部３０は、他の情報処理装置から音声パケットを受信し、当該音声パケットに基づいて音声出力部４４に音声を出力する。
【００２０】
撮像部４１は、例えば、レンズ及び撮像素子により構成され、被写体及び／又は被写体の周囲環境を撮像することにより動画データを生成する。音声入力部４２は、例えば、マイクにより構成され、被写体及び／又は被写体の周囲環境が発する音声に基づいて音声データを生成する。表示部４３は、例えば、液晶ディスプレイや有機ＥＬ（Electro−Luminescence）ディスプレイ等により構成され、画像表示データや動画表示データに基づいて画像や動画を表示する。音声出力部４４は、例えば、スピーカ等により構成され、音声データに基づいて音声を出力する。
【００２１】
（１−２−１）送信処理部
図３は、送信処理部２０の機能モジュールを示す概略構成図である。
【００２２】
上述したとおり、送信処理部２０は、トラッカー機能を実現する機能モジュールの一例である。図３に示すとおり、送信処理部２０は、例えば、表情パケット処理部２１と、音声パケット処理部２２と、動画データバッファ２３と、音声データバッファ２４とを備える。
【００２３】
表情パケット処理部２１は、例えば、部分動画データ抽出部２１１と、特徴量抽出部２１２と、第１タイムスタンプ部２１３と、表情パケット生成部２１４とを備える。
【００２４】
部分動画データ抽出部２１１は、撮像部４１により生成される動画データから、所定の第１周期毎に部分動画データを抽出する。ここで、第１周期の長さは、特に限定されないが、表情パケットの容量に応じて任意に設定してもよく、例えば、１ｍｓ、２ｍｓ、５ｍｓ等であってよい。
【００２５】
特徴量抽出部２１２は、部分動画データから被写体の特徴量を抽出する。ここで、特徴量は、被写体の特徴を示す情報である。特徴量は、被写体に含まれる少なくとも一の部位の特徴量であってよく、被写体の顔に含まれる部位の特徴量であってよい。特徴量は、例えば、被写体の額、眉（右眉、左眉）、目（左目、右目）、鼻、口、耳、頭髪等の特徴量であってよい。
【００２６】
第１タイムスタンプ部２１３は、第１タイムスタンプを生成する。ここで、第１タイムスタンプは、例えば、部分動画データが部分動画データ抽出部２１１により抽出された時刻に応じたタイムスタンプである。第１タイムスタンプは、例えば、部分動画データの開始時刻及び終了時刻の間の任意の時刻（開始時刻及び終了時刻を含む）に応じたタイムスタンプであってもよい。
【００２７】
表情パケット生成部２１４は、特徴量抽出部２１２が抽出した特徴量と、第１タイムスタンプ部２１３が生成した第１タイムスタンプとを含む表情パケット（第１パケット）を生成する。また、表情パケット生成部２１４は、生成した表情パケットを、通信ネットワークを介して他の情報処理装置に送信する。
【００２８】
音声パケット処理部２２は、例えば、部分音声データ抽出部２２１と、第２タイムスタンプ部２２２と、音声パケット生成部２２３とを備える。
【００２９】
部分音声データ抽出部２２１は、音声入力部４２により生成される音声データから、所定の第２周期毎に部分音声データを抽出する。ここで、第２周期の長さは、特に限定されないが、音声パケットの容量に応じて任意に設定してもよく、例えば、３０ｍｓ、６０ｍｓ、１００ｍｓ等であってよい。なお、第１周期の長さと、第２周期の長さは、異なるものであってよい。
【００３０】
第２タイムスタンプ部２２２は、第２タイムスタンプを生成する。ここで、第２タイムスタンプは、例えば、部分音声データが部分音声データ抽出部２２１により抽出された時刻に応じたタイムスタンプである。
【００３１】
音声パケット生成部２２３は、部分音声データ抽出部２２１が抽出した部分音声データと、第２タイムスタンプ部２２２が生成した第２タイムスタンプとを含む音声パケット（第２パケット）を生成する。
【００３２】
（１−２−２）受信処理部
図４は、受信処理部３０の機能モジュールを示す概略構成図である。
【００３３】
上述したとおり、受信処理部３０は、ビューワー機能を実現する機能モジュールの一例である。図４に示すとおり、受信処理部３０は、例えば、受信部３１と、音声バッファ処理部３２Ａと、表情バッファ処理部３２Ｂと、アバタ出力処理部３３と、アバタモデル記憶部３４と、音声出力処理部３５とを備える。
【００３４】
受信部３１は、サーバ装置３等の他の情報処理装置からパケットを受信し、受信したパケットを例えばシーケンスＩＤ等に基づいて並べ替える。
【００３５】
音声バッファ処理部３２Ａ及び表情バッファ処理部３２Ｂは、ユーザ端末２Ａのメモリ及びプロセッサの一部から構成される処理部である。音声バッファ処理部３２Ａは、受信部３１が並べ替えた音声パケットを順次格納することによりバッファリングし、遅延した音声パケットは破棄する。表情バッファ処理部３２Ｂは、受信部３１が並べ替えた表情パケットを順次格納することによりバッファリングし、遅延した表情パケットは破棄する。
【００３６】
アバタ出力処理部３３は、表情バッファ処理部３２Ｂに格納された表情パケットに基づいて、所定の表情パケットから特徴量を抽出することにより再生モーションを設定し、当該再生モーションをアバタモデル記憶部３４に記憶されたアバタモデルに適用することにより、アバタの表示データを生成する。このとき、アバタ出力処理部３３は、音声と同期してアバタを動かすことができるように、音声出力処理部３５から受信している第２タイムスタンプに基づいて再生モーションを設定する。再生モーションの設定方法については後述する。そして、アバタ出力処理部３３は、当該表示データを表示部４３に出力し、表示部４３にアバタを表示させる。
【００３７】
アバタモデル記憶部３４は、ユーザ端末２Ａのメモリの一部であって、アバタモデルが記憶されている。アバタモデルは、例えば特徴量抽出部２１２が抽出した被写体の特徴量を入力すると、当該特徴量に応じた態様のアバタを表示させるための表示データを出力する。アバタは、人間、動物、及び架空の生物等を模したキャラクタや、非生物のオブジェクト、その他任意の態様であってよい。
【００３８】
音声出力処理部３５は、音声バッファ処理部３２Ａに格納された音声パケットから音声データを抽出し、当該音声データに基づいて音声出力部４４から音声を出力する。また、音声出力処理部３５は、音声を出力した音声パケットからタイムスタンプを抽出し、当該タイムスタンプを表情バッファ処理部３２Ｂにフィードバックする。
【００３９】
（１−２−３）パケットのデータ構造
＜表情パケット＞
図５Ａは、表情パケットのデータ構造を示す概略構成図である。
【００４０】
表情パケットは、通信処理にかかる負荷が少ないことから、特にタイムリーなアバタの操作が求められるアバタ操作システム１においては、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）に準拠したデータ構造を有することが好ましい。しかしながら、表情パケットは、例えば、ＴＣＰ（Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）等の他の任意のプロトコルに準拠したデータ構造を有していてもよい。
【００４１】
図５Ａに示すとおり、表情パケットは、例えば、シーケンスＩＤと、パケットタイプと、第１タイムスタンプと、クライアントＩＤと、ルームＩＤと、データ長と、表情データとを含む。
【００４２】
シーケンスＩＤは、パケットを識別するための識別情報である。パケットタイプは、パケットのタイプを示す情報であり、「表情パケット」や「音声パケット」等が示される。第１タイムスタンプは、第１タイムスタンプ部２１３が生成した第１タイムスタンプである。クライアントＩＤは、初期設定処理においてサーバ装置３から提供されるデータであって、クライアントとしてのユーザ端末２Ａに固有の識別情報である。ルームＩＤは、サーバ装置３が設定するルームを識別するための識別情報である。データ長は、パケットのデータ長を示す情報である。表情データは、特徴量抽出部２１２が抽出した被写体の額、眉（右眉、左眉）、目（左目、右目）、鼻、口、耳、頭髪等の特徴量を示すデータである。
【００４３】
＜音声パケット＞
図５Ｂは、音声パケットのデータ構造を示す概略構成図である。
【００４４】
音声パケットは、上述のとおり、ＵＤＰに準拠したデータ構造を有することが好ましいが、ＵＤＰに限らずとも、例えば、ＴＣＰ等の他の任意のプロトコルに準拠したデータ構造を有していてもよい。
【００４５】
図５Ｂに示すとおり、音声パケットは、例えば、シーケンスＩＤと、パケットタイプと、第２タイムスタンプと、クライアントＩＤと、ルームＩＤと、データ長と、音声データとを含む。シーケンスＩＤ、パケットタイプ、クライアントＩＤ、ルームＩＤ、及びデータ長については、表情パケットに含まれるものと同様であるので、説明を省略する。
【００４６】
第２タイムスタンプは、第２タイムスタンプ部２２２が生成した第２タイムスタンプである。音声データは、部分音声データ抽出部２２１が抽出した部分音声データである。
【００４７】
（１−３）サーバ装置
図６は、サーバ装置３の機能上の構成を示すブロック図である。
【００４８】
サーバ装置３は、例えば、ＲＯＭやＲＡＭ等のメモリと、ＣＰＵ等のプロセッサとを備えるコンピュータによって構成される。サーバ装置３のメモリには、コンピュータプログラムやデータ等が格納される。コンピュータプログラムは、例えばＣＤ−ＲＯＭ等のコンピュータ読み取り可能な可搬型記録媒体からサーバ装置３のメモリにインストールされてもよいし、通信ネットワークを介して他の情報処理装置からダウンロードされることによりサーバ装置３のメモリにインストールされてもよい。サーバ装置３のプロセッサは、サーバ装置３のメモリに記憶されたコンピュータプログラム等に基づいて、サーバ装置３の各部の動作を統括的に制御する。
【００４９】
図６に示すとおり、サーバ装置３は、例えば、サーバ装置設定処理部５０と、パケット処理部６０とを備える。サーバ装置設定処理部５０と、パケット処理部６０とは、サーバ装置３のメモリに記憶されたプログラム等に基づいて、サーバ装置３が備えるプロセッサにより実現される機能モジュールである。
【００５０】
サーバ装置設定処理部５０は、ユーザ端末２との間で、ルームＩＤやクライアントＩＤに係る設定処理を行う。
【００５１】
パケット処理部６０は、ユーザ端末２から受信したパケット（表情パケット及び音声パケットを含む）を解析し、所望のユーザ端末２へ送信する。
【００５２】
（２）アバタ操作システム１の処理
（２−１）初期設定処理
図７は、初期設定処理を説明するための動作シーケンス図である。
【００５３】
（Ｓ１０１）
まず、ユーザ端末２のユーザ端末設定処理部１０は、サーバ装置３にルームＩＤリスト要求を送信する。
【００５４】
（Ｓ１０２）
次に、サーバ装置３のサーバ装置設定処理部５０は、サーバ装置３の内部又は外部のメモリからルームＩＤリストを取得し、これをユーザ端末２に送信する。
【００５５】
（Ｓ１０３）
次に、ユーザ端末設定処理部１０は、クライアントＩＤ生成要求をサーバ装置３に送信する。このとき、ユーザ端末設定処理部１０は、例えば、当該クライアントＩＤ生成要求に、ルームＩＤリストから選択されたルームＩＤを含める。
【００５６】
（Ｓ１０４）
次に、サーバ装置設定処理部５０は、クライアントＩＤ生成要求に基づいて、クライアントＩＤを生成する。このとき、サーバ装置設定処理部５０は、生成されたクライアントＩＤを、クライアントＩＤ生成要求に含まれる選択されたルームＩＤに紐付けてサーバ装置３の内部又は外部のメモリに格納する。
【００５７】
（Ｓ１０５）
次に、サーバ装置設定処理部５０は、ユーザ端末２に、生成されたクライアントＩＤを送信する。
【００５８】
（Ｓ１０６）
次に、ユーザ端末設定処理部１０は、サーバ装置３から受信したクライアントＩＤを、ユーザ端末２のメモリに格納する。以上で、初期設定処理が終了する。
【００５９】
（２−２）アバタ操作処理
図８は、アバタ操作処理を説明するための動作シーケンス図である。
【００６０】
ここで、アバタ操作処理においては、一の情報処理装置（トラッカー）が他の情報処理装置（ビューワー）に被写体の特徴量を含むデータを送信し、特徴量に応じたアバタをビューワーに表示させることによって、アバタが操作される。以下では、ユーザ端末２Ａがトラッカーとして、ユーザ端末２Ｂがビューワーとしてそれぞれ機能する場合を例に説明する。
【００６１】
（Ｓ２０１）
まず、トラッカーであるユーザ端末２Ａの送信処理部２０は、パケット生成処理を行い、パケット（表情パケット又は音声パケット）を生成する。パケット生成処理の詳細は後述する。
【００６２】
（Ｓ２０２）
次に、ユーザ端末２Ａの送信処理部２０は、生成したパケットを、通信ネットワークを介してサーバ装置３に送信する。
【００６３】
（Ｓ２０３）
次に、サーバ装置３のパケット処理部６０は、ユーザ端末２Ａから受信したパケットを解析して、当該パケットの送信先を特定する。具体的には、パケット処理部６０は、パケットに含まれるルームＩＤ及びクライアントＩＤを取得し、サーバ装置３の内部又は外部のメモリに格納されたルームＩＤリストを参照して、パケットの送信先を特定する。
【００６４】
（Ｓ２０４）
次に、サーバ装置３のパケット処理部６０は、パケット解析処理の結果に応じて、通信ネットワークを介して、パケットを特定された送信先に送信する。ここでは、送信先として、ビューワーであるユーザ端末２Ｂが特定されるものとする。
【００６５】
（Ｓ２０５）
次に、ビューワーであるユーザ端末２Ｂの受信処理部３０は、サーバ装置３から受信したパケットに基づいて、出力処理を行う。出力処理の詳細は後述する。以上で、アバタ操作処理が終了する。
【００６６】
（２−２−１）パケット生成処理
以下、ユーザ端末２Ａによるパケット生成処理について説明する。パケット生成処理は、表情パケットを生成する表情パケット生成処理と、音声パケットを生成する音声パケット生成処理とを含む。
【００６７】
＜表情パケット生成処理＞
図９は、表情パケット生成処理を説明するための動作フロー図である。
【００６８】
（Ｓ３０１）
まず、撮像部４１は、被写体を撮像することにより動画データ（時系列的に連続した複数の画像データ）を生成し、当該動画データを動画データバッファ２３に格納する（バッファリングする）。
【００６９】
（Ｓ３０２）
次に、表情パケット処理部２１の部分動画データ抽出部２１１は、第１周期が経過したか否かを判定する。第１周期が経過していないと判定された場合は（Ｓ３０２；Ｎｏ）、処理はＳ３０１に戻る。
【００７０】
（Ｓ３０３）
第１周期が経過したと判定された場合は（Ｓ３０２；Ｙｅｓ）、部分動画データ抽出部２１１は、動画データバッファ２３に格納された動画データから一の第１周期に含まれる部分動画データを抽出する。
【００７１】
（Ｓ３０４）
次に、表情パケット処理部２１の特徴量抽出部２１２は、抽出された部分動画データに基づいて、当該部分動画データに含まれる被写体の特徴量を抽出する。
【００７２】
（Ｓ３０５）
次に、表情パケット処理部２１の第１タイムスタンプ部２１３は、抽出された部分動画データについて、当該部分動画データが部分動画データ抽出部２１１により抽出された時刻に応じた第１タイムスタンプを生成する。ここで、第１タイムスタンプは、例えば、当該部分動画データの開始時刻から終了時刻のうちの任意の時刻（開始時刻及び終了時刻を含む）であってもよい。
【００７３】
（Ｓ３０６）
次に、表情パケット処理部２１の表情パケット生成部２１４は、特徴量抽出部２１２により抽出された特徴量と、第１タイムスタンプとを含む表情パケットを生成する。以上で、表情パケット生成処理が終了する。
【００７４】
＜音声パケット生成処理＞
図１０は、音声パケット生成処理を説明するための動作フローである。
【００７５】
（Ｓ４０１）
まず、音声入力部４２は、被写体や被写体を取り巻く環境から発せられる音声に基づいて音声データを生成し、当該音声データを音声データバッファ２４に格納する（バッファリングする）。
【００７６】
（Ｓ４０２）
次に、音声パケット処理部２２の部分音声データ抽出部２２１は、第２周期が経過したか否かを判定する。第２周期が経過していないと判定された場合は（Ｓ４０２；Ｎｏ）、処理はＳ４０１に戻る。
【００７７】
（Ｓ４０３）
第２周期が経過したと判定された場合は（Ｓ４０２；Ｙｅｓ）、部分音声データ抽出部２２１は、音声データバッファ２４に格納された音声データから一の第２周期に含まれる部分音声データを抽出する。
【００７８】
（Ｓ４０４）
次に、音声パケット処理部２２の第２タイムスタンプ部２２２は、抽出された部分音声データについて、当該部分音声データが部分音声データ抽出部２２１により抽出された時刻に応じた第２タイムスタンプを生成する。ここで、第２タイムスタンプは、例えば、当該部分音声データの開始時刻から終了時刻のうちの任意の時刻（開始時刻及び終了時刻を含む）であってもよい。
【００７９】
（Ｓ４０５）
次に、音声パケット処理部２２の音声パケット生成部２２３は、部分音声データ抽出部２２１により抽出された部分音声データと、第２タイムスタンプとを含む音声パケットを生成する。以上で、音声パケット生成処理が終了する。
【００８０】
（２−２−２）出力処理
以下、ユーザ端末２Ｂによる出力処理について説明する。出力処理は、音声出力処理と、アバタ表示処理と、を含む。
【００８１】
＜音声出力処理＞
図１１は、音声出力処理を説明するための動作フローである。
【００８２】
（Ｓ５０１）
まず、ユーザ端末２Ｂの受信部３１は、サーバ装置３から送信された音声パケットを受信する。
【００８３】
（Ｓ５０２）
次に、受信部３１は、受信した音声パケットをシーケンスＩＤに基づいて並べ替える。
【００８４】
（Ｓ５０３）
次に、音声バッファ処理部３２Ａは、受信部３１が並べ替えた音声パケットをバッファリングする。
【００８５】
（Ｓ５０４）
次に、音声バッファ処理部３２Ａは、所定の待機時間が経過したが否かを判定する。ここで、所定の待機時間の長さは特に限定されないが、例えば、５０ｍｓである。所定の待機時間が経過していないと判定された場合は（Ｓ６０４；Ｎｏ）、上述のＳ６０３に戻る。
【００８６】
（Ｓ５０５）
音声バッファ処理部３２Ａが、所定の待機時間が経過したと判定した場合（Ｓ６０４；Ｙｅｓ）、バッファリングされた音声パケットから音声データを抽出し、当該音声データを音声出力部４４に出力することにより、音声を出力させる。
【００８７】
（Ｓ５０６）
また、音声出力処理部３５は、再生した音声パケットに含まれる第２タイムスタンプを抽出し、当該第２タイムスタンプを表情バッファ処理部３２Ｂに送信する。以上で、音声出力処理が終了する。
【００８８】
＜アバタ表示処理＞
図１２は、アバタ表示処理を説明するための動作フローである。以下の動作フローにおいては、表情バッファ処理部３２Ｂは、音声出力処理部３５から断続的に第２タイムスタンプを受信しているものとする。
【００８９】
（Ｓ６０１）
まず、ユーザ端末２Ｂの受信部３１は、サーバ装置３から送信された表情パケットを受信する。
【００９０】
（Ｓ６０２）
次に、受信部３１は、受信した表情パケットをシーケンスＩＤに基づいて並べ替える。
【００９１】
（Ｓ６０３）
次に、表情バッファ処理部３２Ｂは、受信部３１が並べ替えた表情パケットをバッファリングする。このとき、受信した第２タイムスタンプよりも古い第１タイムスタンプを含む表情パケットがバッファリングされている場合は、遅延したパケットとして破棄する。
【００９２】
（Ｓ６０４）
次に、アバタ出力処理部３３は、再生モーションを設定する。当該処理は、アバタと音声とが同期するように第１タイムスタンプ及び第２タイムスタンプに基づいて実行される。具体的には、音声を出力した時点（第２タイムスタンプが示す時点）に最も近い過去の時点の第１タイムスタンプに対応する表情データから開始し、再生時間の経過時点に最も近い将来の時点の第１タイムスタンプに対応する表情データで終了するように、再生モーションを設定する。
【００９３】
（Ｓ６０５）
次に、アバタ出力処理部３３は、再生モーションに含まれる表情データ（特徴量）をアバタモデル記憶部３４に格納されたアバタモデルに入力することによりアバタに係る表示データを生成し、当該表示データを表示部４３に出力することによりアバタを表示部４３に表示させる。上述したとおり、アバタ出力処理部３３は第１タイムスタンプ及び第２タイムスタンプに基づいて再生モーションを設定するため、アバタの音声と表情とが同期して再生される。以上で、アバタ表示処理が終了する。
【００９４】
［変形例］
複数のユーザ端末が生成した各音声パケットが同一のルームＩＤに係る場合、各音声パケットに含まれる音声を合成して合成音声を生成するミキシング処理を実行してもよい。当該ミキシング処理は、例えば、サーバ装置３が実行してもよいし、パケットを受信するユーザ端末２が実行してもよい。サーバ装置３がミキシング処理を実行する場合、例えば、各音声パケットに含まれる音声を抽出し、各音声パケットに含まれるタイムスタンプに基づいて、音声を同期して合成する。そして、合成した音声を含む新たな音声パケットを生成し、各音声パケットに代えて当該新たな音声パケットを所望のユーザ端末２に送信してもよい。パケットを受信するユーザ端末２がミキシング処理を実行する場合、例えば、受信した各音声パケットに含まれる音声を抽出し、各音声パケットに含まれるタイムスタンプに基づいて、音声を同期して出力する。
【００９５】
上述した実施形態においては、動画データに基づく特徴量と、音声データとが、それぞれ異なるパケット（表情パケット及び音声パケット）に格納されるものとして説明した。しかしながら、ユーザ端末２は、動画データに基づく特徴量と、音声データとを単一のパケットにまとめて格納した上で、単一のタイムスタンプを生成しこれを当該単一のパケットに含めてもよい。
【００９６】
上述した実施形態においては、第２タイムスタンプよりも古い第１タイムスタンプに係る表情パケットは破棄するものとした。この点、破棄された表情パケットの前後から、アバタ動作の補完を行ってもよい。
【００９７】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【符号の説明】
【００９８】
１…アバタ操作システム、２、２Ａ、２Ｂ…ユーザ端末、１０…ユーザ端末設定処理部、２０…送信処理部、２１…表情パケット処理部、２１１…部分動画データ抽出部、２１２…特徴量抽出部、２１３…第１タイムスタンプ部、２１４…表情パケット生成部、２２…音声パケット処理部、２２１…部分音声データ抽出部、２２２…第２タイムスタンプ部、２２３…音声パケット生成部、２３…動画データバッファ、２４…音声データバッファ、３０…受信処理部、３１…受信部、３２Ａ…音声バッファ処理部、３２Ｂ…表情バッファ処理部、３３…アバタ出力処理部、３４…アバタモデル記憶部、３５…音声出力処理部、４１…撮像部、４２…音声入力部、４３…表示部、４４…音声出力部、３…サーバ装置、５０…サーバ装置設定処理部、６０…パケット処理部
【図１】
2020060898.tif 000003
【図２】
2020060898.tif 000004
【図３】
2020060898.tif 000005
【図４】
2020060898.tif 000006
【図５Ａ】
2020060898.tif 000007
【図５Ｂ】
2020060898.tif 000008
【図６】
2020060898.tif 000009
【図７】
2020060898.tif 000010
【図８】
2020060898.tif 000011
【図９】
2020060898.tif 000012
【図１０】
2020060898.tif 000013
【図１１】
2020060898.tif 000014
【図１２】
2020060898.tif 000015