(57)【要約】【課題】一定期間内に複数の入力を受け付けたときに、操作が煩雑になるのを防いで、利用者の意図に応じた出力を生成する。【解決手段】プロセッサと、メモリと、音声入力装置と、音声出力装置と、タッチ入力装置と、表示部を有する対話システムで、プロセッサが、前記音声またはタッチ入力装置から入力を受け付けて、入力の内容を解析し、予め設定されたシナリオ情報から前記入力データに対応するシナリオを選択して、前記シナリオで指定された出力データを生成し、前記入力データの優先度を算出し、前記出力データを準備中のシナリオの有無を判定する判定し、前記出力データを生成中の前記シナリオがある場合には、前記優先度に基づいて実行するシナリオの出力方法を変更する。【選択図】図２
2020003926.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、メモリと、音声入力装置と、音声出力装置と、表示部を有する対話システムの制御方法であって、
前記プロセッサが、前記音声入力装置から音声入力を受け付けて、音声入力の内容を解析して入力データを生成する入力データ生成ステップと、
前記プロセッサが、予め設定されたシナリオ情報から前記入力データに対応するシナリオを選択して、前記シナリオで指定された出力データを生成する出力データ生成ステップと、
前記プロセッサが、前記入力データの優先度を算出する優先度算出ステップと、
前記プロセッサが、前記出力データを準備中のシナリオの有無を判定する判定ステップと、
前記プロセッサが、前記出力データを生成中の前記シナリオがある場合には、前記優先度に基づいて実行するシナリオの出力方法を変更するシナリオ制御ステップと、
を含むことを特徴とする対話システムの制御方法。
【請求項２】
請求項１に記載の対話システムの制御方法であって、
現在実行中のシナリオを取得する出力内容取得ステップをさらに備え、
前記優先度算出ステップにおいて、前記入力データと現在実行中のシナリオとの関連度を基に優先度を算出することを特徴とする対話システムの制御方法。
【請求項３】
請求項２に記載の対話システムの制御方法であって、
利用状況を解析する利用状況解析ステップをさらに備え、
利用状況の解析結果も加味して優先度を算出することを特徴とする対話システムの制御方法。
【請求項４】
請求項１から請求項３のいずれか一項に記載の対話システムの制御方法であって、
前記シナリオ制御ステップは、
前記出力データを生成中の前記シナリオがある場合には、前回の入力データの優先度と、現在の入力データの優先度を比較して、優先度の高い方のシナリオを実行することを特徴とする対話システムの制御方法。
【請求項５】
請求項１から請求項３のいずれか一項に記載の対話システムの制御方法であって、
前記シナリオ制御ステップは、
前記出力データを生成中の前記シナリオがある場合には、前回の入力データの優先度と、現在の入力データの優先度を比較して、優先度の高い方のシナリオの出力データを優先的に出力することを特徴とする対話システムの制御方法。
【請求項６】
請求項１から請求項３のいずれか一項に記載の対話システムの制御方法であって、
前記シナリオ制御ステップは、
前記出力データを生成中の前記シナリオがある場合には、前回の入力データの優先度と、現在の入力データの優先度を比較して、前記現在の入力データの優先度の方が高い場合には、前回の入力データに対応するシナリオの出力データに、今回の入力データに対応するシナリオの出力データを付加することを特徴とする対話システムの制御方法。
【請求項７】
請求項１から請求項６のいずれか一項に記載の対話システムの制御方法であって、
前記表示部がタッチ入力を受け付けるタッチパネルで構成され、
前記入力データ生成ステップは、
前記タッチ入力の内容を解析して入力データを生成することを特徴とする前記請求項１から請求項６のいずれか一項に記載の対話システムの制御方法。
【請求項８】
プロセッサと、メモリと、音声入力装置と、音声出力装置と、表示部を有する対話システムであって、
前記音声入力装置から音声入力を受け付けて、音声入力の内容を解析して入力データを生成する入力データ生成部と、
予め設定されたシナリオ情報から前記入力データに対応するシナリオを選択して、前記シナリオで指定された出力データを生成する出力部と、
前記入力データの優先度を算出する優先度算出部と、
前記プロセッサが、前記出力データを準備中のシナリオの有無を判定する判定して、前記プロセッサが、前記出力データを生成中の前記シナリオがある場合には、前記優先度に基づいて前記出力部で実行させるシナリオの出力方法を変更するシナリオ制御部と、
を含むことを特徴とする対話システム。
【請求項９】
請求項８に記載の対話システムであって、
現在実行中のシナリオを取得する出力内容取得ステップをさらに備え、
前記優先度算出ステップにおいて、前記入力データと現在実行中のシナリオとの関連度を基に優先度を算出することを特徴とする対話システム。
【請求項１０】
請求項９に記載の対話システムであって、
利用状況を解析する利用状況解析ステップをさらに備え、
利用状況の解析結果も加味して優先度を算出することを特徴とする対話システム。
【請求項１１】
請求項８から請求項１０のいずれか一項に記載の対話システムであって、
前記シナリオ制御部は、
前記出力データを生成中の前記シナリオがある場合には、前回の入力データの優先度と、現在の入力データの優先度を比較して、優先度の高い方のシナリオを前記出力部で実行させることを特徴とする対話システム。
【請求項１２】
請求項８から請求項１０のいずれか一項に記載の対話システムであって、
前記シナリオ制御部は、
前記出力データを生成中の前記シナリオがある場合には、前回の入力データの優先度と、現在の入力データの優先度を比較して、優先度の高い方のシナリオの出力データを前記出力部から優先的に出力させることを特徴とする対話システム。
【請求項１３】
請求項８から請求項１０のいずれか一項に記載の対話システムであって、
前記シナリオ制御部は、
前記出力データを生成中の前記シナリオがある場合には、前回の入力データの優先度と、現在の入力データの優先度を比較して、前記現在の入力データの優先度の方が高い場合には、前記出力部で生成する前回の入力データに対応するシナリオの出力データに、今回の入力データに対応するシナリオの出力データを付加させることを特徴とする対話システム。
【請求項１４】
請求項８から請求項１３のいずれか一項に記載の対話システムであって、
前記表示部がタッチ入力を受け付けるタッチパネルで構成され、
前記入力データ生成部は、
前記タッチ入力の内容を解析して入力データを生成することを特徴とする対話システム。
【請求項１５】
プロセッサと、メモリと、音声入力装置と、音声出力装置と、表示部を有する計算機で対話を実施させるためのプログラムであって、
前記音声入力装置から音声入力を受け付けて、音声入力の内容を解析して入力データを生成する入力データ生成ステップと、
予め設定されたシナリオ情報から前記入力データに対応するシナリオを選択して、前記シナリオで指定された出力データを生成する出力データ生成ステップと、
前記入力データの優先度を算出する優先度算出ステップと、
前記出力データを準備中のシナリオの有無を判定する判定ステップと、
前記出力データを生成中の前記シナリオがある場合には、前記優先度に基づいて実行するシナリオの出力方法を変更するシナリオ制御ステップと、
を前記計算機に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声とタッチパネルを利用する対話システムに関する。
【背景技術】
【０００２】
近年、機械学習の進展に伴って、音声認識技術が普及している。様々な言語での対応を求められる空港や駅での施設案内や、複雑なサービスを複数取り扱う金融機関や自治体等における窓口業務などのさまざまな対人サービスの提供は、既存の職員だけでは難しくなってきている。このような高度化するサービス業務を支援するため、ロボットや音声アシスタントなどの対話システムの実用化が進められている。
【０００３】
対話システムとしては、音声入力やタッチ入力やペン入力などの複数の入力装置を有する装置が知られている（特許文献１〜３）。例えば、特許文献１には、一定時間内に行われた異なる入力操作に基づいた擬似的な実行結果をそれぞれの選択項目として出力して、利用者に選択させる技術が開示されている。
【０００４】
また、特許文献２には、複数のモダリティの入力について、利用者の意図を解釈し、解釈した結果を利用者に提示して、利用者が要求する結果を選択する装置が開示されている。特許文献３には、少なくとも２種類の入力手段からの入力情報を受信する受信工程と、一方の入力手段の入力数の情報に基づいて、他方の入力手段からの入力の認識処理を制御する制御工程と、前記制御工程の制御のもと認識された認識結果を出力する装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−０１０２９４号公報
【特許文献２】特開平１１−２８８３４２号公報
【特許文献３】特開２００６−０４８６２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数の入力装置を有する対話システムでは、一定期間内に複数の入力を受け付けることができるが、複数の入力の意図が異なる場合、上記特許文献１、２では、複数の入力に対する選択肢を提示して利用者に選択させている。しかしながら、上記従来例では、利用者が回答や指示を入力したのに、さらに選択肢を入力する必要が生じ、操作が煩雑になるという問題があった。また、上記特許文献３では、入力数の情報がない場合には、他方の入力手段からの入力の認識処理を実施するのが難しい、という問題があった。
【０００７】
そこで本発明は、上記問題点に鑑みてなされたもので、一定期間内に複数の入力を受け付けたときに、操作が煩雑になるのを防いで、利用者の意図に応じた出力を生成することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、プロセッサと、メモリと、音声入力装置と、音声出力装置と、表示部を有する対話システムの制御方法であって、前記プロセッサが、前記音声入力装置から音声入力を受け付けて、音声入力の内容を解析して入力データを生成する入力データ生成ステップと、前記プロセッサが、予め設定されたシナリオ情報から前記入力データに対応するシナリオを選択して、前記シナリオで指定された出力データを生成する出力データ生成ステップと、前記プロセッサが、前記入力データの優先度を算出する優先度算出ステップと、前記プロセッサが、前記出力データを準備中のシナリオの有無を判定する判定ステップと、前記プロセッサが、前記出力データを生成中の前記シナリオがある場合には、前記優先度に基づいて実行するシナリオを変更するシナリオ制御ステップと、を含む。
【発明の効果】
【０００９】
したがって、本発明によれば、一定期間内に複数の入力を受け付けたときに、操作が煩雑になるのを防いで、利用者の意図に応じた出力を生成することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例を示し、対話システムの構成の一例を示すブロック図である。
【図２】本発明の実施例を示し、対話システムの機能の一例を示すブロック図である。
【図３】本発明の実施例を示し、対話システムで行われる対話処理の一例を示すフローチャートである。
【図４】本発明の実施例を示し、タッチパネルに表示される案内画面の一例を示す図で、シナリオの実行順序を変更する場合である。
【図５】本発明の実施例を示し、タッチパネルに表示される案内画面の他の例を示す図で、シナリオの実行順序を変更する場合である。
【図６】本発明の実施例を示し、タッチパネルに表示される案内画面の一例を示す図で、店舗情報を表示する場合である。
【図７】本発明の実施例の変形例を示し、タッチパネルに表示される選択画面の一例を示す図である。
【図８】本発明の実施例の変形例を示し、タッチパネルに表示される選択画面の他の例を示す図である。
【図９】本発明の実施例の変形例を示し、タッチパネルに表示される選択画面の他の例を示す図である。
【図１０】本発明の実施例を示し、タッチパネルに表示される案内画面の他の例を示す図である。
【図１１】本発明の実施例を示し、利用状況解析部によって出力された利用状況の一例を示す図である。
【図１２】本発明の実施例を示し、シナリオの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を添付図面に基づいて説明する。
【００１２】
＜システムの構成＞
図１は、本発明の実施例を示し、対話システムの構成の一例を示すブロック図である。本実施例の対話システムは、空港や駅、あるいはショッピングモールなどの公共施設に設置されて、利用者に音声またはタッチによる入力を促して、施設の案内を提供する例を示す。
【００１３】
対話システムは、利用者と対向する位置に設置されたタッチパネル４と、タッチパネル４を支持するクレードル８と、クレードル８に設置されたマイク６と、タッチパネル４に設けたスピーカ９とカメラ５と、クレードル８に設置された近接センサ７と、各装置を制御する制御部１０を有する。
【００１４】
制御部１０は、プロセッサ１と、メモリ２と、ストレージ装置３と、を含む計算機で構成される。
【００１５】
なお、図１はあくまで本発明による対話システムの構成の一例であり、これに限定されるものではない。例えば、クレードル８と制御部１０が一体の構成であってもよいし、クレードル８にもカメラやスピーカが搭載された構成であってもよい。なお、カメラ５と近接センサ７は、利用者の状況を検出するセンサとして機能する。
【００１６】
メモリ２には、センサ情報取得部１１０と、入力内容解析部（入力データ生成部）１２０と、利用状況解析部１３０と、優先度算出部１４０とシナリオ制御部１５０と、出力内容取得部１７０と、出力部１６０が、それぞれプログラムとしてロードされ、プロセッサ１によって実行される。
【００１７】
プロセッサ１は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ１は、センサ情報取得プログラムに従って処理することでセンサ情報取得部１１０として機能する。他のプログラムについても同様である。さらに、プロセッサ１は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００１８】
制御部１０の各機能を実現するプログラム、テーブル等の情報は、ストレージ装置３や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００１９】
ストレージ装置３には、各プログラムが使用するデータが格納される。図示の例では、施設内の店舗の情報等を含む案内情報を予め格納した回答データベース２１０と、シナリオテーブル２６０などを含む会話データベース２２０と、利用者の入力情報を格納する入力履歴データベース２３０と、音声認識で使用する音声認識データベース２４０と、利用状況の解析結果を格納する利用状況履歴データベース２５０が格納される。各データの詳細については後述する。
【００２０】
タッチパネル４は、タッチパネルディスプレイ４０と、タッチセンサ４１を含む。タッチパネルディスプレイ４０は、制御部１０が出力する情報を表示する表示部として機能する。タッチセンサ４１は、タッチパネル４に対するタッチ入力を検出して、制御部１０にタッチされた位置情報を送信する。マイク６は、利用者の発話や設置環境の騒音などを取得する。スピーカ９は、制御部１０からの音声信号を出力する。カメラ５は、利用者を撮影する。近接センサ７は、利用者の有無を検出する。
【００２１】
＜機能の概要＞
次に、各機能部の概要について説明する。図２は、対話システムの機能の一例を示すブロック図である。
【００２２】
センサ情報取得部１１０は、カメラ５と、マイク６と、近接センサ７と、タッチセンサ４１からの出力（センサ情報）を受け付けて、入力内容解析部１２０と利用状況解析部１３０に出力する。
【００２３】
入力内容解析部１２０は、マイク６に入力された音声情報を基に、周囲の環境音（雑音）と利用者の発話を適宜切り分け、利用者の発話データのみを入力データとして取得すると、音声認識データベース２４０を参照し、音声認識を実行して発話に対応するテキストを出力する。音声認識は、例えば、隠れマルコフモデルなど周知または公知の技術を用いれば良い。音声認識データベース２４０は、例えば、音響モデルと、辞書と、言語モデルなど音声認識に必要な情報が予め格納されている。
【００２４】
また、入力内容解析部１２０は、タッチセンサ４１からのタッチ入力を受け付けると、現在実行中のシナリオに応じて、利用者のタッチ入力に対応するテキストまたは値を生成する。
【００２５】
入力内容解析部１２０は、音声認識結果のテキストと、タッチ入力に対応するテキストまたは値を入力データとして優先度算出部１４０へ出力する。
【００２６】
利用状況解析部１３０は、マイク６が設置された環境の騒音を検出（例えば、音圧レベル）し、騒音情報として優先度算出部１４０へ出力する。また、利用状況解析部１３０は、カメラ５が撮影した利用者の画像を認識し、利用者の属性や状況を算出する。利用状況解析部１３０の画像認識は、例えば、周知または公知の画像識技術を利用して、利用者の属性として年齢や性別や所属などを識別する。また、利用状況解析部１３０は、撮影した利用者の画像から、利用者の人数や利用者の位置を検出する。
【００２７】
また、利用状況解析部１３０は、利用者の視線や顔の向きや、口や手の動きを取得して、利用者の状況を示す情報とする。利用状況解析部１３０は、上記認識した利用者の属性や状況を優先度算出部１４０へ出力する。
【００２８】
また、利用状況解析部１３０は、近接センサ７の出力から利用者の出現や立ち去り（利用の終了）を検出し、新たな利用者が出現した場合には、シナリオ制御部１５０へ処理の開始を通知しても良い。
【００２９】
優先度算出部１４０は、入力内容解析部１２０から利用者の発話やタッチ入力に対応する入力データと、利用状況解析部１３０の認識結果から利用者の有無や属性や状況を受け付ける。
【００３０】
優先度算出部１４０は、入力データの種類（音声入力またはタッチ入力）や入力データの内容や、入力履歴ＤＢ２３０に蓄積された過去の入力データや、利用状況解析部１３０で出力された利用者の状況や、入力データと現在実行中のシナリオとの関連度基づいて入力データ毎の優先度を算出する。優先度の算出については後述する。優先度算出部１４０は、算出した入力データ毎の優先度をシナリオ制御部１５０に出力する。
【００３１】
シナリオ制御部１５０は、優先度算出部１４０から受け付けた入力データの優先度に応じて、シナリオテーブル２６０から実行するシナリオを選択し、選択したシナリオを出力部１６０に実行させる。
【００３２】
出力部１６０は、シナリオ制御部１５０により出力されたシナリオに応じて、入力データに対応する画面出力や音声出力などの出力データを生成し、タッチパネル４やスピーカ９に出力する。また、出力部１６０は、出力データを出力内容取得部１７０へ出力する。出力内容取得部１７０は生成された出力データを優先度算出部１４０へフィードバックする。
【００３３】
シナリオ制御部１５０は、一定の期間内に複数の入力データを受け付けた場合には、各入力データの優先度を比較して、優先度の高い順にシナリオの実行順序を入れ替える。あるいは、優先度の高い順にシナリオの実行結果の出力の順序や出力の比率（タッチパネルディスプレイ４０上での出力サイズ比や出現時間比、スピーカー９から出力される出力時間比など）を変更する。
【００３４】
シナリオ制御部１５０は、実行順序（または実行比率）を入れ替えたシナリオに基づく出力結果を出力部１６０へ通知する。なお、シナリオ制御部１５０は、一定の期間内に複数の入力データがなければ、入力データに対応する出力シナリオをシナリオテーブル２６０から選択して出力部１６０に実行させる。入力データに対応する出力シナリオは、入力データに含まれる単語でシナリオテーブル２６０を検索した結果や、入力データに含まれる単語とシナリオテーブル２６０の入力データに含まれる単語の類似度の高いものを検索した結果など、周知または公知の手法を用いてシナリオテーブル２６０から検索することができる。
【００３５】
ここで、シナリオ制御部１５０は、入力データを受け付けて、出力部１６０へ入力データに対応するシナリオを実行させるまでの期間を一定の期間とする。
【００３６】
シナリオ制御部１５０は、例えば、タッチセンサ４１からの入力データと、マイク６からの入力データが一定の期間内に発生した場合、２つの入力データのうち優先度の高い入力データを出力部１６０に実行させ、優先度の低い入力データの実行を遅延または破棄させる。
【００３７】
なお、出力部１６０が出力する表示または発話の選択は、シナリオ制御部１５０が騒音の大きさなどに応じて適宜変更しても良い。なお、本実施例では、出力データをタッチパネルディスプレイ４０とスピーカ９の双方から同時に出力することができる。
【００３８】
また、シナリオ制御部１５０は、入力データを入力履歴データベース２３０に格納する。
【００３９】
以上のように、本実施例の対話システムでは、一定期間内に複数の入力を受け付けたときに、操作が煩雑になるのを防いで、利用者の意図に応じた出力を提供することができる。
【００４０】
＜データの詳細＞
以下、制御部１０が利用するデータについて説明する。図１１は、利用状況解析部１３０によって出力された利用状況履歴データベース２５０に格納されるデータの一例を示す図である。
【００４１】
利用状況履歴データベース２５０は、入力時刻２５１や、人数２５２、年齢２５３、性別２５４、所属２５５、環境音２５６、視線方向２５７、口の動き２５８、手の動き２５９などの利用状況パラメータ（人数、性別、所属、環境音、利用者ごとの視線方向、利用者ごとの口の動き、利用者ごとの手の動きなど）ごとの解析結果をひとつのエントリに含む。
【００４２】
利用状況パラメータごとの解析結果として、利用状況解析部１３０が解析した結果がそれぞれ記録される。
【００４３】
利用状況パラメータごとの解析結果には、優先度算出部１４０の優先度算出に利用するため予め所定の重みが設定されている。例えば、所属パラメータの解析される値として、一般ユーザとスタッフ、保守員、その他（分類不明）に分類される場合、スタッフの入力を優先度が最も高い１．０、一般ユーザの入力が０．５、その他（分類不明）の入力が０．３、保守員の入力が０．１の用に優先度算出に寄与する重み付けが設定されている。
【００４４】
なお、前記所属パラメータの解析結果とそれぞれの解析結果に対する重み付けはあくまで一例であり、その他の解析結果や重み付けを設定してもよい。
【００４５】
図１２は、会話データベース２２０に含まれるシナリオテーブル２６０の一例を示す図である。シナリオテーブル２６０の各行はリスト番号（図中＃）２６１と対話リスト２６２から構成される。
【００４６】
対話リスト２６２は対話システムが利用者に対して実施する対話のリストであり、図ではセミコロンで区切られて１以上の対話が表記されている。対話リスト２６２には、出力情報と入力情報と次のリスト番号が設定される。
【００４７】
対話リスト２６２の出力情報としては、リスト番号２６１＝「１」の「ＱＵＥＳＴＩＯＮ」が、利用者への問い合わせを意味し、制御部１０は「どの様なご用件は何でしょうか？」という対話の内容を表示または発話する。そして、「ＣＡＳＥ」は出力する問い合わせ情報の選択肢として「レストラン」、「ショップ」と、次回に実行するシナリオのリスト番号２６１が設定される。
【００４８】
例えば、利用者が「レストラン」をタッチ入力で選択したときには、次回の処理はリスト番号２６１＝「２」となり、タッチ入力で取得した「レストラン」を示す値は変数「ａ」に格納される。
【００４９】
リスト番号２６１＝「２」の「ＱＵＥＳＴＩＯＮ」では、食事に関するサブカテゴリ「和食」、「洋食」、「中華」、「その他」のいずれを選択するかを問い合わせる。いずれの選択においても、制御部１０は問い合わせに対する回答（選択結果）を入力として、回答データベース２１０を検索し、選択結果に応じたさらなるサブカテゴリを表示するリスト番号２６１＝「４」の「ＱＵＥＳＴＩＯＮ」である「どのお店を紹介しましょう？」を問い合わせる。そして、制御部１０は次回の処理はリスト番号２６１＝「５」であるので、制御部１０は回答に対応する検索結果である店舗案内情報の候補を「ＡＮＳＷＥＲ」として出力する。
【００５０】
図示の例では、リスト番号２６１＝「５」で検索結果を出力（ＯＵＴＰＵＴ）した後には、ＧＯＴＯ（１）で、リスト番号２６１＝「１」に復帰する例を示すが、これに限定されるものではない。例えば、出力した候補の中から利用者に所望の店舗を選択させて、さらに詳細な情報を提供したり、空席の照会などを実施させてもよい。
【００５１】
対話リスト２６２は、リスト番号２６１＝「１０」の「ＡＮＳＷＥＲ」では、トイレの場所をタッチパネルディスプレイ４０へ出力する例を示す。この場合、シナリオ制御部１５０は、回答データベース２１０に予め格納された施設内の地図データなどを取得して案内情報として出力すればよい。
【００５２】
なお、回答データベース２１０は、図示はしないが、例えば、店舗の識別子と、カテゴリと、店舗の営業時間などの詳細情報等で構成することができる。また、入力履歴データベース２３０についても図示はしないが、日付や時刻と入力された情報等を格納することができる。
【００５３】
＜処理の詳細＞
図３は、制御部１０で行われる対話処理の一例を示すフローチャートである。この処理は、制御部１０のセンサ情報取得部１１０が、タッチ入力や音声入力を受け付けた時に実行される。
【００５４】
まず、ステップＳ１で、制御部１０は、マイク６からの音声入力またはタッチセンサ４１からのタッチ入力と、カメラ５からの画像情報と近接センサ７からの近接情報をセンサ情報として取得する。
【００５５】
ステップＳ２で、制御部１０は、利用状況解析部１３０によってカメラ５が撮影した利用者の画像情報を認識し、利用者の属性（年齢、性別、所属）を識別し、利用者の人数や利用者の位置を検出する。また、利用状況解析部１３０は、上述したように利用者の視線や顔の向きや、口や手の動きを認識して、利用者の状況を示す情報とする。また、利用状況解析部１３０は、近接センサ７の出力から利用者の出現や立ち去り（利用の終了）を検出する。さらに、利用状況解析部１３０はマイク６から取得した音声データからクレードル８が設置された環境における雑音の大きさを検出する。
【００５６】
ステップＳ３で、制御部１０は、入力内容解析部１２０によって、音声入力に対して音声認識を実施して、利用者の発話に対応するテキストを入力データとして生成する。また、入力内容解析部１２０は、タッチ入力に対してシナリオテーブル２６０のシナリオに対応する入力データ（テキストまたはタッチした位置などの値）を生成する。
【００５７】
ステップＳ３で、制御部１０は、入力履歴データベース２３０を参照して、現在の入力データが前回の入力データと同一であるか否かを判定する。現在の入力データと前回の入力データが同一であればステップＳ６へ進み、同一でなければステップＳ５に進む。
【００５８】
ステップＳ５では、制御部１０は、現在の入力データの値を入力履歴データベース２３０に登録し、回数＝１を設定する。一方、ステップＳ６では、制御部１０が、入力履歴データベース２３０から現在の入力データの連続入力回数を取得し、入力履歴データベース２３０の連続入力回数をインクリメントしてから登録する。
【００５９】
次に、ステップＳ７では、制御部１０が、シナリオ制御部１５０で入力データに対応するシナリオをシナリオテーブル２６０から選択して、画面表示内容や音声再生などの出力内容を生成する。
【００６０】
次に、ステップＳ８では、制御部１０が、現在の入力データの優先度Ｐを次式により算出する。
【００６１】
【数１】
2020003926.tif 000003
【００６２】
ただし、
αｉ：利用状況パラメータごとの優先度に対する重み
βｉ：入力種類（音声入力／タッチ入力）に応じた重み
γｉ：利用状況パラメータごとの利用状況に応じた値
δ：出力済みデータと生成中の出力内容との関連度
ε：同じ入力データの連続回数
である。
【００６３】
なお、重みの値は予め設定されたものである。また、出力済みの出力内容（前回の入力データに対する出力結果）と、現在の入力データの関連度は、出力済みデータと現在の入力データに含まれる単語間の類似度を用いることができ、例えば、Ｗｏｒｄ２ｖｅｃやｃｏｓ類似度などの周知の手法を用いて算出すればよい。
【００６４】
次に、ステップＳ９では、制御部１０が、出力部１６０で出力データを生成中（準備中）のシナリオがあるか否かを判定し、生成中のシナリオがあればステップＳ１０へ進み、生成中のシナリオがなければステップＳ１３へ進む。
【００６５】
ステップＳ１０では、ステップＳ８で算出した現在の入力データの優先度と、出力準備中の入力データ（前回の入力データとする）の優先度を比較し、現在の入力データの優先度が前回の入力データの優先度よりも高いか否かを判定する。現在の入力データの優先度が高い場合にはステップＳ１１へ進み、そうでない場合にはステップＳ１３に進む。
【００６６】
ステップＳ１１では、制御部１０が、現在出力準備中のシナリオ出力方法を変更して、現在の入力データに対応するシナリオの出力データを加味したシナリオ出力を生成する。この処理は、例えば、出力データを生成するシナリオの実行順序を変更したり、タッチパネルディスプレイ４０に出力する出力データのサイズや位置を優先度に応じて変更したり、あるいは、前回の入力データに対する出力データを破棄したりするなど、所定の処理を実行する。
【００６７】
すなわち、制御部１０は、現在の入力データに対応する出力データのみを出力するか、現在の入力データに対応する出力データと、前回の入力データに対応する出力データの双方を優先度に応じたサイズや、優先度に応じた位置で出力するかを決定する。
【００６８】
ステップＳ１２では、制御部１０が、ステップＳ１１で決定した出力内容に応じて、出力部１６０から出力するシナリオデータを生成させる。ステップＳ１３では、制御部１０が、上記ステップＳ７またはＳ１２で出力部１６０に指令したシナリオの出力データを出力する。
【００６９】
以上の処理によって、いずれかの入力が一定期間内に順次発生した場合、現在（最新）の入力データと前回（直前）の入力データの優先度を比較することで、どちらの入力データに対応する出力データを優先すれば良いかを制御部１０が自動的に決定することができる。
【００７０】
これにより、前記従来例のように、利用者が回答や指示を入力したのに、さらに選択肢を入力することを防ぐことができる。したがって、一定期間内に複数の入力を受け付けたときに、操作が煩雑になるのを防いで、利用者の意図に応じた出力を生成する対話システムを提供することができる。
【００７１】
図４は、タッチパネルディスプレイ４０に表示される案内画面３００の一例を示す図で、出力データの順序を変更する場合である。案内画面３００は、左下のアバター６００が案内を行う想定で、タッチ入力と音声入力の双方を利用し、音声入力結果が入力欄７００に表示される。案内画面３００では、アバター６００の発話が左側に表示され、利用者の入力データが右側に表示され、画面下方から上方に向けてスクロールして表示される例を示す。
【００７２】
まず、対話システムの制御部１０は、シナリオテーブル２６０に従って、タッチパネル４の前に到来した利用者に対して問い合わせを実施して、タッチパネルディスプレイ４０に「どの様なご用件でしょうか」（４０１）を出力する。この時、スピーカ９から音声で出力してもよいし、画面と音声の両方を同時に出力してもよい。図４に示す例では続けて、利用者が音声入力にて「ご飯が食べたい」（５０１）と応答する。
【００７３】
制御部１０は、シナリオテーブル２６０に従って「どのジャンルの料理を御希望ですか？」（４０２）という文章と、「和食」〜「その他」の選択肢をタッチパネルディスプレイ４０（またはスピーカ９）に出力する。
【００７４】
これに対して、利用者はタッチパネル４の「洋食」（５０２）をタッチ入力した後に、「やっぱり先にトイレに行きたい」（５０３）と音声で入力する。制御部１０のシナリオ制御部１５０は、前回の入力データ＝「洋食」に対する出力データが準備中であるので、前回の入力データ＝「洋食」の優先度と、現在（最新）の入力データ＝「〜トイレに行きたい」の優先度を比較する。
【００７５】
制御部１０は、現在の入力データの優先度が、直前の入力データの優先度よりも高いと判定した場合、回答データベース２１０を参照して、図示のように現在地からトイレまでの行き方を示した地図をタッチパネルディスプレイ４０へ出力する（４０３）。このように、制御部１０は、複数の入力データを一定期間内に受け付けた場合には、入力データの優先度に応じてシナリオの実行順序を変更することが可能となる。
【００７６】
制御部１０は、トイレまでの地図をタッチパネルディスプレイ４０へ出力した後に、近接センサ７またはカメラ５の出力から利用者の利用状況として利用者の立ち去りを検出すると、出力データおよび出力準備中のデータを破棄することができる。
【００７７】
一方、制御部１０は、トイレまでの地図をタッチパネル４へ出力した後に、近接センサ７またはカメラ５の出力から利用者の存在を継続して検出すると、元のシナリオテーブル２６０に戻って、前回の入力データに対応するシナリオを実行して出力データを出力することができる。
【００７８】
図５は、タッチパネルディスプレイ４０に表示される案内画面３００の一例を示す図で、図４にて示したシナリオの実行順序を変更した場合に利用者が継続して検出された場合の一例である。案内画面３００には、トイレまでの地図（４０３）を表示した後に、直前の入力データ＝「洋食」（５０２）に対応する応答として店舗選択４０４が表示される。
【００７９】
この場合、制御部１０では、シナリオ制御部１５０が現在の入力データに対応するシナリオと、前回の入力データに対応するシナリオを入れ替えて出力部１６０に実行させることで、出力データの順序が変更される。
【００８０】
そして、店舗選択４０４の中から、利用者がタッチ入力を行うことにより、制御部１０は、回答データベース２１０から該当する店舗情報を検索してタッチパネル４に表示することができる。
【００８１】
図６は、図５に示した店舗選択４０４において、利用者が「店舗Ａ」をタッチ入力で選択した場合の一例を示している。図６に示す例では、「店舗Ａ」に関する詳細な店舗情報４０５がタッチパネルディスプレイ４０に出力される。
【００８２】
図７は、タッチパネルディスプレイ４０に表示される案内画面３００の他の例を示す図で、複数の入力が一定期間内にあった場合に、複数の出力データ（選択肢）を並列して表示する場合である。
【００８３】
制御部１０は、「洋食」（５０２）のタッチ入力（前回の入力データ）に対応して「和食」〜「その他」の選択肢４１１をタッチパネルディスプレイ４０に出力してから、現在の入力データ＝「〜トイレに行きたい」（５０３）に対応する選択肢「トイレ」を並列的に出力する。なお、選択肢４１１のウィンドウは、ポップアップして表示してもよい。
【００８４】
この場合、制御部１０は、現在の入力データの優先度が、前回の入力データの優先度よりも高いので、前回の入力データに対する出力データに、現在の入力データに対する出力データを付加して出力することができる。
【００８５】
制御部１０は、前回の入力データと現在の入力データの双方に対して並列的に応答することで、優先度の高い入力データに対応する出力データを優先して表示し、利用者の意図に対応することができる。
【００８６】
図８は、タッチパネルディスプレイ４０に表示される案内画面３００の他の例を示す図で、複数の出力データ（選択肢）をタブで分けて表示する場合である。
【００８７】
制御部１０は、「洋食」（５０２）のタッチ入力（直前の入力データ）に対応して「レストラン」のタブ４２１を出力し、現在の入力データに対応する「トイレ」のタブ４２２を選択肢４２０として出力する。なお、選択肢４２０のウィンドウは、ポップアップして表示してもよい。
【００８８】
この場合、制御部１０は、現在の入力データの優先度が、前回の入力データの優先度よりも高いので、前回の入力データに対する出力データ（タブ４２１）に、現在の入力データに対する出力データ（タブ４２２）を付加して出力することができる。
【００８９】
そして、制御部１０は、入力データの優先度が高い方のシナリオの出力データ（タブ４２２）を、前回の入力データのシナリオによる出力データ（タブ４２１）よりも前面に出力することで、優先して表示することができる。
【００９０】
以上のように、優先度の高い入力データに対応する出力データを優先的に表示することで、利用者の意図に対応することができる。
【００９１】
図９は、タッチパネルディスプレイ４０に表示される案内画面３００の他の例を示す図でである。
【００９２】
制御部１０は、現在の入力データの優先度が、前回の入力データの優先度よりも高いので、前回の入力データに対するシナリオ応答よりも、現在の入力データに対するシナリオの出力データを優先的に出力する。
【００９３】
制御部１０は、前回の入力データに対する出力データである「レストラン」の選択肢４３１の上に、現在の入力データに対する出力データである「トイレ」の選択肢４３２のウィンドウを表示する。
【００９４】
従って、制御部１０は、入力データの優先度が高い方のシナリオの出力データ（選択肢４３２）を、前回の入力データのシナリオによる出力データ（選択肢４３１）よりも前面に出力することで、優先して表示することができる。
【００９５】
以上のように、優先度の高い入力データに対応する出力データを優先的に表示することで、利用者の意図に対応することができる。
【００９６】
また、制御部１０は、選択肢４３２からタッチ入力または音声入力を受け付けると、図１０で示すように、選択されたトイレの地図データを回答データベース２１０から取得してタッチパネル４に出力する。
【００９７】
制御部１０は、前回の入力データ（タッチ入力）と現在の入力データ（音声入力）の優先度に応じて出力データを表示することで、利用者の意図に対応することができる。
【００９８】
＜まとめ＞
なお、上記実施例では、タッチパネルディスプレイ４０に表示中の選択肢（ボタン等）に対して、利用者が選択肢以外を入力（主に発話）した場合は、制御部１０が、選択肢と入力された内容の関連度を算出して、関連度に応じて実行するシナリオを変更しても良い。
【００９９】
なお、制御部１０は、入力データと表示中の関連度に応じてアバター６００の演出を変えてもよい。例えば、関連度が高いと相槌を打って表示を切替え、関連度が低いと悩んで表示変更しないなど、所定の表示を行うことができる。また、関連度が低い場合は、画面だけ表示してアバター６００の発話を禁止して、利用者の発話を受け付けても良い。
【０１００】
また、上記実施例では、タッチ入力を受け付けるタッチセンサ４１と、表示部としてのタッチパネルディスプレイ４０が一体のタッチパネル４を用いる例を示したが、これに限定されるものではなく、表示部と入力部が分離する構成であってもよい。
【０１０１】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【０１０２】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１０３】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１０４】
１  プロセッサ
２  メモリ
３  ストレージ装置
４  タッチパネル
５  カメラ
６  マイク
７  近接センサ
８  クレードル
９  スピーカ
１０  制御部
４０  タッチパネルディスプレイ
４１  タッチセンサ
１１０  センサ情報取得部
１２０  入力内容解析部
１３０  利用状況解析部
１４０  優先度算出部
１５０  シナリオ制御部
１６０  出力部
１７０  出力内容取得部
２１０  回答データベース
２２０  会話データベース
２３０  入力履歴データベース
２４０  音声認識データベース
２５０  利用状況履歴データベース
２６０  シナリオテーブル
【図１】
2020003926.tif 000004
【図２】
2020003926.tif 000005
【図３】
2020003926.tif 000006
【図４】
2020003926.tif 000007
【図５】
2020003926.tif 000008
【図６】
2020003926.tif 000009
【図７】
2020003926.tif 000010
【図８】
2020003926.tif 000011
【図９】
2020003926.tif 000012
【図１０】
2020003926.tif 000013
【図１１】
2020003926.tif 000014
【図１２】
2020003926.tif 000015