JP2023072110A - 情報処理装置、制御プログラムおよび制御方法 - Google Patents

情報処理装置、制御プログラムおよび制御方法 Download PDF

Info

Publication number
JP2023072110A
JP2023072110A JP2021184438A JP2021184438A JP2023072110A JP 2023072110 A JP2023072110 A JP 2023072110A JP 2021184438 A JP2021184438 A JP 2021184438A JP 2021184438 A JP2021184438 A JP 2021184438A JP 2023072110 A JP2023072110 A JP 2023072110A
Authority
JP
Japan
Prior art keywords
user
operator
emotion
avatar
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021184438A
Other languages
English (en)
Inventor
浩 石黒
Hiroshi Ishiguro
昇吾 西口
Shogo Nishiguchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avita Inc
Osaka University NUC
Original Assignee
Avita Inc
Osaka University NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avita Inc, Osaka University NUC filed Critical Avita Inc
Priority to JP2021184438A priority Critical patent/JP2023072110A/ja
Publication of JP2023072110A publication Critical patent/JP2023072110A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】アバターの感情表現の度合を利用者に対して適切に設定する情報処理装置、制御プログラムおよび制御方法を提供する。【解決手段】情報処理システム10において、利用者側端末12は、CPUを含み、利用者側端末12の利用者と操作者側端末16の操作者がリアルタイムに音声で話し、利用者からの問い合わせに対して操作者が応答すると、利用者側端末12のCPUが、操作者の音声の音声データを受信する。また、利用者側端末12のCPUは、操作者の感情を推定し、推定した感情をスライダーバーで設定された個別の感情表現の度合の範囲内で表現したアバターの画像を表示し、受信した音声データを出力する。感情表現の度合は、スライダーバーで設定された全体的な感情表現の度合で決定される。【選択図】図1

Description

この発明は、情報処理装置、制御プログラムおよび制御方法に関し、特にたとえば、利用者と操作者がチャットまたはトークでコミュニケーションを行う、情報処理装置、制御プログラムおよび制御方法に関する。
この種の従来の情報処理装置の一例が特許文献1に開示されている。特許文献1に開示されるテレビ会議システムは、テレビ会議装置としての情報処理装置を備えている。情報処理装置は、テレビ会議の複数の参加者を有するグループを設定し、グループの全ての参加者に対応する基準の感情種別の1つのアバターの画像データを作成し、テレビ会議におけるグループの全ての参加者の感情情報を判断し、判断された感情種別を、アバターの画像データに反映する。
特開2021-114642号
上記の特許文献1では、テレビ会議におけるグループのすべての参加者の感情を判断し、判断された感情種別を作成されたアバターの画像データに反映するようにしてあるが、アバターの感情表現の度合、すなわち、感情の強さについては考慮されていない。小さい感情表現のアバターの画像を好む利用者もいれば、大きい感情表現のアバターの画像を好む利用者もいる。また、利用者の気分によって、アバターの感情表現の大小の好みが変わる場合もある。したがって、アバターの画像の表示方法には改善の余地がある。
それゆえに、この発明の主たる目的は、新規な、情報処理装置、制御プログラムおよび制御方法を提供することである。
また、この発明の他の目的は、アバターの感情表現の度合を利用者に対して適切に設定することができる、情報処理装置、制御プログラムおよび制御方法を提供することである。
第1の発明は、利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段、利用者と対話する操作者が発話した音声を受信する受信手段、受信手段によって音声を受信した場合に、操作者または利用者の感情を推定する推定手段、推定手段によって推定された操作者または利用者の感情を範囲内で表現し、操作者に対応するアバターの画像をディスプレイに表示するアバター表示手段、および受信手段によって受信された音声を出力する音出力手段を備える、情報処理装置である。
第2の発明は、第1の発明に従属し、個別の感情表現の度合を範囲内において設定する度合設定手段をさらに備え、アバター表示手段は、度合設定手段によって範囲内において設定された個別の感情表現の度合で、アバターの画像を表示する。
第3の発明は、第2の発明に従属し、度合設定手段は、利用者が設定した全体的な感情表現の度合で、個別の感情表現の度合を範囲内において設定する。
第4の発明は、第2の発明に従属し、推定手段は、利用者の少なくとも顔を撮影した顔画像から当該利用者の感情および当該利用者の感情の強さを推定し、度合設定手段は、推定手段の推定結果に基づいて、アバターの画像で表現する感情および個別の感情表現の度合を範囲内において設定する。
第5の発明は、第1の発明に従属し、推定手段によって推定された利用者の感情である第1の感情に基づいて設定された第2の感情を表現するアバターの画像を表示する所定の表示モードを設定するモード設定手段をさらに備え、アバター表示手段は、モード設定手段によって所定の表示モードが設定されている場合に、第2の感情を表現するアバターの画像を表示する。
第6の発明は、利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段、利用者が発話した場合に、個別の感情表現の度合の範囲を操作者側端末に送信する送信手段、利用者と対話する操作者が発話した音声と、操作者側端末で推定された操作者または利用者の感情を範囲内で表現する、操作者に対応するアバターの画像を受信する受信手段、受信手段によって受信された音声を出力する音出力手段、および音出力手段によって音声を出力するときに、受信手段によって受信されたアバターの画像を表示するアバター表示手段を備える、情報処理装置である。
第7の発明は、利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を利用者側端末から受信する第1受信手段、利用者と対話する操作者が発話した音声を受信する第2受信手段、第2受信手段によって音声を受信した場合に、操作者または利用者の感情を推定する推定手段、および推定手段によって推定された操作者または利用者の感情を範囲内で表現し、操作者に対応するアバターの画像を生成し、当該アバターの画像と第2受信手段によって受信された音声を利用者側端末に出力する出力手段を備える、情報処理装置である。
第8の発明は、利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段を備える情報処理装置で実行される制御プログラムであって、情報処理装置のプロセッサに、利用者を対話する操作者が発話した音声を受信する受信ステップ、受信ステップにおいて音声を受信した場合に、操作者または利用者の感情を推定する推定ステップ、推定ステップにおいて推定した操作者または利用者の感情を範囲内で表現し、操作者に対応するアバターの画像をディスプレイに表示するアバター表示ステップ、および受信ステップにおいて受信した音声を出力する音出力ステップを実行させる、制御プログラムである。
第9の発明は、利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段を備える情報処理装置で実行される制御プログラムであって、情報処理装置のプロセッサに、利用者が発話した場合に、個別の感情表現の度合の範囲を操作者側端末に送信する送信ステップ、利用者と対話する操作者が発話した音声と、操作者側端末で推定された操作者または利用者の感情を範囲内で表現する、操作者に対応するアバターの画像を受信する受信ステップ、および受信ステップにおいて受信した音声を出力に合わせて、受信ステップにおいて受信したアバターの画像を表示するステップを実行させる、制御プログラムである。
第10の発明は、情報処理装置で実行される制御プログラムであって、情報処理装置のプロセッサに、利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を利用者側端末から受信する第1受信ステップ、利用者と対話する操作者が発話した音声を受信する第2受信ステップ、第2受信ステップにおいて音声を受信した場合に、操作者または利用者の感情を推定する推定ステップ、および推定ステップにおいて推定した操作者または利用者の感情を範囲内で表現し、操作者に対応するアバターの画像を生成し、当該アバターの画像と第2受信ステップにおいて受信した音声を利用者側端末に出力する出力ステップを実行させる、制御プログラムである。
第11の発明は、利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段を備える情報処理装置の制御方法であって、(a)利用者と対話する操作者が発話した音声を受信するステップ、(b)ステップ(a)において音声を受信した場合に、操作者または利用者の感情を推定するステップ、(c)ステップ(b)において推定した操作者または利用者の感情を範囲内で表現し、操作者に対応するアバターの画像をディスプレイに表示するステップ、および(d)ステップ(a)において受信した音声を出力するステップを含む、制御方法である。
第12の発明は、利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段を備える情報処理装置の制御方法であって、(a)利用者が発話した場合に、個別の感情表現の度合の範囲を操作者側端末に送信するステップ、(b)利用者と対話する操作者が発話した音声と、操作者側端末で推定された操作者または利用者の感情を範囲内で表現し、当該音声を発話するように動作する、操作者に対応するアバターの画像を受信するステップ、および(c)ステップ(b)において受信した音声の出力するステップを含む、制御方法である。
第13の発明は、情報処理装置の制御方法であって、(a)利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を利用者側端末から受信するステップ、(b)利用者と対話する操作者が発話した音声を受信するステップ、(c)ステップ(b)において音声を受信した場合に、操作者または利用者の感情を推定するステップ、および(d)ステップ(c)において推定した操作者または利用者の感情を範囲内で表現し、操作者に対応するアバターの画像を生成し、当該アバターの画像とステップ(b)において受信した音声を利用者側端末に出力するステップを含む、制御方法である。
この発明によれば、利用者が設定した個別の感情についての感情表現の度合の範囲内において、推定した操作者または利用者の感情を表現するアバターの画像を表示するので、アバターの感情表現の度合を利用者に対して適切に設定することができる。
この発明の上述の目的、その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1はこの発明の一実施例の情報処理システムを示す図である。 図2は図1に示す利用者側端末の電気的な構成を示すブロック図である。 図3は図1に示す操作者側端末の電気的な構成を示すブロック図である。 図4は利用者側端末の表示装置に表示される画面の一例を示す図である。 図5は利用者側端末の表示装置に表示される画面の他の例を示す図である。 図6は利用者側端末の表示装置に表示されるその他の画面の一例を示す図である。 図7は5つの感情についてニュートラルの状態から感情の強さが中くらいおよび最大に変化したときのアバターの画像の一例を示す図である。 図8は利用者側端末の表示装置に表示される設定画面の一例を示す図である。 図9は利用者側端末に記憶される感情辞書の一例を示す図である。 図10は図2に示す利用者側端末のRAMのメモリマップの一例を示す図である。 図11は図2に示す利用者側端末のCPUの制御処理の一例の第1の一部を示すフロー図である。 図12は図2に示す利用者側端末のCPUの制御処理の一例の第2の一部であって、図11に後続するフロー図である。 図13は図2に示す利用者側端末のCPUの制御処理の一例の第3の一部であって、図11に後続するフロー図である。 図14は第2実施例の利用者側端末のCPUの制御処理の一部を示すフロー図である。 図15は第2実施例の操作者側端末のCPUのアバターの画像生成処理の一例を示すフロー図である。 図16は第3実施例における利用者側端末のCPUの制御処理の一部を示すフロー図である。 図17は第4実施例における利用者側端末の表示装置に表示されるモード設定画面の一例を示す図である。 図18は第4実施例における利用者側端末のCPUの制御処理の一部を示すフロー図である。 図19は第5実施例における利用者側端末のCPUの制御処理の一部を示すフロー図である。 図20は第5実施例の操作者側端末のCPUのアバターの画像生成処理の一例を示すフロー図である。 図21は第6実施例のサーバのCPUの制御処理の一例の第1の一部を示すフロー図である。 図22は第6実施例におけるサーバのCPUの制御処理の一例の第2の一部であって、図21に後続するフロー図である。 図23は第6実施例におけるサーバのCPUの制御処理の一例の第3の一部であって、図21に後続するフロー図である。
<第1実施例>
図1を参照して、この第1実施例の情報処理システム10は利用者側端末12を含み、利用者側端末12は、ネットワーク14を介して、操作者側端末16およびサーバ18に通信可能に接続される。
利用者側端末12は、サーバ18によって提供される所定のサービスを利用する利用者によって使用され、操作者側端末16は、利用者に応対する操作者によって使用される。
利用者側端末12は、情報処理装置であり、一例として、スマートフォンであり、ブラウザ機能を備えている。他の実施例では、利用者側端末12として、タブレットPC、ノート型PCまたはデスクトップ型PCなどの汎用の端末を用いることもできる。
ネットワーク14は、インターネットを含むIP網(または、IPネットワーク)と、このIP網にアクセスするためのアクセス網(または、アクセスネットワーク)とから構成される。アクセス網としては、公衆電話網、携帯電話網、有線LAN、無線LAN、CATV(Cable Television)等を用いることができる。
操作者側端末16は、利用者側端末12とは異なる他の情報処理装置であり、一例として、ノート型PCまたはデスクトップ型PCであるが、他の実施例では、スマートフォンまたはタブレットPCなどの汎用の端末を用いることもできる。
サーバ18は、利用者側端末12および操作者側端末16とは異なるその他の情報処理装置であり、汎用のサーバを用いることができる。したがって、サーバ18は、CPU18aおよび記憶部(HDD、ROMおよびRAMを含む)18bを備えるとともに、通信インタフェースおよび入出力インタフェースなどのコンポーネントを備える。第1実施例では、サーバ18は、所定のサービスを提供するサイトを運営するために設けられる。
図2は図1に示した利用者側端末12の電気的な構成を示すブロック図である。図2に示すように、利用者側端末12はCPU20を含み、CPU20は、内部バスを介して、記憶部22、通信インタフェース(以下、「通信I/F」という)24および入出力インタフェース(以下、「入出力I/F」という)26に接続される。
CPU20は、利用者側端末12の全体的な制御を司る。ただし、CPU20に代えて、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)を設けてもよい。記憶部22は、HDD、ROMおよびRAMを含む。ただし、HDDに代えて、または、HDD、ROMおよびRAMに加えて、SSD等の不揮発性メモリが使用されてもよい。
通信I/F24は、CPU20の制御の下、ネットワーク14を介して、操作者側端末16およびサーバ18などの外部のコンピュータとの間で、制御信号およびデータの送受信を行うために有線インタフェースを有する。ただし、通信I/F24としては、無線LANまたはBluetooth(登録商標)等の無線インタフェースを使用することもできる。
入出力I/F26には、入力装置28および表示装置30、マイク32およびスピーカ34が接続されている。入力装置28は、タッチパネルおよびハードウェアのボタンである。タッチパネルは、汎用のタッチパネルであり、静電容量方式、電磁誘導方式、抵抗膜方式、赤外線方式など、任意の方式のものを用いることができる。後述する操作者側端末16についても同様である。
ただし、利用者側端末12として、ノート型PCまたはデスクトップ型PCが用いられる場合には、入力装置28として、キーボードおよびコンピュータマウスが使用される。
また、表示装置30は、LCDまたは有機ELディスプレイである。上記のタッチパネルは、表示装置30の表示面上に設けられてもよいし、タッチパネルが表示装置30と一体的に形成されたタッチディスプレイが設けられてもよい。このことは、後述する操作者側端末16についても同様である。
入出力I/F26は、マイク32で検出された利用者の音声をデジタルの音声データに変換してCPU20に出力するとともに、CPU20によって出力される音声データをアナログの音声信号に変換してスピーカ34から出力させる。ただし、第1実施例では、CPU20から出力される音声データは、操作者側端末16から受信した音声データである。また、入出力I/F26は、入力装置28から入力された操作データ(または、操作情報)をCPU20に出力するとともに、CPU20によって生成された画像データを表示装置30に出力して、画像データに対応する画面または画像を表示装置30に表示させる。ただし、外部のコンピュータ(たとえば、操作者側端末16またはサーバ18)から受信した画像データがCPU20によって出力される場合もある。
また、利用者側端末12は、センサインタフェース(センサI/F)36およびカメラ38を備えている。CPU20は、バスおよびセンサI/F36を介してカメラ38に接続される。カメラ38は、CCDまたはCMOSのような撮像素子を用いたカメラである。
なお、図2に示す利用者側端末12の電気的な構成は一例であり、限定される必要はない。利用者の顔画像を撮影する必要が無い場合には、つまり、第1実施例および後述する第2実施例では、カメラ38を省略してもよい。
また、利用者側端末12がスマートフォンである場合には、携帯電話通信網、または、携帯電話網および公衆電話網を介して、通話するための通話回路を備えるが、第1実施例では、そのような通話は行わないため、図示は省略してある。このことは、後述する操作者側端末16がスマートフォンである場合についても同じである。
図3は図1に示した操作者側端末16の電気的な構成を示すブロック図である。図3に示すように、操作者側端末16はCPU50を含み、CPU50は、内部バスを介して、記憶部52、通信I/F54および入出力I/F56に接続される。
CPU50は、操作者側端末16の全体的な制御を司る。ただし、CPU50に代えて、CPU機能、GPU機能等の複数の機能を含むSoCを設けてもよい。記憶部52は、HDD、ROMおよびRAMを含む。ただし、HDDに代えて、または、HDD、ROMおよびRAMに加えて、SSD等の不揮発性メモリが使用されてもよい。
通信I/F54は、CPU50の制御の下、ネットワーク14を介して、操作者側端末16およびサーバ18などの外部のコンピュータとの間で、制御信号およびデータの送受信を行うために有線インタフェースを有する。ただし、通信I/F54としては、無線LANまたはBluetooth(登録商標)等の無線インタフェースを使用することもできる。
入出力I/F56には、入力装置58および表示装置60、マイク62およびスピーカ64が接続されている。マイク62およびスピーカ64は、操作者が利用者との間で音声通話するために使用するマイク付きのヘッドセットを構成する。
また、入力装置58としては、キーボードおよびコンピュータマウスが用いられる。ただし、操作者側端末16として、スマートフォンまたはタブレットPCが用いられる場合には、入力装置58として、タッチパネルおよびハードウェアのボタンが設けられる。また、表示装置60は、LCDまたは有機ELディスプレイである。
入出力I/F56は、マイク62で検出された操作者の音声をデジタルの音声データに変換してCPU50に出力するとともに、CPU50によって出力される音声データをアナログの音声信号に変換してスピーカ64から出力させる。ただし、第1実施例では、CPU50から出力される音声データは、利用者側端末12から受信した音声データである。また、入出力I/F56は、入力装置58から入力された操作データ(または、操作情報)をCPU50に出力するとともに、CPU50によって生成された画像データを表示装置60に出力して、画像データに対応する画面を表示装置60に表示させる。
また、操作者側端末16は、センサI/F66および慣性センサ68を備えている。CPU50は、バスおよびセンサI/F66を介して慣性センサ68に接続される。
慣性センサ68としては、角速度センサが用いられる。第1実施例では、慣性センサ68は、マイク62およびスピーカ64で構成するヘッドセットに設けられ、操作者の首の縦方向および横方向の動き(つまり、頷き動作および首振り動作)を検出する。したがって、操作者の首の縦方向の動きを検出するための軸周りと、操作者の首の横方向の動きを検出するための軸周りの角速度を検出可能な角速度センサが用いられる。一例として、操作者の首の縦方向の動きを検出するための軸は、操作者の両耳を通る直線に平行な軸である。また、一例として、操作者の首の横方向の動きを検出するための軸は、操作者の頭頂部を通り延長方向に延びる軸である。
ただし、慣性センサ68としては、3軸の加速度センサを用いるようにしてもよい。この場合、操作者の顔の正面方向、頭部の横方向および頭部の縦方向のそれぞれに延びる軸の方向の加速度が検出される。
第1実施例では、トークにおいては、操作者の音声に対応する音声データに、慣性センサ68で検出された角速度のデータ(後述する「首の動きデータ」)が付加され、利用者側端末12に送信される。
ただし、首の動きデータは、慣性センサ68で検出された第1所定時間(この第2実施例では、1/10秒程度)分の複数の角速度の平均値についてのデータであり、第1所定時間毎に算出される。
なお、第1実施例では、慣性センサで操作者の首の動きを検出するようにしたが、これに限定される必要はない。他の例では、操作者の顔の向きに基づいて首の動きを検出するようにしてもよい。かかる場合には、慣性センサ68に代えて、イメージセンサ(CCDカメラすなわちWebカメラ)が操作者の顔を撮影可能な位置に設けられる。一例として、表示装置60の上部にCCDカメラが設けられ、CCDカメラ(または、表示装置60)に正対する操作者の顔画像の向きを基準として、現在の顔の向きが現在の顔画像に基づいて算出され、現在の顔の向きに基づいて操作者の首の動きが推定される。ただし、顔の向きは、顔画像から抽出した複数の顔の特徴点の動きで検出することができる。
利用者側端末12は操作者側端末16から音声データを受信すると、受信した音声データに付加された慣性データに応じてアバターの画像130の首の動きを制御する。
なお、図3に示す操作者側端末16の電気的な構成は一例であり、限定される必要はない。他の実施例では、操作者側端末16はカメラを備えていてもよい。
このような情報処理システム10では、利用者が利用者側端末12を使用して、サーバ18が提供する所定のサービスのウェブ画面100を見ている場合に、所定の条件を満たすと、操作者(オペレータ)とチャットまたはトークでコミュニケーションできる、アプリケーション(以下、単に「アプリ」という)が起動される。
なお、所定のサービスを提供するサイトを運営するためのサーバは、ネットワーク14上に設けられる。
一例として、所定のサービスは、オンラインショッピングであるが、チャットまたはトークで、利用者の問い合わせに対して対応(応答)することができる、任意のオンラインサービスである。
図4は、ウェブ画面100の前面に、アプリの選択画面110が表示された場合の一例を示す。ただし、ウェブ画面100は、ウェブブラウザを起動し、所定のURLを入力することにより、表示装置30に表示される。ウェブ画面100は、所定のサービスのウェブサイト(または、ウェブページ)の画面である。図4では、或るオンラインショッピングのウェブ画面100の例が示される。また、選択画面110は、アプリが起動されたときなどに表示される初期画面である。
上述したように、アプリは、所定の条件を満たす場合に、起動される。この第1実施例では、所定の条件は、所定のサービスのウェブ画面(第1実施例では、ウェブ画面100)を表示した状態において、利用者がアプリの起動(または、実行)を指示したこと、利用者の操作が第2所定時間(この第1実施例では、30秒)以上無いこと、当該ウェブ画面において同じ位置または似たような場所(近くの位置)を指示していること、所定のサービスにおいて複数回(たとえば、3回)同じウェブ画面に戻ってくることである。
なお、図4では、ウェブ画面100が、利用者側端末12がスマートフォンである場合の表示装置60に表示された例を示してある。また、ウェブ画面100は一例であり、オンラインショッピング以外の他のサービスについての画面が表示される場合もある。
選択画面110には、画面の上部に、表示枠112が設けられ、表示枠112の下方に、ボタン114、ボタン116およびボタン118が縦に並んで設けられる。また、画面の上部であり、表示枠112の右側には、ボタン120が設けられる。
表示枠112はアバターの画像130を表示するための枠画像である。アバターの画像130は、表示枠112に収まる大きさで表示(または、描画)される。この第1実施例では、アバターの画像130はチャットまたはトークの相手(対話の相手)である操作者の分身となるキャラクタであり、予め設定されている。したがって、アバターの画像130は、人間を模したキャラクタであり、この第1実施例では、頭部および首についての画像である。
ただし、アバターの画像130は、動物またはロボットを模したキャラクタ、アニメキャラクタ、ゲームキャラクタなどの画像でもよい。また、アバターの画像130は、キャラクタの上半身または全身についての画像でもよい。
また、この第1実施例では、アバターの画像130は、チャットまたはトークする場合に、操作者のチャットにおける応答内容の表示またはトークにおける応答内容(または、発話内容)の音声の出力に合せて発話するまたは発話動作を行う。この第1実施例では、アバターの画像130は頭部および首が表示されるため、発話動作では、アバターの画像130の口唇部がチャットにおける応答内容のテキストの表記またはトークにおける応答内容の音声の出力に合わせて動かされる。したがって、アバターが実際にしゃべっているように表現される。
また、選択画面110においては、アバターは、自然の動作(以下、「無意識動作」という)を行う。無意識動作の代表的な例としては、瞬きや呼吸が該当する。また、このような生理的な動作のみならず、人間の癖による動作も無意識動作に含まれる。たとえば、癖による動作としては、髪の毛を触る動作、顔を触る動作および爪を噛む動作などが該当する。ただし、選択画面110が表示されると、アバターの画像130は、最初に、静止した状態で表示され、続いて、利用者に対して挨拶する(たとえば、お辞儀する)ように表示される。
したがって、選択画面110においては、静止した状態のアバターの画像130が表示された後に、無意識動作または挨拶の動作を行うアバターの画像130が表示される。本願発明の本質的な内容ではないため、詳細な説明は省略するが、一例として、静止した状態のアバターの画像130の表示は、予め記憶され静止した状態の画像データを出力(または、再生)することにより行われる。また、無意識動作および挨拶するときの動作を行うアバターの画像130の表示については、予め記憶された動画(アニメーション)データを再生することにより行われる。
ボタン114は、利用者が操作者とチャットするためのボタンである。チャットとは、テキストのやり取りによってリアルタイムに話をすることを意味し、この第1実施例では、利用者および操作者の操作によって、利用者側端末12と操作者側端末16の間で、テキストデータが送受信される。
ボタン116は、利用者が操作者とトークするためのボタンである。トークとは、音声のやり取りによってリアルタイムに話をすることを意味し、この第1実施例では、利用者および操作者の発話によって、利用者側端末12と操作者側端末16の間で、音声データが送受信される。
ボタン118は、アプリを終了するためのボタンである。ボタン118がオンされると、アプリが終了され、選択画面110が非表示される。
ボタン120は、各種の設定を行なうためのボタンである。ボタン120がオンされると、図示は省略するが、設定項目を選択するためのメニュー画面が表示される。
図5はウェブ画面100の前面にチャット画面140が表示された状態の一例を示す。選択画面110においてボタン114がオンされると、図5に示すようなチャット画面140が表示される。
チャット画面140には、画面の上部に、表示枠142が設けられ、表示枠142内にアバターの画像130が表示される。また、表示枠142の下方には、表示枠144および表示枠146が縦に並んで設けられ、表示枠146の下方に、ボタン148が設けられる。
表示枠144は、操作者の応答内容を表示するための枠画像である。操作者の応答内容は、利用者の問い合わせ(または、質問)に対して応答(または、回答)する具体的な内容であるが、利用者に対する挨拶および利用者に対する問いかけなども含まれる。つまり、操作者側端末16から送信されたテキストデータが表示枠144に表示される。詳細な説明は省略するが、チャットの場合には、操作者側端末16から送信されたテキストデータは、操作者が入力装置58を用いてキー入力した内容についてのデータである。
表示枠146は、利用者の問い合わせ(質問)内容を表示するための枠画像である。チャットの場合には、利用者の質問内容は、利用者側端末12の入力装置28を用いて入力される。図5では省略するが、スマートフォンやタブレットPCでは、チャット画面140とは別にソフトウェアキーボードが表示され、ソフトウェアキーボードを用いて文字(テキスト)をタッチ入力したり、文字の入力が完了したこと(発話内容の送信)の指示をタッチ入力したりすることができる。質問内容の送信が指示されると、質問内容のテキストデータが操作者側端末16に送信される。したがって、操作者側端末16の表示装置60に質問内容のテキストが表示される。図示は省略するが、チャットにおいては、操作者側端末16の表示装置60に、応答内容と質問内容を表示可能なチャット画面が表示される。
ボタン148は、チャットを終了するためのボタンである。ボタン148がオンされると、チャットを終了し、チャット画面140が非表示され、選択画面110がウェブ画面100の前面に表示される。
図6はウェブ画面100の前面にトーク画面160が表示された状態の一例を示す。選択画面110においてボタン116がオンされると、図6に示すようなトーク画面160が表示される。
トーク画面160には、画面の上部に、表示枠162が設けられ、表示枠162内にアバターの画像130が表示される。また、トーク画面160には、表示枠162の下方であり、画面の下部に、ボタン164が設けられる。
詳細な説明は省略するが、トークの場合には、操作者側端末16から送信される音声データは、操作者がマイク62を通して入力した音声についてのデータである。操作者側端末16から送信された音声データは、利用者側端末12で受信され、スピーカ34から出力される。
また、トークの場合には、利用者側端末12から送信される音声データは、利用者がマイク32を通して入力した音声についてのデータである。また、利用者側端末12から送信された音声データは、操作者側端末16で受信され、スピーカ64から出力される。
ボタン168は、トークを終了するためのボタンである。ボタン168がオンされると、トークを終了し、トーク画面160が非表示され、選択画面110がウェブ画面100の前面に表示される。
上記のように、操作者の音声に対応する音声データは、利用者側端末12のスピーカ64から出力されるが、このとき、アバターは発話動作を行う。この第1実施例では、アバターの画像130は、スピーカ64から出力される音声にリップシンクされる。したがって、アバターの画像130が喋っているように表現される。
また、操作者側端末16では、操作者がマイク62を通して音声を入力したときに、その操作者の首の動きを検出し、検出した首の動きについてのデータ(以下、「首の動きデータ」)を、音声データに付加して、利用者側端末12に送信する。利用者側端末12は、操作者側端末16から受信した音声データに付加された首の動きデータに基づいてアバターの首の動きを制御する。
また、この第1実施例では、アバターの画像130は、操作者の感情に応じて顔の表情が変化される。一例として、感情は、喜び、恐れ、悲しみ、嫌悪および怒りの5つに分類される。感情毎に、その強さ(または、大きさ)が最小(0%)から最大(100%)まで複数の段階(たとえば、20段階)で設定可能である。顔の表情は、各感情および各感情の強さについて、眉毛(位置、形状)、眉間のしわ(寄り具合)、眼(黒目の大きさ、目尻の上げ下げ具合)、瞼(開き具合)、ほうれい線(寄り具合)、および口(位置、形状および開き具合)の各部位についてのパラメータで決定される。
図7は、感情毎に、その強さ(つまり、感情表現の度合)に応じて、顔の表情を変化させたアバターの画像130の例を示す。図7では、複数のアバターの画像130のうち、中心に表示されるアバターの画像130では、感情の無いニュートラルな状態の表情が表現されている。ここで、感情の無いニュートラルな状態の表情とは、いわゆる無表情のことを意味する。
ニュートラルな状態のアバターでは、しわが無く、顔が左右対称に設定される。このようにデザインすることで、性別が判断し難くなり、男性または女性に偏った好みを持つ利用者にも受け入れられるアバターになる。また、しわが無く、左右対称に設定された特徴の無い顔にすることで、少しのしわを作るだけで、笑顔またはしかめ面のような表情を簡単に表現することができ、その表情の強さも簡単に制御することができる。
図7に示すように、各感情を表現するアバターの画像130は、ニュートラルな状態から次第に変化される。図7に示す例では、中心(すなわち、ニュートラルな状態)から遠ざかるに従って感情表現の度合が大きくされ、中心に近づくに従って感情表現の度合が小さくされる。図7では、各感情について、感情表現の度合が中くらい(普通)である場合と、感情表現の度合が最大である場合についてのアバターの画像130を示してある。ただし、上記のニュートラルな状態のアバターの画像130が、各感情についての感情表現の度合が最低である場合のアバターの画像130である。また、図示は省略するが、上述したように、各感情の強さは複数の段階に設定されているため、各段階の表情を有するアバターの画像130を表示することが可能である。
この第1実施例では、利用者は、表示するアバターの画像130について、感情表現(以下、説明の都合上、「全体的な感情表現」という)の度合(または、大きさ)を設定することができ、各感情についての感情表現(以下、説明の都合上、「個別の感情表現」という)の度合の範囲(すなわち、感情表現の可能な範囲)を設定することができる。全体的な感情表現の度合と各感情についての個別の感情表現の度合の範囲に基づいて、トーク画面160に表示されるアバターの画像130の感情表現(すなわち、表情)が決まる。
図8は表示装置30に表示される感情表現の設定画面180の一例を示す。図4に示した選択画面110において、ボタン120がオンされ、設定項目として、感情表現の度合についての設定が選択されると、選択画面110に代えて、設定画面180がウェブ画面100の前面に表示される。ただし、図8では、ウェブ画面100を省略してある。
図8に示すように、設定画面180には、画面の上部に、表示枠182が設けられ、表示枠182内にアバターの画像130が表示される。また、表示枠182の下方に、複数のスライダーバー184が横に並んで設けられ、さらに、複数のスライダーバー184の下方に、ボタン186が設けられる。
複数のスライダーバー184は、スライダーバー184a、184b、184c、184d、184eおよび184fを含む。スライダーバー184aは、全体的な感情表現の度合を設定(または、調整)するためのスライダーバーである。スライダーバー184b-184fは、各感情について個別の感情表現の度合を設定(または、調整)するためのスライダーバーである。具体的には、スライダーバー184bは、喜びの感情表現の度合の範囲を設定するためのスライダーバーである。スライダーバー184cは、恐れの感情表現の度合の範囲を設定するためのスライダーバーである。スライダーバー184dは、悲しみの感情表現の度合の範囲を設定するためのスライダーバーである。スライダーバー184eは、嫌悪の感情表現の範囲を調整するためのスライダーバーである。そして、スライダーバー184fは、怒りの感情表現の範囲を調整するためのスライダーバーである。
各スライダーバー184a-184fは、スライダーを、最小値から最大値までの間で複数の段階(この第1実施例では、20段階)で設定可能である。したがって、利用者は、スライダーバー184b、184c、184d、184eおよび184fの各スライダーの位置(以下、「設定値」ということがある)を設定することで、喜び、恐れ、悲しみ、嫌悪および怒りのそれぞれの感情についての感情表現の度合の範囲の上限値を個別に決定することができる。つまり、利用者は、自身の好みに応じて、喜び、恐れ、悲しみ、嫌悪および怒りについての感情表現の度合の上限値を設定することができる。このため、第1実施例では、アバターの個別の感情についての感情表現は、スライダーバー184b-184fのそれぞれで設定された感情表現の範囲内において、複数の段階で設定可能である。
たとえば、各感情についての表情の強さを異なる範囲に設定したり、一部を同じ範囲に設定したり、すべての範囲を同じに設定したりすることができる。
ただし、この第1実施例では、スライダーバー184b-184fにおけるスライダーの位置に応じて、各感情を表現するためのアバターの画像130についての各部位のパラメータの値が予め設定されている。したがって、スライダーの位置で、対応する感情についてのアバターの表情が決定される。
スライダーバー184b-184fのスライダーを最小値から最大値に向けて移動させると、アバターの画像130の表情は、感情の強さが最小である状態(すなわち、ニュートラルな状態)から次第に感情の強さが大きくなるように変化される。逆に、スライダーバー184b-184fのスライダーを最大値から最小値に向けて移動させると、アバターの画像130の表情は、感情の強ささが最大である状態から次第にニュートラルな状態になるように変化される。
図示は省略するが、利用者が、スライダーバー184b、184c、184d、184eまたは184fのスライダーを移動させると、移動させたスライダーによって設定される各部位のパラメータの値に応じて、表示枠182に表示されたアバターの画像130が変化される。したがって、利用者は、アバターの画像130を見ながら、各感情についての表情の強さの範囲(上限)を設定することができる。
スライダーバー184aで設定された感情表現の度合で、各感情について感情表現の度合が決定される。各感情の強さは、ニュートラルの状態(最小値)から、スライダーバー184b-184fの各々で決定された各感情の強さの最大値までの間で決定することができる。
たとえば、スライダーバー184aのスライダーが最大値(100%)に設定されている場合には、各感情の強さは、スライダーバー184b-184fの各々で決定された各感情の強さの範囲のうちの上限値(100%)に設定される。また、スライダーバー184aのスライダーが真ん中の位置(50%)に設定されている場合には、各感情の強さは、スライダーバー184b-184fの各々で決定された各感情の強さの範囲のうちの真ん中の値(すなわち、上限値の50%)の値に決定される。
なお、スライダーバー184aのスライダーで決定される割合に応じて決定された感情の強さの割合に対応するパラメータが設定されていない場合には、その感情の強さの割合に近い割合に応じた感情の強さについてのパラメータが使用される。この第1実施例では、感情の強さの割合に近い割合のうち、大きい方の割合に応じた感情の強さについてのパラメータが使用される。具体的には、各スライダーバー184b-184fは、20段階で設定可能であるため、5%刻みでスライダーを設定することができ、したがって、決定された感情の強さの割合が5%刻みの割合でない場合には、5%刻みの数値のうち、決定された感情の強さの割合に近い割合のうち、大きい方の割合に応じた感情の強さについてのパラメータが使用される。一例として、決定された感情の強さの割合が12.5%である場合には、15パーセントの感情の強さについてのパラメータが使用される。
ボタン186は、感情表現の設定を終了するためのボタンである。ボタン186がオンされると、スライダーバー184a-184fの各々のスライダーの位置が記憶(更新)され、設定画面180が閉じられ、選択画面110が表示される。
なお、第1実施例では、スライダーバー184a-184fを用いて、全体的な感情表現の度合および個別の感情の強さの範囲を設定するようにしてあるが、数値を0-100%間で入力するようにしてもよい。
したがって、トークにおいては、トーク画面160に表示されるアバターの画像130は、利用者が設定した感情の強さに応じた表情を表現するように生成される。ただし、いずれの感情を表現するかは、第1の所定の方法で選択される。この第1実施例では、アバターの画像130で表現する感情は、操作者の感情である。
第1の所定の方法の一例としては、応答内容の音声データに含まれる単語、すなわち、操作者が発話した音声に含まれる単語がいずれかの感情を表すまたはいずれかの感情に関連する場合に、当該感情をアバターの画像130で表現する感情として選択する。ただし、応答内容の音声データは、テキストに変換され、応答内容の音声データに含まれる単語がいずれかの感情を表すまたはいずれかの感情に関連するかどうかが判断される。一方、応答内容の音声データに含まれる単語がいずれの感情も表さないまたはいずれの感情にも関連しない場合には、ランダムに感情を選択する。ただし、これは一例であり、ランダムに感情を選択することに代えて、予め設定しておいた感情を選択するようにしてもよい。
この第1実施例では、感情を示すまたは感情に関連する複数の単語が予め想定されており、想定された単語(キーワード)が各感情に対応して記載された辞書のデータ(以下、「感情辞書データ」という)が利用者側端末12に記憶されている。ただし、感情辞書データを、クラウド上のサーバに記憶して、利用者側端末12がそのサーバにアクセスして感情辞書データを参照するようにしてもよい。
図9は感情辞書の一例を示す図である。図9に示すように、感情辞書は、感情の種類に対応して、想定されたキーワード(想定キーワード)を記述した辞書である。第1実施例では、感情の種類は、「喜び」、「恐れ」、「悲しみ」、「嫌悪」および「怒り」である。また、上述したように、想定キーワードは、感情を示すまたは感情に関連することが想定された複数の単語である。図9に示す例では、感情の種類の「喜び」に対応して、「喜び」、「楽しい」、「うれしい」などの想定キーワードが記載される。説明は省略するが、他の感情の種類についても同様である。
この感情辞書データを参照することにより、応答内容の音声データに含まれる単語がいずれかの感情を表すまたはいずれかの感情に関連するかどうかが判断され、応答内容の音声データに含まれる単語がいずれかの感情を表すまたはいずれかの感情に関連する場合に、当該単語が属する感情が操作者の感情として推定され、推定された感情がアバターの画像130で表現する感情として選択される。
ただし、操作者の音声に含まれる単語がいずれの感情の種類にも属さない場合には、たとえば、ランダムに感情が選択される。ただし、これは一例であり、他の例では、無表情(ニュートラルな状態)が選択されるようにしてもよい。
また、他の例では、操作者の感情を顔画像または音声に基づいて推定し、推定した感情をアバターの画像130で表現する感情として選択する。操作者の感情は、トーク中における操作者の顔画像または音声に基づいて推定することができる。顔画像または音声を用いて、操作者のような人間の感情を推定する方法はすでに公知であるため、その方法の説明については省略する。ただし、操作者の顔画像から操作者の感情を推定する場合には、操作者側端末16に操作者の顔画像を撮影可能なカメラを設ける必要がある。また、操作者の感情に代えて、利用者の感情を推定し、利用者の感情をアバターでの画像103で表現する感情として選択するようにしてもよい。
なお、上述したように、顔画像から人間の感情を推定する手法としては、公知の技術を用いることができる。たとえば、「小林 宏、原 文雄:ニューラルネットワークによる人の基本表情認識、計測自動制御学会論文集 Vol.29, No.1, 112/118(1993)」、「小谷中陽介、本間経康、酒井正夫、阿部健一:ニューラルネットワークを用いた顔表情認識、東北大医保健学科紀要 13(1):23~32, 2004」および「西銘 大喜、遠藤 聡志、當間 愛晃、山田 孝治、赤嶺 有平:畳み込みニューラルネットワークを用いた表情表現の獲得と顔特徴量の分析、人工知能学会論文誌 32巻5号FZ(2017年)」などに開示された技術を用いることができる。
また、他の公知の技術では、顔画像から抽出した特徴点に基づいて人間の感情を推定する手法としては、特開2020-163660号公報に開示された技術を用いることもできる。
また、上述したように、音声から人間の感情を推定する手法としては、公知の技術を用いることができる。たとえば、特開2021-12285号および「森 大毅:音声から感情・態度の理解、電子情報通信学会誌 Vol. 101, No. 9, 2018」などに開示された技術を用いることができる。
ただし、顔画像また音声に基づいて感情を推定する手法として公知の技術を用いる場合には、そのために必要な回路コンポーネントおよびデータが適宜操作者側端末16または利用者側端末12に設けられる。ただし、顔画像また音声に基づいて感情を推定する装置(以下、「推定装置」という)をクラウド上に設けて、推定装置に顔画像または音声を送信し、感情の推定結果を推定装置から受け取るようにしてもよい。
図10は利用者側端末12に内蔵される記憶部(ここでは、RAM)22のメモリマップ300の一例を示す。RAMは、CPU20のワーク領域およびバッファ領域として使用される。図10に示すように、記憶部22は、プログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、この実施例の制御プログラムが記憶されている。
制御プログラムは、起動判断プログラム302a、メイン処理プログラム302b、操作検出プログラム302c、通信プログラム302d、画像生成プログラム302e、画像出力プログラム302f、アバター制御プログラム302g、感情表現設定プログラム302h、感情選択プログラム302i、音検出プログラム302jおよび音出力プログラム302kなどを含む。上述した第1実施例のアプリは、メイン処理プログラム302b、操作検出プログラム302c、通信プログラム302d、画像生成プログラム302e、画像出力プログラム302f、アバター制御プログラム302g、感情表現設定プログラム302h、感情選択プログラム302i、音検出プログラム302jおよび音出力プログラム302kを含む。
ただし、アプリは、利用者側端末12が端末本体の機能として備える、操作検出プログラム、通信プログラム、画像生成プログラム、画像出力プログラムおよび音出力プログラムを利用することもできる。
起動判断プログラム302aは、この第1実施例のアプリを起動するかどうかを判断するためのプログラムである。メイン処理プログラム302bは、この第1実施例のアプリのメインルーチンの処理(全体的な処理)を実行するためのプログラムである。
操作検出プログラム302cは、利用者の操作に従って入力装置28から入力される操作データ304aを検出し、データ記憶領域304に記憶するためのプログラムである。
通信プログラム302dは、外部の機器、この実施例では、所定のサービスを提供するサイトを運営するためのサーバおよび操作者側端末16と有線または無線で通信(データの送信および受信)するためのプログラムである。
画像生成プログラム302eは、表示装置30に表示するための各種の画面の全部または一部に対応する画像データを、画像生成データ304dを用いて生成するためのプログラムである。
画像出力プログラム302fは、画像生成プログラム302eに従って生成した画像データを表示装置30に出力するためのプログラムである。
アバター制御プログラム302gは、アバターを動作させるためのプログラムである。この第1実施例では、CPU20は、アバター制御プログラム302gに従って、アバターに発話動作をさせたり、アバターに無意識動作をさせたり、アバターに挨拶の動作(挨拶の音声出力を含む)をさせたりする。
感情表現設定プログラム302hは、設定画面180における利用者の操作に応じて、全体的な感情表現の度合を設定するとともに、個別の感情表現の度合の範囲を設定するためのプログラムである。
感情選択プログラム302iは、トークにおいて、アバターの画像130で表現する感情を選択するためのプログラムである。
音検出プログラム302jは、マイク32から入力される音声を検出するためのプログラムである。
音出力プログラム302kは、受信した操作者の音声データを出力するためのプログラムである。
図示は省略するが、プログラム記憶領域302には、利用者側端末12のオペレーティングシステムなどのミドルウェア、ブラウザ機能を実行するためのプログラム、本願のアプリ以外の他のアプリケーション・プログラムも記憶される。
また、データ記憶領域304には、操作データ304a、送信データ304b、受信データ304c、画像生成データ304d、表情パラメータデータ304e、首の動きデータ304gおよびスライダー位置データ304hなどが記憶される。
操作データ304aは、操作検出プログラム302cに従って検出された操作データである。送信データ304bは、操作者側端末16に送信するデータであり、チャットにおける利用者の質問内容についてのテキストデータおよびトークにおける利用者の質問内容についての音声データである。受信データ304cは、操作者側端末16から送信され、受信したデータであり、チャットにおける操作者の応答内容についてのテキストデータおよびトークにおける操作者の応答内容についての音声データである。
画像生成データ304dは、利用者側端末12の表示装置に表示される各種の画面を生成するためのデータであり、アバターの画像130を生成するためのデータを含む。また、アバターの画像130を生成するためのデータは、アバターの画像130の静止した状態の画像データ、無意識動作および挨拶の動作についてのアニメーションデータを含む。表情パラメータデータ304eは、各感情について、感情表現を最小から最大まで複数の段階で変化させるための各部位のパラメータについてのデータである。
首の動きデータ304gは、操作者側端末16から送信され、受信したデータ音声データに付加された操作者の首の動きについてのデータである。スライダー位置データ304hは、設定画面180で設定された各スライダーの位置(つまり、設定値)についてのデータであり、デフォルトでは、各スライダーの位置は真ん中に設定される。
図示は省略するが、データ記憶領域304には、制御処理を実行するために必要な他のデータが記憶されたり、タイマ(カウンタ)およびフラグが設けられたりする。
また、図示は省略するが、操作者側端末16は利用者側端末12との間でチャットまたはトークを行うため、操作者側端末16の記憶部(ここでは、RAM)52には、利用者側端末12の記憶部22に記憶されるプログラムおよびデータと同様のプログラムおよびデータが記憶される。
具体的には、操作者側端末16の記憶部52のプログラム記憶領域には、メイン処理プログラム、操作検出プログラム、通信プログラム、画像生成プログラム、画像出力プログラム、音検出プログラム、首の動き検出プログラムおよび音出力プログラムなどが記憶される。
メイン処理プログラムは、チャットまたはトークでコミュニケーションを行う操作者側端末16のアプリケーションのメインルーチンの処理(全体的な処理)を実行するためのプログラムである。
操作検出プログラムは、操作者の操作に従って入力装置58から入力される操作データを検出し、記憶部52のデータ記憶領域に記憶するためのプログラムである。
通信プログラムは、外部の機器、この第1実施例では、利用者側端末12およびサーバ18と有線または無線で通信するためのプログラムである。
画像生成プログラムは、表示装置60に表示するための各種の画面に対応する画像データを、画像生成データを用いて生成するためのプログラムである。
画像出力プログラムは、画像生成プログラムに従って生成した画像データを表示装置60に出力するためのプログラムである。
ただし、操作者側端末16では、チャットまたはトークを選択したり、アバターの画像を表示したりする必要はない。このため、選択画面110のような画面は表示されず、チャット画面140およびトーク画面160のような画面では、利用者のアバターの画像は表示されない。ただし、利用者のアバターの画像が表示されるようにしてもよい。
音検出プログラムは、マイク62から入力される操作者の音声を検出するためのプログラムである。
首の動き検出プログラムは、音量検出プログラムに従って音声を検出している場合に、慣性センサ68から出力される角速度を検出し、検出した角速度に対応する首の動きデータを記憶部52のデータ記憶部に記憶するためのプログラムである。
音出力プログラムは、受信した利用者の音声データを出力するためのプログラムである。
また、記憶部52のデータ記憶領域には、送信データ、受信データ、画像生成データ、音声データおよび首の動きデータなどが記憶される。
操作データは、操作検出プログラムに従って検出された操作データである。送信データは、利用者側端末12に送信するデータであり、チャットにおける操作者の応答内容についてのテキストデータおよびトークにおける操作者の応答内容についての音声データである。第1実施例では、音声データに音量データが付加される。受信データは、利用者側端末12から送信され、受信したデータであり、チャットにおける利用者の質問内容についてのテキストデータおよびトークにおける利用者の質問内容についての音声データである。
画像生成データは、操作者側端末16の表示装置60に表示される各種の画面を生成するためのデータである。音声データは、音検出プログラムに従って検出された操作者の音声に対応するデータである。首の動きデータは、首の動き検出プログラムに従って検出された操作者の首の動きに対応するデータである。
なお、記憶部52には、利用者とチャットまたはトークを実行するために必要な他のプログラムおよびデータも記憶される。
図11-図13は、利用者側端末12のCPU20の制御処理を示すフロー図である。図示は省略するが、CPU20は、制御処理と並行して、操作データの検出処理を実行するとともに、操作者側端末16からのデータを受信する処理を実行する。
また、図示は省略するが、利用者側端末12では、選択画面110においてボタン120がオンされ、感情表現の設定処理が選択された場合に、図8に示したような感情表現の設定画面180が表示装置30に表示され、利用者の操作に応じて全体的な感情表現の度合および個別の感情表現の度合についての範囲が設定される処理が実行される。
図11に示すように、利用者側端末12のCPU20は、制御処理を開始すると、ステップS1で、アプリの起動条件を満たすかどうかを判断する。上述したように、CPU20は、所定のサービスのウェブ画面(第1実施例では、ウェブ画面100)を表示した状態において、利用者がアプリの起動(または、実行)を指示した場合、利用者の操作が第2所定時間(たとえば、30秒)以上無い場合、当該ウェブ画面において同じ位置または似たような場所(近くの位置)を指示している場合、所定のサービスにおいて複数回(たとえば、3回)同じウェブ画面に戻ってくる場合に、アプリの起動条件を満たすと判断する。
ステップS1で“NO”であれば、つまり、アプリの起動条件を満たしていない場合には、ステップS1に戻る。一方、ステップS1で“YES”であれば、つまり、アプリの起動条件を満たしていれば、ステップS3で、アプリを起動する。なお、制御処理において、ステップS3以降がアプリのメインルーチンの処理である。
続くステップS5では、図4に示したような選択画面110をウェブ画面100の前面に表示する。ステップS5では、CPU20は、選択画面110についての画像データを生成し、生成した画像データを表示装置30に出力する。以下、画面を表示する場合について同様である。
上述したように、アプリを起動した当初では、すなわち、アプリを起動して最初に選択画面110を表示するときに、CPU20は、静止した状態のアバターの画像130を表示した後に、アニメーションデータを再生し、アバターに挨拶の動作を行わせる。
次のステップS7では、アバターの画像130に待機動作を実行させる。上述したように、CPU20は、無意識動作を行わせる。ただし、CPU20は、選択画面110において利用者の操作が無い場合において、数秒または数十秒毎にアバターに無意識動作を実行させる。
続いて、ステップS9で、ボタン操作が有るかどうかを判断する。ここでは、CPU20は、操作データ304aを参照して、選択画面110のボタン114またはボタン116がオンされたかどうかを判断する。なお、図示は省略するが、ボタン118がオンされた場合には、選択画面110を閉じて(非表示して)、アプリを終了する。
ステップS9で“NO”であれば、つまり、ボタン操作が無ければ、ステップS7に戻る。一方、ステップS9で“YES”であれば、つまり、ボタン操作が有れば、ステップS11で、チャットかどうかを判断する。ここでは、CPU20は、ボタン114のオンであるかを判断する。
ステップS11で“NO”であれば、つまり、ボタン116のオンであれば、図13に示すステップS31に進む。一方、ステップS11で“YES”であれば、つまり、ボタン114のオンであれば、図12に示すステップS13で、図5に示したようなチャット画面140をウェブ画面100の前面に表示する。
なお、利用者側端末12にハードウェアのキーボードが接続されていない場合には、ソフトウェアキーボードも表示される。また、チャット画面140が表示されるときに、選択画面110が非表示される。
次のステップS15では、質問内容の入力かどうかを判断する。ここでは、CPU20は、質問内容(テキスト)のキー入力があるかどうかを判断する。ステップS15で“YES”であれば、つまり、質問内容の入力であれば、ステップS17で、入力した質問内容を表示枠146に表示して、ステップS15に戻る。一方、ステップS15で“NO”であれば、つまり、質問内容の入力でなければ、ステップS19で、質問内容の送信かどうかを判断する。ここでは、CPU20は、質問内容が確定されたかどうかを判断する。
ステップS19で“YES”であれば、つまり、質問内容の送信であれば、ステップS21で、質問内容のテキストデータを操作者側端末16に送信して、ステップS23に進む。一方、ステップS19で“NO”であれば、つまり、質問内容の送信でなければ、ステップS23に進む。
ステップS23では、応答内容のテキストデータを受信したかどうかを判断する。ステップS23で“NO”であれば、つまり、応答内容のテキストデータを受信していなければ、ステップS27に進む。一方、ステップS23で“YES”であれば、つまり、応答内容のテキストデータを受信すれば、ステップS25で、応答内容の表示に合せてアバターを発話させて、ステップS27に進む。ステップS25では、CPU20は、応答内容を表示枠144に一文字ずつテキストで表示し、その表示に合せてアバターが喋るように口唇部を変化させて発話動作を行うアバターの画像130を表示枠142に表示する。なお、応答内容をすべて表示枠144に表示すると、質問内容を入力可能とするために、表示枠146の文字列がすべて消去(つまり、非表示)される。
ステップS27では、チャットの終了かどうかを判断する。ここでは、CPU20は、ボタン148がオンされたり、操作者側端末16からチャットの終了が指示されたりしたかどうかを判断する。
ステップS27で“NO”であれば、つまり、チャットの終了でなければ、ステップS15に戻る。一方、ステップS27で“YES”であれば、つまり、チャットの終了であれば、ステップS29で、チャット画面140を閉じて、図11に示したステップS5に戻る。
また、上述したように、ステップS11で“NO”であれば、図13に示すステップS31で、図6に示したようなトーク画面160をウェブ画面100の前面に表示する。なお、トーク画面160が表示されるときに、選択画面110が非表示される。
続くステップS33では、音声の入力かどうかを判断する。ここでは、CPU20は、マイク32で音声を検出したかどうかを判断する。ステップS33で“NO”であれば、つまり、音声の入力でなければ、ステップS37に進む。一方、ステップS33で“YES”であれば、つまり、音声の入力であれば、ステップS35で、入力された音声に対応する音声データ(すなわち、質問内容の音声データ)を操作者側端末16に送信して、ステップS37に進む。
ステップS37では、応答内容の音声データを受信したかどうかを判断する。ステップS37で“YES”であれば、つまり、応答内容の音声データを受信すれば、ステップS39で、アバターを用いて表現する感情を選択する。ここでは、CPU20は、感情辞書データ304fを参照し、応答内容の音声データに含まれる単語が、感情毎に分類された想定キーワードに含まれるかどうかを判断する。また、CPU20は、応答内容の音声データに含まれる単語が感情毎に分類された想定キーワードに含まれている場合には、対応する感情を表現する感情として選択する。一方、CPU20は、応答内容の音声データに含まれる単語が感情毎に分類された想定キーワードに含まれていない場合には、表現する感情をランダムに選択する。
続くステップS41では、応答内容の音声データを出力し、ステップS43で、ステップS39で選択した感情を全体的な感情表現の度合で表現するとともに、応答内容の音声データに合せて発話動作を行うアバターの画像130の画像データを生成し、出力して、ステップS33に戻る。ステップS43では、CPU20は、スライダー位置データ304hを参照して、選択した感情のスライダーバー(184b-184fのいずれか)の設定値で設定される個別の感情表現の範囲において、感情表現のスライダーバー184aの設定値が示す割合で決定される各部位のパラメータを表情パラメータデータ304eから取得し、取得した各部位のパラメータを用いるとともに、画像生成データ304dを用いてアバターの画像130を生成し、トーク画面160に表示する。このとき、CPU20は、首の動きデータ304gを参照して、操作者の首の動きをアバターの首の動きに反映(または、合成)する。
また、ステップS37で“NO”であれば、つまり、応答内容の音声データを受信していなければ、ステップS45で、トーク終了かどうかを判断する。ここでは、CPU20は、ボタン164がオンされたり、操作者側端末16からトーク終了が指示されたりしたかどうかを判断する。
ステップS45で“NO”であれば、つまり、トーク終了でなければ、ステップS33に戻る。一方、ステップS45で“YES”であれば、つまり、トーク終了であれば、ステップS47で、トーク画面160を閉じて、ステップS5に戻る。
第1実施例によれば、利用者が設定した個別の感情表現の度合の範囲内において全体的な感情表現の度合で、選択した感情を表現するアバターの画像を表示するので、アバターの感情表現の度合を利用者に対して適切に設定することができる。つまり、利用者の好みに応じたアバターの画像を表示することができる。
なお、第1実施例では、操作者の首の動きをアバターの首の動きに反映するようにしたが、反映しなくてもよい。
また、第1実施例では、操作者の首の動きに応じてアバターの画像の首の動きを表現するようにしたが、これに限定される必要はない。予め感情に応じた首の動きを感情の強さ毎に設定しておき、感情の強さで決定される首の動きを表示するようにすることができる。ただし、首の動きは、感情毎の代表的な動きで決定される。たとえば、感情が「恐れ」である場合には、「ひるむ」動作を表現する首の動きに決定される。また、感情が「悲しみ」である場合には、「うなだれる」動作を表現する首の動きに決定される。さらに、感情が「嫌悪」である場合には、「のけぞる」動作を表現する首の動きに決定される。さらにまた、感情が「喜び」または「怒り」である場合には、「前に乗り出す」動作を表現する首の動きに決定される。
さらに、第1実施例では、アバターの画像は、人間を模したアバターの頭部および首の画像としたが、上半身または全身の画像とする場合には、顔の表情および首の動きのみならず、感情に応じた動作を表現する身振り手振りを行わせるようにアバターの動作を制御してもよい。感情に応じた動作は、上記のとおりであり、その動作の度合(または、大きさ)はスライダーバーの設定値で設定される。
さらにまた、第1実施例では、チャットでは、操作者との間でテキストをやり取りするようにしたが、音声でやり取りすることもできる。かかる場合には、チャットにおいても、トークの場合と同様に、操作者の発話内容を音声出力するときに、アバターの画像で操作者の感情を表現するようにしてもよい。ただし、第1実施例では、操作者の音声をテキストに変換して操作者の感情を推定するため、チャットにおいて、テキストでやり取りする場合にも、アバターの画像で操作者の感情を表現するようにしてもよい。
また、上記の第1実施例では、利用者側端末12で操作者の感情を推定するようにしたが、これに限定される必要はない。操作者側端末16で操作者の感情を推定し、推定結果を音声データに付加して利用者側端末12に送信するようにしてもよい。この場合、操作者側端末16では、CPU50は、操作者の音声を検出したときに、感情辞書データを用いて操作者の感情を推定し、音声データに推定結果のデータを付加して利用者側端末12に送信する。一方、利用者側端末12では、操作者の感情を推定する必要がないため、ステップS45では、表現する感情の選択のみが実行される。
<第2実施例>
第2実施例は、少なくともトークにおいて、操作者側端末16で、アバターの画像130に対応する画像データを生成し、生成した画像データを利用者側端末12に送信し、利用者側端末12は受信した画像データを用いてアバターの画像130をトーク画面160に表示するようにした以外は、第1実施例と同じであるため、重複した説明は省略する。
第2実施例では、トークにおいて、操作者側端末16で、アバターの画像130に対応する画像データを生成するため、トークが開始されたときに、利用者側端末12で設定されたスライダーバー184a-184fの各々の設定値、すなわち、スライダーの位置の情報(第1実施例で示したスライダー位置データ304h)が操作者側端末16に送信される。
また、トークにおいて、操作者が発話すると、操作者側端末16は、操作者が発話した音声を記憶し、第1実施例で説明した第1の所定の方法で選択された感情を表現するアバターの画像130の画像データを生成する。ただし、表現される感情の強さは、第1実施例で説明したように、利用者側端末12から送信されたスライダーの位置の情報に基づいて設定される。
なお、アバターの画像130の画像データを生成する方法は、第1実施例で説明した方法と同じである。
操作者側端末16は、検出した音声の音声データと生成した画像データを利用者側端末12に送信する。利用者側端末12は、音声データおよび画像データを受信し、音声データの出力に合せて、画像データを用いてトーク画面160のアバターの画像130を表示する。つまり、利用者側端末12では、スピーカ34から操作者の音声が出力されるとともに、トーク画面160において、選択した感情を全体的な感情表現の度合で表示するとともに、操作者の応答内容の音声に合せて発話動作を行うアバターの画像130が表示される。
したがって、第2実施例では、操作者側端末16の記憶部52のプログラム記憶領域には、図10に示したアバター制御プログラム302g、感情表現設定プログラム302hおよび感情選択プログラム302iと同じプログラムがさらに記憶される。また、第2実施例では、利用者側端末12において、感情選択プログラム302i、感情辞書データ304fおよび首の動きデータ304gが削除される。
また、第2実施例の操作者側端末16では、トークにおいて、利用者側端末12から送信された音声データを受信して、出力したり、操作者の音声データおよび首の動きデータを検出して、音声データを利用者側端末12に送信したりする処理に加えて、アバターの画像130の画像データを生成する処理(以下、「アバターの画像生成処理」という)が実行される。
具体的には、操作者側端末16は、第1の所定の方法で、アバターで表現する感情を選択し、選択した感情を全体的な感情表現の度合で表示するとともに、応答内容の音声データに合せて発話動作を行うアバターの画像130の画像データを生成する。このとき、CPU20は、首の動きデータを参照して、操作者の首の動きをアバターの首の動きに反映(または、合成)する。したがって、第2実施例では、操作者側端末16の記憶部52のデータ記憶領域には、図10に示した首の動きデータ304gおよびスライダー位置データ304hと同じデータがさらに記憶される。
以下、具体的な処理について説明する。図14は、第2実施例における利用者側端末12のCPU20の制御処理の一部を示すフロー図である。図15は、第2実施例における操作者側端末16のCPU50のアバターの画像生成処理を示すフロー図である。以下、CPU20の制御処理について説明するとともに、CPU50のアバターの画像生成処理について説明するが、既に説明した処理については説明を省略する。
図14に示すように、CPU20は、ステップS31で、トーク画面160を表示装置30に表示し、ステップS71で、スライダーバーの設定値、すなわち、スライダー位置データ304hを操作者側端末16に送信して、ステップS33に進む。
また、ステップS33で“NO”である場合に、または、ステップS35の処理を実行した場合に、ステップS73で、応答内容の音声データおよび画像データを受信したかどうかを判断する。
ステップS73で“YES”であれば、つまり、応答内容の音声データおよび画像データを受信した場合には、ステップS75で、応答内容の音声データの出力に合せて画像データを出力する。したがって、操作者の応答内容の音声が利用者側端末12で出力されるとともに、出力される音声に合せて、推定された操作者の感情を設定された大きさで表現するアバターが発話動作を行う画像が表示される。
一方、ステップS73で“NO”であれば、つまり、応答内容の音声データおよび画像データを受信していない場合には、ステップS45に進む。
次に、図15を参照して、操作者側端末16のCPU50のアバターの画像生成処理について説明するが、既に説明した処理内容についての説明は省略する。
図15に示すように、CPU50は、アバターの画像生成処理を開始すると、ステップS91で、アバターの画像130で表現する感情を選択し、ステップS93で、ステップS91で選択した感情を全体的な感情表現の度合で表示するとともに、応答内容の音声データに合せて発話動作を行うアバターの画像130の画像データを生成して、アバターの画像生成処理を終了する。ただし、ステップS93では、CPU20は、首の動きデータを参照して、操作者の首の動きをアバターの首の動きに反映(または、合成)する。
このように生成された画像データが、応答内容の音声データとともに、利用者側端末12に送信される。
第2実施例においても、第1実施例と同様に、利用者が設定した個別の感情表現の度合の範囲内において全体的な感情表現の度合で、選択した感情を表現するアバターの画像を表示するので、アバターの感情表現の度合を利用者に対して適切に設定することができる。つまり、利用者の好みに応じたアバターの画像を表示することができる。
<第3実施例>
第3実施例では、利用者の感情を推定し、推定した利用者の感情をアバターで表現するようにした以外は、第1実施例と同じであるため、重複した説明は省略する。
第3実施例では、トークにおいて、利用者側端末12は、操作者の応答内容の音声データを受信すると、利用者の感情およびその強さを第2の所定の方法で推定し、推定した感情を表現するアバターの画像130の画像データを生成して、表示装置30に出力する。ただし、利用者側端末12は、操作者の応答内容の音声データを受信したときに、カメラ38で撮影した利用者の顔画像に基づいて、利用者の感情およびその強さを推定する。
顔画像に基づいて感情を推定する方法としては、第1実施例で示した公知の技術を採用することができる。また、感情の強さの推定については、各感情について強さの異なる複数の表情をニューラルネットワークに学習させておくことにより、感情の種類のみならず、感情の強さも推定することができる。また、感情を推定したときのニューラルネットワークの出力の差に基づいて、感情の強さを推定することもできる。たとえば、無表情(ニュートラルな状態)の顔画像についての出力と、推定された感情についての出力の差に基づいて感情の強さが推定される。
また、特開2020-163660号公報の方法を用いる場合には、顔画像から抽出された特徴点の差(距離)に基づいて、感情の強さを推定することもできる。たとえば、無表情(ニュートラルな状態)の顔画像から抽出された各特徴点に対する、感情の推定に使用した利用者の顔画像から抽出された各特徴点についての距離を算出し、算出した距離に基づいて感情の強さが推定される。距離は、各特徴点について算出されるため、感情の強さは、たとえば、算出された複数の距離についての平均値、最大値または分散に基づいて推定される。
第3実施例では、利用者の感情の強さを用いて、全体的な感情表現の度合が設定される。具体的には、スライダーバー184aの設定値に代えて、利用者の感情の強さが用いられる。このため、第3実施例では、スライダーバー184aは設けなくてもよい。この第3実施例では、利用者の感情の強さが0-100%の間で推定され、推定された感情の強さが全体的な感情表現の度合として設定(または、推定)される。
したがって、第3実施例では第1実施例で示した感情表現設定プログラム302hの一部が変更される。つまり、第3実施例では、感情表現設定プログラム302hは、利用者の顔画像から推定した利用者の感情の強さに基づいて全体的な感情表現の度合を設定するとともに、設定画面180における利用者の操作に応じて、個別の感情表現の度合の範囲を設定するためのプログラムである。
また、第3実施例では、利用者側端末12の記憶部(RAM)22に、利用者の顔画像から、利用者の感情およびその強さを推定するためのプログラムもさらに記憶される。
また、第3実施例では、第1実施例で示した制御処理の一部の処理が変更される。図16は第3実施例の利用者側端末12のCPU20の制御処理の一部を示すフロー図である。
以下、第3実施例の利用者側端末12のCPU20の制御処理の一部について説明するが、既に説明した処理については説明を省略する。
図16に示すように、CPU20は、ステップS37で“YES”であれば、ステップS121で、カメラ38で撮影された利用者の顔画像に基づいて利用者の感情およびその強さを推定する。
次のステップS39aでは、ステップS121で推定した利用者の感情を、アバターの画像130で表現する感情として選択し、ステップS41で、応答内容の音声データを出力する。
そして、ステップS43aで、ステップS39aで選択した感情を全体的な感情表現の度合で表現するとともに、応答内容の音声データに合せて発話動作を行うアバターの画像130の画像データを生成し、出力して、ステップS33に戻る。ステップS43aでは、CPU20は、スライダー位置データ304hを参照して、選択した感情のスライダーバー(184b-184fのいずれか)の設定値で設定される個別の感情表現の範囲において、推定した利用者の感情の度合で決定される全体的な感情の度合で表現したアバターの画像130を、応答内容の音声データに合せて発話動作させる画像データを生成し、トーク画面160に表示する。このとき、CPU20は、首の動きデータ304gを参照して、操作者の首の動きをアバターの首の動きに反映(または、合成)する。
ステップS45以降の処理については、第1実施例と同じであるため、説明を省略する。
第3実施例によれば、利用者の顔画像から推定した利用者の感情およびその強さで、アバターの画像を表示するので、利用者の感情に応じたアバターの画像を表示することができる。つまり、アバターの感情表現の度合を利用者に対して適切に設定することができる。
<第4実施例>
第4実施例では、利用者の感情を推定し、利用者の選択により、推定した利用者の感情に基づいて設定される感情を表現するアバターの画像130を表示するようにした以外は、第3実施例と同じであるため、重複した説明は省略する。
第4実施例では、推定した利用者の感情に基づいて、利用者に同情するまたは利用者を励ますように表現するアバターの画像130が表示される。利用者に同情する場合には、利用者の感情と同じ感情が表現され、利用者を励ます場合には、基本的には、利用者の感情と反対の感情が表現される。
第4実施例では、利用者は、利用者の感情に同情するまたは励ますようにアバターに表現させることを、モード設定画面200において選択(または、設定)することができる。図17はモード設定画面200の一例を示す。モード設定画面200は、選択画面110において、ボタン120をオンし、設定項目を選択するメニュー画面からアバターの表示方法に関する項目が選択されることにより、選択画面110に代えて、表示装置30に表示される。
図17に示すように、モード設定画面200には、画面の上部に、表示枠202が設けられ、表示枠202内にアバターの画像130が表示される。また、表示枠202の下方に、ボタン204、ボタン206およびボタン208が縦に並んで設けられる。
ボタン204は、利用者に同情するようにアバターを表現させる表示方法(以下、「同情モード」という)を選択するためのボタンである。ボタン206は、利用者を励ますようにアバターを表現させる表示方法(以下、「励ましモード」という)を選択するためのボタンである。ボタン208は、アバターの表示方法の設定を終了するためのボタンである。ボタン208がオンされると、選択された同情モードまたは励ましモードが記憶(更新)され、モード設定画面200が閉じられ、選択画面110が表示される。
ただし、ボタン206またはボタン208がオンされた状態で、再度オンされると、ボタン206またはボタン208がオフされた状態となる。つまり、選択された表示モードが解除される。
また、表示モードが同情モードおよび励ましモードのいずれにも設定されていない場合には、第3実施例と同様に、推定した利用者の感情およびその強さで表現したアバターの画像130が表示される(説明の便宜上、「通常モード」と呼ぶことにする)。
第4実施例では、トークにおいて、利用者側端末12は、操作者の応答内容の音声データを受信すると、利用者の感情およびその強さを第2の所定の方法で推定する。アバターの画像130を生成するのに先立って、表示モードが判断される。つまり、表示モードとして、同情モードが設定されているか、励ましモードが設定されているかを判断する。
表示モードが同情モードである場合には、アバターの画像130で表現する感情として、利用者の感情に近づけるように感情が選択される。一例として、第4実施例では、利用者の感情と同じ感情が選択され、その強さが利用者の感情の強さよりも小さく設定され、次第に利用者の感情の強さに一致させるように変化される。たとえば、アバターの画像130で表現する感情の強さ、すなわち、全体的な感情表現の度合が、利用者の感情の強さよりも30%小さい値(ただし、最大値は超えない)に設定され、利用者の感情が変化されない限り、第3所定時間(数フレーム-数十フレーム)毎に、アバターの画像130で表現する感情の強さ(すなわち、全体的な感情表現の度合)が5%ずつ大きくされる。ただし、フレームは、画面を更新する単位時間であり、1/30秒または1/60秒である。以下、同様である。
表示モードが励ましモードである場合には、アバターの画像130で表現する感情として、利用者を励ますような感情が選択される。一例として、第4実施例では、利用者のネガティブな感情に対して、ポジティブな感情が選択される。つまり、利用者の感情が、「恐れ」、「悲しみ」、「嫌悪」または「怒り」である場合に、アバターの画像130で表現する感情として、利用者の感情と反対の感情である「喜び」が選択される。また、アバターの画像130で表現する感情の強さが利用者の感情の強さよりも小さく設定され、次第に利用者の感情の強さに一致させるように変化される。
ただし、利用者の感情が「喜び」である場合には、アバターの画像130で表現する感情として利用者の感情と同じ「喜び」の感情が選択される。この場合、アバターの画像130は、操作者の音声の出力が開始された当初においては、アバターの画像130で表現される感情の強さが利用者の感情の強さと同じに設定され、感情の強さが次第に大きくされる。たとえば、アバターの画像130で表現する感情の強さが、利用者の感情の強さと同じ値に設定され、利用者の感情が変化されない限り、第3所定時間(数フレーム-数十フレーム)毎に、アバターの画像130で表現する感情の強さ(すなわち、全体的な感情表現の度合)が5%ずつ大きくされる。ただし、全体的な感情表現の度合は、最大値(100%)を超えて大きくされることはない。
そして、利用者側端末12は、選択した感情を推定または推定または設定した強さで表現したアバターの画像130を生成および表示する。第4実施例では、表示モードとして通常モードが設定されている場合には、第3実施例で説明したように、アバターの画像130が表示される。また、表示モードとして同情モードまたは励ましモードが設定されている場合には、アバターの画像130で表現される感情は、利用者の感情(「第1の感情」に相当する)に基づいて設定した感情(「第2の感情」に相当する)である。なお、アバターの画像130を生成する方法は、第1実施例で示した方法と同じである。
したがって、第4実施例では、利用者側端末12の記憶部(RAM)22に、利用者の操作に従って表示モードを同情モードまたは励ましモードに設定するためのプログラムがさらに記憶される。
また、第4実施例では、利用者側端末12の記憶部(RAM)22に、設定された表示モードの識別情報のデータがさらに記憶される。ただし、デフォルトでは、識別情報のデータは、通常モードを示し、利用者の設定に応じて、同情モードまたは励ましモードを示す。
また、第4実施例では、第3実施例で示した制御処理の一部の処理が変更される。図18は第4実施例の利用者側端末12のCPU20の制御処理の一部を示すフロー図である。
以下、第4実施例の利用者側端末12のCPU20の制御処理の一部について説明するが、既に説明した処理については説明を省略する。ただし、利用者側端末12では、制御処理が実行される前に、表示モードの設定が選択された場合には、図17に示したようなモード設定画面200が表示装置30に表示され、利用者の操作に応じて表示モードが設定(変更)または解除される処理が実行される。
図18に示すように、CPU20は、ステップS37で“YES”であれば、ステップS121で、カメラ38で撮影された利用者の顔画像に基づいて利用者の感情およびその大きさを推定する。
次のステップS141では、前回推定した感情と同じであるかどうかを判断する。ステップS141で“YES”であれば、つまり、前回推定した感情と同じであれば、ステップS143で、全体的な感情の度合を、推定した感情の度合に所定量(たとえば、5%)近づけて、ステップS41に進む。ただし、ステップS143の処理は、第3所定時間(数フレーム-数十フレーム)毎に実行される。したがって、前回ステップS143の処理を実行してから第3所定時間を経過していない場合には、ステップS143の処理はスキップされる。
一方、ステップS141で“NO”であれば、つまり、前回推定した感情と異なる場合には、ステップS145に進む。ただし、トークを開始して、最初にステップS121の処理が実行された場合には、前回推定した感情は存在しないため、ステップS141では、“NO”と判断される。
ステップS145では、表示モードが同情モードであるかどうかを判断する。ステップS145で“YES”であれば、つまり、表示モードが同情モードである場合には、ステップS147で、利用者の感情に近づけるように感情を選択して、ステップS41に進む。ただし、ステップS147では、全体的な感情表現の度合は、利用者の感情の強さよりも、所定の割合(たとえば、30%)小さく設定される。
一方、ステップS145で“NO”であれば、つまり、表示モードが同情モードでない場合には、ステップS149で、表示モードが励ましモードであるかどうかを判断する。
ステップS149で“YES”であれば、つまり、表示モードが励ましモードである場合には、ステップS151で、利用者を励ますような感情を選択して、ステップS41に進む。ただし、ステップS151では、利用者の感情が「恐れ」、「悲しみ」、「嫌悪」または「怒り」である場合には、全体的な感情表現の度合は、利用者の感情の強さよりも、所定の割合(たとえば、30%)小さく設定される。また、ステップS147では、利用者の感情が「喜び」である場合には、全体的な感情表現の度合は、利用者の感情の強さと同じ割合に設定される。
一方、ステップS149で“NO”であれば、つまり、表示モードが通常モードである場合には、ステップS39aで選択した利用者の感情を、アバターの画像130で表現する感情として選択し、ステップS41に進む。
ステップS41では、応答内容の音声データの出力を開始し、次のステップS43bでは、ステップS39aで推定した感情を全体的な感情表現の度合で表現するとともに、応答内容の音声データに合せて発話動作を行うアバターの画像130の画像データを生成し、出力して、ステップS33に戻る。
つまり、表示モードとして、同情モードおよび励ましモードが選択されていない場合には、ステップS43bでは、ステップS39aで選択した感情およびステップS121において推定した度合で表現したアバターの画像130が表示される。また、表示モードとして、同情モードまたは励ましモードが選択されている場合には、ステップS43bでは、ステップS147またはS151で選択した感情および設定された度合(全体的な感情表現の度合)で表現したアバターの画像130が表示される。ただし、上述したように、全体的な感情表現の度合は、推定された感情が変化されない場合には、推定した感情の度合に所定量ずつ近づけられる。つまり、利用者に同情するように、または、利用者を励ますように、アバターの感情表現が変化(または、調整)される。
第4実施例によれば、利用者の顔画像から推定した利用者に同情するように、または、利用者を励ますように、アバターの感情表現を変化させるので、利用者の感情に応じたアバターの画像を表示することができる。つまり、アバターの感情表現の度合を利用者に対して適切に設定することができる。
なお、第4実施例では、表示モードとして、同情モードまたは励ましモードを設定可能な場合について説明したが、これは単なる例示であり、限定される必要はない。設定可能な表示モードの種類および表示モードにおける感情の選択方法は任意に設定することができる。
<第5実施例>
第5実施例は、少なくともトークにおいて、操作者側端末16で、アバターの画像130に対応する画像データを生成し、生成した画像データを利用者側端末12に送信し、利用者側端末12は受信した画像データを用いてアバターの画像130をトーク画面160に表示するようにした以外は、第4実施例と同じであるため、重複した説明は省略する。ただし、第5実施例では、操作者側端末16で画像データが生成されるため、操作者側端末16に記憶されるプログラムおよびデータについては、第2実施例で説明した内容とほぼ同じである。
第5実施例では、トークにおいて、操作者側端末16で、アバターの画像130に対応する画像データを生成するため、トークが開始されたときに、利用者側端末12で設定されたスライダーバー184b-184fの各々の設定値、すなわち、スライダーの位置の情報が操作者側端末16に送信される。
また、トークにおいて、操作者側端末16で、アバターの画像130に対応する画像データを生成するため、利用者が発話したとき、利用者側端末12で、利用者の感情およびその強さを推定し、推定した利用者の感情およびその強さを操作者側端末16に送信する。
また、トークにおいて、操作者が発話すると、操作者側端末16は、操作者が発話した音声を記憶し、利用者側端末12から受信した利用者の感情およびその強さに基づいてアバターの画像130の画像データを生成する。ただし、第4実施例で説明したように、アバターの画像130を生成するのに先立って、表示モードとして、同情モードが設定されているか、励ましモードが設定されているかを判断する。具体的なアバターの画像130の画像データの生成方法は、第4実施例に示した方法と同じであるため、重複した説明は省略する。
操作者側端末16は、記憶した音声の音声データと生成した画像データを利用者側端末12に送信する。利用者側端末12は、音声データおよび画像データを受信し、画像データを用いてトーク画面160のアバターの画像130を表示し、音声データの出力に合せて、トーク画面160において、アバターが発話するように表示させる。
したがって、第5実施例では、操作者側端末16で画像データが生成されるため、第2実施例で説明した操作者側端末16の記憶部52に記憶されるプログラムおよびデータにおいて、表示モードの識別情報のデータがさらに記憶される。
第5実施例では、操作者側端末16で画像データが生成されるため、第2実施例で示した制御処理の一部の処理およびアバターの画像生成処理の一部の処理を変更して、説明することにする。つまり、第5実施例では、図14に示したフロー図が図19に示すフロー図に置き換えられる。また、第5実施例では、図15に示したフロー図が図20に示すフロー図のように変更される。
図19は第5実施例の利用者側端末12のCPU20の制御処理の一部を示すフロー図である。以下、第5実施例の利用者側端末12のCPU20の制御処理の一部について説明するが、既に説明した処理と同じ処理については説明を省略する。
図19に示すように、CPU20は、ステップS31でトーク画面160を表示すると、ステップS71aで、スライダーバー184の設定値、ここでは、スライダーバー184b-184fのスライダーの位置の情報を操作者側端末16に送信する。
続くステップS161では、表示モードが同情モードであるかどうかを判断する。ステップS161で“YES”であれば、つまり、表示モードが同情モードである場合には、ステップS163で、同情モード情報を操作者側端末16に送信して、ステップS33に進む。ただし、同情モード情報とは、利用者側端末12で設定された表示モードが同情モードであることを示す情報を意味する。
一方、ステップS161で“NO”であれば、つまり、表示モードが同情モードでない場合には、ステップS165で、表示モードが励ましモードであるかどうかを判断する。ステップS165で“YES”であれば、つまり、表示モードが励ましモードである場合には、ステップS167で、励ましモード情報を操作者側端末16に送信して、ステップS33に進む。ただし、励ましモード情報とは、利用者側端末12で設定された表示モードが励ましモードであることを示す情報を意味する。
ステップS33-S35の処理は、第1実施例で説明した内容であるため、重複した説明は省略する。
第5実施例では、ステップS35とステップS73の間に、さらに、ステップS169およびS171が設けられる。
したがって、図19のステップS33で“NO”である場合、または、ステップS35の処理を実行すると、ステップS169で、利用者の顔画像に基づいて利用者の感情およびその強さを推定し、ステップS171で、ステップS169で推定した利用者の感情およびその強さを操作者側端末16に送信して、ステップS73に進む。
次に、図20を参照して、第5実施例の操作者側端末16のCPU50のアバターの画像生成処理について説明するが、既に説明した処理と同じ処理についての説明は省略する。
図20に示すように、第5実施例では、第2実施例で示した図15のアバターの画像生成処理の一部が変更される。簡単に説明すると、図15に示したアバターの画像生成処理において、ステップS191、S193、S195、S197、S199およびS201の処理が追加され、ステップS91およびS93がステップS91aおよびS93aに変更される。
図20に示すように、CPU50は、アバターの画像生成処理を開始すると、ステップS191で、前回の感情と同じであるかどうかを判断する。ステップS191で“YES”であれば、つまり、前回の感情と同じであれば、ステップS193で、全体的な感情の度合を、推定した感情の度合に所定量(たとえば、5%)近づけて、ステップS93aに進む。ただし、ステップS193の処理は、第3所定時間(数フレーム-数十フレーム)毎に実行される。したがって、前回ステップS193の処理を実行してから第3所定時間を経過していない場合には、ステップS193の処理はスキップされる。
一方、ステップS191で“NO”であれば、つまり、前回の感情と異なる場合には、ステップS195に進む。ただし、前回の感情が存在しない場合には、ステップS191では、“NO”と判断される。
ステップS195では、表示モードが同情モードであるかどうかを判断する。ステップS195で“YES”であれば、つまり、表示モードが同情モードである場合には、ステップS197で、利用者の感情に近づけるように感情を選択して、ステップS93aに進む。
ただし、ステップS197では、アバターの画像130で表現する感情の強さ(すなわち、全体的な感情表現の度合)は、利用者の感情の強さよりも、所定の割合(たとえば、30%)小さく設定される。
一方、ステップS195で“NO”であれば、つまり、表示モードが同情モードでない場合には、ステップS199で、表示モードが励ましモードであるかどうかを判断する。ステップS199で“YES”であれば、つまり、表示モードが励ましモードである場合には、ステップS201で、利用者を励ますような感情を選択して、ステップS93aに進む。
ただし、ステップS201では、利用者の感情が「恐れ」、「悲しみ」、「嫌悪」または「怒り」である場合には、アバターの画像130で表現する感情(ここでは、「喜び」)の強さ(すなわち、全体的な感情表現の度合)は、利用者の感情の強さよりも、所定の割合(たとえば、30%)小さく設定される。また、ステップS201では、利用者の感情が「喜び」である場合には、アバターの画像130で表現する感情(ここでは、「喜び」)の強さ(すなわち、全体的な感情表現の度合)は、利用者の感情の強さと同じ割合に設定される。
一方、ステップS199で“NO”であれば、つまり、表示モードが通常モードである場合には、ステップS91aで、推定した利用者の感情を、アバターの画像130で表現する感情として選択し、ステップS93aに進む。ただし、利用者の感情およびその強さについては、利用者側端末12から送信され、操作者側端末16で受信される。
ステップS93aでは、選択した感情を推定または設定した全体的な感情の度合で表現するとともに、応答内容の音声データに合せて発話動作を行うアバターの画像130の画像データを生成して、アバターの画像生成処理を終了する。ただし、ステップS93aでは、CPU20は、首の動きデータを参照して、操作者の首の動きをアバターの首の動きに反映(または、合成)する。
このように生成された画像データが、応答内容の音声データとともに、利用者側端末12に送信される。
表示モードとして、同情モードおよび励ましモードが選択されていない場合、すなわち通常モードが設定されている場合には、ステップS93aでは、ステップS91aで選択した感情および利用者の感情の強さ(すなわち、全体的な感情表現の度合)で表現したアバターの画像130の画像データが生成される。
また、表示モードとして、同情モードまたは励ましモードが選択されている場合には、ステップS93aでは、ステップS197またはS201で選択した感情および設定した感情の強さ(すなわち、全体的な感情表現の度合)で表現したアバターの画像130の画像データが生成される。
ただし、表示モードとして、同情モードまたは励ましモードが選択されている場合には、上述したように、感情の強さ(すなわち、全体的な感情表現の度合)は、第3所定時間(数フレームから数十フレーム)毎に、所定量(5%)ずつ変化される。つまり、利用者に同情するように、または、利用者を励ますように、アバターの感情表現が変化(または、調整)される。
第5実施例においても、第4実施例と同様に、利用者の顔画像から推定した利用者に同情するように、または、利用者を励ますように、アバターの感情表現を変化させるので、利用者の感情に応じたアバターの画像を表示することができる。つまり、アバターの感情表現の度合を利用者に対して適切に設定することができる。
なお、第5実施例では、利用者側端末で、利用者の感情およびその強さを推定するようにしたが、限定される必要はない。利用者が発話したときの利用者の顔画像を撮影し、顔画像を操作者側端末に送信し、操作者側端末で利用者の感情およびその強さを推定するようにしてもよい。
<第6実施例>
第6実施例では、サーバ18側で制御処理を実行するようにした以外は、第1実施例と同じであるため、重複した説明は省略する。
上述したように、第6実施例では、サーバ18が制御処理を実行するため、制御処理に関しては、利用者側端末12は入出力装置として機能する。したがって、利用者側端末12は、制御処理において、利用者の操作または入力に応じた操作データおよび利用者の音声に応じた音声データをサーバ18に送信し、サーバ18が送信した画像データ、テキストデータおよび音声データを出力する。
第6実施例の情報処理システム10では、第1実施例で説明したアプリはサーバ18に記憶されており、サーバ18で実行される。
したがって、第6実施例では、サーバ18の記憶部(RAM)18bのプログラム記憶領域には、図8に示した起動判断プログラム302a、メイン処理プログラム302b、通信プログラム302d、画像生成プログラム302e、画像出力プログラム302f、アバター制御プログラム302g、感情表現設定プログラム302h、感情選択プログラム302iおよび音出力プログラム302kと同じプログラムが記憶される。ただし、第6実施例では、画像出力プログラム302fは、画像生成プログラム302eに従って生成した画像データを利用者側端末12に出力(または、送信)する。また、音出力プログラム302kは、受信した操作者の応答内容の音声データを利用者側端末12に出力(または、送信)する。
また、サーバ18の記憶部(RAM)18bのデータ記憶領域には、送信データ、受信データ、画像生成データ、表情パラメータデータ、感情辞書データ、首の動きデータおよびスライダー位置データが記憶される。送信データは、利用者側端末12に送信するデータであり、ウェブ画面100、選択画面110、チャット画面140、トーク画面160の画像データ、アバターの画像130の画像データ、感情表現の度合についての設定における利用者の操作データ、チャットにおける利用者の質問内容についてのテキストデータ、チャットにおける操作者の応答内容についてのテキストデータおよびトークにおける利用者の質問内容についての音声データおよび操作者の応答内容についての音声データである。受信データは、操作者側端末16から送信され、受信したデータであり、チャットにおける操作者の応答内容についてのテキストデータおよびトークにおける操作者の応答内容についての音声データ(第6実施例では、首の動きデータが付加された音声データ)である。
画像生成データは、利用者側端末12の表示装置30に表示される各種の画面を生成するためのデータであり、アバターの画像130を生成するためのデータを含む。また、アバターの画像130を生成するためのデータは、アバターの画像130についての静止した状態の画像データ、無意識動作および挨拶の動作についてのアニメーションデータを含む。
表情パラメータデータは、各感情について、感情表現を最小から最大まで複数の段階で変化させるための各部位のパラメータについてのデータである。
首の動きデータは、操作者側端末16から送信され、受信したデータ音声データに付加された操作者の首の動きについてのデータである。スライダー位置データは、設定画面180で設定された各スライダーの位置(つまり、設定値)についてのデータであり、デフォルトでは、各スライダーの位置は真ん中に設定される。
また、第6実施例では、サーバ18が制御処理を実行するため、利用者側端末12では、起動判断プログラム302a、アバター制御プログラム302g、感情表現設定プログラム302hおよび感情選択プログラム302iを省略することができる。同様に、利用者側端末12には、表情パラメータデータ304e、感情辞書データ304f、首の動きデータ304gおよびスライダー位置データ304hは記憶されない。
具体的には、サーバ18のCPU18aが図21-図23に示す制御処理を実行する。以下、図21-図23を用いてサーバ18のCPU18aが実行する制御処理について説明するが、既に説明した内容と重複する内容については簡単に説明することにする。
図示は省略するが、第6実施例では、利用者側端末12の表示装置30に表示された選択画面110においてボタン120がオンされ、感情表現の設定処理が選択された場合に、サーバ18のCPU18aは、図8に示したような感情表現の設定画面180の画像データを生成して利用者側端末12に送信する。利用者側端末12では、表示装置30に設定画面180が表示され、利用者の操作に応じて全体的な感情表現の度合および個別の感情表現の度合についての範囲が設定され、その設定についての操作データ(ここでは、スライダー位置データ)がサーバ18に送信される。したがって、サーバ18は、利用者側端末12からスライダー位置データを受信すると、利用者側端末12(または、利用者)を識別可能にして、受信したスライダー位置データを記憶部(たとえば、HDD)18bに記憶する。
図21に示すように、サーバ18のCPU18aは、制御処理を開始すると、ステップS201で、アプリの起動条件を満たすかどうかを判断する。ステップS201で“NO”であれば、ステップS201に戻る。一方、ステップS201で“YES”であれば、ステップS203で、アプリを起動する。
続くステップS205では、図4に示したような選択画面110を利用者側端末12に表示する。つまり、CPU18aは、図4に示したような選択画面110の画像データを生成して利用者側端末12に出力(または、送信)する。したがって、利用者側端末12の表示装置30において、選択画面110がウェブ画面100の前面に表示される。以下、利用者側端末12に画面が表示される場合について同様である。
ただし、アプリを起動した当初では、CPU18aは、静止した状態のアバターの画像130を表示枠112に表示する選択画面110の画像データを生成して利用者側端末12に送信し、次いで、アバターに挨拶の動作を行わせるためのアニメーションデータを利用者側端末12に出力する。
次のステップS207では、アバターの画像130に待機動作を実行させる。ここでは、CPU18aは、アバターに無意識動作を行わせるためのアニメーションデータを利用者側端末12に送信する。ただし、CPU18aは、選択画面110において利用者の操作が無い場合において、数秒または数十秒毎にアバターに無意識動作を行わせるためのアニメーションデータを送信する。
続いて、ステップS209で、ボタン操作が有るかどうかを判断する。ここでは、CPU18aは、選択画面110のボタン114またはボタン116がオンされたことを示す操作データを利用者側端末12から受信したかどうかを判断する。なお、図示は省略するが、ボタン118がオンされたことを示す操作データを受信した場合には、選択画面110を閉じる(非表示する)ことを利用者側端末12に指示して、アプリを終了する。
ステップS209で“NO”であれば、ステップS207に戻る。一方、ステップS209で“YES”であれば、ステップS211で、チャットかどうかを判断する。ここでは、CPU18aは、操作データがボタン114のオンを示すかどうかを判断する。
ステップS211で“NO”であれば、つまり、ボタン116のオンであれば、図23に示すステップS231に進む。一方、ステップS211で“YES”であれば、つまり、ボタン114のオンであれば、図22に示すステップS213で、図5に示したようなチャット画面140を利用者側端末12に表示する。つまり、CPU18aは、図5に示したようなチャット画面140の画像データを生成して利用者側端末12に送信する。
したがって、利用者側端末12の表示装置30では、選択画面110が非表示され、ウェブ画面100の前面にチャット画面140が表示される。
次のステップS215では、質問内容の入力かどうかを判断する。ここでは、CPU18aは、質問内容(テキスト)のキー入力を示す操作データを利用者側端末12から受信したかどうかを判断する。
ステップS215で“YES”であれば、ステップS217で、操作データが示すキー入力に対応する文字または文字列を表示枠146にテキストで表示する画像データを生成して利用者側端末12に送信して、ステップS215に戻る。
したがって、利用者側端末12では、チャット画面140の表示枠146に、利用者が入力した質問内容についての文字または文字列が順次表示される。
一方、ステップS215で“NO”であれば、ステップS219で、質問内容の送信かどうかを判断する。ここでは、CPU18aは、質問内容が確定したことを示す操作データを利用者側端末12から受信したかどうかを判断する。
ステップS219で“YES”であれば、ステップS221で、質問内容のテキストデータを操作者側端末16に送信して、ステップS223に進む。ただし、質問内容のテキストデータは、今回の質問において、利用者が入力した文字または文字列を時系列に並べたデータである。一方、ステップS219で“NO”であれば、ステップS223に進む。
ステップS223では、応答内容のテキストデータを操作者側端末16から受信したかどうかを判断する。ステップS223で“NO”であれば、ステップS227に進む。一方、ステップS223で“YES”であれば、ステップS225で、応答内容の表示に合せてアバターを発話させて、ステップS227に進む。ステップS225では、CPU18aは、応答内容を表示枠144に一文字ずつテキストで表示する画像データを生成して利用者側端末12に送信するとともに、その表示に合せて喋るように口唇部を変化させて発話動作を行うアバターの画像130の画像データを生成して利用者側端末12に送信する。
したがって、利用者側端末12では、チャット画面140の表示枠144に応答内容が一文字ずつ表示されるとともに、その応答内容の表示に合せて発話動作を行うアバターの画像130が表示枠142に表示される。
ステップS227では、チャットの終了かどうかを判断する。ここでは、CPU18aは、ボタン148のオンを示す操作データを受信したり、操作者側端末16からチャットの終了を指示する操作データを受信したりしたかどうかを判断する。
ステップS227で“NO”であれば、ステップS215に戻る。一方、ステップS227で“YES”であれば、ステップS229で、チャット画面140を閉じることを利用者側端末12に指示して、図21に示したステップS205に戻る。
また、上述したように、ステップS211で“NO”であれば、図23に示すステップS231で、図6に示したようなトーク画面160を利用者側端末12に表示する。つまり、CPU18aは、図6に示したようなトーク画面160の画像データを生成して利用者側端末12に送信する。
したがって、利用者側端末12の表示装置30では、選択画面110が非表示され、ウェブ画面100の前面にトーク画面160が表示される。
続くステップS233では、当該利用者側端末12の利用者に対応して記憶したスライダーバーの設定値を読み込む。つまり、利用者に対応するスライダー位置データ304hを記憶部(HDD)18bから読み出し、記憶部(RAM)18bに記憶する。
次のステップS235では、利用者の質問内容の音声データを利用者側端末12から受信したかどうかを判断する。ステップS235で“NO”であれば、つまり、質問内容の音声データを受信していなければ、ステップS239に進む。一方、ステップS235で“YES”であれば、つまり、質問内容の音声データを受信すれば、ステップS237で、質問内容の音声データを操作者側端末16に送信して、ステップS239に進む。
つまり、サーバ18は受信した質問内容の音声データを操作者側端末16に送信する。したがって、操作者側端末16では、スピーカ64から利用者の音声が出力される。一方、操作者側端末16は、操作者の応答内容の音声データに音量データを付加して、サーバ18に送信する。
ステップS239では、応答内容の音声データを受信したかどうかを判断する。ステップS239で“YES”であれば、つまり、応答内容の音声データを受信すれば、ステップS241で、アバターを用いて表現する感情を選択する。
続くステップS243では、選択した感情を全体的な感情表現の度合で表現するとともに、応答内容の音声データに合せて発話動作を行うアバターの画像130の画像データを生成する。ただし、ステップS243では、CPU18aは、首の動きデータを参照して、操作者の首の動きをアバターの首の動きに反映(または、合成)する。
次のステップS245では、応答内容の音声データとステップS243で生成した画像データを利用者側端末12に送信して、ステップS235に戻る。
また、ステップS239で“NO”であれば、つまり、応答内容の音声データを受信していなければ、ステップS247では、トーク終了かどうかを判断する。ステップS247で“NO”であれば、ステップS235に戻る。
一方、ステップS247で“YES”であれば、ステップS249で、トーク画面160を閉じることを利用者側端末12に指示して、ステップS205に戻る。
第6実施例においても、第1実施例と同様に、利用者が設定した個別の感情表現の度合の範囲内において全体的な感情表現の度合で、選択した感情を表現するアバターの画像を表示するので、アバターの感情表現の度合を利用者に対して適切に設定することができる。つまり、利用者の好みに応じたアバターの画像を表示することができる。
なお、第6実施例では、トークにおける利用者の質問内容の音声は、利用者側端末12からサーバ18を介して操作者側端末16に送信されるが、第1実施例と同様に、利用者側端末12から操作者側端末16に送信されるようにしてもよい。
また、第6実施例では、第3実施例で示したように、利用者の感情を推定し、推定した利用者の感情をアバターで表現するようにしてもよい。この場合、トークにおいて、サーバは、操作者の応答内容の音声データを受信すると、利用者側端末に利用者の顔画像の送信を要求し、利用者側端末から取得した利用者の顔画像に基づいて、利用者の感情およびその強さを第3実施例で説明した方法で推定する。ただし、利用者の顔画像を取得できない場合には、ランダムに、または、予め決定した感情およびその強さを選択する。
さらに、第6実施例では、第4実施例で示したように、利用者の感情を推定し、利用者の選択により、推定した利用者の感情に基づいて設定される感情を表現するアバターの画像130を表示することもできる。この場合、トークが開始されたときに、利用者側端末12は、スライダーバー184a-184fのスライダーの位置の情報と、表示モードの識別情報をサーバ18に送信し、サーバ18はこれらの情報を利用者側端末12から受信する。
上述の複数の実施例で示したように、情報処理システム10においては、アバターの画像130を、利用者側端末12、操作者側端末16またはサーバ18のいずれかで生成することができる。
なお、上述の各実施例では、全体的な感情表現の度合で、選択した感情を表現するアバターの画像を表示してから、応答内容の音声に合せて発話動作を行うアバターの画像を表示するようにしたが、発話動作を行う間だけ、全体的な感情表現の度合で、選択した感情を表現するアバターの画像を表示するようにしてよい。
また、上述の各実施例では、チャットでは、操作者との間でテキストをやり取りするようにしたが、利用者側端末は、ネットワーク(クラウド)上のチャットサービスサーバにアクセスし、チャットボットとメッセージをやり取りするようにしてもよい。
さらに、上述の各実施例では、トーク画面において、アバターの頭部および首を表示し、アバターの表情で、操作者および利用者の感情を表現するようにしたが、アバターの上半身または全身の画像を表示する場合には、アバターの上半身または全身の動きで、操作者および利用者の感情を表現するようにしてもよい。この場合には、アバターの発話動作には、身振り手振りも含まれる。
また、上述の各実施例では、操作者の音声を利用者側端末のスピーカからそのまま出力するようにしたが、操作者の音声を変換した音声を出力するようにしてもよい。一例として、アバターの画像で表現する感情に応じた音量、音高および話速の少なくとも1つを変化させて出力することが考えられる。
また、上述の各実施例では、感情を「喜び」、「恐れ」、「悲しみ」、「嫌悪」および「怒り」に分類した場合の例について説明したが、アバターの画像で感情を表現できれば良いため、感情の種類および分類する数は限定される必要はない。他の例では、ポール・エクマンによって提唱された、「怒り」、「嫌悪」、「恐れ」、「幸福」、「悲しみ」「驚き」の6種類に分類したり、ラッセルの円環モデルを用いて、複数の感情を、「快」、「不快」、「覚醒」および「非覚醒」の4種類に分類したりすることもできる。
さらにまた、上述の各実施例では、チャットまたはトークを実行可能なアプリについて説明したが、これに限定される必要はない。トーク(つまり、音声のやり取り)のみを実行可能なアプリでもよい。また、他の例では、ウェブ会議またはビデオ通話を行う場合にも適用でき、ウェブ会議またはビデオ通話においてアバターの画像を表示する場合に、全体的な感情表現の度合で、選択した感情が表現される。つまり、本願発明は、或る人間が発話する音声を当該或る人間と対話する他の人間が使用する端末で出力するとともに、当該或る人間に対応するアバターの画像を当該他の人間が使用する端末に表示する場合に適用可能である。
また、上述の各実施例では、起動条件を満たす場合に、アプリを起動するようにしたが、ウェブ画面が表示されるときに、アプリを起動するようにしてもよい。
なお、上述の各実施例で示したフロー図の各ステップは同じ結果が得られる場合には、処理する順番を変更することが可能である。
また、上述の各実施例で挙げた各種の画面、具体的数値はいずれも単なる例示であり、必要に応じて適宜変更可能である。たとえば、トークの場合には、トーク画面を表示することに代えて、アバターの画像のみを表示することも可能である。
10 …情報処理システム
12 …利用者側端末
14 …ネットワーク
16 …操作者側端末
18 …サーバ
18a、20、50 …CPU
18b、22、52 …記憶部
24、54 …通信I/F
26、56 …入出力I/F
28、58 …入力装置
30、60 …表示装置
32、62 …マイク
34、64 …スピーカ
36、66 …センサI/F
38 …カメラ
68 …慣性センサ

Claims (13)

  1. 利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段、
    前記利用者と対話する操作者が発話した音声を受信する受信手段、
    前記受信手段によって前記音声を受信した場合に、前記操作者または前記利用者の感情を推定する推定手段、
    前記推定手段によって推定された前記操作者または前記利用者の感情を前記範囲内で表現し、前記操作者に対応するアバターの画像をディスプレイに表示するアバター表示手段、および
    前記受信手段によって受信された前記音声を出力する音出力手段を備える、情報処理装置。
  2. 前記個別の感情表現の度合を前記範囲内において設定する度合設定手段をさらに備え、
    前記アバター表示手段は、前記度合設定手段によって前記範囲内において設定された前記個別の感情表現の度合で、前記アバターの画像を表示する、請求項1記載の情報処理装置。
  3. 前記度合設定手段は、前記利用者が設定した全体的な感情表現の度合で、前記個別の感情表現の度合を前記範囲内において設定する、請求項2記載の情報処理装置。
  4. 前記推定手段は、前記利用者の少なくとも顔を撮影した顔画像から当該利用者の感情および当該利用者の感情の強さを推定し、
    前記度合設定手段は、前記推定手段の推定結果に基づいて、前記アバターの画像で表現する感情および前記個別の感情表現の度合を範囲内において設定する、請求項2記載の情報処理装置。
  5. 前記推定手段によって推定された前記利用者の感情である第1の感情に基づいて設定された第2の感情を表現するアバターの画像を表示する所定の表示モードを設定するモード設定手段をさらに備え、
    前記アバター表示手段は、前記モード設定手段によって所定の表示モードが設定されている場合に、第2の感情を表現するアバターの画像を表示する、請求項1記載の情報処理装置。
  6. 利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段、
    前記利用者が発話した場合に、前記個別の感情表現の度合の範囲を操作者側端末に送信する送信手段、
    前記利用者と対話する操作者が発話した音声と、前記操作者側端末で推定された前記操作者または前記利用者の感情を前記範囲内で表現する、前記操作者に対応するアバターの画像を受信する受信手段、
    前記受信手段によって受信された前記音声を出力する音出力手段、および
    前記音出力手段によって前記音声を出力するときに、前記受信手段によって受信された前記アバターの画像を表示するアバター表示手段を備える、情報処理装置。
  7. 利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を利用者側端末から受信する第1受信手段、
    前記利用者と対話する操作者が発話した音声を受信する第2受信手段、
    前記第2受信手段によって前記音声を受信した場合に、前記操作者または前記利用者の感情を推定する推定手段、および
    前記推定手段によって推定された前記操作者または前記利用者の感情を前記範囲内で表現し、前記操作者に対応するアバターの画像を生成し、当該アバターの画像と前記第2受信手段によって受信された前記音声を前記利用者側端末に出力する出力手段を備える、情報処理装置。
  8. 利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段を備える情報処理装置で実行される制御プログラムであって、
    前記情報処理装置のプロセッサに、
    前記利用者を対話する操作者が発話した音声を受信する受信ステップ、
    前記受信ステップにおいて前記音声を受信した場合に、前記操作者または前記利用者の感情を推定する推定ステップ、
    前記推定ステップにおいて推定した前記操作者または前記利用者の感情を前記範囲内で表現し、前記操作者に対応するアバターの画像をディスプレイに表示するアバター表示ステップ、および
    前記受信ステップにおいて受信した前記音声を出力する音出力ステップを実行させる、制御プログラム。
  9. 利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段を備える情報処理装置で実行される制御プログラムであって、
    前記情報処理装置のプロセッサに、
    前記利用者が発話した場合に、前記個別の感情表現の度合の範囲を操作者側端末に送信する送信ステップ、
    前記利用者と対話する操作者が発話した音声と、前記操作者側端末で推定された前記操作者または前記利用者の感情を前記範囲内で表現する、前記操作者に対応するアバターの画像を受信する受信ステップ、および
    前記受信ステップにおいて受信した前記音声を出力に合わせて、前記受信ステップにおいて受信した前記アバターの画像を表示するステップを実行させる、制御プログラム。
  10. 情報処理装置で実行される制御プログラムであって、
    前記情報処理装置のプロセッサに、
    利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を利用者側端末から受信する第1受信ステップ、
    前記利用者と対話する操作者が発話した音声を受信する第2受信ステップ、
    前記第2受信ステップにおいて前記音声を受信した場合に、前記操作者または前記利用者の感情を推定する推定ステップ、および
    前記推定ステップにおいて推定した前記操作者または前記利用者の感情を前記範囲内で表現し、前記操作者に対応するアバターの画像を生成し、当該アバターの画像と前記第2受信ステップにおいて受信した前記音声を前記利用者側端末に出力する出力ステップを実行させる、制御プログラム。
  11. 利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段を備える情報処理装置の制御方法であって、
    (a)前記利用者と対話する操作者が発話した音声を受信するステップ、
    (b)前記ステップ(a)において前記音声を受信した場合に、前記操作者または前記利用者の感情を推定するステップ、
    (c)前記ステップ(b)において推定した前記操作者または前記利用者の感情を前記範囲内で表現し、前記操作者に対応するアバターの画像をディスプレイに表示するステップ、および
    (d)前記ステップ(a)において受信した前記音声を出力するステップを含む、制御方法。
  12. 利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を記憶する記憶手段を備える情報処理装置の制御方法であって、
    (a)前記利用者が発話した場合に、前記個別の感情表現の度合の範囲を操作者側端末に送信するステップ、
    (b)前記利用者と対話する操作者が発話した音声と、前記操作者側端末で推定された前記操作者または前記利用者の感情を前記範囲内で表現し、当該音声を発話するように動作する、前記操作者に対応するアバターの画像を受信するステップ、および
    (c)前記ステップ(b)において受信した前記音声の出力するステップを含む、制御方法。
  13. 情報処理装置の制御方法であって、
    (a)利用者によって、複数の感情の種類に対して個別に設定された個別の感情表現の度合の範囲を利用者側端末から受信するステップ、
    (b)前記利用者と対話する操作者が発話した音声を受信するステップ、
    (c)前記ステップ(b)において前記音声を受信した場合に、前記操作者または前記利用者の感情を推定するステップ、および
    (d)前記ステップ(c)において推定した前記操作者または前記利用者の感情を前記範囲内で表現し、前記操作者に対応するアバターの画像を生成し、当該アバターの画像と前記ステップ(b)において受信した前記音声を前記利用者側端末に出力するステップを含む、制御方法。
JP2021184438A 2021-11-12 2021-11-12 情報処理装置、制御プログラムおよび制御方法 Pending JP2023072110A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021184438A JP2023072110A (ja) 2021-11-12 2021-11-12 情報処理装置、制御プログラムおよび制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021184438A JP2023072110A (ja) 2021-11-12 2021-11-12 情報処理装置、制御プログラムおよび制御方法

Publications (1)

Publication Number Publication Date
JP2023072110A true JP2023072110A (ja) 2023-05-24

Family

ID=86424495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021184438A Pending JP2023072110A (ja) 2021-11-12 2021-11-12 情報処理装置、制御プログラムおよび制御方法

Country Status (1)

Country Link
JP (1) JP2023072110A (ja)

Similar Documents

Publication Publication Date Title
US20200090393A1 (en) Robot and method for operating the same
JP4395687B2 (ja) 情報処理装置
US11948241B2 (en) Robot and method for operating same
KR101894573B1 (ko) 3d 디지털 액터형 스마트폰 인터페이스 운용시스템
KR102448382B1 (ko) 텍스트와 연관된 이미지를 제공하는 전자 장치 및 그 동작 방법
JP2018014094A (ja) 仮想ロボットのインタラクション方法、システム及びロボット
JP2007527556A (ja) オブジェクトのための行動トランスレータ
KR102148151B1 (ko) 디지털 커뮤니케이션 네트워크에 기반한 지능형 채팅
JP7278307B2 (ja) コンピュータプログラム、サーバ装置、端末装置及び表示方法
CN107480766B (zh) 多模态虚拟机器人的内容生成的方法和系统
US20220215678A1 (en) System and method for reconstructing unoccupied 3d space
US10785489B2 (en) System and method for visual rendering based on sparse samples with predicted motion
CN111538456A (zh) 基于虚拟形象的人机交互方法、装置、终端以及存储介质
JP7193015B2 (ja) コミュニケーション支援プログラム、コミュニケーション支援方法、コミュニケーション支援システム、端末装置及び非言語表現プログラム
US20190251350A1 (en) System and method for inferring scenes based on visual context-free grammar model
WO2022252866A1 (zh) 一种互动处理方法、装置、终端及介质
KR20180071833A (ko) 3d 디지털 액터형 컴퓨터 인터페이스 운용시스템
CN116188642A (zh) 交互方法、装置、机器人和存储介质
JP2019185201A (ja) 強化学習システム
JP2023072110A (ja) 情報処理装置、制御プログラムおよび制御方法
Seib et al. Enhancing human-robot interaction by a robot face with facial expressions and synchronized lip movements
JP2023072111A (ja) 情報処理装置、制御プログラム、制御方法および情報処理システム
JP7418709B2 (ja) コンピュータプログラム、方法及びサーバ装置
WO2023017753A1 (ja) 学習装置、学習方法、およびプログラム
JP2023131824A (ja) 情報処理装置、制御プログラムおよび制御方法