IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 学校法人成蹊学園の特許一覧

特開2023-30986情報処理装置、情報処理システムおよびプログラム
<>
  • 特開-情報処理装置、情報処理システムおよびプログラム 図1
  • 特開-情報処理装置、情報処理システムおよびプログラム 図2
  • 特開-情報処理装置、情報処理システムおよびプログラム 図3
  • 特開-情報処理装置、情報処理システムおよびプログラム 図4
  • 特開-情報処理装置、情報処理システムおよびプログラム 図5
  • 特開-情報処理装置、情報処理システムおよびプログラム 図6
  • 特開-情報処理装置、情報処理システムおよびプログラム 図7
  • 特開-情報処理装置、情報処理システムおよびプログラム 図8
  • 特開-情報処理装置、情報処理システムおよびプログラム 図9
  • 特開-情報処理装置、情報処理システムおよびプログラム 図10
  • 特開-情報処理装置、情報処理システムおよびプログラム 図11
  • 特開-情報処理装置、情報処理システムおよびプログラム 図12
  • 特開-情報処理装置、情報処理システムおよびプログラム 図13
  • 特開-情報処理装置、情報処理システムおよびプログラム 図14
  • 特開-情報処理装置、情報処理システムおよびプログラム 図15
  • 特開-情報処理装置、情報処理システムおよびプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023030986
(43)【公開日】2023-03-08
(54)【発明の名称】情報処理装置、情報処理システムおよびプログラム
(51)【国際特許分類】
   G06F 3/01 20060101AFI20230301BHJP
   G06F 13/00 20060101ALI20230301BHJP
   G06F 3/16 20060101ALI20230301BHJP
   G06T 13/40 20110101ALI20230301BHJP
【FI】
G06F3/01 510
G06F13/00 550A
G06F3/16 650
G06F3/16 690
G06F3/16 620
G06F3/16 610
G06T13/40
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021136427
(22)【出願日】2021-08-24
(71)【出願人】
【識別番号】397038037
【氏名又は名称】学校法人成蹊学園
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】二瓶 芙巳雄
(72)【発明者】
【氏名】中野 有紀子
【テーマコード(参考)】
5B050
5B084
5E555
【Fターム(参考)】
5B050BA08
5B050BA12
5B050CA07
5B050CA08
5B050DA10
5B050EA07
5B050EA13
5B050EA18
5B050EA19
5B050EA24
5B050FA02
5B050FA09
5B050FA10
5B050GA08
5B084AA01
5B084AA12
5B084AB07
5B084AB14
5B084BB17
5B084CA07
5B084DC02
5B084DC03
5B084EA34
5E555AA46
5E555AA47
5E555BA02
5E555BB02
5E555BC08
5E555BD01
5E555CA42
5E555CA47
5E555CB64
5E555CB67
5E555CC22
5E555DA23
5E555DB32
5E555DC21
5E555DC30
5E555DC84
5E555DD06
5E555DD07
5E555EA11
5E555EA22
5E555EA23
5E555FA00
(57)【要約】
【課題】 高性能なコンピュータを使用しなくても、仮想エージェントを開発・動作させることが可能となる装置、システムおよびプログラムを提供すること。
【解決手段】 情報処理装置は、ユーザと対面して会話を行う仮想エージェントの動作に関連するマルチモーダル情報を、ネットワークを介して受信する通信手段と、通信手段との間で通信を行い、該通信手段が受信したマルチモーダル情報に基づき、仮想エージェントの動作を制御するための制御情報を生成する生成手段とを含む。通信手段は、生成手段により生成された制御情報を、仮想エージェントが表示されるユーザ端末へネットワークを介して送信する。
【選択図】 図3
【特許請求の範囲】
【請求項1】
仮想エージェントの動作を制御する情報処理装置であって、
ユーザと対面して会話を行う前記仮想エージェントの動作に関連するマルチモーダル情報を、ネットワークを介して受信する通信手段と、
前記通信手段との間で通信を行い、該通信手段が受信した前記マルチモーダル情報に基づき、前記仮想エージェントの動作を制御するための制御情報を生成する生成手段と
を含み、
前記通信手段は、前記生成手段により生成された前記制御情報を、前記仮想エージェントが表示されるユーザ端末へ前記ネットワークを介して送信する、情報処理装置。
【請求項2】
前記通信手段との間で通信を行い、該通信手段が受信した前記マルチモーダル情報を処理する処理手段を含み、
前記生成手段は、前記通信手段から取得した前記処理手段による処理後のマルチモーダル情報に基づき、前記制御情報を生成する、請求項1に記載の情報処理装置。
【請求項3】
前記通信手段は、前記ユーザ端末から受信したユーザの音声データおよび映像データを前記マルチモーダル情報として受信する、請求項2に記載の情報処理装置。
【請求項4】
前記処理手段は、
前記音声データに基づき、前記ユーザの音声の特徴量を抽出する音声処理手段と、
前記音声処理手段により抽出された前記特徴量に基づき、音声認識処理を実行し、形態素解析を行う音声認識手段と、
前記映像データに基づき、前記ユーザの映像の特徴量を抽出し、抽出した前記特徴量から該ユーザの表情を推定する映像処理手段と
を含む、請求項3に記載の情報処理装置。
【請求項5】
前記生成手段は、前記音声処理手段により抽出された前記特徴量と、前記音声認識手段により実行された音声認識処理および形態素解析の結果と、前記映像処理手段により推定されたユーザの表情情報とに基づき、前記仮想エージェントの表情を変える命令を含む前記制御情報を生成する対話制御手段を含む、請求項4に記載の情報処理装置。
【請求項6】
前記対話制御手段は、前記音声処理手段により抽出された前記特徴量と、前記音声認識手段により実行された音声認識処理および形態素解析の結果と、前記映像処理手段により推定されたユーザの表情情報とに基づき、前記仮想エージェントの表情を変える命令と該仮想エージェントが発話する発話文とを含む前記制御情報を生成する、請求項5に記載の情報処理装置。
【請求項7】
前記生成手段は、前記対話制御手段が生成した前記制御情報に含まれる前記発話文に基づき、前記仮想エージェントに発声させる音声データと、前記音声データに合わせて前記仮想エージェントの口を変形させるリップシンク情報とを生成する音声合成手段を含み、
前記制御情報は、生成された前記音声データおよび前記リップシンク情報、または生成された前記音声データおよび前記リップシンク情報の記憶場所を示すパス情報を含む、請求項6に記載の情報処理装置。
【請求項8】
前記生成手段は、前記仮想エージェントに発声させる音声データと、前記音声データに合わせて前記仮想エージェントの口を変形させるリップシンク情報とを生成する、請求項1に記載の情報処理装置。
【請求項9】
請求項1~8のいずれか1項に記載の情報処理装置と、ユーザと対面して会話を行う仮想エージェントを表示し、前記情報処理装置からネットワークを介して受信した制御情報に基づき、前記仮想エージェントを動作させるユーザ端末とを含む、情報処理システム。
【請求項10】
仮想エージェントの動作の制御をコンピュータに実行させるためのプログラムであって、
ユーザと対面して会話を行う前記仮想エージェントの動作に関連するマルチモーダル情報を、ネットワークを介して受信するステップと、
受信した前記マルチモーダル情報に基づき、前記仮想エージェントの動作を制御するための制御情報を生成するステップと、
生成された前記制御情報を、前記仮想エージェントが表示されるユーザ端末へ前記ネットワークを介して送信するステップと
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想エージェントの動作を制御する情報処理装置、情報処理システムおよびその制御をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【0002】
人のマルチモーダルな表現を表出しながら、人とコミュニケーションするECA(Embodied Conversation Agent)と呼ばれる、アニメーションエージェントやロボットが知られている。そのECAを開発するためのフレームワークとして、人のマルチモーダル情報を入力とするGECA(Generic ECA)が知られている(例えば、非特許文献1参照)。マルチモーダル情報は、人がコミュニケーションする際に使用する多様な情報であり、例えば、ジェスチャー、視線、発声に伴う言語情報、韻律情報、表情等がある。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Hung-Hsuan Huang, Toyoaki Nishida, Aleksandra Cerekovic, Igor S. Pandzic, and Yukiko Nakano,“The Design of a Generic Framework for Integrating ECA Components”, Proceedings of the International Joint Conference on Autonomous Agents and Multiagent Systems, International Foundation for Autonomous Agents and Multiagent Systems, 2008, Vol.1, p.127-134
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のGECAでは、ローカルのコンピュータ上でECAを開発・動作させなければならないので、ECAの開発に必要なコンピュータの水準が高く、ユーザに対して高性能なコンピュータの所有を強制することになる。このような問題は、開発者がユーザに対し、高性能なコンピュータを貸し出すことで解決することができるが、コンピュータの貸し出しは手間が多く、開発者にとって稼働中のシステムの変更が容易ではないという問題があった。
【課題を解決するための手段】
【0005】
そこで、本発明の発明者らは、鋭意検討の結果、これまでネットワークを介してECAにアクセスすることが実現されていないことに鑑み、ユーザがウェブブラウザを通じてアクセスできるECA動作のためのプラットフォームを提供することにより、上記の課題を解決することができることを見出した。上記課題は、本発明の装置、システムおよびプログラムを提供することにより解決される。
【0006】
本発明によれば、仮想エージェントの動作を制御する情報処理装置であって、
ユーザと対面して会話を行う仮想エージェントの動作に関連するマルチモーダル情報を、ネットワークを介して受信する通信手段と、
通信手段との間で通信を行い、該通信手段が受信したマルチモーダル情報に基づき、仮想エージェントの動作を制御するための制御情報を生成する生成手段と
を含み、
通信手段は、生成手段により生成された制御情報を、仮想エージェントが表示されるユーザ端末へネットワークを介して送信する、情報処理装置が提供される。
【発明の効果】
【0007】
本発明によれば、高性能なコンピュータを使用しなくても、仮想エージェントを開発・動作させることが可能となる。
【図面の簡単な説明】
【0008】
図1】情報処理システムの構成例を示した図。
図2】情報処理装置としてのサーバのハードウェア構成の一例を示した図。
図3】クライアント装置およびサーバの機能構成の一例を示した図。
図4】情報処理システムにより実行される処理の一例を示したフローチャート。
図5】仮想エージェントとユーザの映像を表示した例を示した図。
図6】表情特徴を推定した推定値の一例を示した図。
図7】7値の表情の確率分布の推定値の一例を示した図。
図8】韻律情報の一例を示した図。
図9】発話開始・終了の状態および音声ファイルのパスを含む、プラットフォームサーバへ返却される情報の一例を示した図。
図10】音声認識結果の一例を示した図。
図11】形態素情報の一例を示した図。
図12】仮想エージェントが表情を変える際に必要な情報の一例を示した図。
図13】リップシンク情報の一例を示した図。
図14】発話文と音声ファイルの配置場所とを含むデータの一例を示した図。
図15】情報処理システムの別の構成例を示した図。
図16】仮想エージェントが表情を変えるメッセージの一例を示した図。
【発明を実施するための形態】
【0009】
本発明の情報処理システムは、ユーザと会話を行う仮想エージェントを制御するシステムである。仮想エージェントは、マルチモーダルな表現を表出しながら、人と会話を行うECAである。情報処理システムは、ECAを開発するためのフレームワークであるGECAを1つの装置に実装するのではなく、ネットワークを介して通信可能なクライアント装置と情報処理装置としてのサーバの2つに分けて実装し、ユーザが高性能なコンピュータを使用することなく、ECAを開発・動作させることを可能にしたシステムである。
【0010】
はじめに、GECAについて説明する。GECAは、大きく分けて、GECAコンポーネントとGECAプラットフォームの2つから構成される。GECAコンポーネントには、ユーザの行動を検出するコンポーネント、対話のシナリオを制御するコンポーネント、ユーザに対するシステムの出力のためのコンポーネント等が含まれる。GECAプラットフォームは、GECAコンポーネントから送られるデータを他のコンポーネントに共有するための仕組みをもつ。
【0011】
GECAコンポーネントとGECAプラットフォームとの間には、GECAプラグと呼ばれるコネクタが設けられ、このコネクタを経由して通信が行われる。GECAでは、全てのコンポーネントが一意な状態が保証されたデータにアクセスするため、複数のコンポーネントがGECAプラットフォームを中心に接続される。
【0012】
GECAの具体的な動作について簡単に説明する。GECAコンポーネントのうち、ユーザの行動を検出するコンポーネントが、ユーザのデータを計測する。計測されたデータは、GECAプラグを経由し、GECAプラットフォームへ送信される。送信されたデータは、GECAプラットフォーム内のブラックボードマネージャに書き込まれる。ブラックボードマネージャに書き込まれたデータは、全てのGECAコンポーネントからアクセス可能となる。
【0013】
GECAコンポーネント内の対話のシナリオを制御するコンポーネントが、GECAプラットフォームにアクセスし、対話のシナリオを決定する。対話のシナリオは、ユーザとの会話において、ユーザから質問を受けた場合、その質問に対する回答の内容である。決定されたシナリオは、GECAプラットフォームへ送信される。
【0014】
最後に、ユーザに対して仮想エージェントとしてエージェントのアニメーションを生成するため、CGアニメーションプレーヤが、GECAプラットフォームへ送信されたシナリオに基づき、アニメーションを動作させる。
【0015】
GECAが提案された当時は、コンピュータの計算能力やネットワーク技術が成熟していなかったことから、ローカルのコンピュータ上で、しかも高性能なコンピュータでしか、ECAを開発・動作させることができなかった。コンピュータの計算能力やネットワーク技術が発展した現在においても、ネットワークを介してECAにアクセスすることは実現されていない。
【0016】
本発明は、ネットワークを介してECAにアクセスすることを可能にした装置、システム、プログラムを提供するものである。
【0017】
図1は、情報処理システムの構成例を示した図である。情報処理システムは、インターネット等のネットワーク10に接続されたクライアント装置11と情報処理装置としてのサーバ12とを含んで構成される。なお、クライアント装置11は、1台に限られるものではなく、複数台であってもよい。サーバ12は、クラウド上に設置されていてもよい。
【0018】
クライアント装置11は、ユーザの映像や音声を取得し、取得した映像や音声を、ECAとしての仮想エージェントの動作に関連するマルチモーダル情報として、ネットワーク10を介してサーバ12へ送信する。また、クライアント装置11は、仮想エージェントを表示し、サーバ12から送信された制御情報に基づき、仮想エージェントを動作させる。
【0019】
サーバ12は、クライアント装置11から受信したマルチモーダル情報から仮想エージェントの動作に必要な情報を生成し、生成した情報を制御情報としてクライアント装置11へ送信する。
【0020】
図2は、サーバ12のハードウェア構成の一例を示した図である。なお、クライアント装置11は、サーバ12のハードウェア構成と同様であるため、ここではサーバ12についてのみ説明する。サーバ12は、一般的なコンピュータと同様のハードウェア構成であり、CPU(Central Processing Unit)20、ROM(Read Only Memory)21、RAM(Random Access Memory)22、HDD(Hard Disk Drive)23、通信I/F24、入出力I/F25、入力装置26、表示装置27を含む。なお、入出力I/F25、入力装置26、表示装置27は、必要に応じて設けることができる。
【0021】
CPU20は、サーバ12の動作を制御し、GECAコンポーネントの一部やGECAプラットフォームの処理を実行する。なお、GECAコンポーネントの残りの処理は、クライアント装置11が備えるCPUにより実行される。ROM21は、サーバ12を起動させるための起動プログラムやファームウェア等を記憶する。RAM22は、CPU20に対して作業領域を提供する。HDD23は、上記のGECAコンポーネントの一部やGECAプラットフォームの処理を実現するためのプログラムやOS(Operating System)等を記憶する。なお、サーバ12は、HDD23に代えてSSD(Solid State Drive)を備えていてもよい。
【0022】
通信I/F24は、ネットワーク10に接続し、ネットワーク10を介した通信を制御する。入出力I/F25は、入力装置26から入力された情報を受け付け、表示装置27への情報の表示を制御する。入力装置26は、マウスやキーボード等であり、表示装置27は、ディスプレイ等である。なお、サーバ12は、その他のハードウェアを備えていてもよい。
【0023】
図3は、クライアント装置11およびサーバ12の機能構成の一例を示したブロック図である。クライアント装置11は、CPUがプログラムを実行することにより各機能部を実現し、各機能部を備える。なお、各機能は、その一部や全部が専用の回路等のハードウェアにより実現されてもよい。これは、サーバ12も同様である。
【0024】
クライアント装置11は、撮像装置30、音声入力装置31が接続され、撮像装置30により撮像された映像を映像データとして、また、音声入力装置31へ入力された音声を音声データとして取得するデータ取得部と、取得したデータをサーバ12へ送信する通信部と、仮想エージェントを生成して表示させ、サーバ12から通信部により取得した制御情報に基づき、仮想エージェントを動作させるエンジン部とを含む。この例では、クライアント装置11に撮像装置30および音声入力装置31が接続された例を示しているが、これに限られるものではなく、撮像装置30および音声入力装置31の一方もしくは両方が、クライアント装置11に搭載されていてもよい。
【0025】
データ取得部は、映像データ、音声データをマルチモーダル情報として取得する取得コンポーネント32として実装される。通信部は、マルチモーダル情報をサーバ12へ送信し、サーバ12から制御情報を受信する通信コンポーネント33として実装される。エンジン部は、クライアント装置11の表示画面に仮想エージェントとしてのアニメーションを表示し、制御情報に基づき、音声を出力し、出力する音声の内容に合わせてアニメーションを動作させるアニメーションエンジン34として実装される。
【0026】
サーバ12は、通信部と、処理部と、生成部とを含む。通信部は、プラットフォームサーバ40として実装される。処理部は、音声処理コンポーネント41と、映像処理コンポーネント42と、音声認識コンポーネント43とを含む。生成部は、対話制御コンポーネント44と、音声合成(TTS)コンポーネント45とを含む。サーバ12は、アプリケーションとして、ffmpeg46、仮想ビデオデバイス47を含む。
【0027】
プラットフォームサーバ40は、複数のコンポーネントを制御する。このため、各コンポーネントは、コンポーネント間で直接的に通信を行うことはなく、プラットフォームサーバ40が1のコンポーネントからのデータを他のコンポーネントへルーティングする。なお、プラットフォームサーバ40は、データのルーティングにのみ使用される。
【0028】
プラットフォームサーバ40は、クライアント装置11から受信したユーザの音声データおよび映像データを、サーバ12上で実行される動画と音声を記録、変換、再生するためのffmpeg46へ転送する。ffmpeg46は、音声データをUDP(User Datagram Protocol)通信を使用して音声処理コンポーネント41へ送信し、映像データを仮想ビデオデバイス47へ送信する。仮想ビデオデバイス47は、映像データを蓄積する。
【0029】
音声処理コンポーネント41は、音声信号処理ソフトウェア41aを含み、ユーザの音声の特徴量を抽出する。音声信号処理ソフトウェア41aは、ユーザの音声データを基にユーザの発話音声の韻律情報であるピッチとインテンシティを推定する。ピッチは、音の高低の度合いであり、インテンシティは、音の強さである。音声信号処理ソフトウェア41aは、推定したピッチとインテンシティとから発話開始、発話終了の状態を推定する。推定した発話開始、発話終了の状態から発話区間が特定される。
【0030】
映像処理コンポーネント42は、表情特徴量分析ソフトウェア42aと、表情推定モデル42bとを含み、仮想ビデオデバイス47に蓄積された映像データを入力とし、ユーザの映像の特徴量を抽出する。表情特徴量分析ソフトウェア42aは、ユーザの顔映像からユーザの表情特徴を推定する。表情特徴は、感情を表す顔の表情を数値化した推定値として出力される。表情推定モデル42bは、推定した表情特徴に基づき、顔の表情の確率分布を出力する。顔の表情は、怒り(anger)、嫌悪(disgust)、恐怖(fear)、幸福(happiness)、悲しみ(sadness)、驚き(surprise)、中性(neutral)の7種類の確率分布として出力される。
【0031】
音声処理コンポーネント41および映像処理コンポーネント42は、プラットフォームサーバ40へ推定された韻律情報、発話区間情報、表情情報を返す。プラットフォームサーバ40は、音声処理コンポーネント41からこれらの情報が返されたことに応答して、ユーザの音声データを音声認識コンポーネント43へルーティングする。
【0032】
音声認識コンポーネント43は、音声認識ソフトウェア43aと、形態素解析器43bとを含む。音声認識ソフトウェア43aは、音声データをテキストデータに変換する。形態素解析器43bは、文法や辞書等を基に、変換されたテキストデータを、意味をもつ言語の最小単位(形態素)に分割し、各形態素の品詞等を判別する。
【0033】
音声認識コンポーネント43は、音声認識および形態素解析を行った結果(音声認識結果および形態素情報)をプラットフォームサーバ40へ返す。プラットフォームサーバ40は、ユーザの韻律情報、表情情報、発話区間情報、音声認識結果、形態素情報を受け取ると、これらの全てのデータを対話制御コンポーネント44へ送信する。
【0034】
対話制御コンポーネント44は、所定のルールに基づき、受信したデータを用いて、ユーザと対面する仮想エージェントの動作に必要な情報を生成する。必要な情報としては、仮想エージェントの動作を生成する命令が挙げられる。仮想エージェントの動作を生成する命令としては、表情を変える命令等である。必要な情報には、仮想エージェントが発話する場合、発話文が含まれる。対話制御コンポーネント44は、生成した情報をプラットフォームサーバ40へ返す。
【0035】
プラットフォームサーバ40は、発話文が含まれる場合に限り、TTSコンポーネント45へ発話文を送信する。TTSコンポーネント45は、仮想エージェントが発声するための音声データと、リップシンク情報とを生成する。リップシンク情報は、口の変形と変形すべき時刻のペアが列挙されるテキストデータである。TTSコンポーネント45は、音声データとリップシンク情報とを生成した後、これらのデータをプラットフォームサーバ40へ返す。
【0036】
プラットフォームサーバ40は、仮想エージェントの動作に必要な情報が揃い次第、それらの情報を、クライアント装置11へ仮想エージェントの動作を制御するための制御情報として送信する。
【0037】
クライアント装置11の通信コンポーネント33は、サーバ12から制御情報を受信し、アニメーションエンジン34が、制御情報に基づき、仮想エージェントを動作させ、必要に応じて発話させる。このようにして、ユーザと仮想エージェントとが表情やジェスチャー等を交えて会話することが可能となる。
【0038】
図4を参照して、具体的な処理について説明する。この処理は、上記のプラットフォームサーバ40および複数のコンポーネントを含むプラットフォームにより実施される。このため、本プラットフォームを使用し、ECAと会話するためには、サーバ12上で本プラットフォームのプログラムを起動しておく必要がある。なお、このプログラムは、例えばJavaScript(登録商標)を使用して実装される。JavaScript(登録商標)は、動的なウェブページを作成できるプログラミング言語である。
【0039】
この処理は、クライアント側の処理と、サーバ側の処理とが存在する。はじめに、クライアント側の処理について説明する。ユーザは、ウェブブラウザ(例えば、Google Chrome(登録商標))を使用し、クライアント側のWebページにアクセスすることにより、本プラットフォームにアクセスする。このアクセスを受けて、ステップ100から処理を開始し、ステップ101では、取得コンポーネント32が、クライアント装置11に接続された撮像装置30により撮像された映像を映像データとして、音声入力装置31に入力された音声を音声データとして取得する。そして、アニメーションエンジン34が、ウェブブラウザ上に、図5に示すような仮想エージェント48を描画して表示し、映像データに基づきユーザ49の映像を表示する。図5では、ユーザ49の映像を少しぼかした表示としているが、実際にはクリアな表示となる。
【0040】
再び図4を参照して、取得コンポーネント32によるデータの取得は、本プラットフォームを使用した会話を終了するまで継続して実施され、ユーザの映像の表示も、本プラットフォームを使用した会話を終了するまで継続して実施される。取得コンポーネント32による撮像装置30から映像を映像データとして、また、音声入力装置31から音声を音声データとして取得する処理は、例えばJavaScript(登録商標)により実装される。
【0041】
そして、ステップ102で、通信コンポーネント33がサーバ12との接続を要求し、ステップ103でサーバ12から応答を受け取り、サーバ12との接続が確立すると、ステップ104においてサーバ12へ映像データおよび音声データの送信を開始する。
【0042】
通信コンポーネント33によりサーバ12へ送信される映像データおよび音声データは、動画ファイル形式の1つであるwebm形式のデータとされる。映像の解像度は、640×360dpiとされる。なお、データのフォーマットや解像度は、任意に変更することができる。サーバ12へのデータの送信は、websocketのAPI(Application Programming Interface)を使用して実施することができる。websocketは、一旦接続を確立すると、クライアント側からも、サーバ側からも能動的にデータを送信することを可能にする。websocketのAPIとしては、例えばsocket.ioを使用することができる。socket.ioは、チャット等で使用され、送受信されるメッセージの内容を即時に反映するリアルタイムかつ双方向な通信を可能にするAPIである。socket.ioの詳細については、URL(https://socket.io/)を参照されたい。
【0043】
これらのデータの送信後、ステップ105へ進み、通信コンポーネント33は、サーバ12との接続が続いているかを判定し、続いていると判定した場合、ステップ104へ戻り、取得コンポーネント32が取得した映像データおよび音声データを送信する。一方、ステップ105で続いていないと判定した場合、本プラットフォームを使用した会話が終了したものとしてステップ109へ進み、処理を終了する。
【0044】
ステップ102において通信コンポーネント33がサーバ12にアクセスし、サーバ12へ映像データおよび音声データを送信すると、サーバ12においてこれらのデータが処理され、制御情報が生成される。ステップ106で、通信コンポーネント33がサーバ12から制御情報を受信すると、ステップ107で、アニメーションエンジン34が、制御情報に基づき、仮想エージェントを動作させる。
【0045】
アニメーションエンジン34としては、例えばUnity(登録商標)を使用することができる。Unity(登録商標)は、ゲーム作成を支援するゲームエンジンとして知られており、コンピュータゲームに必要な映像や音等の処理を行うツールである。Unity(登録商標)の詳細については、URL(https://unity.com/ja)を参照されたい。
【0046】
制御情報には、仮想エージェントの動作命令が含まれ、動作命令は、アニメーションエンジン34のスクリプトにより解釈される。仮想エージェントの実装は、開発者により様々であり、仮想エージェントの振る舞いは、開発者が各自定義することができる。これは、例えば幸福を表現するにも、開発者によって表現の仕方が異なるため、どのような表現の仕方にするかは、開発者が定義できることを意味する。
【0047】
ステップ108では、サーバ12との接続が続いているかを判定し、続いていると判定した場合、ステップ106へ戻り、サーバ12からの制御情報の受信を待つ。一方、ステップ108で続いていないと判定した場合、本プラットフォームを使用した会話が終了したものとしてステップ109へ進み、処理を終了する。
【0048】
次に、サーバ側の処理について説明する。サーバ12に実装された本プラットフォームのプログラムを起動したことを受けて、ステップ200から処理を開始する。ステップ201で、プラットフォームサーバ40がクライアント装置11からのアクセス(接続要求)を受け、それに応答する。プラットフォームサーバ40は、クライアント装置11からのアクセスを受けたタイミングで、ステップ202においてECAとの対話に必要なコンポーネントやアプリケーションを起動する。
【0049】
起動するコンポーネントは、音声処理コンポーネント41、映像処理コンポーネント42、音声認識コンポーネント43、対話制御コンポーネント44、TTSコンポーネント45であり、起動するアプリケーションは、ffmpeg46、仮想ビデオデバイス47である。
【0050】
プラットフォームサーバ40は、クライアント装置11からユーザの映像データおよび音声データを受信し、それらのデータを処理するため、各コンポーネントへデータをルーティングする。映像データおよび音声データの受信にも、websocketのAPIが使用される。ここでは、プラットフォームサーバ40は、ルーティングのみに使用され、実施する処理はルーティングのみであることから、その処理については省略している。
【0051】
音声処理コンポーネント41、映像処理コンポーネント42、ffmpeg46、仮想ビデオデバイス47が起動されると、プラットフォームサーバ40が受信した映像データおよび音声データは、ffmpeg46にパイプされる。パイプとは、プログラム間でデータを受け渡すプロセス間通信の手法である。ステップ203において、ffmpeg46にパイプされた映像データは、仮想ビデオデバイス47にパイプされ、仮想ビデオデバイス47から映像処理コンポーネント42へ入力される。そして、映像処理コンポーネント42において、表情特徴量分析ソフトウェア42aを実行し、ユーザの顔映像からユーザの表情特徴を推定する。そして、表情推定モデル42bを使用し、推定した表情特徴から表情を推定する。
【0052】
表情特徴量分析ソフトウェア42aとしては、例えばOpenFaceを使用することができる。OpenFaceは、顔解析ツールであり、その詳細については、URL(https://github.com/TadasBaltrusaitis/OpenFace)を参照されたい。
【0053】
ここで、OpenFaceは、人の顔が記録された映像から、顔のランドマークのx、y、z座標や、顔のアクションユニット(AU)等の709次元の表情特徴を推定することができる。ランドマークは、目印となる特徴物であり、顔においては瞳孔、鼻先、顎等がランドマークとなる。アクションユニットは、筋肉レベルの顔の動きであり、ほほを持ち上げる、唇の端を水平に引く、眉の内側を持ち上げるなどである。表情特徴の推定値の例を、図6に示す。
【0054】
ユーザ表情の推定には、表情特徴量分析ソフトウェア42aが推定した表情特徴に基づく表情推定モデル42bを使用する。表情推定モデル42bは、目標値に対する推定値の誤差を小さくするように機械学習されたモデルであり、勾配ブースティング決定木(GBDT:Gradient Boosting Decision Tree)により作成される。なお、表情推定モデル42bは、LightGBM等の別の学習アルゴリズムで作成してもよい。
【0055】
表情推定モデル42bは、上記の7種類の表情の確率分布として出力する。出力される各種類の推定値の例を、図7に示す。図7に示した推定された表情のデータが、プラットフォームサーバ40へ返却される。
【0056】
音声データは、ffmpeg46からUDP通信により音声処理コンポーネント41へ送信される。ステップ204において、音声処理コンポーネント41は、音声信号処理ソフトウェア41aを実行し、ユーザの発話音声の韻律情報であるピッチとインテンシティを推定する。音声信号処理ソフトウェア41aとしては、例えばsptk(Speech Signal Processing Toolkit)を使用することができる。sptkは、音声分析を行うツールであり、その詳細については、URL(http://sptk.sourceforge.net/)を参照されたい。
【0057】
音声処理コンポーネント41は、推定した韻律情報をプラットフォームサーバ40へ送信する。推定された韻律情報の一例を、図8に示す。
【0058】
音声処理コンポーネント41は、推定したピッチとインテンシティとから、発話開始・発話終了の状態を推定する。ここで、発話終了が推定された場合、最後の発話開始から終了までの区間における音声データをサーバ12上の任意の領域に保存する。音声データは、例えばPCM(Pulse Code Modulation)フォーマットで保存される。プラットフォームサーバ40へは、推定した発話開始・終了の状態、発話音声のファイルのパスが送信される。プラットフォームサーバ40へ返却される情報の一例を、図9に示す。図9に示す情報は、状態、パスを含む。
【0059】
プラットフォームサーバ40が音声処理コンポーネント41から発話終了の状態を受信すると、ユーザの発話音声のファイルのパスを音声認識コンポーネント43へルーティングする。ステップ205において、音声認識コンポーネント43がユーザの発話音声のファイルのパスを受け取ると、音声認識ソフトウェア43aを実行し、その音声ファイルの音声認識結果を得る。
【0060】
音声認識ソフトウェア43aは、例えばGoogle(登録商標) Cloud Speech APIを使用するプログラムである。音声認識結果の一例を、図10に示す。Google(登録商標) Cloud Speech APIは、Google(登録商標)の機械学習モデルを使用し、音声をテキストに変換するサービスに繋ぐためのインターフェースであり、その詳細については、URL(https://cloud.google.com/speech-to-text?hl=ja)を参照されたい。
【0061】
音声認識結果は、形態素解析器43bへ送信される。形態素解析器43bは、音声認識結果を形態素情報へパース(構文解析)する。形態素解析器43bとしては、例えば日本語形態素解析システム(mecab)を使用することができる。mecabの詳細については、URL(https://taku910.github.io/mecab/)を参照されたい。形態素情報の一例を、図11に示す。図11に示した形態素情報が、プラットフォームサーバ40へ返却される。
【0062】
プラットフォームサーバ40は、ユーザの表情情報、韻律情報、発話区間情報、音声認識結果、形態素情報を受け取ると、これら全ての情報を対話制御コンポーネント44へ送信する。このとき、プラットフォームサーバ40は、返却された情報を逐次、対話制御コンポーネント44へ送信する。このため、プラットフォームサーバ40は、各情報間の時間的な同期は保証しない。
【0063】
対話制御コンポーネント44の実装は、仮想エージェントの実装と同様、開発者により様々である。このため、対話制御コンポーネント44は、何らのルールに基づき、ユーザが対面する仮想エージェントの振る舞いを生成すればよい。すなわち、開発者が独自に決めたルールに基づき、仮想エージェントの振る舞いを生成すればよい。
【0064】
仮想エージェントの動作を制御するための制御情報のフォーマットには、例えばjsonやxml等のデータ記述言語を使用することができる。仮想エージェントが表情を変える際に必要な情報の一例を、図12に示す。
【0065】
制御情報は、プラットフォームサーバ40からクライアント装置11へ送信される。対話制御コンポーネント44は、ステップ206において、プラットフォームサーバ40から受け取った情報に基づき、ユーザの行動に基づく対話・仮想エージェントの動作を決定し、制御情報を生成する。制御情報には、仮想エージェントが発話する場合、発話文が含まれる。
【0066】
プラットフォームサーバ40は、制御情報に発話文が含まれる場合、TTSコンポーネント45へ発話文を送信する。発話文が含まれない場合、プラットフォームサーバ40は、制御情報をクライアント装置11へ送信する。
【0067】
TTSコンポーネント45は、プラットフォームサーバ40から発話文を受け取ると、ステップ207において、仮想エージェントが発声するための音声ファイルと、リップシンク情報の2つを生成する。TTSコンポーネント45としては、例えば音声合成ソフトウェアであるAlTalk(登録商標)を使用することができる。AlTalk(登録商標)は、文字を音声に変換するツールであり、その詳細については、URL(https://www.ai-j.jp/products/sdk/)を参照されたい。
【0068】
発話文「嬉しいです」に対応するリップシンク情報の一例を、図13に示す。発話音声データとリップシンクデータは、インターネットからアクセスできるサーバ12内の領域にファイルとして配置される。発話文とファイルの配置場所とを含むデータの一例を、図14に示す。プラットフォームサーバ40へは、図14に示すようなデータが返却される。
【0069】
プラットフォームサーバ40は、TTSコンポーネント45から返却されたデータを含め、仮想エージェントの動作に必要な情報が揃い次第、クライアント装置11へ制御情報を送信する。
【0070】
以上に説明したシステムを利用することで、ECAの開発者は、ECAを0から実装する必要がなくなり、ECAの開発を加速させることができる。また、ユーザがインターネットを経由してECAにアクセスできるので、ユーザがECAを動作させるための高性能なコンピュータを所有する必要がなくなる。さらに、クライアントサーバモデルを採用したことにより、システムの運用中でも開発者がシステムの変更が容易になる。
【0071】
本システムは、仮想エージェントをユーザの分身(アバター)とするアバターシステムとして利用することもできる。アバターシステムは、ECAの振る舞いをシステムが自動的に決定するものではなく、操作者であるユーザが外部から決定することができるものである。アバターシステムは、専門的な分野ではwizard of OZ(WOZ)システムと呼ばれる。
【0072】
アバターシステムを実現するには、ECAの動作を直接命令するウェブページ(WOZインターフェース)を、htmlとJavaScript(登録商標)で実装する。その後、WOZインターフェースをsocket.ioを使用し、プラットフォームサーバ40に接続する。
【0073】
図15は、アバターシステムとして利用する場合の情報処理システムの構成例を示した図である。クライアント装置11は、取得コンポーネント32と、通信コンポーネント33と、アニメーションエンジン34とを含む。サーバ12は、プラットフォームサーバ40と、TTSコンポーネント45とを含む。情報処理システムは、クライアント装置11とサーバ12以外に、WOZインターフェース50を備える。
【0074】
WOZインターフェース50は、ECAの動作を直接命令するウェブページを表示し、操作者であるユーザが入力等を行うことができる装置であれば、PC(Personal Computer)等のいかなる装置であってもよい。
【0075】
アバターシステムの具体的な動作について説明する。最初にプラットフォームサーバ40を起動し、WOZインターフェース50とクライアント装置11のウェブページを任意の順序で起動する。クライアント装置11がサーバ12にアクセスし、接続が確立された時点で、サーバ側のコンポーネントであるTTSコンポーネント45を起動する。このような動作は、自律動作するECAにアクセスするときと同様である。
【0076】
その後、WOZインターフェース50から所定のメッセージを送信することで、プラットフォームサーバ40がそのメッセージを受信し、そのメッセージをTTSコンポーネント45へルーティングする。そして、TTSコンポーネント45は、メッセージに基づき、リップシンク情報を生成する。なお、TTSコンポーネント45は、メッセージに発話文が含まれる場合、発話音声の音声ファイルも生成する。TTSコンポーネント45は、生成したリップシンク情報等を制御情報としてプラットフォームサーバ40へ返却する。
【0077】
プラットフォームサーバ40は、接続が確立されているクライアント装置11へ制御情報を送信し、仮想エージェントを表示させているアニメーションエンジン34に制御情報を渡す。アニメーションエンジン34は、受け取った制御情報に基づき、仮想エージェントを動作させる。
【0078】
WOZインターフェース50からサーバ12へ送信されるメッセージの一例を、図16に示す。このメッセージは、仮想エージェントの表情を変えるメッセージの一例である。このメッセージに基づき生成された制御情報をクライアント装置11へ送信することで、クライアント装置11のウェブページに表示されている仮想エージェントの表情を変えることができる。なお、このメッセージは、ECAを自律動作させるときに、対話制御がECAに向けて送信するメッセージと完全に同一である。すなわち、図12に示した情報と同一である。
【0079】
これまで本発明の情報処理装置、情報処理システムおよびプログラムについて上述した実施形態をもって詳細に説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態や、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0080】
10…ネットワーク
11…クライアント装置
12…サーバ
20…CPU
21…ROM
22…RAM
23…HDD
24…通信I/F
25…入出力I/F
26…入力装置
27…表示装置
30…撮像装置
31…音声入力装置
32…取得コンポーネント
33…通信コンポーネント
34…アニメーションエンジン
40…プラットフォームサーバ
41…音声処理コンポーネント
41a…音声信号処理ソフトウェア
42…映像処理コンポーネント
42a…表情特徴量分析ソフトウェア
42b…表情推定モデル
43…音声認識コンポーネント
43a…音声認識ソフトウェア
43b…形態素解析器
44…対話制御コンポーネント
45…TTSコンポーネント
46…ffmpeg
47…仮想ビデオデバイス
50…WOZインターフェース
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16