(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024088983
(43)【公開日】2024-07-03
(54)【発明の名称】情報処理システムおよび情報処理方法
(51)【国際特許分類】
G06F 3/16 20060101AFI20240626BHJP
G06F 3/01 20060101ALI20240626BHJP
G10L 21/003 20130101ALI20240626BHJP
H04N 7/14 20060101ALI20240626BHJP
G06T 13/40 20110101ALI20240626BHJP
【FI】
G06F3/16 540
G06F3/16 620
G06F3/16 610
G06F3/01 510
G10L21/003
H04N7/14
G06T13/40
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022204074
(22)【出願日】2022-12-21
(71)【出願人】
【識別番号】521413866
【氏名又は名称】AVITA株式会社
(74)【代理人】
【識別番号】100090181
【弁理士】
【氏名又は名称】山田 義人
(74)【代理人】
【識別番号】100168217
【弁理士】
【氏名又は名称】大村 和史
(72)【発明者】
【氏名】西口 昇吾
(72)【発明者】
【氏名】三上 崇志
(72)【発明者】
【氏名】石黒 浩
【テーマコード(参考)】
5B050
5C164
5E555
【Fターム(参考)】
5B050AA08
5B050BA12
5B050BA20
5B050CA07
5B050CA08
5B050DA04
5B050FA02
5B050FA10
5C164FA09
5C164FA10
5C164MA03S
5C164PA46
5C164UB90S
5C164VA07S
5C164VA09P
5C164VA13P
5C164VA21S
5E555AA08
5E555AA11
5E555AA27
5E555AA46
5E555BA02
5E555BA03
5E555BA05
5E555BA06
5E555BB02
5E555BB03
5E555BB05
5E555BB06
5E555BC04
5E555BD06
5E555CA24
5E555CA42
5E555CA47
5E555CB02
5E555CB44
5E555CB64
5E555CB66
5E555CB67
5E555CB74
5E555DA01
5E555DA21
5E555DB32
5E555DB39
5E555DB41
5E555DC13
5E555DC84
5E555DC85
5E555EA05
5E555EA11
5E555EA22
5E555EA23
5E555FA00
(57)【要約】 (修正有)
【課題】複数人の操作者がアバターを用いて円滑に応対することができる、情情報処理システムおよび情報処理方法を提供する。
【解決手段】複数の操作者端末16及びユーザ端末18と、サーバ12がネットワーク14を介して通信可能に構成される情報処理システム10では、アクティブ状態の1の操作者端末の操作者の操作に従って、ユーザ端末に表示されたアバターの動作及び発話が制御され、アバターを通して操作者とユーザが対話する。アバターの動作は、操作者の映像に基づいて制御される。アバターの音声は、操作者の音声を目標のピッチ及びフォルマントに一致するように変換して生成され、出力される。アバターの音声並びにユーザの映像及び音声は、アクティブ状態の1の操作者端末以外の他の非アクティブ状態の操作者端末の各々にも送信される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の操作者が交代で操作するコンピュータグラフィックスのアバターまたはロボットのアバター、
前記複数の操作者の各々が使用する複数の操作者端末、および
前記複数の操作者端末から前記アバターを操作するアクティブ状態の1の前記操作者端末を選択するサーバを備える、情報処理システムであって、
前記アクティブ状態の1の前記操作者端末は、
当該操作者端末を使用する前記操作者の操作に従って前記アバターの動作を制御する制御信号を前記サーバに送信し、
当該操作者端末が使用する前記操作者の音声を検出したとき、当該操作者の音声を変換して少なくとも所定のピッチを有する前記アバターの音声を生成して前記サーバに送信し、
前記サーバは、
前記アクティブ状態の1の前記操作者端末からの制御信号に基づいて前記アバターを動作させ、
前記アクティブ状態の1の前記操作者端末からのアバターの音声をユーザに出力し、
前記アバターの音声を前記アクティブ状態の1の前記操作者端末以外の非アクティブ状態の前記操作者端末の各々に送信し、
前記ユーザの音声を前記複数の操作者端末の各々に送信する、情報処理システム。
【請求項2】
前記アクティブ状態の1の前記操作者端末は、当該操作者端末が使用する前記操作者の音声を検出したとき、当該操作者の音声を変換して所定のピッチおよび所定のフォルマントを有する前記アバターの音声を生成して前記サーバに送信する、請求項1記載の情報処理システム。
【請求項3】
前記非アクティブ状態の操作者端末は、当該非アクティブ状態の操作者端末を使用する前記操作者の操作による交代要求を前記サーバに送信し、
前記サーバは、前記非アクティブ状態の前記操作者端末からの交代要求に応じて、前記アクティブ状態の1の前記操作者端末を非アクティブ状態に変更し、前記交代要求の要求元である前記非アクティブ状態の前記操作者端末をアクティブ状態に変更する、請求項1記載の情報処理システム。
【請求項4】
前記非アクティブ状態の操作者端末は、当該非アクティブ状態の操作者端末を使用する前記操作者の音声を検出したとき、検出した当該操作者の音声を前記サーバに送信し、
前記サーバは、前記非アクティブ状態の前記操作者端末からの前記操作者の音声を、当該非アクティブ状態の操作者端末以外の他の前記操作者端末の各々に送信する、請求項1から3までのいずれかに記載の情報処理システム。
【請求項5】
前記コンピュータグラフィックスのアバターを表示する表示装置を備えるユーザ端末をさらに備え、
前記ユーザ端末を使用する前記ユーザと前記アクティブ状態の1の前記操作者端末の前記操作者は前記サーバを介して文字情報を送受信し、
前記サーバは、前記アクティブ状態の1の前記操作者端末から送信された前記文字情報を、当該アクティブ状態の1の前記操作者端末以外の前記非アクティブ状態の操作者端末の各々にも送信する、請求項1から3までのいずれかに記載の情報処理システム。
【請求項6】
前記サーバは、前記非アクティブ状態の前記操作者端末から送信された前記文字情報を、前記ユーザ端末に送信しないで、当該非アクティブ状態の前記操作者端末以外の他の前記操作者端末の各々に送信する、請求項5記載の情報処理システム。
【請求項7】
アバターを交代で操作して前記ユーザと対話する複数の操作者の各々が使用する複数の操作者端末、
前記ユーザが使用するユーザ端末、および
前記複数の操作者端末から前記アバターを操作するアクティブ状態の1の前記操作者端末を選択するサーバを備える、情報処理システムであって、
前記操作者端末は、
当該操作者端末を使用する前記操作者の映像を撮影する撮影手段、
当該操作者端末を使用する前記操作者の音声を検出する操作者音声検出手段、
前記サーバから送信される前記ユーザの音声データを受信する第1ユーザ音声受信手段、
前記第1ユーザ音声受信手段によって受信された前記ユーザの音声データを出力する第1ユーザ音声出力手段、
アクティブ状態において、
前記カメラで撮影された前記操作者の映像に基づいて前記アバターの動作データを生成する動作データ生成手段、
前記動作データ生成手段によって生成された動作データに従って前記アバターを動作させるアバター制御手段、
前記アバターの画像データを生成するアバター画像生成手段、
前記アバター画像生成手段によって生成された前記アバターの画像データを前記サーバに送信する第1アバター画像送信手段、
前記操作者音声検出手段によって当該操作者端末を使用する前記操作者の音声を検出したとき、当該操作者の音声を変換して少なくとも所定のピッチを有する前記アバターの音声データを生成するアバター音声生成手段、および
前記アバター音声生成手段によって生成された前記アバターの音声データを前記サーバに送信する第1アバター音声送信手段を備え、
前記サーバは、
前記第1アバター画像送信手段によって送信された前記アバターの画像データを受信する第1アバター画像受信手段、
前記第1アバター画像受信手段によって受信された前記アバターの画像データを前記ユーザ端末に送信する第2アバター画像送信手段、
前記第1アバター音声送信手段によって送信された前記アバターの音声データを受信する第1アバター音声受信手段、
前記第1アバター音声受信手段によって受信された前記アバターの音声データを前記ユーザ端末に送信する第2アバター音声送信手段、
前記ユーザ端末から送信される前記ユーザの音声データを受信する第2ユーザ音声受信手段、および
前記第2ユーザ音声受信手段によって受信された前記ユーザの音声データを前記複数の操作者端末の各々に送信する第1ユーザ音声送信手段を備え、
前記ユーザ端末は、
当該ユーザ端末を使用する前記ユーザの音声を検出するユーザ音声検出手段、
前記ユーザ音声検出手段によって検出された前記ユーザの音声を前記サーバに送信する第2ユーザ音声送信手段、
前記第2アバター画像送信手段によって送信された前記アバターの画像データを受信する第2アバター画像受信手段、
前記第2アバター画像受信手段によって受信された前記アバターの画像データを出力するアバター画像出力手段、
前記第2アバター音声送信手段によって送信された前記アバターの音声データを受信する第2アバター音声受信手段、および
前記第2アバター音声受信手段によって受信された前記アバターの音声データを出力する第2アバター音声出力手段を備える、情報処理システム。
【請求項8】
複数の操作者が交代で操作するコンピュータグラフィックスのアバターまたはロボットのアバター、
前記複数の操作者の各々が使用する複数の操作者端末、および
前記複数の操作者端末から前記アバターを操作するアクティブ状態の1の前記操作者端末を選択するサーバを備える、情報処理システムの情報処理法であって、
前記アクティブ状態の1の前記操作者端末は、
当該操作者端末を使用する前記操作者の操作に従って前記アバターの動作を制御する制御信号を前記サーバに送信し、
当該操作者端末が使用する前記操作者の音声を検出したとき、当該操作者の音声を変換して少なくとも所定のピッチを有する前記アバターの音声を生成して前記サーバに送信し、
前記サーバは、
前記アクティブ状態の1の前記操作者端末からの制御信号に基づいて前記アバターを動作させ、
前記アクティブ状態の1の前記操作者端末からのアバターの音声をユーザに出力し、
前記アバターの音声を前記アクティブ状態の1の前記操作者端末以外の非アクティブ状態の前記操作者端末の各々に送信し、
前記ユーザの音声を前記複数の操作者端末の各々に送信する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報処理システムおよび情報処理方法に関し、特にたとえば、オンラインでアバターを用いて接客する、情報処理システムおよび情報処理方法に関する。
【背景技術】
【0002】
この種の情報処理システムの一例が特許文献1に開示される。この特許文献1に開示されるコミュニケーションシステムでは、テレイグジスタンスモードが設定された状態で、オペレータ端末は、オペレータの表情およびジェスチャを座標データに変換し、応答音声データと共に応対端末へ送信する。応対端末は、オペレータ端末から送られた座標データに基づいてアバターを生成することで、オペレータの表情およびジェスチャがアバターの表情および仕草に反映されたキャラクタ応対情報を生成し、ユーザに向けて表示する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の特許文献1では、応対端末において、オペレータの表情およびジェスチャがアバターの表情および仕草に反映されたアバター画像をユーザに向けて表示し、1人のオペレータがユーザに応対するが、複数人のオペレータで構成されるグループで応対することは考慮されていない。
【0005】
また、複数人のオペレータでユーザに応対する場合、ユーザに応対するオペレータが入れ替わるため、ユーザはオペレータ間の情報共有のレベルが分からない。また、各オペレータは、交代する度に自己紹介するなど、会話を仕切り直す必要があり、時間的な効率が悪い。つまり、円滑に会話することができないと考えられる。
【0006】
それゆえに、この発明の主たる目的は、新規な、情報処理システムおよび情報処理方法を提供することである。
【0007】
また、この発明の他の目的は、複数人の操作者がアバターを用いて円滑に応対することができる、情情報処理システムおよび情報処理方法を提供することである。
【課題を解決するための手段】
【0008】
第1の発明は、複数の操作者が交代で操作するコンピュータグラフィックスのアバターまたはロボットのアバター、複数の操作者の各々が使用する複数の操作者端末、および複数の操作者端末からアバターを操作するアクティブ状態の1の操作者端末を選択するサーバを備える、情報処理システムであって、アクティブ状態の1の操作者端末は、当該操作者端末を使用する操作者の操作に従ってアバターの動作を制御する制御信号をサーバに送信し、当該操作者端末が使用する操作者の音声を検出したとき、当該操作者の音声を変換して少なくとも所定のピッチを有するアバターの音声を生成してサーバに送信し、サーバは、アクティブ状態の1の操作者端末からの制御信号に基づいてアバターを動作させ、アクティブ状態の1の操作者端末からのアバターの音声をユーザに出力し、アバターの音声をアクティブ状態の1の操作者端末以外の非アクティブ状態の操作者端末の各々に送信し、ユーザの音声を複数の操作者端末の各々に送信する、情報処理システムである。
【0009】
第2の発明は、第1の発明に従属し、アクティブ状態の1の操作者端末は、当該操作者端末が使用する操作者の音声を検出したとき、当該操作者の音声を変換して所定のピッチおよび所定のフォルマントを有するアバターの音声を生成してサーバに送信する。
【0010】
第3の発明は、第1の発明に従属し、非アクティブ状態の操作者端末は、当該非アクティブ状態の操作者端末を使用する操作者の操作による交代要求をサーバに送信し、サーバは、非アクティブ状態の操作者端末からの交代要求に応じて、アクティブ状態の1の操作者端末を非アクティブ状態に変更し、交代要求の要求元である非アクティブ状態の操作者端末をアクティブ状態に変更する。
【0011】
第4の発明は、第1から第3の発明までのいずれかに従属し、非アクティブ状態の操作者端末は、当該非アクティブ状態の操作者端末を使用する操作者の音声を検出したとき、検出した当該操作者の音声をサーバに送信し、サーバは、非アクティブ状態の操作者端末からの操作者の音声を、当該非アクティブ状態の操作者端末以外の他の操作者端末の各々に送信する。
【0012】
第5の発明は、第1から第3の発明までのいずれかに従属し、コンピュータグラフィックスのアバターを表示する表示装置を備えるユーザ端末をさらに備え、ユーザ端末を使用するユーザとアクティブ状態の1の操作者端末の操作者はサーバを介して文字情報を送受信し、サーバは、アクティブ状態の1の操作者端末から送信された文字情報を、当該アクティブ状態の1の操作者端末以外の非アクティブ状態の操作者端末の各々にも送信する。
【0013】
第6の発明は、第5の発明に従属し、サーバは、非アクティブ状態の操作者端末から送信された文字情報を、ユーザ端末に送信しないで、当該非アクティブ状態の操作者端末以外の他の操作者端末の各々に送信する。
【0014】
第7の発明は、アバターを交代で操作してユーザと対話する複数の操作者の各々が使用する複数の操作者端末、ユーザが使用するユーザ端末、および複数の操作者端末からアバターを操作するアクティブ状態の1の操作者端末を選択するサーバを備える、情報処理システムであって、操作者端末は、当該操作者端末を使用する操作者の映像を撮影する撮影手段、当該操作者端末を使用する操作者の音声を検出する操作者音声検出手段、サーバから送信されるユーザの音声データを受信する第1ユーザ音声受信手段、第1ユーザ音声受信手段によって受信されたユーザの音声データを出力する第1ユーザ音声出力手段、アクティブ状態において、カメラで撮影された操作者の映像に基づいてアバターの動作データを生成する動作データ生成手段、動作データ生成手段によって生成された動作データに従ってアバターを動作させるアバター制御手段、アバターの画像データを生成するアバター画像生成手段、アバター画像生成手段によって生成されたアバターの画像データをサーバに送信する第1アバター画像送信手段、操作者音声検出手段によって当該操作者端末を使用する操作者の音声を検出したとき、当該操作者の音声を変換して少なくとも所定のピッチを有するアバターの音声データを生成するアバター音声生成手段、およびアバター音声生成手段によって生成されたアバターの音声データをサーバに送信する第1アバター音声送信手段を備え、サーバは、第1アバター画像送信手段によって送信されたアバターの画像データを受信する第1アバター画像受信手段、第1アバター画像受信手段によって受信されたアバターの画像データをユーザ端末に送信する第2アバター画像送信手段、第1アバター音声送信手段によって送信されたアバターの音声データを受信する第1アバター音声受信手段、第1アバター音声受信手段によって受信されたアバターの音声データをユーザ端末に送信する第2アバター音声送信手段、ユーザ端末から送信されるユーザの音声データを受信する第2ユーザ音声受信手段、および第2ユーザ音声受信手段によって受信されたユーザの音声データを複数の操作者端末の各々に送信する第1ユーザ音声送信手段を備え、ユーザ端末は、当該ユーザ端末を使用するユーザの音声を検出するユーザ音声検出手段、ユーザ音声検出手段によって検出されたユーザの音声をサーバに送信する第2ユーザ音声送信手段、第2アバター画像送信手段によって送信されたアバターの画像データを受信する第2アバター画像受信手段、第2アバター画像受信手段によって受信されたアバターの画像データを出力するアバター画像出力手段、第2アバター音声送信手段によって送信されたアバターの音声データを受信する第2アバター音声受信手段、および第2アバター音声受信手段によって受信されたアバターの音声データを出力する第2アバター音声出力手段を備える、情報処理システムである。
【0015】
第8の発明は、複数の操作者が交代で操作するコンピュータグラフィックスのアバターまたはロボットのアバター、複数の操作者の各々が使用する複数の操作者端末、および複数の操作者端末からアバターを操作するアクティブ状態の1の操作者端末を選択するサーバを備える、情報処理システムの情報処理法であって、アクティブ状態の1の操作者端末は、当該操作者端末を使用する操作者の操作に従ってアバターの動作を制御する制御信号をサーバに送信し、当該操作者端末が使用する操作者の音声を検出したとき、当該操作者の音声を変換して少なくとも所定のピッチを有するアバターの音声を生成してサーバに送信し、サーバは、アクティブ状態の1の操作者端末からの制御信号に基づいてアバターを動作させ、アクティブ状態の1の操作者端末からのアバターの音声をユーザに出力し、アバターの音声をアクティブ状態の1の操作者端末以外の非アクティブ状態の操作者端末の各々に送信し、ユーザの音声を複数の操作者端末の各々に送信する、情報処理方法である。
【発明の効果】
【0016】
この発明によれば、複数人の操作者がアバターを用いて円滑に応対することができる。
【0017】
この発明の上述の目的、その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0018】
【
図1】
図1はこの発明の一実施例の情報処理システムを示す図である。
【
図2】
図2は
図1に示すサーバの電気的な構成の一例を示すブロック図である。
【
図3】
図3は
図1に示す操作者端末の電気的な構成の一例を示すブロック図である。
【
図4】
図4は
図1に示すユーザ端末の電気的な構成の一例を示すブロック図である。
【
図5】
図5はユーザ端末の表示装置に表示される対話画面の一例を示す図である。
【
図6】
図6はアクティブ状態の操作者端末の表示装置に表示される操作者側画面の一例を示す図である。
【
図7】
図7はアクティブ状態の操作者端末の表示装置に表示される操作者側画面の他の例を示す図である。
【
図8】
図8は非アクティブ状態の操作者端末の表示装置に表示される操作者側画面の一例を示す図である。
【
図9】
図9はサーバで管理される参加者管理テーブルの一例を示す図である。
【
図11】
図11は
図3に示す操作者端末のRAMのメモリマップの一例を示す図である。
【
図13】
図13は
図4に示すユーザ端末のRAMのメモリマップの一例を示す図である。
【
図14】
図14は
図2に示すサーバのCPUの入室管理処理の一例を示すフロー図である。
【
図15】
図15は
図2に示すサーバのCPUの操作者切替処理の一例を示すフロー図である。
【
図16】
図16は
図2に示すサーバのCPUの対話中における送受信処理の一例を示すフロー図である。
【
図17】
図17は
図3に示す操作者端末のCPUの制御処理の一例の一部を示すフロー図である。
【
図18】
図18は
図3に示す操作者端末のCPUの制御処理の一例の他の一部であって、
図17に後続するフロー図である。
【
図19】
図19は
図3に示す操作者端末のCPUの制御処理の一例のその他の一部であって、
図17に後続するフロー図である。
【
図20】
図20は
図4に示すユーザ端末のCPUの制御処理の一例を示すフロー図である。
【
図21】
図21は第2実施例のサーバのCPUの対話中における送受信処理の一例を示すフロー図である。
【
図22】
図22は第2実施例の操作者端末のCPUの制御処理の一例の一部を示すフロー図である。
【
図23】
図23は第3実施例の操作者端末およびユーザ端末に表示されるチャット画面の一例を示す図である。
【
図24】
図24は第3実施例のサーバのCPUの対話中における送受信処理の一例を示すフロー図である。
【
図25】
図25は第3実施例の操作者端末のCPUの制御処理の一例の一部を示すフロー図である。
【
図26】
図26は第3実施例のユーザ端末のCPUの制御処理の一例の一部を示すフロー図である。
【
図27】
図27は第3実施例のユーザ端末のCPUの制御処理の一例の他の一部を示すフロー図である。
【発明を実施するための形態】
【0019】
<第1実施例>
図1を参照して、この第1実施例の情報処理システム10はサーバ12を含み、サーバ12は、ネットワーク14を介して、複数の操作者端末16およびユーザ端末18と通信可能に接続される。
【0020】
一例として、Web Real-Time Communication (WebRTC)の技術を用いて、複数の操作者端末16とユーザ端末18がサーバ12を介して、Webブラウザ上で映像または/および音声をリアルタイムに送受信することができる。この場合、サーバ12は、SFU(Selective Forwarding Unit)サーバとしても機能する。
【0021】
なお、図示は省略するが、WebRTCは、複数のサーバを組み合わせて利用することが可能である。具体的には、WebRTCを利用するための複数のサーバには、シグナリングサーバ、スタン(STUN)サーバ及びターン(TURN)サーバ等が含まれる。詳細な説明は省略するが、シグナリングサーバは、WebRTCによる通信相手に関する情報を取得するためのサーバである。また、スタンサーバおよびターンサーバは通信相手が異なるネットワークに存在している場合にいわゆるNAT(Network Address Translation)越えをするためのサーバである。
【0022】
この第1実施例では、1台のユーザ端末18を示すが、実際には、複数のユーザ端末18がネットワーク14に接続されており、そのうちのビデオ通話またはWeb会議を行うことが設定された1台のユーザ端末18がサーバ12を介して複数の操作者端末16と通信可能に接続される。また、複数の操作者端末16は、それぞれ、ユーザ端末18のユーザに応対する複数の操作者の各々が使用する端末である。
【0023】
この第1実施例では、操作者グループを構成する複数の操作者の各々で使用されるアバターに対応する画像(以下、「アバター画像」という)がユーザ端末18の表示装置30に表示され、アバターを通してユーザと各操作者が交代で対話する。ただし、ユーザ端末18に表示されるアバター画像は同じ種類のアバターの画像である。つまり、アクティブ状態では、各操作者端末16は、同じ種類のアバター画像の画像データを生成する。
【0024】
このように、各操作者は、1種類のアバターを操作してユーザと対話して、接客を行う。つまり、ユーザは、サーバ12および各操作者端末16の各操作者によって提供される、アバターを用いた対話サービス(または、接客サービス)を使用する。この第1実施例では、アバター画像がユーザ端末18の表示装置30に表示されるため、アバターはCG(Computer Graphics)アバターである。
【0025】
サーバ12は、情報処理装置であり、汎用のサーバを用いることができる。
【0026】
ネットワーク14は、インターネットを含むIP網(または、IPネットワーク)と、このIP網にアクセスするためのアクセス網(または、アクセスネットワーク)とから構成される。アクセス網としては、公衆電話網、携帯電話網、有線LAN、無線LAN、CATV(Cable Television)等を用いることができる。
【0027】
操作者端末16は、サーバ12およびユーザ端末18とは異なる他の情報処理装置であり、一例として、汎用のノート型PCまたはデスクトップ型PCであるが、スマートフォンまたはタブレットPCなどの他の汎用の端末を用いることもできる。複数の操作者端末16は、すべて同じ種類のコンピュータまたは端末である必要はない。
【0028】
ユーザ端末18は、サーバ12および操作者端末16とは異なる他の情報処理装置であり、汎用のノート型PC、デスクトップ型PC、タブレット端末またはスマートフォンを用いることができる。
【0029】
図2は
図1に示したサーバ12の電気的な構成の一例を示すブロック図である。
図2に示すように、サーバ12はCPU20を含み、CPU20は、内部バスを介して、RAM22、通信インタフェース(以下、「通信I/F」という)24および入出力インタフェース(以下、「入出力I/F」という)26に接続される。
【0030】
CPU20は、サーバ12の全体的な制御を司る。ただし、CPU20に代えて、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)を設けてもよい。
【0031】
RAM22は、主記憶装置であり、CPU20のワーク領域またはバッファ領域として使用される。図示は省略するが、サーバ12には、補助記憶装置として、HDDおよびROMが設けられる。ただし、HDDに代えて、または、HDDに加えて、SSD等の不揮発性メモリが使用されてもよい。
【0032】
通信I/F24は、CPU20の制御の下、ネットワーク14を介して、操作者端末16などの外部のコンピュータとの間で、制御信号およびデータの送受信を行うための有線インタフェースである。ただし、通信I/F24としては、無線LANまたはBluetooth(登録商標)等の無線インタフェースを使用することもできる。
【0033】
入出力I/F26には、入力装置28および表示装置30が接続されている。入力装置28は、キーボードおよびコンピュータマウスである。表示装置30は、一例として、液晶表示装置である。
【0034】
また、入出力I/F26は、入力装置28から入力された操作データ(または、操作情報)をCPU20に出力するとともに、CPU20によって生成された画像データを表示装置30に出力して、画像データに対応する画面または画像を表示装置30に表示させる。
【0035】
なお、
図2に示すサーバ12の電気的な構成は一例であり、限定される必要はない。
【0036】
図3は
図1に示した操作者端末16の電気的な構成を示すブロック図である。
図3に示すように、操作者端末16はCPU50を含み、CPU50は、内部バスを介して、RAM52、通信I/F54および入出力I/F56に接続される。
【0037】
CPU50は、操作者端末16の全体的な制御を司る。ただし、CPU50に代えて、CPU機能、GPU機能等の複数の機能を含むSoCを設けてもよい。
【0038】
RAM52は、主記憶装置であり、CPU50のワーク領域またはバッファ領域として使用される。図示は省略するが、操作者端末16には、補助記憶装置として、HDDおよびROMが設けられる。ただし、HDDに代えて、または、HDDに加えて、SSD等の不揮発性メモリが使用されてもよい。
【0039】
通信I/F54は、CPU50の制御の下、ネットワーク14を介して、サーバ12などの外部のコンピュータとの間で、制御信号およびデータの送受信を行うために有線インタフェースを有する。ただし、通信I/F54としては、無線LANまたはBluetooth(登録商標)等の無線インタフェースを使用することもできる。
【0040】
入出力I/F56には、入力装置58、表示装置60、マイク62、スピーカ64およびカメラ66が接続されている。入力装置58は、キーボードおよびコンピュータマウスである。さらに、タッチパネルが設けられる場合もある。タッチパネルは、汎用のタッチパネルであり、静電容量方式、電磁誘導方式、抵抗膜方式、赤外線方式など、任意の方式のものを用いることができる。
【0041】
表示装置60は、一例として、液晶表示装置である。マイク62は、汎用の収音マイクである。スピーカ64は、汎用のステレオスピーカである。カメラ66は、汎用のCCDカメラである。
【0042】
ただし、操作者端末16として、スマートフォンまたはタブレットPCが用いられる場合には、入力装置58は、タッチパネルおよびハードウェアのボタンである。
【0043】
また、入出力I/F56は、入力装置58から入力された操作データ(または、操作情報)をCPU50に出力し、また、CPU50によって生成された画像データを表示装置60に出力して、画像データに対応する画面を表示装置60に表示させる。ただし、外部のコンピュータ(たとえば、サーバ12)から受信した画像データがCPU50によって出力される場合もある。サーバ12から受信した画像データは、ユーザを含む映像のデータ(以下、「ユーザ映像データ」という)である。
【0044】
また、入出力I/F56は、マイク62で検出された操作者の音声のデータ(以下、「操作者音声データ」という)をCPU50に出力したり、CPU50によって出力される音声データをアナログの音声信号に変換してスピーカ64から出力させたり、カメラ66で撮影(検出)された操作者を含む映像のデータ(以下、「操作者映像データ」という)をCPU50に出力したりする。第1実施例では、操作者を含む映像は動画像である。
【0045】
ただし、この第1実施例では、当該操作者端末16がユーザに応対中の操作者が使用する操作者端末16である場合には、CPU50は、操作者音声データを変換してアバターの音声のデータ(以下、「アバター音声データ」という)を生成する。また、ユーザに応対中の操作者が使用する操作者端末16をアクティブ状態の操作者端末16といい、ユーザに応対していない操作者が使用する操作者端末16を非アクティブ状態の操作者端末16ということがある。
【0046】
また、アクティブ状態の操作者端末16では、CPU50は、アバター画像データを生成し、後述するように、操作者の動作に基づいてアバターの動作を制御する。
【0047】
さらに、この第1実施例では、CPU50によって出力される音声データは、サーバ12から受信したユーザの音声のデータ(以下、「ユーザ音声データ」という)または他の操作者の音声のデータ(以下、「他の操作者音声データ」という)である。
【0048】
なお、
図3に示す操作者端末16の電気的な構成は一例であり、限定される必要はない。
【0049】
また、操作者端末16がスマートフォンである場合には、携帯電話通信網、または、携帯電話網および公衆電話網を介して、通話するための通話回路を備えるが、この第1実施例では、そのような通話は行わないため、図示は省略してある。
【0050】
図4は
図1に示したユーザ端末18の電気的な構成の一例を示すブロック図である。
図4に示すように、ユーザ端末18はCPU80を含み、CPU80は、内部バスを介して、RAM82、通信インタフェース(以下、「通信I/F」という)84および入出力I/F86に接続される。
【0051】
CPU80は、ユーザ端末18の全体的な制御を司る。ただし、CPU80に代えて、CPU機能、GPU機能等の複数の機能を含むSoCを設けてもよい。
【0052】
RAM82は、主記憶装置であり、CPU80のワーク領域またはバッファ領域として使用される。図示は省略するが、ユーザ端末18には、補助記憶装置として、HDDおよびROMが設けられる。ただし、HDDに代えて、または、HDDに加えて、SSD等の不揮発性メモリが使用されてもよい。
【0053】
通信I/F84は、CPU80の制御の下、ネットワーク14を介して、操作者端末16などの外部のコンピュータとの間で、制御信号およびデータの送受信を行うための有線インタフェースである。ただし、通信I/F84としては、無線LANまたはBluetooth(登録商標)等の無線インタフェースを使用することもできる。
【0054】
入出力I/F86には、入力装置88、表示装置90、マイク92、スピーカ94およびカメラ96が接続されている。入力装置88は、キーボードおよびコンピュータマウスである。さらに、タッチパネルが設けられる場合もある。タッチパネルは、汎用のタッチパネルであり、静電容量方式、電磁誘導方式、抵抗膜方式、赤外線方式など、任意の方式のものを用いることができる。
【0055】
表示装置90は、一例として、液晶表示装置である。マイク92は、汎用の収音マイクである。スピーカ94は、汎用のステレオスピーカである。カメラ96は、汎用のCCDカメラである。
【0056】
また、入出力I/F86は、入力装置88から入力された操作データ(または、操作情報)をCPU80に出力するとともに、CPU80によって生成された画像データを表示装置90に出力して、画像データに対応する画面または画像を表示装置90に表示させる。ただし、外部のコンピュータ(たとえば、サーバ12)から受信した画像データ(この実施例では、アバター画像データ)がCPU80によって出力される場合もある。
【0057】
また、入出力I/F86は、マイク92で検出されたユーザの音声をデジタルの音声データすなわちユーザ音声データに変換してCPU80に出力したり、CPU80によって出力される音声データをアナログの音声信号に変換してスピーカ94から出力させたり、カメラ96で撮影(検出)されたユーザを含む映像のデータすなわちユーザ映像データをCPU80に出力したりする。ただし、この第1実施例では、CPU80によって出力される音声データは、サーバ12から受信したアバター音声データである。
【0058】
なお、
図4に示すユーザ端末18の電気的な構成は一例であり、限定される必要はない。
【0059】
また、ユーザ端末18がスマートフォンである場合には、携帯電話通信網、または、携帯電話網および公衆電話網を介して、通話するための通話回路を備えるが、この第1実施例では、そのような通話は行わないため、図示は省略してある。
【0060】
以下、この第1実施例の情報処理システム10の動作について説明する。このような情報処理システム10では、複数の操作者端末16とユーザ端末18がサーバ12を介してビデオ通話またはWeb会議を行い、アクティブ状態の操作者端末16の操作者とユーザ端末18のユーザが対話(または、会話)する。
【0061】
ユーザがユーザ端末18で所望のEC(Electronic Commerce)サイトにアクセスしている場合にアバター(または、操作者)との対話を要求したり、予めサーバ12等から通知されている所定のURLに複数の操作者端末16およびユーザ端末18がアクセスしたりすることで、複数の操作者端末16とユーザ端末18はサーバ12を介したビデオ通話またはWeb会議を行う(または、開始)する。
【0062】
ビデオ通話またはWeb会議では、仮想の接客ルームが生成され、複数の操作者端末16の各々の操作者およびユーザ端末18のユーザが接客ルームに入室する。この第1実施例では、仮想の接客ルームはサーバ12上に生成され、複数の操作者端末16およびユーザ端末18がそれぞれサーバ12と接続状態を確立する。つまり、複数の操作者端末16およびユーザ端末18がそれぞれ仮想の接客ルームに接続する。
【0063】
この第1実施例では、操作者グループを構成する複数の操作者が交代で1人のユーザに応対する。操作者グループを構成する複数の操作者は、一例として、商談の段階に応じた役割を有する。商談の段階とは、一例として、予備段階、調査段階、解決能力を示す段階および約束を取り付ける段階の4つの段階を意味する。第1実施例では、操作者グループは4人以上の操作者で構成される。1つ目の予備段階では、操作者は、自己紹介および話の切り出しを行い、顧客すなわちユーザとの人間関係を形成する。2つ目の調査段階では、操作者は、ユーザと対話し、ユーザのニーズを探る。3つ目の解決能力を示す段階では、操作者は、ユーザと対話し、商品を買うまたはサービスの提供を受けるのに値するものであることをユーザに示す。そして、4つ目の約束を取り付ける段階では、操作者は、ユーザと対話し、ユーザが注文に至るまで数々の約束を取り付けていく。
【0064】
図5はビデオ通話またはWeb会議(または、オンライン会議)を行う場合にユーザ端末18の表示装置90に表示される対話画面200の一例を示す。
図5に示すように、対話画面200には、アバター画像202が含まれる。
【0065】
図示は省略するが、対話画面200には、対話を終了するためのボタン画像なども設けられる。
【0066】
また、この第1実施例では、表示装置90に表示されるアバターの動作および音声(発話)は、アクティブ状態の操作者端末16の操作者の動作および音声に基づいて制御される。動作は、身振り手振り、顔の向きおよび顔の表情を含む。操作者の動作は、操作者端末16のカメラ66で撮影された操作者の映像から検出される。操作者の音声は、マイク62で検出される。
【0067】
操作者端末16では、操作者の動作に基づいてアバターの動作を制御するための動作データが生成され、この動作データに従う動作を行うアバターの画像データ(以下、「アバター画像データ」という)が生成され、操作者の音声に基づいてアバターの発話を制御するための音声データすなわちアバター音声データが生成される。
【0068】
動作データは、アバターの身振り手振り、顔の向きおよび顔の表情を制御するための各部位の位置および向きの情報(データ)である。具体的には、動作データは、顔の各部位すなわち眉毛、眼(上瞼、下瞼)、鼻および口(上唇、下唇)の位置(座標データ)と、顔の向き、手、腕、肩、腰、膝および足首の位置(座標データ)と、手首および足首の向きについての情報である。
【0069】
ただし、アバターの腰から下を表示しない場合には、膝および足首の位置および向きについての情報は動作データに含めなくてもよい。
【0070】
なお、操作者の動作に基づいてアバターの動作を制御するための動作データは、一例として、MediaPipe Holisticのような画像処理ライブラリを用いて生成することができる。他の例では、背景技術の特開2021-56940号に開示された方法を用いることもできる。
【0071】
また、アバター音声データは、操作者音声データに基づいて生成される。この第1実施例では、複数の操作者が1のアバターを交代で使用するため、アバターの声の基音(ピッチ)と声の性質(フォルマント)の目標値が予め設定され、目標値のピッチとフォルマントすなわち所定のピッチとフォルマントに一致するように、各操作者の音声が変換器で変換される。ただし、各操作者の声の高さと声の性質は異なるため、各操作者の声の高さと声の性質に合わせて変換器のパラメータが予め設定されている。また、この第1実施例で使用される変換器は、恋声(http://koigoemoe.g2.xrea.com)のようなアプリケーションソフトである。
【0072】
したがって、操作者が交代してもほぼ同じ音声でアバターが発話するため、ユーザはアバターの音声の違いを認識し難く、同一のアバター(または、操作者)として認識させることができる。つまり、ユーザは違和感なくアバターと対話することができる。また、操作者が交代する度に自己紹介するなどの無駄を省略することができる。したがって、商談すなわち対話の進行を円滑に行うことができる。
【0073】
この第1実施例では、より精度を高めるために、目標値のピッチとフォルマントの両方に一致するように、各操作者の音声が変換器で変換されるようにしてあるが、目標値のピッチすなわち所定のピッチに一致するように、各操作者の音声が変換器で変換されるようにしてもよい。このようにした場合であっても、操作者が交代してもほぼ同じ音声でアバターに発話させることができる。
【0074】
アクティブ状態の操作者端末16では、動作データに従って動作されるアバター画像データが生成される。したがって、アバター画像データを受信したユーザ端末18の表示装置90に表示されるアバターは動作される。また、ユーザ端末18は、受信したアバター音声データをスピーカ94に出力する。このとき、アバター画像202はリップシンクされる。ただし、アバター画像データおよびアバター音声データは、アクティブ状態の操作者端末16からサーバ12を介してユーザ端末18に送信される。
【0075】
一方、ユーザを含む映像がカメラ96で撮影され、カメラ96で撮影された映像に対応する映像データすなわちユーザ映像データはユーザ端末18からサーバ12を介して操作者グループの各操作者が使用する各操作者端末16(以下、「操作者グループの各操作者端末16」という)に送信される。また、ユーザの音声はマイク92で検出され、マイク92で検出された音声に対応する音声データすなわちユーザ音声データはユーザ端末18からサーバ12を介して操作者グループの各操作者端末16に送信される。ユーザ映像データは、操作者グループの各操作者端末16の表示装置60に出力され、ユーザ音声データは、操作者グループの各操作者端末16のスピーカ64から出力される。したがって、各操作者はユーザの様子を見たりユーザの音声を聞いたりすることができる。つまり、各操作者は、ユーザが発話した内容およびユーザの様子を把握することができる。
【0076】
図6はアクティブ状態の操作者端末16の表示装置60に表示される操作者側画面250の一例を示す。
図7はアクティブ状態の操作者端末16の表示装置60に表示される操作者側画面250の他の例を示す。
図8は非アクティブ状態の操作者端末16の表示装置60に表示される操作者側画面250の一例を示す。
【0077】
図6-
図8に示すように、操作者側画面250は、画面の中央の少し上方に表示領域252を含む。表示領域252は、ユーザ映像データを出力する領域である。
【0078】
図6に示す操作者側画面250は、後述する交代通知が無い場合に、アクティブ状態の操作者端末16の表示装置60に表示される。この
図6に示す操作者側画面250では、表示領域252の下側に、ユーザに応対するべき旨を通知するメッセージ260が表示される。一例として、「アクティブ状態です。ユーザに応対してください。」というメッセージ260が表示される。
【0079】
したがって、アクティブ状態の操作者端末16の操作者は、ユーザの様子を見たりユーザの音声を聞いたりしながら、アバターの動作および発話を制御する。
【0080】
図7に示す操作者側画面250は、交代通知が有る場合に、アクティブ状態の操作者端末16の表示装置60に表示される。この
図7に示す操作者側画面250では、表示領域252の下側に、交代通知のメッセージ270が表示され、このメッセージ270の下側に、ボタン画像272が設けられる。一例として、「他の操作者が交代を要求しています。アクティブ状態を解除するボタンを押してください。」というメッセージ270が表示される。ボタン画像272は、他の操作者からの交代の要求を承諾し、アクティブ状態を解除するためのアイコンである。また、ボタン画像272がオンされると、このアクティブ状態の操作者端末16から、アクティブ状態を解除することの通知(以下、「解除通知」という)がサーバ12に送信される。
【0081】
図8に示す操作者側画面250は、非アクティブ状態の操作者端末16の表示装置60に表示される。この
図8に示す操作者側画面250では、表示領域252の下側に、アクティブ状態の操作者端末16の操作者に交代を要求する方法を説明するメッセージ280が表示され、このメッセージ280の下側に、ボタン画像282が設けられる。一例として、「ユーザに応対する場合には、応対ボタンを押してください。」というメッセージ280が表示される。ボタン画像282は、ユーザに応対すること、より具体的には、アクティブ状態を設定するためのアイコンである。また、ボタン画像282がオンされると、この非アクティブ状態の操作者端末16から、ユーザに応対すること、すなわち、アクティブ状態に設定することを要求する通知(以下、「要求通知」という)がサーバ12に送信される。これに応じて、サーバ12は、アクティブ状態の操作者端末16に、ユーザの応対を交代することの通知(以下、「交代通知」という)を送信する。
【0082】
また、操作者グループでは、各操作者の音声は共有される。つまり、ユーザに応対する操作者の音声およびユーザに応対していない他の操作者の音声は操作者グループで共有される。
【0083】
具体的には、アクティブ状態の操作者端末16から送信されたアバター音声データは、サーバ12を介して、ユーザ端末18のみならず、非アクティブ状態の各操作者端末16に送信される。したがって、アバター音声データも、操作者グループの非アクティブ状態の各操作者端末16のスピーカ64から出力される。つまり、非アクティブ状態の操作者端末16の操作者は、アクティブ状態の操作者端末16の操作者の発話を聞くことができる。したがって、非アクティブ状態の操作者は、アクティブ状態の操作者端末16の操作者とユーザの対話を聞くことができる。
【0084】
また、非アクティブ状態の操作者端末16から送信された操作者音声データすなわち他の操作者音声データは、サーバ12を介して、他の操作者端末16の各々に送信される。ただし、他の操作者音声データは、ユーザ端末18には送信されない。したがって、他の操作者音声データも、送信元の操作者端末16を除く、操作者グループの各操作者端末16のスピーカ64から出力される。つまり、操作者グループの各操作者は、他の操作者(ここでは、非アクティブ状態の操作者端末16の操作者)の発話を聞くことができる。したがって、操作者グループの各操作者は、他の操作者とユーザの対話のみならず、他の操作者同士の対話または会話を聞くことができる。
【0085】
以上より、操作者グループの各操作者は、他の操作者とユーザの対話のみならず、他の操作者同士の対話または会話を聞くことで、応対内容を共有することができる。したがって、交代した操作者はアバターを制御して円滑にユーザに応対することができる。
【0086】
なお、この第1実施例では、ユーザ映像データおよびユーザ音声データを各操作者端末16に送信するようにしてあるが、非アクティブ状態の各操作者端末16には、ユーザ音声データのみを送信するようにしてもよい。かかる場合にも、非アクティブ状態の操作者端末16の操作者は、ユーザが発話した内容を把握することができる。
【0087】
図9はサーバ12で管理される参加者管理テーブルの一例を示す図である。参加者管理テーブルは、接客ルームへの参加者についての情報を含む。参加者管理テーブルでは、参加者IDに対応して、入室状況および応対状態が記載される。
【0088】
参加者IDは、接客ルームに入室(接続)することが許可されたユーザおよび複数の操作者(すなわち、操作者グループの各操作者)に割り当てられた識別情報である。一例として、識別情報は、複数の数字または/およびアルファベットを用いた記号であり、サーバ12によって割り当てられる。他の例では、識別情報は、ユーザおよび操作者の名称、または、ユーザ端末18および操作者端末16の通信機器に割り当てらえたMacアドレスである。
図9に示す参加者管理テーブルでは、分かり易く示すために、参加者IDとして、ユーザ、操作者A、操作者B、操作者Cおよび操作者Dと記載してある。ただし、操作者は、5人以上であってもよい。
【0089】
入室状況は、対応する参加者IDが示すユーザおよび操作者が接客ルームに入室しているかどうかを示す情報である。ユーザおよび操作者が接客ルームに入室している場合には、入室状況として「入室中」が記載される。また、ユーザおよび操作者が接客ルームに入室していない場合(退室した場合を含む)には、入室状況として「未入室」が記載される。
【0090】
応対状態は、対応する参加者IDの操作者がユーザに応対しているかどうか、すなわち、対応する参加者IDの操作者が使用する操作者端末16がアクティブ状態であるか、非アクティブ状態であるかを示す情報である。操作者がユーザに応対している場合には、応対状態として「アクティブ」が記載される。また、操作者がユーザに応対していない場合には、応対状態として「非アクティブ」が記載される。ただし、入室していない操作者については、応対状態の情報は記載されない。なお、ユーザは、操作者に応対されるため、応対状態の情報は記載されない。
【0091】
サーバ12は、参加者管理テーブルを参照して、上述したように、各操作者端末16およびユーザ端末18の間におけるデータの送受信を制御する。したがって、非アクティブ状態の操作者端末16の操作者の音声はユーザに対してミュートされ、操作者グループの各操作者とユーザの音声は操作者グループの各操作者で共有される。
【0092】
図10はサーバ12に内蔵されるRAM22のメモリマップ300の一例を示す。
図10に示すように、RAM22は、プログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、この第1実施例のサーバ12で実行される制御プログラムが記憶されている。
【0093】
サーバ12で実行される制御プログラムは、メイン処理プログラム302a、通信プログラム302b、入室管理プログラム302c、操作者切替プログラム302dおよび交代通知プログラム302eなどを含む。
【0094】
メイン処理プログラム302aは、この第1実施例のサーバ12の制御処理のメインルーチンを実行するためのプログラムである。
【0095】
通信プログラム302bは、外部の機器、この第1実施例では、複数の操作者端末16およびユーザ端末18と通信(データ等の送信および受信)するためのプログラムである。
【0096】
入室管理プログラム302cは、サーバ12によって生成された仮想の接客ルームに入室(接続)しているか入室していない(退室を含む)かを管理するためのプログラムである。具体的には、入室管理プログラム302cは、各操作者端末16およびユーザ端末18との接続状態が確立されているかどうかに応じて、参加者管理データ304aに対応する参加者管理テーブルの入室状況を更新するためのプログラムである。
【0097】
操作者切替プログラム302dは、ユーザに応対する操作者を設定したり、交代させたりするためのプログラムであり、参加者管理データ304aに対応する参加者管理テーブルの応対状態を更新するためのプログラムでもある。
【0098】
交代通知プログラム302eは、非アクティブ状態の操作者端末16から要求通知があった場合に、アクティブ状態の操作者端末16に交代通知を送信するためのプログラムである。交代通知を送信する場合には、通信プログラム302bも実行される。
【0099】
図示は省略するが、プログラム記憶領域302には、サーバ12のオペレーティングシステム、ミドルウェアの他に、本願の制御プログラム以外の他のアプリケーション・プログラムも記憶される。
【0100】
また、データ記憶領域304には、参加者管理データ304a、アバター画像データ304b、アバター音声データ304c、ユーザ映像データ304d、ユーザ音声データ304eおよび他の操作者音声データ304fなどが記憶される。
【0101】
参加者管理データ304aは、
図9に示した参加者管理テーブルについてのデータである。詳細な説明は省略するが、参加者管理テーブルは、接客ルーム毎に生成される。
【0102】
アバター画像データ304bは、アクティブ状態の操作者端末16から受信したアバター画像データである。アバター音声データ304cは、アクティブ状態の操作者端末16から受信したアバター音声データである。アバター画像データ304bおよびアバター音声データ304cは、CPU20によってユーザ端末18に送信されると、データ記憶領域304から消去される。
【0103】
ユーザ映像データ304dは、ユーザ端末18から受信したユーザ映像データである。ユーザ音声データ304eは、ユーザ端末18から受信したユーザ音声データである。ユーザ映像データ304dおよびユーザ音声データ304eは、CPU20によって各操作者端末16に送信されると、データ記憶領域304から消去される。
【0104】
他の操作者音声データ304fは、非アクティブ状態の操作者端末16から受信した操作者音声データである。他の操作者音声データ304fは、CPU20によって、操作者グループを構成する複数の操作者端末16のうち、当該他の操作者音声データ304fの送信元の操作者端末16以外の他の操作者端末16の各々に送信されると、データ記憶領域304から消去される。
【0105】
図示は省略するが、データ記憶領域304には、制御処理を実行するために必要な他のデータが記憶されたり、制御処理を実行するために必要なタイマ(カウンタ)およびフラグが設けられたりする。
【0106】
図11は操作者端末16に内蔵されるRAM52のメモリマップ400の一例を示す。
図11に示すように、RAM52は、プログラム記憶領域402およびデータ記憶領域404を含む。プログラム記憶領域402には、この第1実施例の操作者端末16で実行される制御プログラムが記憶されている。
【0107】
操作者端末16で実行される制御プログラムは、メイン処理プログラム402a、操作検出プログラム402b、通信プログラム402c、画像生成プログラム402d、画像出力プログラム402e、撮影プログラム402f、動作データ生成プログラム402g、アバター制御プログラム402h、音声検出プログラム402i、音声変換プログラム402jおよび音声出力プログラム402kなどを含む。
【0108】
メイン処理プログラム402aは、この第1実施例の操作者端末16の制御処理のメインルーチンを実行するためのプログラムである。
【0109】
操作検出プログラム402bは、操作者の操作に従って入力装置58から入力される操作データ404aを検出し、データ記憶領域404に記憶するためのプログラムである。
【0110】
通信プログラム402cは、外部の機器、この第1実施例では、サーバ12と通信するためのプログラムである。
【0111】
画像生成プログラム402dは、画像生成データ404bを用いて、表示装置60に表示するための画面(操作者側画面250など)に対応する画像データを生成するためのプログラムである。ただし、
図6-
図8に示したような操作者側画面250に対応する画像データを生成する場合には、ユーザ映像データ404hも用いられる。また、画像生成プログラム402dは、画像生成データ404bを用いて、アバター画像データ404fを生成するためのプログラムでもある。
【0112】
画像出力プログラム402eは、画像生成プログラム402dに従って生成した画像データを表示装置60に出力するためのプログラムである。したがって、画像データに対応する画面が表示装置60に表示される。
【0113】
撮影プログラム402fは、カメラ66に撮影処理を実行させ、カメラ66から入力される操作者映像データ404cをデータ記憶領域404に記憶するためのプログラムである。
【0114】
動作データ生成プログラム402gは、操作者映像データ404cから操作者の動作を検出し、アバターの動作を制御するための動作データ404eを生成するためのプログラムである。
【0115】
アバター制御プログラム402hは、動作データ生成プログラム402gに従って生成された動作データ404eに従ってアバターの動作を制御するためのプログラムである。
【0116】
音声検出プログラム402iは、マイク62から入力される操作者の音声を検出し、検出した音声に対応する操作者音声データ404dをデータ記憶領域404に記憶するためのプログラムである。
【0117】
音声変換プログラム402jは、音声検出プログラム402iに従って検出された操作者音声データ404dを、目標値のピッチおよびフォルマントに一致するように変換して、アバター音声データ404gを生成するためのプログラムである。
【0118】
音声出力プログラム402kは、サーバ12から受信したユーザ音声データ404iおよび他の操作者音声データ404jをスピーカ64に出力するためのプログラムである。したがって、ユーザ音声データ404iに対応する音声および他の操作者音声データ404jに対応する音声がスピーカ64から出る。
【0119】
図示は省略するが、プログラム記憶領域402には、操作者端末16のオペレーティングシステム、ミドルウェアの他に、ブラウザ、本願の制御プログラム以外の他のアプリケーション・プログラムも記憶される。
【0120】
図12は
図11に示したRAM52のデータ記憶領域404の具体的な内容の一例を示す。データ記憶領域404には、操作データ404a、画像生成データ404b、操作者映像データ404c、操作者音声データ404d、動作データ404e、アバター画像データ404f、アバター音声データ404g、ユーザ映像データ404h、ユーザ音声データ404iおよび他の操作者音声データ404jなどが記憶される。
【0121】
操作データ404aは、操作検出プログラム402bに従って検出された操作者の操作のデータである。操作データ404aは、CPU50の処理に使用されると、データ記憶領域404から消去される。
【0122】
画像生成データ404bは、操作者端末16の表示装置60に表示される画面を生成するために用いられるデータである。また、画像生成データ404bは、アバター画像データ404fを生成するためのデータを含む。
【0123】
操作者映像データ404cは、カメラ66で撮影された映像のデータである。この操作者映像データ404cは、基本的には、操作者を含む映像のデータであるが、操作者が席を離れるなどしてカメラ66の撮影範囲外に出た場合には、映像に操作者が含まれない場合もある。操作者映像データ404cは、CPU50の処理に使用されると、データ記憶領域404から消去される。
【0124】
操作者音声データ404dは、マイク62で検出された操作者の音声のデータである。操作者音声データ404dは、CPU50の処理に使用されたり、サーバ12に送信されたりすると、データ記憶領域404から消去される。
【0125】
動作データ404eは、アバターの動作を制御するためのデータ、この第1実施例では、アバターの身振り手振り、顔の向きおよび顔の表情を制御するための各部位の位置および向きの情報(データ)である。具体的には、動作データ404eは、上述したように、顔の各部位すなわち眉毛、眼(上瞼、下瞼)、鼻および口(上唇、下唇)の位置と、顔の向きと、手、腕、肩、腰、膝および足首の位置と、手首および足首の向きについての情報である。動作データ404eは、CPU50の処理に使用されると、データ記憶領域404から消去される。
【0126】
アバター画像データ404fは、画像生成プログラム402dに従って生成されたアバター画像202についてのデータである。アバター画像データ404fは、CPU50によってサーバ12に送信されると、データ記憶領域404から消去される。
【0127】
アバター音声データ404gは、音声変換プログラム402jに従って操作者音声データ404dに対応する操作者の音声を目標値のピッチおよびフォルマントに変換したアバターの音声についてのデータである。アバター音声データ404gは、CPU50によってサーバ12に送信されると、データ記憶領域404から消去される。
【0128】
ユーザ映像データ404hは、サーバ12から受信したユーザ映像データである。ユーザ映像データ404hは、CPU50の処理に使用されると、つまり、操作者側画面250の画像データの生成に使用されると、データ記憶領域404から消去される。
【0129】
ユーザ音声データ404iは、サーバ12から受信したユーザ音声データである。ユーザ音声データ404iは、CPU50によってスピーカ64に出力されると、データ記憶領域404から消去される。
【0130】
他の操作者音声データ404jは、サーバ12から受信した他の操作者音声データである。また、他の操作者音声データ404jには、サーバ12から受信したアバター音声データが含まれる。他の操作者音声データ404jは、CPU50によってスピーカ64に出力されると、データ記憶領域404から消去される。
【0131】
また、データ記憶領域404にはアクティブフラグ404kが設けられる。アクティブフラグ404kは、操作者端末16自身がアクティブ状態であるか非アクティブ状態であるかを示すフラグである。操作者端末16自身がアクティブ状態である場合には、アクティブフラグ404kはオンされ、操作者端末16自身が非アクティブ状態である場合には、アクティブフラグ404kはオフされる。
【0132】
図示は省略するが、データ記憶領域404には、操作者の音声を目標値のピッチおよびフォルマントに変換するためのパラメータなど、制御処理を実行するために必要な他のデータが記憶されたり、制御処理を実行するために必要なタイマ(カウンタ)および他のフラグが設けられたりする。
【0133】
図13はユーザ端末18に内蔵されるRAM82のメモリマップ500の一例を示す。
図13に示すように、RAM82は、プログラム記憶領域502およびデータ記憶領域504を含む。プログラム記憶領域502には、この第1実施例のユーザ端末18で実行される制御プログラムが記憶されている。
【0134】
ユーザ端末18で実行される制御プログラムは、メイン処理プログラム502a、操作検出プログラム502b、通信プログラム502c、画像生成プログラム502d、画像出力プログラム502e、撮影プログラム502f、音声検出プログラム502gおよび音声出力プログラム502hなどを含む。
【0135】
メイン処理プログラム502aは、この第1実施例のユーザ端末18の制御処理のメインルーチンを実行するためのプログラムである。
【0136】
操作検出プログラム502bは、ユーザの操作に従って入力装置88から入力される操作データ504aを検出し、データ記憶領域504に記憶するためのプログラムである。
【0137】
通信プログラム502cは、外部の機器、この第1実施例では、サーバ12と通信(データ等の送信および受信)するためのプログラムである。
【0138】
画像生成プログラム502dは、画像生成データ504bを用いて、表示装置90に表示するための画面(対話画面200など)の全部または一部に対応する画像データを生成するためのプログラムである。ただし、対話画面200の画像データを生成する場合には、アバター画像データ504eも用いられる。
【0139】
画像出力プログラム502eは、画像生成プログラム502dに従って生成した画像データを表示装置90に出力するためのプログラムである。したがって、画像データに対応する画面が表示装置90に表示される。
【0140】
撮影プログラム502fは、カメラ96に撮影処理を実行させ、カメラ96から入力されるユーザ映像データ504cをデータ記憶領域504に記憶するためのプログラムである。
【0141】
音声検出プログラム502gは、マイク92から入力されるユーザの音声を検出し、検出した音声に対応するユーザ音声データ504dをデータ記憶領域504に記憶するためのプログラムである。
【0142】
音声出力プログラム502hは、サーバ12から受信したアバター音声データ504fをスピーカ94に出力するためのプログラムである。したがって、アバター音声データ504fに対応する音声がスピーカ94から出る。
【0143】
図示は省略するが、プログラム記憶領域502には、ユーザ端末18のオペレーティングシステム、ミドルウェアの他に、ブラウザ、本願の制御プログラム以外の他のアプリケーション・プログラムも記憶される。
【0144】
また、データ記憶領域504には、操作データ504a、画像生成データ504b、ユーザ映像データ504c、ユーザ音声データ504d、アバター画像データ504eおよびアバター音声データ504fなどが記憶される。
【0145】
操作データ504aは、操作検出プログラム502bに従って検出されたユーザの操作のデータである。操作データ504aは、CPU80の処理に使用されると、データ記憶領域504から消去される。
【0146】
画像生成データ504bは、ユーザ端末18の表示装置90に表示される画面を生成するためのデータである。
【0147】
ユーザ映像データ504cは、カメラ96で撮影された映像のデータである。このユーザ映像データ504cは、基本的には、ユーザを含む映像のデータであるが、ユーザが席を離れるなどしてカメラ96の撮影範囲外に出た場合には、映像にユーザが含まれない場合もある。ユーザ映像データ504cは、CPU80によってサーバ12に送信されると、データ記憶領域504から消去される。
【0148】
ユーザ音声データ504dは、マイク92で検出されたユーザの音声のデータである。ユーザ音声データ504dは、CPU80によってサーバ12に送信されると、データ記憶領域504から消去される。
【0149】
アバター画像データ504eは、サーバ12から受信したアバター画像データである。アバター画像データ504eは、CPU80によって対話画面200の画像データの生成に使用されると、データ記憶領域504から消去される。
【0150】
アバター音声データ504fは、サーバ12から受信したアバター音声データである。アバター音声データ504fは、CPU80によってスピーカ94に出力されると、データ記憶領域504から消去される。
【0151】
図示は省略するが、データ記憶領域504には、制御処理を実行するために必要な他のデータが記憶されたり、制御処理を実行するために必要なタイマ(カウンタ)およびフラグが設けられたりする。
【0152】
図14は、サーバ12のCPU20の制御処理のうちの入室管理処理を示すフロー図である。
図15は、サーバ12のCPU20の制御処理のうちの操作者切替処理を示すフロー図である。
図16は、サーバ12のCPU20の制御処理のうちの対話中における送受信処理を示すフロー図である。入室管理処理、操作者切替処理および送受信処理は、サーバ12のCPU20によって並行して実行される。また、サーバ12のCPU20は、接客を開始すると、制御処理、すなわち、室管理処理、操作者切替処理および送受信処理を開始する。
【0153】
図14に示すように、CPU20は、入室管理処理を開始すると、ステップS1で、入室要求が有るかどうかを判断する。ステップS1で“NO”であれば、つまり、入室要求が無ければ、ステップS3で、退室要求が有るかどうかを判断する。
【0154】
ステップS3で“NO”であれば、つまり、退室要求が無ければ、ステップS1に戻る。一方、ステップS3で“YES”であれば、つまり、退室要求が有れば、ステップS5で、ユーザからの退室要求であるかどうかを判断する。
【0155】
ステップS5で“NO”であれば、つまり、ユーザから退室要求ではなく、操作者からの退室要求であれば、ステップS1に戻る。このとき、CPU20は、参加者管理テーブルにおいて、退室要求のあった操作者の入室状況を未入室に変更し、応対状態の情報を消去する。図示は省略するが、すべての操作者の入室状況が未入室に変更された場合には、CPU20は、入室管理処理を終了する。一方、ステップS5で“YES”であれば、つまり、ユーザからの退室要求であれば、接客の終了であると判断して、入室管理処理を終了する。
【0156】
また、ステップS1で“YES”であれば、つまり、入室要求が有れば、ステップS7で、操作者からの入室要求であるかどうかを判断する。ステップS7で“NO”であれば、つまり、操作者からの入室要求ではなく、ユーザからの入室要求であれば、ステップS9で、ユーザ端末18と接続状態を確立し、ステップS11で、ユーザ端末18のカメラ96とマイク92をオンして、ステップS1に戻る。
【0157】
一方、ステップS7で“YES”であれば、つまり、操作者からの入室要求であれば、ステップS13で、参加者管理データ304aを参照して、既に入室中の操作者が存在するかどうかを判断する。
【0158】
ステップS13で“YES”であれば、つまり、既に入室中の操作者が存在する場合には、ステップS15で、今回入室した操作者を非アクティブに設定する。ここでは、CPU20は、参加者管理テーブルにおいて、今回入室した操作者の参加者IDに対応して、応対状態の情報として非アクティブを記載する。
【0159】
次のステップS17では、今回入室した操作者の操作者端末16と接続状態を確立し、ステップS19で、この操作者端末16のカメラ66をオフし、マイク62をオンして、ステップS1に戻る。図示は省略するが、ステップS17で、CPU20は、操作者端末16と接続状態を確立したとき、当該操作者端末16に非アクティブ状態であることを通知する。これに応じて、当該操作者端末16では、アクティブフラグ404kがオフされる。
【0160】
また、ステップS13で“NO”であれば、つまり、入室中の操作者が存在しない場合には、ステップS21で、今回入室した操作者をアクティブに設定する。ここでは、CPU20は、参加者管理テーブルにおいて、今回入室した操作者の参加者IDに対応して、応対状態の情報としてアクティブを記載する。
【0161】
次のステップS23では、今回入室した操作者の操作者端末16と接続状態を確立し、ステップS25で、この操作者端末16のカメラ66およびマイク62をオンして、ステップS1に戻る。図示は省略するが、ステップS23で、CPU20は、操作者端末16と接続状態を確立したとき、当該操作者端末16にアクティブ状態であることを通知する。これに応じて、当該操作者端末16では、アクティブフラグ404kがオンされる。
【0162】
図15に示すように、CPU20は、操作者切替処理を開始すると、ステップS51で、操作者端末16からアクティブの要求通知が有るかどうかを判断する。ステップS51で“NO”であれば、つまり、アクティブの要求通知が無ければ、ステップS65に進む。一方、ステップS51で“YES”であれば、つまり、アクティブの要求通知が有れば、ステップS53で、参加者管理データ304aに対応する参加者管理テーブルを参照して、アクティブの操作者が居るかどうかを判断する。
【0163】
ステップS53で“NO”であれば、つまり、アクティブの操作者が居ない場合には、ステップS55で、要求元の操作者端末16のカメラ66をオンして、ステップS65に進む。図示は省略するが、ステップS55では、CPU20は、要求元の操作者端末16にアクティブ状態であることを通知するとともに、参加者管理テーブルにおいて、当該操作者端末16の操作者の応対状態をアクティブに設定する。
【0164】
一方、ステップS53で“YES”であれば、つまり、アクティブの操作者が居る場合には、ステップS57で、アクティブの操作者に交代通知を送信する。つまり、CPU20は、アクティブ状態の操作者端末16に交代通知を送信する。
【0165】
続いて、ステップS59では、アクティブの解除操作が有るかどうかを判断する。つまり、CPU20は、アクティブ状態の操作者端末16から解除通知を受信したかどうかを判断する。
【0166】
ステップS59で“NO”であれば、つまり、アクティブの解除操作が無ければ、ステップS59に戻る。一方、ステップS59で“YES”であれば、つまり、アクティブの解除操作が有れば、ステップS61で、アクティブ状態の操作者端末16のカメラ66をオフし、ステップS63で、要求元の操作者端末16のカメラ66をオンする。
【0167】
図示は省略するが、ステップS61では、CPU20は、解除操作が有った操作者端末16に非アクティブ状態であることを通知するとともに、参加者管理テーブルにおいて、当該操作者端末16の操作者の応対状態を非アクティブに設定(または、変更)する。
【0168】
また、ステップS63では、CPU20は、要求元の操作者端末16にアクティブ状態であることを通知するとともに、参加者管理テーブルにおいて、当該操作者端末16の操作者の応対状態をアクティブに設定する。
【0169】
そして、ステップS65では、接客終了かどうかを判断する。ここでは、CPU20は、操作者グループのすべての操作者端末16またはユーザ端末18が接客ルームを退室したり、接客ルームにおける対話の終了時間になったりしたかどうかを判断する。後述するステップS115についても同じである。
【0170】
ステップS65で“NO”であれば、つまり、接客終了でなければ、ステップS51に戻る。一方、ステップS65で“YES”であれば、つまり、接客終了であれば、操作者切替処理を終了する。
【0171】
図16に示すように、CPU20は、対話中における送受信処理を開始すると、ステップS101で、ユーザ端末18からデータを受信したかどうかを判断する。ステップS101で“YES”であれば、つまり、ユーザ端末18からデータを受信すれば、ステップS103で、受信したデータを操作者グループの各操作者端末16に送信して、ステップS105に進む。この第1実施例では、ユーザ端末18から受信したデータは、ユーザ映像データ304dおよびユーザ音声データ304e、または、ユーザ映像データ304dである。一方、ステップS101で“NO”であれば、つまり、ユーザ端末18からデータを受信していなければ、ステップS105に進む。
【0172】
ステップS105では、アクティブ状態の操作者端末16からデータを受信したかどうかを判断する。ステップS105で“YES”であれば、つまり、アクティブ状態の操作者端末16からデータを受信すれば、ステップS107で、受信したデータをユーザ端末18に送信する。この第1実施例では、操作者端末16から受信したデータは、アバター画像データ304bおよびアバター音声データ304c、または、アバター画像データ304bである。
【0173】
さらに、ステップS109で、受信したアバター音声データ304cを非アクティブ状態の操作者端末16に送信して、ステップS115に進む。ただし、CPU20は、アバター音声データ304cを受信していない場合には、ステップS109の処理をスキップする。
【0174】
また、ステップS105で“NO”であれば、つまり、アクティブ状態の操作者端末16からデータを受信していなければ、ステップS111で、非アクティブ状態の操作者端末16から他の操作者音声データ304fを受信したかどうかを判断する。
【0175】
ステップS111で“YES”であれば、つまり、非アクティブ状態の操作者端末16から他の操作者音声データ304fを受信すれば、ステップS113で、受信した他の操作者音声データ304fを、操作者グループの各操作者端末16のうち、当該他の操作者音声データ304fの送信元以外の他の操作者端末16の各々に送信して、ステップS115に進む。
【0176】
ステップS115では、接客終了かどうかを判断する。ステップS115で“NO”であれば、つまり、接客終了でなければ、ステップS101に戻る。一方、ステップS115で“YES”であれば、つまり、接客終了であれば、対話中における送受信処理を終了する。
【0177】
図17-
図19は
図3に示した操作者端末16のCPU50の制御処理の一例を示すフロー図である。操作者グループの各操作者端末16のCPU50は、それぞれ、
図17-
図19に示す制御処理を実行する。
【0178】
図示は省略するが、CPU50は、制御処理と並行して、操作データの検出処理を実行して操作データを記憶する処理したり、カメラ66に撮影処理を実行させて操作者映像データを記憶する処理を実行したり、音声の検出処理を実行して操作者音声データを記憶する処理を実行したり、サーバ12から送信されるデータ等を受信および記憶する処理を実行したりする。以下、操作者端末16のCPU50の制御処理について説明するが、重複する内容については簡単に説明することにする。
【0179】
サーバ12から呼び出されたり、接客ルームにおける対話の開始時間となり操作者が入室を指示したりすると、
図17に示すように、CPU50は、制御処理を開始し、ステップS201で、サーバ12と接続状態を確立する。つまり、仮想の接客ルームに入室する。このとき、サーバ12からアクティブ状態または非アクティブ状態が通知され、CPU50は、アクティブフラグ404kをオンまたはオフする。
【0180】
次のステップS203で、アクティブ状態かどうかを判断する。ここでは、CPU50は、アクティブフラグ404kがオンであるかオフであるかを判断する。ステップS203で“NO”であれば、つまり、アクティブ状態でなければ、
図19に示すステップS235に進む。
【0181】
一方、ステップS203で“YES”であれば、つまり、アクティブ状態であれば、ステップS205で、
図6に示したような、交代通知の無いアクティブ状態の操作者側画面250を表示装置60に表示する。ただし、ユーザ映像データ404hを受信するまでは、表示領域252には何も表示されない。
【0182】
続くステップS207では、上述したように、操作者映像データ404cに基づいて動作データ404eを生成し、ステップS209で、動作データ404eに従う動作を行うアバターについてのアバター画像データ404fを生成し、ステップS211で、音声の入力が有るかどうかを判断する。
【0183】
ステップS211で“YES”であれば、つまり、音声の入力が有れば、ステップS213で、操作者音声データ404dをアバター音声データ404gに変換し、ステップS215で、ステップS207で生成したアバター画像データ404fと、ステップS213で変換したアバター音声データ404gをサーバ12に送信して、
図18に示すステップS219に進む。
【0184】
一方、ステップS211で“NO”であれば、つまり、音声の入力が無ければ、ステップS217で、ステップS207で生成したアバター画像データ404fをサーバ12に送信して、ステップS219に進む。
【0185】
図18に示すように、ステップS219で、サーバ12からデータを受信したかどうかを判断する。ステップS219で“YES”であれば、つまり、サーバ12からデータを受信すれば、ステップS221で、受信したデータを出力して、ステップS231に進む。ステップS221では、CPU50は、ユーザ映像データを表示装置60に出力する、または/および、ユーザ音声データ404iをスピーカ64に出力する。また、ステップS221では、CPU50は、他の操作者音声データ404jをスピーカ64に出力する。これらのことは、後述するステップS243も同じである。
【0186】
また、ステップS219で“NO”であれば、つまり、サーバ12かデータを受信していなければ、ステップS223で、サーバ12から交代通知が有るかどうかを判断する。ステップS223で“NO”であれば、つまり、サーバ12から交代通知が無ければ、ステップS231に進む。一方、ステップS223で“YES”であれば、ステップS225で、
図7に示したような、操作者側画面250すなわち交代通知画面を表示装置60に表示する。
【0187】
次のステップS227では、解除操作が有るかどうかを判断する。ここでは、ボタン画像272がオンされたかどうかを判断する。ステップS227で“NO”であれば、つまり、解除操作が無ければ、ステップS227に戻る。一方、ステップS227で“YES”であれば、つまり、解除操作が有れば、ステップS229で、解除通知をサーバ12に送信して、ステップS231に進む。
【0188】
ステップS231では、対話終了かどうかを判断する。ここでは、CPU50は、操作者によって退室することが指示されたかどうかを判断する。ステップS231で“NO”であれば、つまり、対話終了でなければ、ステップS203に戻る。一方、ステップS231で“YES”であれば、つまり、対話終了であれば、ステップS233で、終了通知をサーバ12に送信して、制御処理を終了する。
【0189】
また、上述したように、非アクティブ状態であれば、ステップS203で“NO”となり、
図19に示すステップS235で、
図8に示したような、非アクティブ状態の操作者側画面250を表示装置60に表示する。
【0190】
続くステップS237では、音声の入力が有るかどうかを判断する。ステップS237で“YES”であれば、つまり、音声の入力が有れば、ステップS239で、操作者音声データ404dすなわち他の操作者音声データをサーバ12に送信して、ステップS241に進む。一方、ステップS237で“NO”であれば、つまり、音声の入力が無ければ、ステップS241に進む。
【0191】
ステップS241では、サーバ12からデータを受信したかどうかを判断する。ステップS241で“YES”であれば、ステップS243で、受信したデータを出力して、ステップS249に進む。一方、ステップS241で“NO”であれば、ステップS245で、アクティブの要求指示が有るかどうかを判断する。ここでは、CPU50は、ボタン画像282がオンされたかどうかを判断する。
【0192】
ステップS245で“YES”であれば、つまり、アクティブの要求指示が有れば、ステップS247で、アクティブの要求通知をサーバ12に送信して、ステップS249に進む。一方、ステップS245で“NO”であれば、つまり、アクティブの要求指示が無ければ、ステップS249に進む。
【0193】
ステップS249では、対話終了かどうかを判断する。ステップS249で“NO”であれば、ステップS203に戻る。一方、ステップS249で“YES”であれば、ステップS251で、終了通知をサーバ12に送信して、制御処理を終了する。
【0194】
図20は
図4に示したユーザ端末18のCPU80の制御処理の一例を示すフロー図である。図示は省略するが、CPU80は、制御処理と並行して、操作データの検出処理を実行して操作データを記憶する処理したり、カメラ96に撮影処理を実行させてユーザ映像データを記憶する処理を実行したり、音声の検出処理を実行してユーザ音声データを記憶する処理を実行したり、サーバ12から送信されるデータ等を受信および記憶する処理を実行したりする。以下、ユーザ端末18のCPU80の制御処理について説明するが、重複する内容については簡単に説明することにする。
【0195】
ユーザ操作によって操作者の応対をサーバ12に要求したり、接客ルームにおける対話の開始時間となりユーザが入室を指示したりすると、
図20に示すように、CPU80は、制御処理を開始し、ステップS301で、サーバ12と接続状態を確立する。つまり、仮想の接客ルームに入室する。
【0196】
次のステップS305では、対話終了であるかどうかを判断する。ここでは、CPU80は、ユーザによって退室することが指示されたかどうかを判断する。ステップS305で“YES”であれば、つまり、対話終了であれば、ステップS307で、終了通知をサーバ12に送信して、制御処理を終了する。一方、ステップS305で“NO”であれば、つまり、対話終了でなければ、ステップS309で、サーバ12からデータを受信したかどうかを判断する。
【0197】
ステップS309で“NO”であれば、つまり、サーバ12からデータを受信していなければ、ステップS319に進む。一方、ステップS309で“YES”であれば、つまり、サーバ12からデータを受信すれば、ステップS311で、アバター音声データ504fが有るかどうかを判断する。
【0198】
ステップS311で“YES”であれば、つまり、アバター音声データ504fが有れば、ステップS313で、アバター音声データ504fをスピーカ94に出力し、ステップS315で、アバター音声データ504fの出力に合わせてアバター画像データ504eを表示装置90に出力して、ステップS319に進む。ステップS315では、アバター画像202は、アバターの音声にリップシンクされる。
【0199】
一方、ステップS311で“NO”であれば、つまり、アバター音声データ504fが無ければ、ステップS317で、アバター画像データ504eを表示装置90に出力し、ステップS319に進む。
【0200】
ステップS319では、音声の入力が有るかどうかを判断する。ステップS319で“YES”であれば、つまり、音声の入力が有れば、ステップS321で、ユーザ映像データ504cとユーザ音声データ504dをサーバ12に送信して、ステップS305に戻る。一方、ステップS319で“NO”であれば、つまり、音声の入力が無ければ、ステップS323で、ユーザ映像データ504cをサーバ12に送信して、ステップS305に戻る。
【0201】
第1実施例によれば、ユーザに応対する複数の操作者は1種類のアバターを使用し、また、各操作者の音声を目標のピッチおよびフォルマントと一致するように変換するので、ユーザは違和感なく複数の操作者で操作される1種類のアバターと対話することができる。また、操作者が交代する度に自己紹介するなどの無駄を省略することができる。したがって、商談の進行を円滑に行うことができる。このため、複数人の操作者がアバターを用いて円滑に応対することができる。
【0202】
なお、第1実施例では、各操作者端末でアバター画像データを生成し、サーバを介してユーザ端末に送信されるため、操作者が交代するときに、アバターの動作が不連続になってしまい、ユーザに違和感を与えてしまう虞がある。したがって、操作者が交代する場合には、その前後でアバターの動作が連続的に行われるように、一旦、アバターを所定の姿勢(たとえば、両手を下に下ろして正面を向いた姿勢)にさせるようにしてもよい。
【0203】
また、この第1実施例では、操作者を撮影した映像データから生成した動作データを用いてアバターの動作を制御するようにしたが、これに限定される必要はない。アバターに実行させる一連の動作に対応する動作データを予め用意しておき、操作者がボタン操作などで指示した一連の動作に対応する動作データに基づいてアバター画像データを生成するようにしてもよい。一連の動作の例としては、お辞儀して元の姿勢(たとえば、直立の状態)に戻る動作、辺りを見渡すように顔の向きを左右に数回動かして元の姿勢に戻る動作、右手または/および左手を胴体の前で振ってから元の姿勢に戻る動作、右手または/および左手を挙げてから元の姿勢に戻る動作などである。
【0204】
また、この第1実施例では、操作者の音声に基づいて、アバターに発話させるようにしたが、発話する内容のアバター音声データ(たとえば、合成音声データ)を予め用意しておき、操作者がボタン操作などで指示した発話する内容に対応するアバター音声データをユーザ端末に送信して、アバターの発話を制御するようにしてもよい。
【0205】
ただし、アバターの一連の動作に対応する動作データに基づいたアバター画像データとともに発話する内容のアバター音声データを1つのボタンに設定しておき、アバター画像データとアバター音声データを一度に送信するようにしてもよい。
【0206】
さらに、この第1実施例では、ユーザ端末にアバター画像を表示したCGアバターがユーザに応対するようにしたが、アバターはロボットアバターであってもよい。この場合、アクティブ状態の操作者端末を使用する操作者の操作(つまり、遠隔操作)に従ってロボットアバターが動作され、アクティブ状態の操作者端末を使用する操作者の音声がロボットアバターの音声に変換されてロボットアバターから出力される。操作者端末からは、ロボットアバターを動作させるためのコマンドがサーバを介して送信される。ただし、操作者映像データから生成した動作データに基づいてロボットアバターを動作させるためのコマンドが生成されてもよい。一例として、コマンドには、ロボットアバターの各関節の角度の情報が含まれる。
【0207】
ロボットアバターとしては、遠隔操作により、身体動作または/および音声による対話が可能なロボットを使用することができる。また、ロボットアバターは、移動可能なロボットまたは据え置き型のロボットである。
【0208】
一例として、特開2007-190659号に開示されたコミュニケーションロボットを用いることができ、また、この特開2007-190659号に開示された方法でコミュニケーションロボットを遠隔操作することができる。
【0209】
このコミュニケーションロボットを用いる場合には、ロボットの顔の表情は変化されないため、サーバに送信するコマンドには顔の表情についての情報は含めなくてもよいし、ロボット側で無視するようにしてもよい。
【0210】
また、他の例として、特開2017-47494号に開示されたアンドロイド(登録商標)ロボットを用いることができ、また、この特開2017-47494号に開示された方法でアンドロイドロボットを遠隔操作することができる。
【0211】
<第2実施例>
第2実施例の情報処理システム10は、サーバ12がアバター画像データを生成するようにした以外は、第1実施例と同じであるため、異なる内容について説明し、重複する説明は省略することにする。
【0212】
第2実施例の情報処理システム10では、アクティブ状態の操作者端末16は、操作者映像データに応じた動作データに従う動作を行うアバター画像データを生成してサーバ12に送信することに代えて、操作者映像データに応じた動作データをサーバ12に送信する。サーバ12は、アクティブ状態の操作者端末16から受信した動作データに従う動作を行うアバター画像データを生成し、生成したアバター画像データをユーザ端末18に送信する。
【0213】
したがって、第2実施例では、サーバ12によってアバター制御プログラム402hが実行され、アバター画像データ404fが生成される。つまり、サーバ12のRAM22には、アバター画像データ404fを生成するための画像生成データも記憶される。
【0214】
以下、第2実施例のサーバ12のCPU20、操作者端末16のCPU50およびユーザ端末18のCPU80の処理について説明するが、上述したように、重複する説明は省略する。
【0215】
図21は第2実施例のサーバ12のCPU20で実行される対話中における送受信処理の一例を示すフロー図である。なお、第2実施例のサーバ12のCPU20で実行される入室管理処理および操作者切替処理は第1実施例と同じであるため、重複した説明は省略する。
【0216】
第2実施例の送受信処理では、第1実施例で示したステップS107に代えて、ステップS107aおよびステップS107bが実行される。
【0217】
具体的には、CPU20は、ステップS105で“YES”である場合に、ステップS107aで、受信した動作データを用いてアバター画像データを生成する。つまり、CPU20は、動作データに従う動作を行うアバター画像データを生成する。
【0218】
次のステップS107bでは、ステップS107aで生成したアバター画像データおよび受信したアバター音声データをユーザ端末18に送信して、ステップS109に進む。
【0219】
図22は第2実施例の操作者端末16のCPU50で実行される制御処理の一例の一部を示すフロー図である。第2実施例の操作者端末16では、
図17に示したステップS209の処理が削除される。また、
図17に示したステップS215およびステップS217に代えて、ステップS215aおよびステップS217aが実行される。
【0220】
具体的には、CPU50は、ステップS207の処理を実行すると、ステップS211に進む。また、CPU50は、ステップS211で“YES”であれば、ステップS213の処理を実行し、ステップS215aで、ステップS207で生成した動作データ404eと、ステップS213で変換したアバター音声データ404gをサーバ12に送信して、ステップS219に進む。一方、ステップS211で“NO”であれば、ステップS217aで、ステップS207で生成した動作データ404eをサーバ12に送信して、ステップS219に進む。
【0221】
なお、
図18および
図19に示したステップS219-ステップS251については第1実施例と同じであるため、重複した説明は省略する。
【0222】
また、第2実施例のユーザ端末18のCPU80の制御処理は第1実施例と同じであるため、重複した説明は省略する。
【0223】
第2実施例においても、第1実施例と同様に、複数人の操作者がアバターを用いて円滑に応対することができる。
【0224】
なお、第2実施例では、サーバでアバター画像データを生成するため、アクティブ状態の操作者端末が変更された場合には、その前後でアバターの動作が連続するように、アバターを構成する各ポリゴンの位置等をアクティブ状態の操作者端末の変更の前後で補間(たとえば、線形補間)により算出することができる。
【0225】
また、第2実施例では、サーバでアバター画像データを生成するようにしたが、アバター音声データもサーバで生成するようにしてもよい。この場合、アクティブ状態の操作者端末から操作者音声データがサーバに送信される。ただし、各操作者に設定された、ピッチおよびフォルマントを変換する変換器のパラメータはサーバで管理される。各操作者に設定されたパラメータは、アクティブ状態に変更されるときに、操作者端末からサーバに送信されるようにすることもできる。
【0226】
<第3実施例>
第3実施例の情報処理システム10は、文字情報によるメッセージのやり取りも可能にした以外は第1実施例および第2実施例と同じであるため、異なる内容について説明し、重複する説明は省略することにする。
【0227】
図23は操作者グループの各操作者端末16およびユーザ端末18に表示されるチャット画面600の一例を示す。チャット画面600は、対話画面200の一部または対話画面200に重ねてアバター画像202の横に表示され、操作者側画面250の一部または操作者側画面250に重ねて表示領域252の外側に表示される。なお、分かり易く示すために、チャット画面600を対話画面200および操作者側画面250と同程度の大きさで示してある。
【0228】
第3実施例では、チャット画面600は、予め表示されているものとして説明する。
【0229】
ただし、アクティブ状態の操作者端末16の操作者またはユーザ端末18のユーザがチャットの実行を指示したことに応じて、チャット画面600が表示されるようにしてもよい。
【0230】
この場合、アクティブ状態の操作者端末16の操作者がチャットの実行を指示したことに応じて、当該操作者端末16の表示装置60にチャット画面600が表示され、チャットの実行が指示されたことがサーバ12を介して非アクティブ状態の各操作者端末16およびユーザ端末18に送信され、非アクティブ状態の各操作者端末16の表示装置60およびユーザ端末18の表示装置90にチャット画面600が表示される。
【0231】
同様に、ユーザ端末18のユーザがチャットの実行を指示したことに応じて、当該ユーザ端末18の表示装置90にチャット画面600が表示され、チャットの実行が指示されたことがサーバ12を介して操作者グループの各操作者端末16に送信され、操作者グループの各操作者端末16の表示装置60にチャット画面600が表示される。
【0232】
図23に示すように、チャット画面600は、表示領域602を含み、表示領域602の右側に、スクロールバー604が設けられる。また、入力領域606およびボタン画像608が、表示領域602およびスクロールバー604の下方に設けられる。
【0233】
表示領域602は、文字情報によるメッセージのやり取りを表示するための領域である。表示領域602には、メッセージ画像620およびメッセージ画像622が表示される。メッセージ画像620は、アバターすなわちアクティブ状態の操作者端末16の操作者のメッセージについての画像であり、メッセージ画像622は、ユーザ端末18のユーザのメッセージについての画像であり、時系列に従ってチャット画面600(表示領域602)の上から下向きに並んで表示される。
【0234】
メッセージ画像620は、識別画像620aおよび枠画像620bを含む。識別画像620aは、アバターの顔画像であり、アバターからのメッセージであることを識別するための画像である。識別画像620aは、アバターの顔画像に代えて、または、アバターの顔画像とともに、アバターの名称または操作者の文字列が表示されてもよい。枠画像620bは、アバターのメッセージを表示するための表示枠を示す画像であり、吹き出し(バルーン)の形状を有している。
【0235】
メッセージ画像622は、識別画像622aおよび枠画像622bを含む。識別画像622aは、ユーザを示す画像であり、ユーザからのメッセージであることを識別するための画像である。識別画像622aは、ユーザを示す画像に代えて、または、ユーザを示す画像とともに、ユーザの名称またはユーザの文字列が表示されてもよい。枠画像622bは、ユーザのメッセージを表示するための表示枠を示す画像であり、吹き出し(バルーン)の形状を有している。
【0236】
アクティブ状態の操作者端末16の操作者は、入力装置58を操作して、文字すなわちユーザからの問い合わせ(質問)に対する応答内容のメッセージを入力領域606に入力する。また、操作者は、入力装置58を操作して、ボタン画像608をオンすると、入力領域606に入力されたメッセージがサーバ12を介して、ユーザ端末18および非アクティブ状態の各操作者端末16に送信される。
【0237】
したがって、ユーザ端末18は、メッセージを受信して、表示装置90に表示されるチャット画面600の表示領域602に、受信したメッセージを含むメッセージ画像620を表示する。このとき、メッセージ画像620は、時間的に最も新しい、この実施例では、一番下に配置されている、メッセージ画像620またはメッセージ画像622の下側に表示される。以下、メッセージ画像622が表示される場合も含めて同じである。
【0238】
同様に、非アクティブ状態の操作者端末16は、メッセージを受信して、表示装置60に表示されるチャット画面600の表示領域602に、受信したメッセージを含むメッセージ画像620を表示する。また、このとき、アクティブ状態の操作者端末16の表示装置60に表示されるチャット画面600において、入力領域606に入力されたメッセージを含むメッセージ画像620が表示領域602に表示される。入力領域606に入力されたメッセージは、サーバ12に送信されるとともに、表示領域602に表示されるときに、入力領域606から消去される。
【0239】
いずれの操作者端末16がアクティブ状態であっても同じアバターの顔画像の識別画像620aを含むメッセージ画像620が表示される。つまり、異なる操作者が応対する場合であっても、1人の操作者がメッセージを送信しているように見せることができる。したがって、複数の操作者が交代で文字情報をやり取りする場合であっても、ユーザに同一のアバターすなわち同一人物が応対していると認識させることができる。
【0240】
また、操作者は、入力装置58を操作して、チャット画面600のスクロールバー604を上また下に移動させることで表示領域602をスクロールさせる。つまり、表示領域602に表示された1または複数のメッセージ画像620と、1または複数のメッセージ画像622が上または下に移動される。
【0241】
ユーザは、入力装置88を操作して、文字すなわち問い合わせ(質問)内容のメッセージを入力領域606に入力する。また、ユーザは、入力装置88を操作して、ボタン画像608をオンすると、入力領域606に入力されたメッセージがサーバ12を介して、操作者グループの各操作者端末16に送信される。
【0242】
したがって、各操作者端末16は、メッセージを受信して、表示装置60に表示されるチャット画面600の表示領域602に、受信したメッセージを含むメッセージ画像622を表示する。また、このとき、ユーザ端末18の表示装置90に表示されるチャット画面600において、入力領域606に入力されたメッセージを含むメッセージ画像622が表示領域602に表示される。入力領域606に入力されたメッセージは、サーバ12に送信されるとともに、表示領域602に表示されるときに、入力領域606から消去される。
【0243】
また、ユーザは、入力装置88を操作して、チャット画面600のスクロールバー604を上また下に移動させることで表示領域602をスクロールさせる。つまり、表示領域602に表示された1または複数のメッセージ画像620と、1または複数のメッセージ画像622が上または下に移動される。
【0244】
第3実施例では、操作者グループの各操作者端末16およびユーザ端末18では、チャットのプログラムが実行可能に記憶される。
【0245】
以下、第3実施例のサーバ12のCPU20、操作者端末16のCPU50およびユーザ端末18のCPU80の処理について説明するが、上述したように、重複する説明は省略する。
【0246】
図24は第3実施例のサーバ12のCPU20で実行される対話中における送受信処理の一例を示すフロー図である。なお、第3実施例のサーバ12のCPU20で実行される入室管理処理および操作者切替処理は第1実施例と同じであるため、重複する説明は省略する。
【0247】
第3実施例の送受信処理では、第1実施例で示した送受信処理において、ステップS109とステップS111の間にステップS151が追加される。
【0248】
また、ステップS101およびステップS103で実行される処理の内容が変更される。具体的には、ステップS101で受信したかどうかが判断されるのは、ユーザ映像データ304dおよびユーザ音声データ304e、または、ユーザ映像データ304d、あるいは、メッセージデータである。したがって、ステップS103では、CPU20は、ユーザ映像データ304dおよびユーザ音声データ304e、または、ユーザ映像データ304d、あるいは、メッセージデータを操作者グループの各操作者端末16に送信する。
【0249】
さらに、ステップS105で実行される処理の内容が変更される。具体的には、ステップS105で受信したかどうかが判断されるのは、アバター画像データ304bおよびアバター音声データ304c、または、アバター画像データ304b、あるいは、メッセージデータである。したがって、ステップS151では、CPU20は、メッセージデータを非アクティブ状態の各操作者端末16に送信する。ただし、アクティブ状態の操作者端末16からメッセージデータを受信していない場合には、ステップS151の処理はスキップされる。
【0250】
図25は第3実施例の操作者端末16の制御処理の一部を示すフロー図である。
図25に示すように、第3実施例では、第1実施例の
図17に示したステップS215およびステップS217と、
図18に示したステップS219の間において、または、第2実施例の
図22に示したステップS215aおよびステップS217aと、
図18に示したステップS219の間において、ステップS271、S273、S275、S277、S279、S281、S283が実行される。
【0251】
具体的には、CPU50は、ステップS215またはステップS217の処理を実行すると、または、ステップS215aまたはステップS217aの処理を実行すると、ステップS271で、送信指示が有るかどうかを判断する。ここでは、チャット画面600のボタン画像608がオンされたかどうかを判断する。
【0252】
なお、第3実施例では、ステップS205で、操作者側画面250を表示装置60に表示するときに、チャット画面600も表示される。
【0253】
ステップS271で“YES”であれば、つまり、送信指示が有れば、ステップS273で、入力領域606に入力された文字または文字列すなわちメッセージに対応するメッセージデータをサーバ12に送信する。
【0254】
続くステップS275で、メッセージ画像620をチャット画面600の表示領域602に表示し、ステップS277で、チャット画面600の入力領域606に入力されたメッセージを消去して、ステップS219に進む。
【0255】
また、ステップS271で“NO”であれば、つまり、送信指示が無ければ、ステップS279で、文字の入力かどうかを判断する。ここでは、CPU50は、チャット画面600において、入力装置58を操作して、入力領域606に文字が入力されたかどうかを判断する。
【0256】
ステップS279で“YES”であれば、つまり、文字の入力であれば、ステップS281で、チャット画面600の入力領域606に入力された文字を表示して、ステップS219に進む。一方、ステップS279で“NO”であれば、つまり、文字の入力でなければ、ステップS283で、その他の処理を実行して、ステップS219に進む。一例として、CPU50は、ステップS283で、スクロールバー604の移動に応じてチャット画面600の表示領域602をスクロールさせる。ただし、チャット画面600において、操作者の操作が無い場合には、CPU50は、ステップS283で、その他の処理を実行しないで、ステップS219に進む。
【0257】
図26は第3実施例のユーザ端末18の制御処理の一部を示すフロー図であり、
図27は第3実施例のユーザ端末18の制御処理の他の一部を示すフロー図である。
【0258】
図26に示すように、第3実施例では、
図20に示したステップS309とステップS311の間において、ステップS351とステップS353が実行される。
【0259】
具体的には、CPU80は、ステップS309で“YES”であれば、ステップS351で、サーバ12から受信したメッセージデータが有るかどうかを判断する。ステップS351で“YES”であれば、つまり、サーバ12から受信したメッセージデータが有れば、ステップS353で、チャット画面600の表示領域602に、受信したメッセージを含むメッセージ画像620を表示して、ステップS311に進む。一方、ステップS351で“NO”であれば、つまり、サーバ12から受信したメッセージが無ければ、ステップS311に進む。
【0260】
また、
図27に示すように、第3実施例では、第1実施例の
図20に示したステップS321およびステップS323と、ステップS305に戻る間において、ステップS371、S373、S375、S377、S379、S381、S383が実行される。このことは、第2実施例に第3実施例の変更を加える場合も同じである。
【0261】
具体的には、CPU80は、ステップS321またはステップS323の処理を実行すると、ステップS371で、送信指示が有るかどうかを判断する。ここでは、チャット画面600のボタン画像608がオンされたかどうかを判断する。
【0262】
なお、第3実施例では、ステップS303で、対話画面200を表示装置90に表示するときに、チャット画面600も表示される。
【0263】
ステップS371で“YES”であれば、つまり、送信指示が有れば、ステップS373で、入力領域606に入力された文字または文字列すなわちメッセージに対応するメッセージデータをサーバ12に送信する。
【0264】
続くステップS375で、メッセージ画像622をチャット画面600の表示領域602に表示し、ステップS377で、チャット画面600の入力領域606に入力されたメッセージを消去して、ステップS305に戻る。
【0265】
また、ステップS371で“NO”であれば、つまり、送信指示が無ければ、ステップS379で、文字の入力かどうかを判断する。ここでは、CPU80は、チャット画面600において、入力装置88を操作して、入力領域606に文字が入力されたかどうかを判断する。
【0266】
ステップS379で“YES”であれば、つまり、文字の入力であれば、ステップS381で、チャット画面600の入力領域606に入力された文字を表示して、ステップS305に戻る。一方、ステップS379で“NO”であれば、つまり、文字の入力でなければ、ステップS383で、その他の処理を実行して、ステップS305に戻る。一例として、CPU80は、ステップS383で、スクロールバー604の移動に応じてチャット画面600の表示領域602をスクロールさせる。ただし、チャット画面600において、ユーザの操作が無い場合には、CPU80は、ステップS383で、その他の処理を実行しないで、ステップS305に戻る。
【0267】
第3実施例においても、第1実施例および第2実施例と同様に、複数人の操作者がアバターを用いて円滑に応対することができる。
【0268】
また、第3実施例によれば、ユーザと文字情報でやり取りすることもできるため、より円滑に応対することができる。
【0269】
なお、第3実施例では、アクティブ状態の操作者端末の操作者がメッセージを送信できるようにしたが、非アクティブ状態の操作者端末の各操作者もメッセージを送信できるようにすることもできる。ただし、操作者グループの各操作者端末の操作者が一度にメッセージを送信し、一度にメッセージ画像をチャット画面に表示してしまうと、複数人の操作者が居ると認識してしまう虞がある。このため、サーバは、2以上の操作者端末から一度に複数のメッセージを受信した場合には、メッセージの長さに応じた時間間隔をあけて順次メッセージ画像を表示する。
【0270】
なお、上述の各実施例の情報処理システムにおいては、操作者グループの複数の操作者端末間で文字情報を送受信可能なチャット機能をさらに設けて、操作者グループの複数の操作者間で情報を共有するようにしてもよい。
【0271】
また、上述の各実施例で示したフロー図の各ステップは同じ結果が得られる場合には、処理する順番を変更することが可能である。
【0272】
さらに、上述の各実施例で挙げた各種の画面、具体的数値はいずれも単なる例示であり、必要に応じて適宜変更可能である。
【符号の説明】
【0273】
10 …情報処理システム
12 …サーバ
14 …ネットワーク
16 …操作者端末
18 …ユーザ端末
20、50、80 …CPU
22、52、82 …RAM
24、54、84 …通信I/F
26、56、86 …入出力I/F
28、58、88 …入力装置
30、60、90 …表示装置
32、62、92 …マイク
34、64、94 …スピーカ
36、66、96 …カメラ