(57)【特許請求の範囲】
【請求項１】
ユーザの発話に対する応答をＨＴＭＬ形式の情報に従って表示する対話アプリケーションを有するユーザ端末における表示に用いられる表示用データを記憶する記憶手段と、
前記対話アプリケーションが起動されるたびに前記ユーザ端末に対して、前記表示用データを送信する送信手段と、
前記ユーザ端末から、前記ユーザが発話した情報である発話情報を取得する取得手段と、
前記取得手段によって取得された発話情報を用いて、該発話情報に対応するサービスに対する要求情報を生成し、前記サービスを提供するサービス提供サーバに前記要求情報を送信する要求生成手段と、
前記要求情報に基づいて取得したサービス情報を受信すると、前記発話情報に応じて複数の応答フォーマットのなかから一つの応答フォーマットを特定し、該応答フォーマットに従って、前記要求情報に基づいて取得したサービス情報から応答に必要な情報を抽出し、該サービス情報をＨＴＭＬ形式のサービス情報であって前記ユーザ端末に送信された表示用データを表示させる命令が記述されたＨＴＭＬ形式のサービス情報に変換して前記発話情報に対する応答情報を生成し、該応答情報を前記ユーザ端末に送信する応答生成手段と、
を備えたことを特徴とする応答生成装置。
【請求項２】
前記取得手段は、前記発話情報とともに、前記発話情報と同じ発話者であるユーザの過去の発話情報に関する履歴情報をユーザ端末から取得し、
前記要求生成手段は、前記取得手段によって取得された発話情報および履歴情報を用いて、サービスに対する要求情報を生成することを特徴とする請求項１に記載の応答生成装置。
【請求項３】
前記応答生成手段は、発話用のテキストデータおよび応答発話表示用のテキストデータが上部に含まれ、前記ＨＴＭＬデータ形式のサービス情報が下部に含まれる応答画面を前記ユーザ端末に表示させることを特徴とする請求項１または２に記載の応答生成装置。
【請求項４】
ユーザの発話に対する応答をＨＴＭＬ形式の情報に従って表示する対話アプリケーションを有するユーザ端末と、前記ユーザが発話した情報である発話情報に対する応答情報を生成する応答生成サーバと含む応答生成システムにおいて、
前記応答生成サーバは、
前記ユーザ端末における表示に用いられる表示用データを記憶する記憶手段と、
前記対話アプリケーションが起動されるたびに前記ユーザ端末に対して、前記表示用データを送信する送信手段と、
前記ユーザ端末から、前記ユーザが発話した情報である発話情報を取得する取得手段と、
前記取得手段によって取得された発話情報を用いて、該発話情報に対応するサービスに対する要求情報を生成し、前記サービスを提供するサービス提供サーバに前記要求情報を送信する要求生成手段と、
前記要求情報に基づいて取得したサービス情報を受信すると、前記発話情報に応じて複数の応答フォーマットのなかから一つの応答フォーマットを特定し、該応答フォーマットに従って、前記要求情報に基づいて取得したサービス情報から応答に必要な情報を抽出し、該サービス情報をＨＴＭＬ形式のサービス情報であって前記ユーザ端末に送信された表示用データを表示させる命令が記述されたＨＴＭＬ形式のサービス情報に変換して前記発話情報に対する応答情報を生成し、該応答情報を前記ユーザ端末に送信する応答生成手段と、
を備え、
前記ユーザ端末は、
前記応答生成サーバに前記発話情報を送信する送信手段と、
前記応答生成サーバから前記応答情報を受信する受信手段と、
前記受信手段によって受信された応答情報に含まれるＨＴＭＬ形式のサービス情報に従って、前記発話に対する応答を表示するように制御する表示制御手段と、
を備えたことを特徴とする応答生成システム。
【請求項５】
コンピュータで実行される応答生成方法であって、
ユーザの発話に対する応答をＨＴＭＬ形式の情報に従って表示する対話アプリケーションを有するユーザ端末における表示に用いられる表示用データを、前記対話アプリケーションが起動されるたびに前記ユーザ端末に対して送信する送信工程と、
前記ユーザ端末から、前記ユーザが発話した情報である発話情報を取得する取得工程と、
前記取得工程によって取得された発話情報を用いて、該発話情報に対応するサービスに対する要求情報を生成し、前記サービスを提供するサービス提供サーバに前記要求情報を送信する要求生成工程と、
前記要求情報に基づいて取得したサービス情報を受信すると、前記発話情報に応じて複数の応答フォーマットのなかから一つの応答フォーマットを特定し、該応答フォーマットに従って、前記要求情報に基づいて取得したサービス情報から応答に必要な情報を抽出し、該サービス情報をＨＴＭＬ形式のサービス情報であって前記ユーザ端末に送信された表示用データを表示させる命令が記述されたＨＴＭＬ形式のサービス情報に変換して前記発話情報に対する応答情報を生成し、該応答情報を前記ユーザ端末に送信する応答生成工程と、
を含んだことを特徴とする応答生成方法。
【請求項６】
ユーザの発話に対する応答をＨＴＭＬ形式の情報に従って表示する対話アプリケーションを有するユーザ端末における表示に用いられる表示用データを、前記対話アプリケーションが起動されるたびに前記ユーザ端末に対して送信する送信手順と、
前記ユーザ端末から、前記ユーザが発話した情報である発話情報を取得する取得手順と、
前記取得手順によって取得された発話情報を用いて、該発話情報に対応するサービスに対する要求情報を生成し、前記サービスを提供するサービス提供サーバに前記要求情報を送信する要求生成手順と、
前記要求情報に基づいて取得したサービス情報を受信すると、前記発話情報に応じて複数の応答フォーマットのなかから一つの応答フォーマットを特定し、該応答フォーマットに従って、前記要求情報に基づいて取得したサービス情報から応答に必要な情報を抽出し、該サービス情報をＨＴＭＬ形式のサービス情報であって前記ユーザ端末に送信された表示用データを表示させる命令が記述されたＨＴＭＬ形式のサービス情報に変換して前記発話情報に対する応答情報を生成し、該応答情報を前記ユーザ端末に送信する応答生成手順と、
をコンピュータに実行させることを特徴とする応答生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は応答生成装置、応答生成システム、応答生成方法および応答生成プログラムに関する。
【背景技術】
【０００２】
従来、ユーザからの発話を受け付け、ユーザの発話の内容に応じた応答画面や音声を出力する対話アプリケーションが知られている。このような対話アプリケーションとして、例えば、「Ｓｉｒｉ」（以下、従来技術１と称する）や「しゃべってコンシェル」（以下、従来技術２と称する）などが実用化されている。
【０００３】
例えば、従来技術１では、ユーザからの音声入力を受け付けると、ユーザが求めているサービスを提供できるアプリを特定し、特定したアプリを利用することを勧める画面を表示したり、特定したアプリを自動的に起動させたりする。具体的な例を挙げて説明すると、従来技術１では、例えば、路線検索の質問に係る音声入力を受け付けた場合には、路線検索サービスを提供できる路線検索アプリを特定し、路線検索アプリを利用することを勧める画面を表示する。
【０００４】
また、従来技術２の場合には、ユーザ端末は、ユーザからの音声入力を受け付けると、ユーザが要求する情報を特定し、特定した情報を提供するサーバに対して情報の要求を行う。そして、ユーザ端末は、情報のアクセス先を示すＵＲＬ（Uniform  Resource  Locator）をサーバから取得し、取得したＵＲＬを用いてデータを取得する。具体的な例を挙げて説明すると、従来技術２では、例えば、料理に係る音声入力を受け付けた場合には、ユーザ端末は、料理の情報を提供するサーバに対して料理の情報の要求を行い、料理の情報のＵＲＬを取得し、取得したＵＲＬを用いて料理の情報を取得する。
【０００５】
また、ユーザ端末がサーバから情報を取得する方法として、ユーザ端末が、ＵＲＬではなくＸＭＬ（Extensible  Markup  Language）形式のデータをサーバから受信し、ＸＭＬ形式のデータをアプリケーションで加工して応答画面として表示する方法が知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−８１５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術１では、ユーザが求めているサービスを提供できるアプリを特定するが、ユーザが求めているサービスを提供できるアプリがサーバ端末内に存在しない場合には、発話に対する応答を適切に行えない。このため、アプリケーションの追加や改善を行わなければならず、ユーザの要望に応えることができない。
【０００８】
また、従来技術２では、サーバから取得したＵＲＬを用いてサーバにアクセスするので、ＵＲＬを受け取った後に再びサーバにアクセスを行う必要がある。このため、通信トラヒックの増大を招くおそれがあるだけでなく、ユーザからの発話を受け付けてから速やかに回答することが難しい。
【０００９】
なお、ユーザ端末が、ＵＲＬではなくＸＭＬ形式のデータをサーバから受信し、ＸＭＬ形式のデータをアプリケーションで加工して応答画面として表示する方法も考えられる。しかしながら、この方法では、アプリケーションがＸＭＬ形式のデータを加工するので、画面レイアウトや画面表示項目の追加がある場合には、アプリケーション側をアップデートなどにより改善する必要があり、ユーザの要望に応えることができない。
【００１０】
本願は、上記に鑑みてなされたものであって、ユーザの発話に対して速やかに回答することを目的とする。
【課題を解決するための手段】
【００１１】
本願に係る応答生成装置は、ユーザの発話に対する応答をＨＴＭＬ形式の情報に従って表示する対話アプリケーションを有するユーザ端末から、前記ユーザが発話した情報である発話情報を取得する取得手段と、前記取得手段によって取得された発話情報を用いて、サービスに対する要求情報を生成する要求生成手段と、前記要求情報に基づいて取得したサービス情報を受信すると、該サービス情報をＨＴＭＬ形式のサービス情報に変換して前記発話情報に対する応答情報を生成し、該応答情報を前記ユーザ端末に送信する応答生成手段と、を備えたことを特徴とする。
【発明の効果】
【００１２】
本願に係る応答生成装置、応答生成システム、応答生成方法および応答生成プログラムは、画ユーザの発話に対して速やかに回答することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１の実施形態に係るネットワークシステムの構成例を示す図である。
【図２】図２は、第１の実施形態に係る応答生成サーバの構成例を示す図である。
【図３】図３は、第１の実施形態に係るユーザ端末の構成例を示す図である。
【図４】図４は、第１の実施形態に係るユーザ端末の応答画像の一例を示す図である。
【図５】図５は、第１の実施形態に係るユーザ端末の応答画像の一例を示す図である。
【図６】図６は、第１の実施形態に係るユーザ端末の応答画像の一例を示す図である。
【図７】図７は、第１の実施形態に係るネットワークシステムによる処理の手順を示すシーケンス図である。
【図８】図８は、第１の実施形態に係る応答生成サーバによる変換処理を説明する図である。
【図９】図９は、第１の実施形態に係る応答生成サーバによる処理の手順を示すフローチャートである。
【図１０】図１０は、第１の実施形態に係るユーザ端末による処理の手順を示すフローチャートである。
【００１４】
（第１の実施形態）
図１〜図１０を用いて、本願に係る応答生成装置、応答生成システム、応答生成方法および応答生成プログラムの第１の実施形態について説明する。
【００１５】
〔１−１．構成〕
まず、図１を用いて、第１の実施形態に係る応答生成サーバが含まれるネットワークシステムの構成について説明する。図１は、第１の実施形態に係るネットワークシステム１の構成例を示す図である。図１に例示するように、第１の実施形態に係るネットワークシステム１には、応答生成サーバ１０と、ユーザ端末２０と、音声認識サーバ３０と、路線ＡＰＩ（Application  Program  Interface）サーバ４１、天気ＡＰＩサーバ４２と、Ｗｅｂ検索ＡＰＩサーバ４３と、音声合成サーバ５０とが含まれる。
【００１６】
応答生成サーバ１０と、ユーザ端末２０と、音声認識サーバ３０と、路線ＡＰＩサーバ４１、天気ＡＰＩサーバ４２と、Ｗｅｂ検索ＡＰＩサーバ４３と、音声合成サーバ５０とは、ネットワーク６０を介して、無線通信又は有線通信を行う。なお、以下の説明では、路線ＡＰＩサーバ４１、天気ＡＰＩサーバ４２と、Ｗｅｂ検索ＡＰＩサーバ４３を区別する必要がない場合には、これらを総称して「ＡＰＩサーバ４０」と表記する場合がある。また、路線ＡＰＩサーバ４１、天気ＡＰＩサーバ４２、Ｗｅｂ検索ＡＰＩサーバ４３は、ＡＰＩサーバの一例であり、これらに限定されない。
【００１７】
〔１−１（１）．応答生成サーバ１０の構成〕
次に、図２を用いて、応答生成サーバ１０の構成について説明する。図２は、第１の実施形態に係る応答生成サーバの構成例を示す図である。応答生成サーバ１０は、ユーザ端末２０によって送信される今回の発話のテキストデータと、過去の発話（例えば、過去３回分の発話）に関する情報とに応じて、ＡＰＩサーバ４０からＸＭＬ形式のデータを取得し、取得したＸＭＬ形式のデータをＨＴＭＬ（Hyper  Text  Markup  Language）形式のデータに変換してユーザの発話に対する応答情報を生成し、応答情報をユーザ端末２０に送信するコンピュータである。応答生成サーバ１０は、通信部１１と、制御部１２と、記憶部１３とを有する。なお、以下の説明では、応答生成サーバ１０が、ＡＰＩサーバ４０からＸＭＬ形式のデータを取得する場合を例にして説明するが、これに限定されるものではなく、例えば、ＪＳＯＮ（Java（登録商標）  Script  Object  Notation）形式のデータやＰＨＰ（Personal  Home  Page）シリアライズ形式のデータをＡＰＩサーバ４０から取得するようにしてもよい。
【００１８】
通信部１１は、ネットワーク６０を介してユーザ端末２０、ＡＰＩサーバ４０および音声合成サーバ５０との間で各種データを送受信する。通信部１１は、例えば、ＮＩＣ等に該当する。
【００１９】
記憶部１３は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置である。記憶部１３は、例えば、先読みリストを記憶する。ここで先読みリストとは、ユーザ端末２０が対話アプリケーションを起動させた際に、事前に取得しておくべきデータ（以下、先読みデータという）のリストである。この先読みデータとは、ユーザ端末２０における表示に用いられる表示用データである。また、先読みデータは、対話アプリケーションにおいて頻繁に使用される表示用データであり、例えば、天気情報を表示する画面において使用される天気のアイコンの画像データや、乗り換え情報を表示する際に使用されるスタイルシートのデータなどである。
【００２０】
制御部１２は、応答生成サーバ１０を対話サーバとして動作させる制御部であり、ユーザが今回発話したテキストデータ及びユーザが発話した過去の発話の履歴情報に応じて、ＡＰＩサーバからＸＭＬ形式のデータを取得し、ＸＭＬ形式のデータをＨＴＭＬ形式のデータに変換する。そして、制御部１２は、変換したＨＴＭＬデータと応答発話用の中間表記と応答発話表示用のテキストデータとをユーザ端末２０に送信する。
【００２１】
具体的には、制御部１２は、ユーザが今回発話したテキストデータと、ユーザが発話した過去３回分の発話の履歴情報とを用いて、ユーザの発話の意図を推定して検索条件を生成し、生成した検索条件でＡＰＩサーバ４０に対してデータを要求する。そして、制御部１２は、ＡＰＩサーバからＸＭＬ形式のデータを受け付けると、ＸＭＬ形式のデータをＨＴＭＬ形式のデータに変換する。そして、制御部１２は、ユーザの発話に対する応答発話用の中間表記（音声情報）と応答発話表示用のテキストデータとＨＴＭＬ形式のデータとをユーザ端末２０に送信する。制御部１２は、例えば、ＣＰＵやＭＰＵ等により実現され、記憶部１３に予め記憶されているコンピュータプログラムを実行することにより、取得部１２ａ、送信部１２ｂ、要求生成部１２ｃ、変換部１２ｄ、音声合成指示部１２ｅ、応答生成部１２ｆによる処理を実現する。
【００２２】
なお、応答生成サーバ１０が有する各処理部は、以下に説明する情報処理の機能や作用を実現又は実行する。
【００２３】
〔１−１（２）．ユーザ端末２０の構成〕
次に、図３を用いて、ユーザ端末２０の構成について説明する。図３は、第１の実施形態に係るユーザ端末２０の構成例を示す図である。図３に示すように、ユーザ端末２０は、携帯電話機、スマートフォン、ＰＤＡ（Personal  Digital  Assistant）、タブレット型ＰＣ、ノート型ＰＣ、デスクトップ型ＰＣ等の情報処理装置である。ユーザ端末２０は、図３に例示するように、通信部２１と、マイク２２と、スピーカ２３と、表示部２４と、アプリ２５と、メモリ２６とを有する。
【００２４】
通信部２１は、ネットワーク６０を介して応答生成サーバ１０および音声認識サーバ３０との間で各種データを送受信する。通信部２１は、例えば、携帯端末やスマートフォンの場合には、アンテナや通信制御を行う電子回路等である。また、通信部２１は、例えば、ユーザ端末２０がノート型ＰＣやデスクトップ型ＰＣである場合には、ＮＩＣ（Network  Interface  Card）等に該当する。通信部２１は、例えば、ユーザ端末２０がタブレット型ＰＣである場合には、アンテナや通信制御を行う電子回路等である。
【００２５】
マイク２２は、ユーザ端末２０の利用者が発話した音声入力を受け付ける入力デバイスである。スピーカ２３は、ユーザ端末２０の利用者が発話した音声入力に対する応答音声を出力する出力デバイスである。また、表示部２４は、各種情報を表示する表示デバイスであり、例えばタッチパネルや液晶ディスプレイ等である。
【００２６】
表示部２４は、例えば、応答発話表示用のテキストデータと発話意図に応じたＨＴＭＬ形式のデータとを表示する。ここで、図４〜図６の例を用いて、表示部２４によって表示される画面について説明する。図４〜図６は、第１の実施形態に係るユーザ端末の応答画像の一例を示す図である。
【００２７】
まず、図４の例を用いて説明すると、応答画像の上部に、発話用のテキストデータ（音声認識サーバ３０から受信したデータ）および応答発話表示用のテキストデータ（応答生成サーバ１０から受信したデータ）が表示され、応答発話表示用のテキストデータの下部に乗り換え情報に関するＨＴＭＬデータ（応答生成サーバ１０から受信したデータ）が表示されている。
【００２８】
具体的には、図４に例示するように、発話用のテキストデータとして「六本木から浅草駅」と表示され、応答発話表示用のテキストデータ「六本木から東京メトロ日比谷線・東武動物公園行、１７時１分出発の電車にお乗りください。」が表示されている。これは、ユーザが「六本木から浅草駅」と発話し、その応答として「六本木から東京メトロ日比谷線・東武動物公園行、１７時１分出発の電車にお乗りください。」と表示していることを示している。また、図４に例示する画像を表示するとともに、「六本木から東京メトロ日比谷線・東武動物公園行、１７時１分出発の電車にお乗りください。」という音声がスピーカ２３から出力される。また、応答発話表示用のテキストデータの下部に、乗り換え情報に関するＨＴＭＬデータとして、「六本木駅」から「浅草駅」までの乗り換え情報が表示されている。
【００２９】
また、図５の例についても同様に、応答画像の上部に、発話用のテキストデータおよび応答発話表示用のテキストデータが表示され、応答発話表示用のテキストデータの下部に天気情報に関するＨＴＭＬデータが表示されている。具体的には、図５に例示するように、発話用のテキストデータとして「東京の天気は？」と表示され、応答発話表示用のテキストデータ「今日の東京の天気は、晴れ後曇りでしょう。」が表示されている。これは、ユーザが「東京の天気は？」と発話し、その応答として「今日の東京の天気は、晴れ後曇りでしょう。」と表示していることを示している。また、図５に例示する画像を表示するとともに、「今日の東京の天気は、晴れ後曇りでしょう。」という音声がスピーカ２３から出力される。また、応答発話表示用のテキストデータの下部に、天気情報に関するＨＴＭＬデータとして、東京の１月１０日火曜日の天気情報が表示されている。なお、天気情報として表示されている晴れのアイコンは、応答生成サーバ１０から先読みした先読みデータが用いられている。
【００３０】
また、図６の例についても同様に、応答画像の上部に、発話用のテキストデータおよび応答発話表示用のテキストデータが表示され、応答発話表示用のテキストデータの下部に天気情報に関するＨＴＭＬデータが表示されている。具体的には、図６に例示するように、発話用のテキストデータとして「ミッドタウンを検索。」と表示され、応答発話表示用のテキストデータ「ミッドタウンを検索しました。」が表示されている。これは、ユーザが「ミッドタウンを検索。」と発話し、その応答として「ミッドタウンを検索しました。」と表示していることを示している。また、図６に例示する画像を表示するとともに、「ミッドタウンを検索しました。」という音声がスピーカ２３から出力される。また、応答発話表示用のテキストデータの下部に、ウェブ検索に関するＨＴＭＬデータとして、東京ミッドタウンに関する検索結果の画面が表示されている。
【００３１】
アプリ２５は、対話アプリケーションであって、起動の指示を受け付けると、まず、先読みデータを応答生成サーバ１０に要求する。続いて、アプリ２５は、応答生成サーバ１０から先読みデータを受信すると、先読みデータ記憶部２６ｃに先読みデータを格納する。そして、アプリ２５は、利用者が発話した音声入力を受け付けると、音声データを音声認識サーバ３０に送信し、音声認識サーバ３０から発話のテキストデータを受信する。また、アプリ２５は、発話のテキストデータや過去の発話情報を応答生成サーバ１０に送信し、応答生成サーバ１０からＨＴＭＬの言語で記述されたデータ、応答発話用の中間表記および応答発話表示用のテキストデータなどを受信する。
【００３２】
アプリ２５は、ＨＴＭＬ形式のデータ、中間表記および応答発話表示用のテキストデータを受信すると、ＨＴＭＬ形式のデータを履歴情報として履歴記憶部２６ａに記憶する。また、アプリ２５は、発話に対する応答画面を生成するためのデータであって、応答生成サーバ１０から取得する必要があるデータ（画像ファイルやスタイルシートなど）がある場合には、そのデータが先読みデータ記憶部２６ｃに記憶されているか否かを判定し、記憶されている場合には、応答生成サーバ１０から取得せずに、先読みデータ記憶部２６ｃから取得する。また、先読みデータ記憶部２６ｃに記憶されていない場合には、応答生成サーバ１０と通信を行って、データを取得する。また、アプリ２５は、ユーザ端末２０の利用者が発話した音声入力に対する応答音声を出力したり、ＨＴＭＬ等の言語で記述されたデータを表示したりする。アプリ２５は、ＣＰＵやＭＰＵ等により実現され、先読み要求生成部２５ａ、音声データ送信部２５ｂ、テキストデータ受信部２５ｃ、テキストデータ送信部２５ｄ、ＨＴＭＬデータ受信部２５ｅ、表示制御部２５ｆによる処理を実現する。
【００３３】
メモリ２６は、履歴記憶部２６ａ、位置情報記憶部２６ｂおよび先読みデータ記憶部２６ｃを有する。メモリ２６は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子等の記憶装置である。履歴記憶部２６ａは、発話のテキストデータとともに送信される、過去の発話に関する履歴情報を記憶する。位置情報記憶部２６ｂは、発話のテキストデータとともに送信される、ユーザ端末１０の現在位置を示す位置情報を記憶する。先読みデータ記憶部２６ｃは、対話アプリケーションを起動させた際に行われる先読み処理によって取得された先読みデータを記憶する。なお、メモリ２６は、履歴情報や位置情報のほかに、ユーザの自宅の住所などの個人情報を記憶していてもよい。これらの情報は、履歴情報や位置情報と同様に、発話のテキストデータとともに応答生成サーバ１０に送信してもよい。
【００３４】
なお、ユーザ端末２０が有する各処理部は、以下に説明する情報処理の機能や作用を実現又は実行する。
【００３５】
〔１−２（１）．作用（ネットワークシステム）〕
次に、図７を用いて、第１の実施形態に係るネットワークシステムによる全体の処理手順について説明する。図７は、第１の実施形態に係るネットワークシステムによる処理の手順を示すシーケンス図である。図７に例示するように、ユーザ端末２０は、アプリケーションの起動指示を受け付けると、アプリケーションを起動する（ステップＳ１）。そして、ユーザ端末２０の先読み要求部２５ａは、先読みデータを応答生成サーバ１０に要求する（ステップＳ２）。
【００３６】
続いて、応答生成サーバ１０の送信部１２ｂは、先読みデータの要求を応答生成サーバ１０から受け付けると、記憶部１３に記憶された先読みリストを参照し、先読みデータをユーザ端末２０に送信する（ステップＳ３）。なお、応答生成サーバ１０は、先読みデータを予め記憶していてもよいし、先読みデータをＡＰＩサーバ４０から取得するようにしてもよい。
【００３７】
そして、ユーザ端末２０の音声データ送信部２５ｂは、ユーザの発話を検知すると、発話の音声データをｓｏｃｋｅｔ通信により音声認識サーバ３０へ送信する（ステップＳ４）。そして、音声認識サーバ３０は、発話の音声データを受信すると、音声データをテキストデータに変換する（ステップＳ５）。そして、音声認識サーバ３０は、変換した発話のテキストデータをユーザ端末２０に送信する（ステップＳ６）。
【００３８】
続いて、ユーザ端末２０のテキストデータ受信部２５ｃが、音声認識サーバ３０から発話のテキストデータを受信すると、テキストデータ送信部２５ｄは、発話のテキストデータや過去３回分の発話に関する履歴情報等を応答生成サーバ１０に送信する（ステップＳ７）。なお、ユーザ端末２０のテキストデータ送信部２５ｄは、発話のテキストデータ、ユーザが発話した過去３回分の発話情報のほかに、ユーザ端末２０の現在位置を示す位置情報、予めユーザに登録されたユーザの住所などを応答生成サーバ１０に送信してもよい。
【００３９】
このように、ユーザが発話するたびにユーザ端末２０から今回発話したテキストデータとともに、ユーザが発話した過去の発話の履歴情報を受信することができるため、応答生成サーバ１０がセッション管理のために、履歴情報を記憶する必要がなくなり、応答生成サーバ１０の処理負荷を軽減することができる。
【００４０】
続いて、応答生成サーバ１０の取得部１２ａが、発話のテキストデータや過去３回分の発話に関する履歴情報等を受け付けると、応答生成サーバ１０の要求生成部１２ｃは、応答の生成に必要なデータの検索条件を指定し、ＡＰＩサーバ４０に対してデータの要求を行う（ステップＳ８）。具体的には、応答生成サーバ１０の要求生成部１２ｃは、発話のテキストデータや過去３回分の発話に関する履歴情報等を受信すると、発話のテキストデータや過去３回分の発話に関する履歴情報等を用いて、今回の発話によりユーザが求めるサービスを特定し、ＡＰＩサーバ４０に対して発話に対する応答を生成するための情報を要求する検索条件を生成し、検索条件をＡＰＩサーバ４０に送信して応答生成に必要なデータを要求する（ステップＳ９）。
【００４１】
そして、ＡＰＩサーバ４０は、受信した検索条件に従って、ＸＭＬデータを取得する処理を行う（ステップＳ１０）。例えば、応答生成サーバ１０は、出発地「六本木駅」、目的地「浅草駅」で経路探索する検索条件を受け付けると、六本木駅から浅草駅までの乗り換え情報や、電車賃に関する情報などを取得する処理を行う。そして、ＡＰＩサーバ４０は、取得したＸＭＬデータを応答生成サーバ１０に送信する（ステップＳ１１）。
【００４２】
そして、応答生成サーバ１０の変換部１２ｄは、ＡＰＩサーバ４０からＸＭＬデータを受信すると、発話情報から特定される応答フォーマットに従って、ＸＭＬデータからデータを抽出することで、ＸＭＬデータをＨＴＭＬデータに変換する（ステップＳ１２）。
【００４３】
ここで、図８を用いて、ＸＭＬデータをＨＴＭＬデータに変換する処理について説明する。図８は、第１の実施形態に係る応答生成サーバによる変換処理を説明する図である。例えば、応答生成サーバ１０の変換部１２ｄは、路線検索に関するＸＭＬデータを受信すると、乗り換えに関する路線テンプレートに従って、ＸＭＬデータから駅名や乗車時間の情報を抽出し、ＸＭＬデータをＨＴＭＬデータに変換する。また、変換部１２ｄは、例えば、料金テンプレートに従って、路線検索に関するＸＭＬデータから電車賃に関する情報を抽出し、ＸＭＬデータをＨＴＭＬデータに変換する。
【００４４】
続いて、応答生成サーバ１０の音声合成指示部１２ｅは、応答発話表示用のテキストデータを音声合成サーバ５０に送信する（ステップＳ１３）。そして、音声合成サーバ５０は、応答発話表示用のテキストデータから音声を合成する音声合成処理を行って、応答発話用の中間表記を生成する（ステップＳ１４）。そして、音声合成サーバ５０は、応答発話用の中間表記を応答生成サーバ１０に送信する（ステップＳ１５）。
【００４５】
続いて、応答生成サーバ１０の応答生成部１２ｆは、応答発話用の中間表記と応答発話表示用のテキストデータとＨＴＭＬデータとをユーザ端末２０に送信する（ステップＳ１６）。そして、ユーザ端末２０のＨＴＭＬデータ受信部２５ｅは、受信した応答発話表示用のテキストデータの履歴情報とＨＴＭＬデータの履歴情報とを格納する（ステップＳ１７）。
【００４６】
続いて、ユーザ端末２０のＨＴＭＬデータ受信部２５ｅは、発話に対する応答画面を生成するためのデータであって、応答生成サーバ１０から取得する必要があるデータ（画像ファイルやスタイルシートなど）がある場合には、そのデータが先読みデータ記憶部２６ｃに記憶されているか否かを判定する（ステップＳ１８）。この結果、ＨＴＭＬデータ受信部２５ｅは、先読みデータ記憶部２６ｃに記憶されている場合には、応答生成サーバ１０から取得せずに、先読みデータ記憶部２６ｃから取得する。また、ＨＴＭＬデータ受信部２５ｅは、先読みデータ記憶部２６ｃに記憶されていない場合には、応答生成サーバ１０と通信を行って、データを取得する。
【００４７】
そして、ユーザ端末２０の表示制御部２５ｆは、応答発話用の中間表記を用いて、応答の音声を出力するとともに、応答発話表示用のテキストデータとＨＴＭＬデータとを用いて、応答内容を表示する（ステップＳ１９）。
【００４８】
〔１−２（２）．作用（応答生成サーバ）〕
次に、図９を用いて、第１の実施形態に係る応答生成サーバ１０による処理手順について説明する。図９は、第１の実施形態に係る応答生成サーバ１０による処理の手順を示すフローチャートである。図９に例示するように、応答生成サーバ１０の取得部１２ａは、ユーザが今回発話したテキストデータ及びユーザが発話した過去３回分の発話の履歴情報を受信したか否かを判定する（ステップＳ１０１）。なお、取得部１２ａは、今回発話されたテキストデータ、ユーザが発話した過去３回分の発話情報の他にも、ユーザ端末２０の現在位置を示す位置情報、予めユーザに登録されたユーザの住所などを受信する。
【００４９】
そして、取得部１２ａは、ユーザが今回発話されたテキストデータ及びユーザが発話した過去３回分の発話の履歴情報を受信したと判定すると（ステップＳ１０１肯定）、要求生成部１２ｃは、ユーザが今回発話したテキストデータ及びユーザが発話した過去３回分の発話の履歴情報に基づいて、ＡＰＩサーバ４０に発話に対する応答を生成するためのＸＭＬ形式のデータを要求する（ステップＳ１０２）。
【００５０】
続いて、変換部１２ｄは、ＸＭＬ形式のデータを受信すると、ＸＭＬ形式のデータをＨＴＭＬデータに変換する（ステップＳ１０３）。例えば、変換部１２ｄは、路線検索に関するＸＭＬデータを受信すると、乗り換えに関する路線テンプレートに従って、ＸＭＬデータから駅名や乗車時間の情報を抽出し、ＸＭＬデータをＨＴＭＬデータに変換する。
【００５１】
そして、音声合成サーバ５０から応答発話用の中間表記を受信した後に（図７のステップＳ１３〜Ｓ１５参照）、ＨＴＭＬ形式のデータと応答発話用の中間表記と応答発話表示用のテキストデータとをユーザ端末２０に送信する（ステップＳ１０４）。
【００５２】
〔１−２（３）．作用（ユーザ端末）〕
次に、図１０を用いて、第１の実施形態に係るユーザ端末２０による処理手順について説明する。図１０は、第１の実施形態に係るユーザ端末２０による処理の手順を示すフローチャートである。図１０に例示するように、ユーザ端末２０のＨＴＭＬデータ受信部２５ｅは、ＨＴＭＬ形式のデータと応答発話用の中間表記と応答発話表示用のテキストデータとを応答生成サーバ１０から受信したか否かを判定する（ステップＳ２０１）。
【００５３】
この結果、ＨＴＭＬデータ受信部２５ｅは、ＨＴＭＬ形式のデータと応答発話用の中間表記と応答発話表示用のテキストデータとを応答生成サーバ１０から受信したと判定した場合には（ステップＳ２０１肯定）、応答画面を生成するために必要な画像データやスタイルシートに関する情報が先読みデータ記憶部２６ｃに記憶された先読みデータに含まれているか否かを判定する（ステップＳ２０２）。この結果、ＨＴＭＬデータ受信部２５ｅは、画像データやスタイルシートに関する情報が先読みデータ記憶部２６ｃに記憶された先読みデータに含まれていないと判定した場合には（ステップＳ２０２否定）、画像データやスタイルシートに関する情報を応答生成サーバ１０に要求して取得する（ステップＳ２０４）。
【００５４】
一方、ＨＴＭＬデータ受信部２５ｅは、画像データやスタイルシートに関する情報が先読みデータ記憶部２６ｃに記憶された先読みデータに含まれていると判定した場合には（ステップＳ２０２肯定）、画像データやスタイルシートに関する情報を先読みデータ記憶部２６ｃに記憶された先読みデータから取得する（ステップＳ２０３）。このように、対話アプリケーションを起動させた際に、事前に先読みデータを取得することで、応答生成サーバ１０との通信回数を減らすことができ、発話に対する応答画面を表示する速度を向上させることが可能である。なお、この先読みデータの内容は、応答生成サーバ側で適宜変更することができるが、対話アプリケーションにおいて頻繁に使用されるデータであることが好ましい。
【００５５】
そして、表示制御部２５ｆは、発話に関する部分がテキストデータで構成され、その他の部分をＨＴＭＬデータで構成される画面データを作成する（ステップＳ２０５）。例えば、前述した図４の画面例を用いて説明すると、ユーザの発話した内容である「六本木から浅草駅」がテキストデータで構成され、ユーザの発話に対する応答の内容である「六本木から東京メトロ日比谷線・東武動物公園行、１７時１分出発の電車にお乗りください。」もテキストデータで構成され、「六本木駅」から「浅草駅」までの乗り換え情報がＨＴＭＬデータで構成されている。その後、表示制御部２５ｆは、作成した画面データを表示部２４に表示する（ステップＳ２０６）。
【００５６】
〔１−３．効果〕
上述してきたように、第１の実施形態に係る応答生成サーバ１０は、ユーザの発話に対する応答をＨＴＭＬ形式のデータに従って表示する対話アプリケーションを有するユーザ端末２０から、ユーザが発話した情報である発話情報を取得する。そして、応答生成サーバ１０は、取得された発話情報を用いて、サービスに対する検索条件を生成する。続いて、応答生成サーバ１０は、検索条件に基づいて取得したデータを受信すると、該データをＨＴＭＬ形式のデータに変換して発話情報に対する応答情報を生成し、該応答情報をユーザ端末２０に送信する。
【００５７】
これにより、第１の実施形態に係る応答生成サーバ１０では、ＨＴＭＬ形式のデータをユーザ端末２０に送信するので、ＨＴＭＬ形式のデータを受け付けたユーザ端末２０がＨＴＭＬ形式のデータに従って画面を表示することができ、ユーザからの発話を受け付けてから速やかに回答することを可能にする。また、画面レイアウトや画面表示項目の追加等のアプリケーションの機能追加がある場合でも、該機能追加については、応答生成サーバ１０で対応するため、ユーザ端末２０のアプリケーションを改善する必要がない。従って、ユーザにアプリケーションのバージョンアップ等、不要な作業を発生させず、また、バージョンアップ等の為の通信等にかかるコスト等を低減しつつ、ユーザからの発話を受け付けてから速やかに画面を表示することを可能にする。
【００５８】
また、第１の実施形態に係る応答生成サーバ１０は、発話情報から特定される応答フォーマットに応じて、検索条件に基づいてＡＰＩサーバ４０から取得したデータから応答に必要な情報を抽出することで、検索条件に基づいてＡＰＩサーバ４０から取得したデータをＨＴＭＬ形式のデータに変換する。
【００５９】
これにより、第１の実施形態に係る応答生成サーバ１０では、検索条件に基づいてＡＰＩサーバ４０から取得したデータから応答に必要な情報を抽出することで、検索条件に基づいてＡＰＩサーバ４０から取得したデータをＨＴＭＬ形式のデータに適切に変換することを可能にする。
【００６０】
また、第１の実施形態に係る応答生成サーバ１０は、ユーザ端末２０における表示に用いられる表示用データを先読みデータとして記憶する。そして、応答生成サーバ１０は、対話アプリケーションを起動したユーザ端末２０に対して、表示用データを送信する。そして、応答生成サーバ１０は、ユーザ端末２０に送信された表示用データを表示させる命令が記述されたＨＴＭＬ形式のデータに変換する。
【００６１】
これにより、第１の実施形態に係る応答生成サーバ１０では、対話アプリケーションを起動したユーザ端末２０に対して、予め表示用データを送信するので、発話に対する応答画面に表示用データが必要な場合であっても、ユーザの操作に応じて、都度、ユーザ端末２０が応答生成サーバ１０にアクセスする処理を行う必要がないので、ユーザからの発話を受け付けてから速やかに画面を表示することを可能にする。
【００６２】
また、第１の実施形態に係る応答生成サーバ１０は、発話情報とともに、発話情報と同じ発話者であるユーザの過去の発話情報に関する履歴情報をユーザ端末２０から取得し、取得された発話情報および履歴情報を用いて、サービスに対する検索条件を生成する。
【００６３】
これにより、第１の実施形態に係る応答生成サーバ１０は、発話情報および履歴情報を用いて、サービスに対する検索条件を生成するので、今回の発話から必要最小限の情報しか得られない場合であっても、ユーザの発話の意図を的確に把握し、適切な応答を行うことを可能にする。また、ユーザが発話するたびにユーザ端末２０から今回発話したテキストデータとともに、ユーザが発話した過去の発話の履歴情報を受信することができるため、応答生成サーバ１０がセッション管理のために、履歴情報を記憶する必要がなくなり、応答生成サーバ１０の処理負荷を軽減することができる。
【００６４】
（第２の実施形態）
本願に係る応答生成装置、応答生成方法および応答生成プログラムは、上述した第１の実施形態以外にも種々の異なる形態にて実施されてよい。第２の実施形態では、他の実施形態について説明する。
【００６５】
〔２−１．応答画面〕
上述した第１の実施形態においては、発話に対する応答画像は、テキストデータで構成される部分と、ＨＴＭＬデータで構成される部分とが含まれる場合を説明した。しかしながら、実施形態はこれに限定されるものではなく、例えば、応答画像は、全てＨＴＭＬデータで構成されるようにしてもよい。
【００６６】
〔２−２．その他〕
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【００６７】
また、上述した応答生成サーバ１０は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をＡＰＩ（Application  Programming  Interface）やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【００６８】
また、特許請求の範囲に記載した「手段」は、「部（section、module、unit）」や「回路」などに読み替えることができる。例えば、応答生成手段は、応答生成部や応答生成回路に読み替えることができる。
【符号の説明】
【００６９】
１０  応答生成サーバ
１１  通信部
１２  制御部
１２ａ  取得部
１２ｂ  送信部
１２ｃ  要求生成部
１２ｄ  変換部
１２ｅ  音声合成指示部
１２ｆ  応答生成部
１３  記憶部
２０  ユーザ端末
２１  通信部
２２  マイク
２３  スピーカ
２４  表示部
２５  アプリ
２５ａ  先読み要求部
２５ｂ  音声データ送信部
２５ｃ  テキストデータ受信部
２５ｄ  テキストデータ送信部
２５ｅ  ＨＴＭＬデータ受信部
２５ｆ  表示制御部
２６  メモリ
２６ａ  履歴記憶部
２６ｂ  位置情報記憶部
２６ｃ  先読みデータ記憶部
３０  音声認識サーバ
４１  路線ＡＰＩサーバ
４２  天気ＡＰＩサーバ
４３  Ｗｅｂ検索ＡＰＩサーバ
【図１】
0005886103.tif 000002
【図２】
0005886103.tif 000003
【図３】
0005886103.tif 000004
【図４】
0005886103.tif 000005
【図５】
0005886103.tif 000006
【図６】
0005886103.tif 000007
【図７】
0005886103.tif 000008
【図８】
0005886103.tif 000009
【図９】
0005886103.tif 000010
【図１０】
0005886103.tif 000011