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