以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。
(実施形態)
実施形態に係るシナリオ制御装置は、例えば、デジタルサイネージとコミュニケーションロボットとを組み合わせたコンテンツ提示システムなどに組み込むことができる。なお、後述するように、かかるコンテンツ提示システムは一例に過ぎない。例えば、デジタルサイネージは、必ずしも物理的なディスプレイによって実現されなくてもよく、VR(Virtual Reality)/AR(Augmented Reality)/MR(Mixed Reality)空間(以降、単に仮想空間と称する)に設けられた仮想的なディスプレイによって実現されてもよい。また、コミュニケーションロボットは、ポインティングデバイスや仮想空間に存在するバーチャルエージェントに置き換えられてもよい。
かかるコンテンツ提示システムは、図1に例示されるように、実施形態に係るシナリオ制御装置100と、カメラ10と、ディスプレイ20と、ロボット30と、提示制御装置200とを含み得る。
ディスプレイ20およびロボット30は、コンテンツの提示を担当する。具体的には図2に例示されるように、ディスプレイ20は映像コンテンツ、例えばスライドを表示し、ロボット30は、発話、およびジェスチャなどの非言語動作を活用して、ディスプレイ20に表示されている映像コンテンツを聴衆に対して説明する。
カメラ10は、コンテンツ提示時の聴衆の様子、特に聴衆の顔領域付近を撮影するように設置される。なお、カメラ10として、以降の説明においてロボット30と別のハードウェア、例えばWebカメラが用意されることを前提とするが、ディスプレイ20またはロボット30に搭載されたカメラが利用されてもよい。また、一般的な画像データを取得する可視光カメラだけではなく、赤外線センサを組み合わせたデプスカメラを利用して、聴衆の顔領域の特徴量(目や鼻などの特徴点座標)や骨格データの特徴量(肩や首など各関節の座標)を求め、聴衆の顔の向きや着目点を取得しても良い。もしくは、視線計測カメラなどを用いて聴衆の視線方向を取得しても良い。要するに、画像データに限らずコンテンツ提示時の聴衆の様子を表す任意の情報が利用され得るが、以降の説明では画像データを利用することを前提とする。
提示制御装置200は、シナリオに従って、ディスプレイ20の表示内容と、ロボット30の発話内容および非言語動作とを制御する。なお、図1は例示に過ぎず、これらの制御対象の一部または全部が、互いに別個の制御装置によって制御されてもよい。
シナリオは、図3に例示されるように、映像コンテンツの要素(プレゼンテーションではスライド、またはスライドに設定されたアニメーション(部品)であるが、例えば動画であればシーンなどであり得る)と、当該要素を説明するために提示される発話内容および非言語動作を記述する。すなわち、提示制御装置200は、図3のシナリオに従って、例えばスライド1のアニメーション1-1をディスプレイ20に表示させ、その間にロボットに発話内容1-1、例えば「今から,××をご説明します」、を発話させるとともに非言語動作1-1、例えばディスプレイ20の一部または全体を指し示すポインティング動作、を取らせ、さらにその後に同スライド1の次のアニメーション1-2をディスプレイ20に表示させ、その間にロボットに発話内容1-2を発話させるとともに非言語動作1-2を取らせることができる。さらに、提示制御装置200は、図3のシナリオに従って、例えば、スライド2をディスプレイ20に表示させ、その間にロボットに発話内容2を発話させるとともに、非言語動作2を取らせることができる。
シナリオ制御装置100は、カメラ10によって撮影された聴衆の画像に基づいて聴衆の視聴状態を推定し、推定した視聴状態をさらに良好と定義される状態に遷移させるべく、提示制御装置200によって実行されるシナリオを動的に修正する。これにより、後述するように、ロボット30の発話内容、非言語動作などのコンテンツの提示態様は、聴衆の反応に依存して適応的に変化することになる。故に、予め用意されたシナリオが適さない聴衆を相手にコンテンツを提示する場合であっても、このシナリオ制御装置100は当該聴衆に適するようにシナリオを修正し、当該聴衆にコンテンツの要点・詳細を効果的に伝えることが可能となる。
次に、シナリオ制御装置100のハードウェア構成例を説明する。なお、提示制御装置200は、シナリオ制御装置100と同様のハードウェア構成を採用し得る。
シナリオ制御装置100は、例えばコンピュータであり得る。この場合に、シナリオ制御装置100は、シナリオの動的修正などの情報処理を行うプロセッサ(例えば、CPU(Central Processing Unit)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、など)を含む。さらに、シナリオ制御装置100は、かかる処理を実現するためにプロセッサによって実行されるプログラムおよび当該プロセッサによって使用されるデータなどを一時的に格納するメモリを含む。
シナリオ制御装置100は、さらに、例えば提示制御装置200などの外部装置に例えばネットワークを介して接続するための通信I/F(インタフェース)を利用可能である。通信I/Fは、シナリオ制御装置100に内蔵されてもよいし、シナリオ制御装置100に外付けされてもよい。
シナリオ制御装置100は、さらに、データを蓄積するための補助記憶装置を利用可能である。補助記憶装置は、シナリオ制御装置100に内蔵されてもよいし、シナリオ制御装置100に外付けされてもよい。補助記憶装置は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリなどの不揮発性記憶媒体であることが好ましい。或いは、補助記憶装置は、シナリオ制御装置100にネットワーク経由で接続されたファイルサーバであり得る。
シナリオ制御装置100は、さらに、例えば画像データなどの外部入力データを受け付けるための入力I/Fを利用可能である。入力I/Fは、シナリオ制御装置100に内蔵されてもよいし、シナリオ制御装置100に外付けされてもよい。
シナリオ制御装置100および提示制御装置200は、図1に例示するように別個の装置であってもよいし、同一の装置であってもよい。シナリオ制御装置100および提示制御装置200が別個の装置である場合に、両者は必ずしも近接して配置する必要はない。例えば、シナリオ制御装置100は、全国各地に配置された1または複数のクライアントとしての提示制御装置200に例えばインターネットなどのネットワークを介して接続されたクラウドサーバであってもよい。すなわち、コンテンツ提示システムは、例えば、R-env:連舞(登録商標)のようなクラウド対応型インタラクション制御技術により実現されてもよい。
次に、シナリオ制御装置100の機能構成例を説明する。図1に例示されるように、シナリオ制御装置100は、画像取得部101と、聴衆特徴抽出部102と、聴衆状態推定部103と、遷移先決定部104と、状態遷移ルール記憶部105と、修正内容選択部106と、修正内容ルール記憶部107と、修正履歴記憶部108と、シナリオ修正部109とを含む。
画像取得部101は、コンテンツを視聴する聴衆をカメラ10によって撮影することで得られた画像(データ)を取得する。画像取得部101は、取得した画像を聴衆特徴抽出部102へ送る。なお、画像は、動画像であってもよいし、静止画像であってもよい。ただし、後述するように聴衆特徴抽出部102において特徴量を抽出するために時系列画像を必要とするので、後者の例では複数枚の静止画像が必要とされる。画像取得部101は、例えば前述の通信I/Fおよび/または入力I/Fに相当し得る。
聴衆特徴抽出部102は、画像取得部101から画像を受け取り、当該画像から聴衆の特徴量を抽出する。具体的には、聴衆特徴抽出部102は、画像から聴衆の顔領域の向き、大きさ、動きなどに基づいて、コンテンツに対する聴衆の興味・関心、集中度などを示す特徴量を抽出する。聴衆特徴抽出部102は、抽出した特徴量を聴衆状態推定部103へ送る。聴衆特徴抽出部102は、例えば前述のプロセッサに相当し得る。
例えば、聴衆特徴抽出部102は、以下に説明するように、聴衆のコンテンツへの興味・関心度を示す第1の特徴量および聴衆のコンテンツへの集中度を示す第2の特徴量を含む2次元の特徴量を抽出してもよい。なお、聴衆特徴抽出部102は、1次元または3次元以上の特徴量を抽出してもよい。
第1の特徴量は、顔領域が前向きである、例えば、ディスプレイ20および/またはロボット30へ顔を向けている聴衆の顔領域の大きさに基づいて算出され得る。顔領域が前向きである聴衆は、少なくとも画像が撮影された時点においてコンテンツに興味・関心を引かれていた可能性がある。そして、顔領域の大きさは、聴衆の本来の顔の大きさにも依存するが、聴衆からカメラ10(これは、ディスプレイ20およびロボット30の近隣に配置されるとする)までの距離に大きく依存する。この距離は、聴衆がコンテンツに興味・関心を引かれ、当該コンテンツが視聴しやすくなるように近づくことで、小さくなる。また、聴衆からカメラ10までの距離が同じであっても聴衆が増えれば、顔領域の大きさの総和は大きくなる。このように、顔領域が前向きである聴衆の顔領域の大きさは、聴衆のコンテンツへの興味・関心度を示し得る。
具体的には、聴衆特徴抽出部102は、画像に含まれる顔領域を検出する。なお、聴衆特徴抽出部102は、可能な限り多くの顔領域を検出してもよいが、検出数に上限が設けられてもよいし、または所定面積未満の顔領域を無視してもよい。それから、聴衆特徴抽出部102は、検出した顔領域のそれぞれの向きを計算する。ここで、第i番目の顔領域の向きをθiとする。iは任意の整数である。
次に、聴衆特徴抽出部102は、計算した顔領域の向きを必要に応じて補正する。例えば図4に示すように、聴衆がその顔を向けることを望まれる点(以降、基準点と称する)と、カメラ10の位置とが一致しないことがある。かかる場合には、聴衆特徴抽出部102は、カメラ位置と基準点との角度差θdを、それぞれの顔領域の向きから差し引くことで、補正後の向きを求めることができる。第i番目の顔領域の補正後の向きをθ’iとすると、θ’i=θi-θdである。なお、カメラ位置および基準点が同一である場合にはθd=0となる。
聴衆特徴抽出部102は、それぞれの顔領域の補正後の向きが所定の範囲内にあるか否かにより、当該顔領域が前向きであるか否かを判定する。例えば、聴衆特徴抽出部102は、φ1≦θ’i≦φ2を満足する場合には、第i番目の顔領域は前向きであると判定する。ここで、φ1およびφ2は、想定されている聴衆の位置からディスプレイ20およびロボット30を視認できる顔の向きの境界に基づいて定められる閾値であり得、φ1<φ2を満足する。なお、前向きの判定には、画像ベースで顔向きを取得するだけではなく、デプスカメラを用いて取得した骨格データから両肩関節の座標位置や背骨関節の向きから求めたり、視線計測カメラを用いて取得した聴衆の視線方向から求めたりしても良い。
聴衆特徴抽出部102は、前向きであると判定した顔領域の面積をそれぞれ算出し、算出した面積の最大値および総和を求める。さらに、聴衆特徴抽出部102は、この総和をこの最大値によって除算することで面積比を求める。そして、聴衆特徴抽出部102は、一定時間に亘って画像の取得およびこの面積比の算出を繰り返し、当該一定時間に亘る面積比の総和を第1の特徴量として算出し得る。なお、前述のように両肩関節の座標位置や背骨関節の向きや、聴衆の視線方向から前向きの判定を行う場合には、面積比に代えて人数が第1の特徴量として算出されてよい。ここで、人数比は、前向きと判定された聴衆の数を聴衆の総数で除算することで得られる。
第2の特徴量は、聴衆の顔領域の動作に基づいて算出され得る。例えば、ディスプレイ20に表示された映像コンテンツを見つめている(顔領域のブレが少ない)聴衆や、頷いている聴衆は、コンテンツに集中していると予想される。他方、左右に首を振っている聴衆や、顔を過剰に大きく動かしている聴衆は、コンテンツよりも周囲が気になっているか、単に気が散っていると予想される。
具体的には、聴衆特徴抽出部102は、一定時間に亘る時系列画像からそれぞれの聴衆の顔領域を追跡する。そして、聴衆特徴抽出部102は、それぞれの聴衆の顔領域の動きに基づいて、当該聴衆の顔の動作を認識する。聴衆特徴抽出部102は、例えばジェスチャ認識器を利用して顔の動作を認識してもよい。このジェスチャ認識器は、例えば、大量の学習用の顔領域の動きデータおよびその動作ラベルを用いた教師付き学習により作成された学習モデルを含み得る。なお、画像ベースで顔領域の動作を取得するだけではなく、デプスカメラを用いて取得した骨格データの各座標から動作を認識しても良い。
顔の動作の認識結果である動作ラベルには、それぞれ事前に集中度が割り当てられている。例えば、「注視」、「頷き」などには高い集中度が割り当てられ、「左右の首振り」、「大きな動き」などには低い集中度が割り当てられ得る。ここで、集中度は、多値であってもよいが、「集中」および「発散」を意味する2値であってもよい。
聴衆特徴抽出部102は、全聴衆に亘る認識結果(動作ラベル)をヒストグラム化し、最頻値となる認識結果を求める。そして、聴衆特徴抽出部102は、この最頻値に割り当てられた集中度を第2の特徴量として抽出し得る。なお、複数の最頻値が存在する場合には、聴衆特徴抽出部102は、これら最頻値に割り当てられた集中度の最小値またはその他の統計量を第2の特徴量として抽出し得る。
或いは、聴衆特徴抽出部102は、各聴衆についての認識結果に割り当てられた集中度を当該聴衆の集中度として抽出し、この集中度の平均などの統計量を第2の特徴量としてもよい。
聴衆状態推定部103は、聴衆特徴抽出部102から聴衆の特徴量を受け取り、これに基づいて、聴衆の視聴状態を複数の状態のいずれか1つとして推定する。推定された視聴状態は、以降の説明において現在状態と称する。聴衆状態推定部103は、現在状態を示す値、例えば状態IDを遷移先決定部104へ送る。聴衆状態推定部103は、例えば前述のプロセッサに相当し得る。
上記複数の状態は様々に定義可能であるが、前述の2次元の特徴量を前提とすると例えば図5に示す4つの状態が定義され得る。状態1は、聴衆のコンテンツに対する興味・関心および集中度が高い状態を指し、状態2は、聴衆のコンテンツに対する興味・関心は高いものの集中度が低い状態を指し、状態3は、聴衆のコンテンツに対する興味・関心が低いものの集中度が高い状態を指し、状態4は、聴衆のコンテンツに対する興味・関心および集中度が低い状態を指す。なお、図5の例では簡単化のために上記第1の特徴量および第2の特徴量がそれぞれ2つの範囲に区分されているが、一方または両方が3以上の範囲に区分されてもよい。
図5の例によれば、聴衆状態推定部103は、第1の特徴量および第2の特徴量がそれぞれ第1の閾値および第2の閾値以上である場合に、現在状態を状態1と推定し、第1の特徴量が第1の閾値以上であって第2の特徴量が第2の閾値未満である場合に、現在状態を状態2と推定し、第1の特徴量が第1の閾値未満であって第2の特徴量が第2の閾値以上である場合に、現在状態を状態3と推定し、第1の特徴量および第2の特徴量がそれぞれ第1の閾値および第2の閾値未満である場合に、現在状態を状態4と推定する。
図5の例では、状態1が最も良好と状態と定義され、状態4が最も良好でない状態と定義される。すなわち、現在状態が状態1と推定されれば、現在のシナリオによりコンテンツが聴衆に対して効果的に提示すされていると予想されるので、シナリオの修正は不要である。他方、現在状態が状態1以外と推定されれば、聴衆のコンテンツに対する興味・関心および/または集中度に改善の余地があるので、シナリオ制御装置100は状態1を目指してシナリオを修正することになる。
遷移先決定部104は、聴衆状態推定部103から聴衆の視聴状態(現在状態)を示す値を受け取る。遷移先決定部104は、まず、現在状態が状態遷移をする必要ない状態、例えば図5の状態1であるか否かを判定する。現在状態が状態遷移をする必要のある状態である場合には、遷移先決定部104は、現在状態よりも良好と定義される1つを遷移先状態と決定する。遷移先決定部104は、現在状態および遷移先状態を示す値、例えば状態IDを修正内容選択部106へ送る。遷移先決定部104は、例えば前述のプロセッサに相当し得る。
図5の例によれば、状態1が状態遷移をする必要ない状態であって、状態2~4が状態遷移をする必要のある状態である。現在状態が状態2または状態3である場合には、遷移先決定部104は、状態1を遷移先状態として決定すればよい。他方、現在状態が状態4である場合には、図6に例示される状態4→状態2、それから状態2→状態1という状態遷移と、図7に例示される状態4→状態3、それから状態3→状態1という状態遷移が選択可能である。どちらの状態遷移を優先するかは固定またはランダムであってもよいが、例えば以下に説明するように戦略的に決定されてよい。
例えば、映像コンテンツの一例であるプレゼンテーションの構成は様々であるが、ある種のプレゼンテーションでは、その前半である導入部では聴衆に興味・関心を引くためにインパクトのあるトピックや身近なトピックを含んだスライドが配置され、その後半である結論部ではそのプレゼンテーションによって聴衆に最終的に伝えたいメッセージなどを含んだスライドが配置される。故に、例えば前半部ではプレゼンテーションへの興味・関心を引くことを優先してシナリオを修正し、後半部ではプレゼンテーションに意識を集中させることを優先してシナリオを修正することで、ロボット30にスライドの構成と調和した発話および/または非言語動作を取らせて聴衆の興味・関心・集中を巧みに引き出すことができる。
そこで、例えば、遷移先決定部104は、遷移先状態の候補が複数ある(図5の例によれば現在状態が状態4である)場合には、シナリオの進捗状況を参照し得る。ここで、進捗状況は、例えば、シナリオの実行位置をシナリオの全長で除算することで導出可能である。シナリオの実行位置は、映像コンテンツの再生中の要素の位置を表し、例えば、再生中のスライド番号、スライドに設定された再生中のアニメーションなどの要素の番号などの識別情報、映像コンテンツの再生中のシーンの番号などの識別情報、映像コンテンツの現在の再生時間、コンテンツの提示開始からの経過時間、などであってよく、提示制御装置200(の実行位置通知部202)によって通知され得る。また、シナリオの全長は、例えば、総スライド数、映像コンテンツの総再生時間、コンテンツの提示開始から終了までの時間、などあってよい。遷移先決定部104は、シナリオの進捗状況が閾値(以降、便宜的に方針転換閾値とも称する)未満である場合に状態2を遷移先状態と決定し、シナリオの進捗状況が方針転換閾値以上である場合に状態3を遷移先状態と決定してもよい。方針転換閾値は、例えば1/2であって、状態遷移ルール記憶部105に保存される状態遷移ルールの少なくとも一部として記述され得る。
なお、シナリオの全長が短いと定義される範囲にある場合には、どちらの状態遷移を優先するかを固定しておいてもよい。例えば、聴衆の興味・関心を引き出す状態遷移を優先する場合には方針転換閾値を1とし、聴衆の集中を引き出す状態遷移を優先する場合には方針転換閾値を0とすればよい。仮に、あるシナリオ長閾値よりもシナリオの全長が短い場合に当該シナリオの全長が短いと判定する場合に、シナリオの進捗状況に関わらず聴衆の興味・関心を引き出す状態遷移を優先するとすれば、方針転換閾値は以下のように導出可能である。
上記数式において、ThPは方針転換閾値、Lはシナリオの全長、THLはシナリオ長閾値をそれぞれ表す。
状態遷移ルール記憶部105は、状態遷移ルールを、例えば図8に示される状態遷移ルールテーブルの形式で保存する。状態遷移ルール記憶部105に保存された状態遷移ルールは、遷移先決定部104によって必要に応じて読み出される。状態遷移ルール記憶部105は、例えば前述のメモリおよび/または補助記憶装置に相当し得る。
修正内容選択部106は、遷移先決定部104から現在状態および遷移先状態を示す値を受け取り、さらに提示制御装置200(のシナリオ通知部203)から現在実行中のシナリオ、およびその後に実行されるシナリオを通知される。修正内容選択部106は、修正内容ルール記憶部107に保存された修正内容ルールを参照し、現在状態および遷移先状態の組み合わせに関連付けられる少なくとも1つのシナリオ修正内容を読み出す。ここで、修正内容ルールは、現在状態および遷移先状態の組み合わせに対して利用可能なシナリオ修正内容およびその修正ターゲットを記述する。読み出されたシナリオ修正内容は、適用されるシナリオ修正内容の候補に相当する。修正内容選択部106は、候補の中から1つを選択し、選択したシナリオ修正内容を示す値、修正の対象となるシナリオ位置を示す値、および当該シナリオ位置によって特定されるシナリオ(の一部分)をシナリオ修正部109へ送る。修正内容選択部106は、例えば前述のプロセッサに相当し得る。
ここで、現在状態および遷移先状態の組み合わせ、すなわち目標となる状態遷移毎に、当該状態遷移を実現するために効果的なアプローチ、すなわちシナリオ修正内容は異なり得る。図9に例示されるように、状態4から状態2への遷移には、「効果音/LEDの活用」、「同じ説明を繰り返す」、「手招き動作」などをロボット30に行わせるようにシナリオを修正することが効果的であるかもしれないが、状態4から状態3への遷移には、「視線制御によるスライドへの注意誘導」、「ポインティング動作」などをロボット30に行わせるようにシナリオを修正することが効果的であるかもしれない。また、聴衆の属性は多様であるので、このようなシナリオ修正内容の全てが目標となる状態遷移を実現するために常に効果的であるとは限らない。そこで、修正内容選択部106は、シナリオ修正内容を試行錯誤的に選択することで、聴衆の反応の良いシナリオを探り当て、聴衆の視聴状態を良好と定義される状態へ遷移させる。
図9における「効果音/LED(Light-Emitting Diode)の活用」とは、例えば図10に示されるように、対象となるシナリオ位置におけるロボット30の発話時に効果音を出力/LEDを発光させることであり得る。これにより、聴衆の聴覚/視覚を刺激して、その注意を引きつける効果が期待できる。なお、LEDは、例えばロボット30に搭載されていてもよい。
ここで、対象となるシナリオ位置とは、シナリオ修正が行われるシナリオ位置を意味しており、例えば映像コンテンツの要素のうちの提示中またはそれ以降(典型的には次)に提示される要素であり得る。具体的には、対象となるシナリオ位置は、再生中もしくはそれ以降のスライド、再生中のスライドに設定された再生中もしくはそれ以降のアニメーション、または、再生中もしくはそれ以降のシーン、などであり得る。また、対象となるシナリオ位置は、シナリオ修正内容に依存して定められ得る。例えば、再生中の映像コンテンツの要素を対象に非言語動作または発話内容を変更すると説明の途中にロボット30の言動が変わることで聴衆に違和感を与えるおそれがあるので、非言語動作または発話内容を変更する修正内容が選択された場合には再生中の映像コンテンツの要素の次に再生される要素が対象となるシナリオ位置として定められ得る。他方、例えば後述する「同じ説明を繰り返す」が修正内容である場合には、対象となるシナリオ位置は、再生中の映像コンテンツの要素であってもよいし、それ以降の要素であってもよい。
図9における「同じ説明を繰り返す」とは、例えば図11に示されるように、対象となるシナリオ位置におけるシナリオの内容を繰り返す、例えば複製して当該シナリオ位置の直前または直後に挿入することであり得る。なお、繰り返し部分のシナリオには、さらに「ちょっと分かりにくかった?」、「もう1度言いますね」などの発話内容が追加されてもよい。これにより、対象となるシナリオ位置においてコンテンツを強調して、聴衆の注意を引きつける効果が期待できる。
図9における「手招き動作」とは、ロボット30に手招きをさせることであり得る。これにより、ディスプレイ20前に既に居る聴衆の注意を引きつける効果に加えて新たな聴衆を周囲から呼び込む効果も期待できる。
図9における「図解動作」とは、例えばロボット30の手および/または腕を動かして、映像コンテンツ中の注目すべき部分を囲わせたり、対比すべき部分に左右の手をそれぞれ添えさせたりすることであり得る。これにより、映像コンテンツの中で強調したい点を聴衆に明確に伝え、聴衆に重要点を意識付ける効果が期待できる。
図9における「ポインティング動作」とは、例えば図12に示されるように、ロボット30の手および/または腕を動かして、映像コンテンツ中の注目すべき部分に指または手を指させることであり得る。これにより、映像コンテンツの中で強調したい点を聴衆に明確に伝え、聴衆に重要点を意識付ける効果が期待できる。
図9における「パラ言語で重要点強調」とは、例えば対象となるシナリオ位置におけるロボット30の発話内容そのものではなく発話時の音量を大きくしたり、ピッチを変更したり、イントネーションを付けたり、ポーズを長くしたりすることであり得る。これにより、対象となるシナリオ位置におけるロボット30の発話内容が強調され、聴衆にロボット30の発話内容に傾聴するよう促す効果が期待できる。
図9における「視線制御によるスライドへの注意誘導」とは、例えば図14に示されるように、ロボット30の頭部を動かしてディスプレイ20に目を向けさせることであり得る。これにより、聴衆が同調してディスプレイ20に注視する効果が期待できる。
図9における「視線制御による聴衆へのアイコンタクト動作」とは、例えば図13に示されるように、ロボット30の頭部を動かして聴衆に目を向けさせることであり得る。これにより、ロボット30は聴衆に語りかけるように発話することになり、聴衆にロボット30の発話内容に傾聴するよう促す効果が期待できる。
なお、図9のシナリオ修正内容は例示に過ぎず、ある状態遷移を実現するために利用可能であるとして図示されたシナリオ修正内容が、異なる状態遷移を実現するために利用可能とされてもよい。
修正内容選択部106は、効果的なシナリオ修正内容を選択するために、例えば修正履歴記憶部108に保存された修正履歴を参照してもよい。この修正履歴には、修正ルール毎に当該修正ルールに含まれるシナリオ修正内容の累積選択回数が記述される。なお、累積選択回数は、例えば提示されるコンテンツが変わる度、または同一のコンテンツであっても1回分の提示が終わる度にリセットされ得る。また、修正履歴には、累積回数以外に、修正時の付加情報を記録しても良い。例えば、修正を実施した時刻や修正前のシナリオ内容、修正を実施した前後の第1,第2の特徴量の統計化情報(例えば、修正前から修正後の各特徴量の変化率の平均値)などを記録しても良い。修正内容選択部106は、例えば累積選択回数が最小であるシナリオ修正内容を選択してもよい。また、修正内容選択部106は、前述した修正時の付加情報を用いて、同一の時刻、時間帯(午前午後など)、および/または曜日などにおける修正内容の選択や、修正前シナリオの内容を考慮して、同一の時刻、時間帯、および/または曜日などに同一の修正前シナリオに対して同一のシナリオ修正内容が繰り返し選択されないようにシナリオ修正内容の選択を行ってもよい。これらにより、様々なシナリオ修正内容が満遍なく選択されるので、聴衆の反応の良いシナリオを探り当て、聴衆の視聴状態を良好と定義される状態へ遷移させることができる。また、これらにより、シナリオは非画一的に修正されるので、聴衆がロボット30の発話内容および/または非言語動作に慣れることによるシナリオ修正の効力の低下を抑制することもできる。
修正内容選択部106は、実行中のシナリオの内容に基づいて、シナリオ修正内容を選択してもよい。例えば、修正内容選択部106は、実行中のシナリオの内容の非言語動作と一致または類似する非言語動作を修正ターゲットとするシナリオ修正内容を選択しないようにしてもよい。かかるシナリオ修正内容を選択しないことで、ロボット30の非言語動作が単調となるのを防ぐ効果が期待できる。また、修正対象のシナリオを分析して,発話内容に応じて適切な非言語動作に修正しても良い。
修正内容ルール記憶部107は、修正内容ルールを、例えば図15に示される修正ルールテーブルの形式で保存する。図15の修正内容ルールテーブルでは、それぞれの修正内容ルールを特定するためのIDと、当該修正内容ルールを利用可能な現在状態および遷移先状態の組み合わせと、当該修正内容ルールの詳細であるシナリオ修正内容およびその修正ターゲットとが関連付けられている。修正内容ルール記憶部107に保存された修正内容ルールは、修正内容選択部106によって必要に応じて読み出される。修正内容ルール記憶部107は、例えば前述のメモリおよび/または補助記憶装置に相当し得る。
修正履歴記憶部108は、修正履歴を、例えば図16に示される修正履歴テーブルの形式で保存する。図16の修正履歴テーブルでは、それぞれの修正内容ルール(のうちのシナリオ修正内容)を特定するためのIDと、当該シナリオ修正内容の累積選択回数とが関連付けられている。なお、図16の修正履歴テーブルにおけるIDの項目は、図15の修正内容ルールテーブルにおけるIDの項目と共通であり得る。修正履歴記憶部108に保存された修正履歴は、修正内容選択部106によって必要に応じて読み出される。また、修正履歴記憶部108に保存された修正履歴は、シナリオ修正部109によってシナリオ修正の度に更新(インクリメント)される。修正履歴記憶部108は、例えば前述のメモリおよび/または補助記憶装置に相当し得る。
シナリオ修正部109は、修正内容選択部106から当該修正内容選択部106によって選択されたシナリオ修正内容を示す値、例えばIDを受け取り、さらに修正の対象となるシナリオ位置を示す値、およびこのシナリオ位置によって特定されるシナリオ(修正前のシナリオと呼ぶこともできる)を受け取る。シナリオ修正部109は、これらシナリオ修正内容およびシナリオ位置に基づいて、この修正前のシナリオを修正する。シナリオ修正部109は、修正後のシナリオを例えば図示されない送信手段(例えば、通信I/Fなど)により提示制御装置200へ送る。例えば、修正後のシナリオを提示制御装置200のシナリオ実行部201へ送り修正後のシナリオにより提示制御装置200を動作させても良いし、シナリオ記憶部205へ送り修正後のシナリオを記録した後に提示制御装置200を動作させても良い。また、シナリオ修正部109は、修正履歴記憶部108に保存された修正履歴を更新する。より具体的には、シナリオ修正部109は、適用したシナリオ修正内容の累積選択回数をインクリメントさせる。シナリオ修正部109は、例えば前述のプロセッサに相当し得る。
具体的には、シナリオ修正部109は、シナリオ修正内容の修正ターゲットが発話内容である場合には、対象となるシナリオ位置に対応するシナリオに記述された発話内容に対してシナリオ修正内容の示す発話内容(付加的な台詞、または発話法(例えば、効果音の活用、パラ言語で重要点強調、など))を追加し得る。付加的な台詞は、修正前のシナリオの発話内容の前に、「分かりにくかった?」、「もう一度説明するね」といった発話を追加する。効果音の活用では、修正前のシナリオの発話内容の発話と同時に、「ジャーン」、「ピーン」、といった効果音を同時に再生する。パラ言語で重要点強調では、修正前のシナリオの発話内容を発話する時の音量を大きくしたり、発話前に一定時間の間を設けて発話を行ったりする。
また、シナリオ修正部109は、シナリオ修正内容の修正ターゲットが非言語動作である場合には、対象となるシナリオ位置に対応するシナリオに記述された非言語動作をシナリオ修正内容の示す非言語動作(例えば、手招き動作、図解動作、ポインティング動作、視線制御によるスライドへの注意誘導、視線制御による聴衆へのアイコンタクト動作、など)によって置換し、または対象となるシナリオ位置に対応するシナリオに記述された非言語動作にシナリオ修正内容の示す非言語動作を追加し得る。例えば、シナリオ修正内容が手招き動作などの聴衆の興味を引き付ける非言語動作の場合には、置換するのではなく、対象となるシナリオ位置に対応するシナリオに記述された非言語動作の前に追加しても良い。また、シナリオ修正部109は、シナリオ修正内容の修正ターゲットが全てである場合には、例えば同じ説明を繰り返すために、対象となるシナリオ位置に対応するシナリオを複製して当該シナリオ位置の直前または直後に挿入し得る。複製時には,シナリオ中の発話内容の前に、繰り返しを表す台詞として「もう一回繰り返すね。」、「ちょっと難しかったかな。」、などを追加するよう、シナリオ修正内容において、対象となるシナリオとシナリオ修正内容で定義した新たなシナリオとの関係(修正操作)、対象となるシナリオとは別にシナリオ修正内容で定義した新たなシナリオ(繰り返しを表す台詞や台詞に対応する非言語動作)を詳細に指定しても良い。
次に、提示制御装置200の機能構成例を説明する。提示制御装置200は、図1に例示されるように、シナリオ実行部201と、実行位置通知部202と、シナリオ通知部203と、提示制御部204と、シナリオ記憶部205とを含む。
シナリオ実行部201は、シナリオ記憶部205からシナリオを読み出し、当該シナリオの実行制御を行う。シナリオ実行部201は、シナリオに記述された映像コンテンツの要素(例えばスライド、またはスライドに設定されたアニメーション)と、当該要素の提示中のロボット30の発話内容および非言語動作とを順次解釈し、ディスプレイ20に表示させる映像データ、ロボット30の発話内容データ(TTS(Text-to-Speech)処理可能なテキストデータおよび発話法を示すデータ(オプション)であってもよいし、音声データそのものであってもよい)、ロボット30の非言語動作を制御する動作制御データ、などを得て、これらを提示制御部204へ送る。また、シナリオ実行部201は、シナリオの実行位置を示す値を実行位置通知部202へ送る。さらに、シナリオ実行部201は、実行中のシナリオをシナリオ通知部203へ送る。シナリオ実行部201は、シナリオ記憶部205に保存されたシナリオがシナリオ制御装置100(のシナリオ修正部109)によって修正された場合には、修正後のシナリオに従って動作する。シナリオ実行部201は、例えば前述のプロセッサに相当し得る。
実行位置通知部202は、シナリオ実行部201からシナリオの実行位置を示す値を受け取り、当該実行位置をシナリオ制御装置100(の遷移先決定部104)に通知する。実行位置通知部202は、前述の通信I/Fに相当し得る。
シナリオ通知部203は、シナリオ実行部201から実行中のシナリオを受け取り、これをシナリオ制御装置100(の修正内容選択部106)に通知する。シナリオ通知部203は、前述の通信I/Fに相当し得る。
提示制御部204は、シナリオ実行部201から、ディスプレイ20の映像データ、ロボット30の発話内容データ、ロボット30の動作制御データ、などを受け取る。提示制御部204は、ディスプレイ20に適時に映像データを与え、ロボット30に適時に発話内容データおよび/または制御データを与える。提示制御部204は、例えば前述のプロセッサおよび通信I/Fに相当し得る。
シナリオ記憶部205は、シナリオを保存する。シナリオ記憶部205に保存されたシナリオは、シナリオ実行部201によって必要に応じて読み出される。シナリオ記憶部205は、例えば前述のメモリおよび/または補助記憶装置に相当し得る。
次に、図17乃至図19を用いて、シナリオ制御装置100の動作例を説明する。なお、図17に例示される動作は、コンテンツの提示中に繰り返し行われるが、例えば1スライド毎のように定期的に行われてもよいし、不定期に行われてもよい。
まず、画像取得部101は、カメラ10から聴衆を撮影した画像データを取得する(ステップS301)。聴衆特徴抽出部102は、ステップS301において取得された画像データから聴衆の特徴量、例えば前述の第1の特徴量および第2の特徴量、を抽出する(ステップS302)。
聴衆状態推定部103は、ステップS302において抽出された特徴量に基づいて、聴衆の視聴状態を複数の状態、例えば前述の状態1~状態4、のいずれか1つとして推定する(ステップS303)。
遷移先決定部104は、ステップS303において推定された現在状態が状態遷移を必要とする状態、例えば前述の状態2または状態3、であるか否かを判定する(ステップS304)。ステップS304において現在状態が状態遷移を必要とする状態であると判定されれば処理はステップS305に進み、そうでなければ(例えば、現在状態=状態1の場合)処理は終了する。
ステップS305において、遷移先決定部104は、遷移先状態の候補が1つであるか否かを判定する。例えば、現在状態が前述の状態2および状態3である場合に遷移先状態の候補は状態1のみである。他方、現在状態が前述の状態4である場合に遷移先状態の候補は状態2および状態3である。ステップS305において遷移先状態の候補が1つであると判定されれば処理はステップS307に進み、そうでなければ処理はステップS306へ進む。
ステップS306において、遷移先決定部104は、状態遷移ルール記憶部105に保存された状態遷移ルールと、実行位置通知部202によって通知されたシナリオの実行位置とを参照する。そして、処理はステップS307へ進む。
ステップS307において、遷移先決定部104は、遷移先状態を決定する。具体的には、ステップS306を経由していない場合には遷移先状態の候補は1つであるから、遷移先決定部104は当該候補を遷移先状態として決定する。他方、ステップS306を経由している場合には、遷移先決定部104は、ステップS306において参照した状態遷移ルールを同じくステップS306において参照したシナリオの実行位置に基づくシナリオ進行状況に適用することで、複数の候補のいずれか1つを遷移先状態として決定できる。例えば、遷移先決定部104は、シナリオ進行状況が前述の方針転換閾値未満である場合には状態2を遷移先状態として決定し、シナリオ進行状況が前述の方針転換閾値以上である場合には状態3を遷移先状態として決定し得る。
修正内容選択部106は、ステップS303において推定された現在状態と、ステップS307において決定された遷移先状態との組み合わせに関連付けられている、少なくとも1つのシナリオ修正内容のうちいずれか1つを選択する(ステップS310)。なお、ステップS310の詳細な具体例は図18を用いて後述する。
シナリオ修正部109は、ステップS310において選択されたシナリオ修正内容、および修正内容選択部106によって決定された対象となるシナリオ位置によって特定される修正前のシナリオ、例えば次に表示されるスライドに対応する発話内容および/または非言語動作を修正し(ステップS320)、処理は終了する。なお、ステップS320の詳細な具体例は図19を用いて後述する。
以下、図18を用いて図17のステップS310の詳細な具体例を説明する。図18の処理はステップS311から開始する。
ステップS311において、修正内容選択部106は、修正内容ルール記憶部107に保存されている修正内容ルールを参照し、ステップS303において推定された現在状態と、ステップS307において決定された遷移先状態との組み合わせに関連付けられている、少なくとも1つのシナリオ修正内容を取得する。
修正内容選択部106は、ステップS311において取得されたシナリオ修正内容が1つであるか否かを判定する(ステップS312)。ステップS312においてシナリオ修正内容が1つであると判定されれば処理はステップS316へ進み、そうでなければ処理はステップS313へと進む。
ステップS313において、修正内容選択部106は、修正履歴記憶部108に保存されている修正履歴を参照し、ステップS311において取得されたシナリオ修正内容のそれぞれの累積選択回数を取得する。そして、修正内容選択部106は、ステップS313において取得された累積選択回数が最小でないシナリオ修正内容を破棄する(ステップS314)。
修正内容選択部106は、ステップS314を経て残存するシナリオ修正内容が1つであるか否かを判定する(ステップS315)。ステップS315において残存するシナリオ修正内容が1つであると判定されれば処理はステップS316へ進み、そうでなければ処理はステップS317へ進む。
ステップS316において、修正内容選択部106は、その時点で残存する唯一のシナリオ修正内容を選択し、処理は終了する。他方、ステップS317において、修正内容選択部106は、その時点で残存する複数のシナリオ修正内容の1つをランダムに選択し、処理は終了する。
以下、図19を用いて図17のステップS320の詳細な具体例を説明する。図19の処理はステップS321から開始する。
ステップS321において、シナリオ修正部109は、ステップ310において選択されたシナリオ修正内容の修正ターゲットを取得する。シナリオ修正部109は、ステップS321において取得した修正ターゲットが、非言語動作、発話内容、および全てのいずれであるかを判定する。
ステップS321において修正ターゲットが非言語動作と判定されると処理はステップS323へ進む。ステップS323において、シナリオ修正部109は、修正前のシナリオのうち対象となる部分に記述された非言語動作を、ステップS310において選択されたシナリオ修正内容の示す非言語動作に置換し、または修正前のシナリオのうち対象となる部分に記述された非言語動作に、ステップS310において選択されたシナリオ修正内容の示す非言語動作を追加する。例えば、修正前のシナリオの対象となる部分に非言語動作として「ポインティング動作」が記述されていて、シナリオ修正内容の示す非言語動作が「視線制御による聴衆へのアイコンタクト動作」であったとすると、当該部分の実行時にロボット30は元々予定されていた非言語動作であるポインティング動作を行わずに、アイコンタクト動作を行うことになる。なお、ステップS323において、修正前のシナリオのうち対象となる部分に記述された非言語動作が、ステップS310において選択されたシナリオ修正内容の示す非言語動作と一致または類似である場合には、この選択されたシナリオ修正内容を除外したうえで処理はステップS310に戻ってもよい。
ステップS321において修正ターゲットが発話内容と判定されると処理はステップS324へ進む。ステップS324において、シナリオ修正部109は、修正前のシナリオのうち対象となる部分に記述された発話内容に、ステップS310において選択されたシナリオ修正内容の示す発話内容、例えば発話法や付加的な台詞を追加する。例えば、修正前のシナリオの対象となる部分に発話内容として「今から,××をご説明します」が記述されていて、シナリオ修正内容の示す発話内容が「パラ言語(音量増)で重要点強調」であったとすると、当該部分の実行時にロボット30は元々予定されていた発話内容である「今から,××をご説明します」を例えば通常よりも大きな音量で発話することになる。
ステップS321において修正ターゲットが全てと判定されると処理はステップS325へ進む。ステップS325において、シナリオ修正部109は、修正前のシナリオのうち対象となる部分を複製し、必要に応じてその一部を変更したうえで追加する。これにより、同じ説明を繰り返すことが可能となる。
ステップS326において、シナリオ修正部109は、ステップ310において選択されたシナリオ修正内容の累積選択回数をインクリメントするために修正履歴記憶部108に保存された修正履歴を更新し、処理は終了する。
以上説明したように、実施形態に係るシナリオ制御装置は、コンテンツを視聴する聴衆の画像に基づいて当該聴衆の視聴状態を推定し、推定した視聴状態をさらに良好と定義される状態に遷移させるべく、コンテンツの提示態様が記述されるシナリオを動的に修正する。すなわち、このシナリオ制御装置は、例えばコミュニケーションロボットなどのコンテンツのプレゼンタの発話内容、非言語動作などを、聴衆の反応に依存して適応的に変化させる。従って、このシナリオ制御装置によれば、予め用意されたシナリオが適さない聴衆を相手にコンテンツを提示する場合であっても、当該聴衆に適するようにシナリオを修正することができる。要するに、このシナリオ制御装置によれば、コンテンツの要点・詳細が聴衆の属性に関わらず効果的に伝わるように、コンテンツ提示を支援することが可能となる。
(変形例)
図1では、デジタルサイネージとコミュニケーションロボットとを組み合わせたコンテンツ提示システムが説明された。しかしながら、実施形態に係るシナリオ制御装置は、特定のコンテンツの提示技法に限定されることなく適用可能である。
例えば、コンテンツのプレゼンタは、ロボット30のような現実空間に存在する物理的なロボットに限られない。プレゼンタは、図20に例示されるように、ディスプレイ20に映像コンテンツ21に重畳して、または映像コンテンツ21と分離して表示されるバーチャルエージェント31であってもよい。この場合に、バーチャルエージェント31の発話内容は、映像コンテンツとともに出力される音声または映像コンテンツとともに表示されるテキストとして実現され、バーチャルエージェント31の非言語動作はジェスチャ映像として実現され得る。かかるコンテンツ提示技法は、例えばカーナビゲーションシステムなどに適用可能性がある。さらなる変形例として、映像コンテンツ21およびバーチャルエージェント31は、仮想空間に表示されてもよい。
或いは、プレゼンタは、図21に例示されるポインティングデバイス32であってもよい。図21におけるポインティングデバイス32は、例えば、レーザーポインタと当該レーザーポインタを把持してレーザの照射位置をディスプレイ20の任意の箇所に移動させることのできるロボットアームとの組み合わせであるが、これとは異なるハードウェアによりプレゼンタとしてのポインティングデバイスが実現されてもよい。
また、プレゼンタは発話および非言語動作の一方が不可能であってもよい。例えば、プレゼンタは発話が可能であるものの非言語動作を取ることが不可能であってもよいし、逆にプレゼンタは非言語動作を取ることが可能であるものの発話が不可能であってもよい。さらに、プレゼンタは発話内容および非言語動作の両方が可能であるものの、一方のみが制御可能であってもよい。
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
上述の実施形態では、いくつかの機能部を説明したが、これらは各機能部の実装の一例に過ぎない。例えば、1つの装置に実装されると説明された複数の機能部が複数の別々の装置に亘って実装されることもあり得るし、逆に複数の別々の装置に亘って実装されると説明された機能部が1つの装置に実装されることもあり得る。
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
上記各実施形態の処理の少なくとも一部は、例えば汎用のコンピュータに搭載されたプロセッサを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク(CD-ROM、CD-R、DVD等)、光磁気ディスク(MO等)、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ(サーバ)上に格納し、ネットワーク経由でコンピュータ(クライアント)にダウンロードさせてもよい。