【文献】
岡本 拓磨, 外3名,言語理解WFST並列接続に基づくクロスリンガル音声対話,日本音響学会2015年秋季研究発表会講演論文集CD-ROM,日本,一般社団法人 日本音響学会,2015年 9月 2日,第35-38頁,2-2-1
(58)【調査した分野】(Int.Cl.,DB名)
記録媒体に、一連の対話の情報であり、ユーザーの発話入力音声の音声認識結果である発話テキストと、当該発話テキストから生成した1以上の発話翻訳結果と、前記発話テキストに対するシステムの応答である応答テキストと、当該応答テキストから生成した応答翻訳結果とを有する対話情報が格納され、
クロスリンガルの音声対話システムにおける対話の進行中に、ユーザー端末からペアリングの指示を受信した場合に、当該ユーザー端末とのペアリングの処理を行い、当該ユーザー端末に、前記対話情報を送信する音声対話システム。
一連の対話の情報であり、ユーザーの発話入力音声の音声認識結果である発話テキストと当該発話テキストに対するシステムの応答である応答テキストとを有する対話情報が格納される対話情報格納部と、
2以上の異なる言語により発声され得る入力音声を受け付ける受付部と、
前記入力音声を音声認識し、音声認識結果である発話テキストを生成する音声認識部と、
前記発話テキストを用いて、当該発話テキストに対する応答である応答テキストを生成する対話制御部と、
前記発話テキストから1以上の発話翻訳結果を生成するとともに、前記応答テキストから1以上の応答翻訳結果を生成する翻訳部と、
前記応答テキストに応じた音声を取得する音声合成部と、
前記音声を出力する音声出力部と、
ユーザー端末からペアリングの指示を受信する指示受信部と、
指示受信部が前記ユーザー端末から前記指示を受信した場合に、前記対話情報格納部に格納されている対話情報を前記ユーザー端末に送信する対話情報送信部とを具備する音声対話装置。
請求項1に記載の音声対話システムまたは請求項2ないし4いずれか一項に記載の音声対話装置との間の一連の対話の途中において、ペアリングの指示を送信する端末送信部と、
前記指示の送信に応じて、今までの一連の対話の情報である対話情報を受信する端末受信部と、
ユーザーが使用する言語を識別する言語識別子が格納される端末格納部と、
前記端末受信部が受信した対話情報の中の、前記言語識別子で識別される言語の情報のみを出力する端末出力部とを具備するユーザー端末。
記録媒体に、一連の対話の情報であり、ユーザーの発話入力音声の音声認識結果である発話テキストと、当該発話テキストから生成した1以上の発話翻訳結果と、前記発話テキストに対するシステムの応答である応答テキストと、当該応答テキストから生成した応答翻訳結果とを有する対話情報が格納され、
クロスリンガルの音声対話システムにおける対話の進行中に、ユーザー端末からペアリングの指示を受信するステップと、
前記ペアリングの指示を受信した場合に、当該ユーザー端末とのペアリングの処理を行うステップと、
当該ユーザー端末に、前記対話情報を送信するステップとを具備する音声対話方法。
【発明を実施するための形態】
【0026】
以下、音声対話システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0028】
本実施の形態において、クロスリンガルの音声対話システムにおける対話の進行中に、記録媒体に、一連の対話の情報であり、ユーザーの発話である入力音声の音声認識結果である発話テキストと発話テキストに対するシステムの応答である応答テキストとを有する対話情報が格納され、対話の進行中に、ユーザー端末からペアリングの指示を受信した場合に、ユーザー端末とのペアリングの処理を行い、ユーザー端末に、対話情報を送信する音声対話システムについて説明する。
【0029】
また、本実施の形態において、音声対話システムとユーザー端末との同期がとれる音声対話システムについて説明する。
【0030】
また、本実施の形態において、ユーザーがユーザー端末に対して発話した場合、音声対話システムとの同期が解除され、対話履歴の分岐を発生し得る音声対話システムについて説明する。
【0031】
また、本実施の形態において、ユーザー端末上での操作により、分岐は、過去のやり取りに遡って行なうこともできる音声対話システムについて説明する。
【0032】
図1は、本実施の形態における音声対話システム1のシステム構成図の例である。音声対話システム1は、音声認識サーバー11、対話制御サーバー12、音声合成サーバー13、機械翻訳サーバー14、ペアリングサーバー15、対話クライアント16、ロボット17、および1または2以上のユーザー端末18を備える。なお、音声対話システム1は、ユーザー端末18を備えないと考えても良い。
【0033】
または、音声認識サーバー11、対話制御サーバー12、音声合成サーバー13、機械翻訳サーバー14、ペアリングサーバー15、対話クライアント16、およびユーザー端末18は、インターネットまたはLAN等のネットワークにより相互に通信可能である、とする。
【0034】
なお、音声対話システム1は現実の対話エージェントとしてロボット17を備え、それは対話クライアント16から制御できるものとする。
【0035】
また、音声認識サーバー11、対話制御サーバー12、音声合成サーバー13、機械翻訳サーバー14、ペアリングサーバー15、および対話クライアント16は、通常、いわゆるサーバー装置であり、例えば、クラウドサーバー、ASPサーバーであり、その種類は問わない。上記のサーバーは、いわゆるパーソナルコンピュータ等により実現されても良い。ロボット17は、対話を行うユーザーが話しかけるロボットである。ロボットは、人型であっても良いし、動物等を模したものであっても良い。つまり、ロボットの形状は問わない。ロボット17は、受け付けたユーザーの音声を対話クライアント16に渡し、対話クライアント16から受け付けた音声を出力する。また、対話クライアント16とロボット17とは一体となっていても良いことは言うまでもない。さらに、ユーザー端末18は、例えば、いわゆるスマートフォン、タブレット端末、パーソナルコンピュータ、携帯電話等であり、その種類は問わない。なお、ロボット17を、適宜、対話ロボット17という。
【0036】
図2は、本実施の形態における音声対話システム1を構成する音声認識サーバー11のブロック図である。音声認識サーバー11は、音声受付部111、言語識別部112、音声認識エンジン113、および発話テキスト送出部114を備える。ここでの音声認識エンジン113は、日本語、英語などの2以上の言語に対応する言語毎の音声認識エンジン113を有するが、一つの音声認識エンジン113が複数の言語の音声に対して音声認識処理を行っても良いことは言うまでもない。
【0037】
音声認識サーバー11は、2以上の異なる言語により発声され得る入力音声を受け付け、入力音声を音声認識し、音声認識結果である発話テキストを生成する。さらに詳細には、音声認識サーバー11は、受け付けた音声波形に対応した言語を特定するとともに、認識結果の生成を行ない、言語識別結果である言語識別子と認識結果とのセットをクライアントに送信する。なお、ここで言うクライアントは、サービス(ここでは、音声認識処理)を依頼する装置である。クライアントは、例えば、対話クライアント16であるが、ユーザー端末18等でも良く、問わない。
【0038】
また、音声認識サーバー11は、ユーザー端末18からの入力音声も受け付ける。ここでの受け付けとは、通常、受信である。ただし、受け付けとは、図示しないマイクからの入力音声の受け付けでも良い。入力音声は、ユーザーがロボット17またはユーザー端末18に対して発生した音声のデータである。なお、音声認識サーバー11が行う音声認識処理は種々のアルゴリズムが考えられ、音声認識処理は公知技術であるので、詳細な説明は省略する。
【0039】
以下音声認識サーバー11の詳細について述べる。音声認識サーバー11を構成する音声受付部111は、入力音声を受け付ける。
【0040】
言語識別部112は、音声受付部111が受け付けた入力音声から、言語を識別する処理を行い、言語識別子を取得する。言語識別子は、言語を識別する情報であれば良く、そのデータ構造は問わない。言語識別子は、例えば、「日本語」「英語」「中国語」「韓国語、或いは「日」「英」「中」「韓」等である。なお、言語識別部112の処理は公知技術であるので、詳細な説明は省略する。
【0041】
音声認識エンジン113は、音声受付部111が受け付けた入力音声を音声認識し、音声認識結果である発話テキストを取得する。
【0042】
発話テキスト送出部114は、音声認識エンジン113が取得した発話テキストを送出する。発話テキスト送出部114は、通常、発話テキストをクライアントに送信する。なお、ここでのクライアントは、例えば、音声認識サーバー11、対話制御サーバー12、対話クライアント16、ユーザー端末18であるが、他の装置でも良い。
【0043】
図3は、対話制御サーバー12のブロック図である。対話制御サーバー12は、発話テキスト受付部121、対話制御モジュール122、および応答テキスト送出部123を備える。対話制御サーバー12は、例えば、後述する分岐が発生した場合に対応できるように、複数の各対話制御モジュール122が存在し得る。
【0044】
対話制御サーバー12は、音声認識サーバー11が生成した発話テキストを受け付け、発話テキストに対する応答である応答テキストを生成する。対話制御サーバー12は、ユーザー端末18からの入力音声が受け付けられた場合も、当該入力音声に対応する発話テキストから、発話テキストに対する応答である応答テキストを生成する。
【0045】
また、対話制御サーバー12は、過去の発話テキストと応答テキストとを対話履歴として保存しており、クライアントからのリクエストに応じてそれの送信も行なうことができる。対話制御および履歴の管理はクライアントごとに行なう必要があるため、対話制御サーバーは、通常、各クライアントに対応した対話制御モジュールを保持する。なお、ここでのクライアントは、例えば、ユーザー端末18であるが、他の装置でも良い。
【0046】
対話制御サーバー12は、一連の対話の対話情報の中の一の箇所を示す箇所情報をも受け付けても良い。かかる場合、対話制御サーバー12は、一連の対話の対話情報の中の、当該箇所情報が示す箇所までの対話情報を用いて、受け付けた発話テキストに対する応答である応答テキストを生成できる。対話情報は、一連の対話の履歴の情報である。対話情報は、通常、発話テキストと1以上の発話翻訳結果と応答テキストと1以上の応答翻訳結果とを有する。発話テキストは、ユーザーの発話である入力音声の音声認識結果である。発話翻訳結果は、発話テキストの言語以外の言語への発話テキストの翻訳結果である。応答テキストは、発話テキストに対するシステムの応答である。応答翻訳結果は、応答テキストの言語以外の言語への応答テキストの翻訳結果である。
【0047】
対話制御サーバー12を構成する発話テキスト受付部121は、発話テキストを受け付ける。発話テキスト受付部121は、通常、音声認識サーバー11から発話テキストを受信する。
【0048】
対話制御モジュール122は、発話テキスト受付部121が受け付けた発話テキストから、当該発話テキストが示す発話に対応する応答である応答テキストを生成する。対話制御モジュール122のアルゴリズムは問わない。対話制御モジュール122について、例えば、特開2013−168169、特開2011−248549、特開2009−211629、特願2016−148984等に記載されている、発話テキストから応答テキストを生成するアルゴリズムが利用可能である。また、発話テキストから応答テキストを生成するアルゴリズムについて、種々の公知のアルゴリズムが利用可能である。
【0049】
図4は、対話制御サーバー12を構成している対話制御モジュール122のブロック図の例である。対話制御モジュール122は、例えば、対話シナリオ格納部1221、データベース1222、対話履歴格納部1223、言語理解部1224、シナリオ制御部1225、および応答生成部1226を備える。なお、
図4では、対話制御モジュール122は、各言語に対応する複数の言語理解部1224を有するが、一つの言語理解部1224が複数の言語に対する処理を行っても良い。
【0050】
対話制御モジュール122を構成する対話シナリオ格納部1221は、対話制御のための対話シナリオが格納されている。対話シナリオは、対話のシナリオ、つまり対話の流れを示す情報である。
【0051】
対話シナリオは、例えば、以下の対話構造情報である。対話構造情報とは、対話の繋がりを示す情報であって、対話連結情報を1以上有する。対話連結情報は、第一話者(通常、ユーザー)の入力音声を抽象する第一対話行為タグと、第二話者(通常、音声対話システム1)の出力音声を抽象する第二対話行為タグとを有する。ここで、第一話者は、例えば、音声対話システム1を利用するユーザーを示す。第二話者は、音声対話システム1内の仮想的な話者を示す。また、第一対話行為タグと第二対話行為タグのどちらかは空でも良い。また、入力音声又は出力音声の抽象とは、入力音声又は出力音声を構成する文の意義、意味などから、入力音声又は出力音声を種類に分類することをいう。なお、入力音声又は出力音声を種類に分類することは、入力音声又は出力音声に対して、複数の種類の中の1の種類を決定することである。そして、入力音声又は出力音声を抽象した対話行為タグは、対話行為の種類を示す情報である。対話行為の種類を示す情報は、例えば、「q.spot」「q.weather」「q.how−to−take」「q.cost」「thanks」などがある。q.spotは観光場所を尋ねる質問、q.weatherは今日の天気を尋ねる質問、q.how−to−takeは目的地までどのように行くかを尋ねる質問、q.costは目的地までに必要な金額を尋ねる質問、thanksはお礼を表す対話行為タグである。第二話者の出力音声は、通常、第一話者の入力音声に対応する応答の音声などである。対話連結情報は、始端ノード識別子と終端ノード識別子と第一対話行為タグと第二対話行為タグとを有しても良い。また、対話連結情報は、始端ノード識別子で識別されるノードから終端ノード識別子で識別されるノードへの遷移の確率を示す情報である重み情報をも有することは好適である。対話連結情報は、動作を示す情報である動作識別子をもさらに有することは好適である。また、対話連結情報は、始端ノード識別子と終端ノード識別子を有し、第一対話行為タグ、第二対話行為タグ、動作識別子のうちの1以上の情報とを有しても良い。動作識別子とは、例えば、関数名、メソッド名、実行モジュール名などである。ここで、ノードは、概念的な対話の状態を示すものである。なお、始端ノード識別子とは、対話の始端を示すノードを識別する情報である。また、終端ノード識別子とは、対話の終端を示すノードを識別する情報である。始端ノード識別子と、終端ノード識別子とにより、1回の対話のキャッチボール(質問と回答など)が実現していることとなる。なお、対話の繋がりを示す情報とは、対話連結情報に含まれる始端ノード識別子と、対話連結情報に含まれる終端ノード識別子とにより繋がりが示されている情報でも良いし、対話連結情報間を有向リンクにより繋げることにより、繋がりが示されている情報でも良い。また、動作識別子は、第一話者が入力した文に対する処理を行う前処理の動作識別子、第二話者の出力文に対する処理を行う後処理の動作識別子、その他の一般的な処理を行う動作識別子など、いくつかの種類があり、適用される文や情報が異なっても良い。
【0052】
データベース1222は、応答テキストを生成するための情報を有する。かかる情報は、例えば、交通機関等の経路を示す情報、交通機関における交通費の情報、経路の所要時間の情報等である。ただし、かかる情報の種類や内容は問わない。
【0053】
対話履歴格納部1223は、対話の履歴、即ち対話情報を格納している。この対話情報は、例えば既に出現した対話文である。なお、対話履歴格納部1223は、図示しない外部の記録媒体に存在していても良い。対話履歴格納部1223が外部の記録媒体に存在する場合、対話制御サーバー12から当該記録媒体にアクセス可能である。
【0054】
言語理解部1224は、発話テキストの理解のための処理を行う。言語理解部1224は、基本的に対応言語ごとに存在する。言語理解部1224は、例えば、以下の2つの処理を行なう。(1)音声認識結果である発話テキストを言語非依存のコンセプトシンボルに変換する。(2)発話テキストから、スポット名や時刻といった、応答の生成で鍵となる語句を抽出する。
【0055】
シナリオ制御部1225は、言語理解部1224の処理結果を用いて、応答テキストを生成するためのコマンドを生成する。シナリオ制御部1225は、例えば、言語理解部1224によって生成されたコンセプトシンボルおよびキーワードを入力として、対話シナリオ上で状態を遷移させつつ、応答生成のためのコマンドを生成する。
【0056】
応答生成部1226は、シナリオ制御部1225によって生成された応答生成用コマンドから、応答テキストを生成する。なお、本発明のクロスリンガルの音声対話システム1では、応答を全対応言語で表示するため、応答テキストは全ての対応言語の分を生成する。
【0057】
応答生成においては、ユーザーの発話(例えば、質問)の内容によっては経路・交通費・所要時間などを調べる必要があるが、応答生成部1226は、データベース1222を必要に応じて参照し、経路・交通費・所要時間などの情報を取得し、当該情報を用いて、応答テキストを生成する。
【0058】
図3の応答テキスト送出部123は、応答生成部1226が生成した応答テキストを送出する。ここでの送出は、通常、送信である。ただし、送出は、他のモジュールへの引き渡し等でも良い。
【0059】
図5は、音声合成サーバー13のブロック図である。音声合成サーバー13は、応答テキスト受付部131、音声合成エンジン132、および音声送出部133を備える。なお、
図5では、音声合成サーバー13は、各言語に対応する複数の音声合成エンジン132を有するが、一つの音声合成エンジン132が複数の言語に対する音声合成処理を行っても良い。
【0060】
音声合成サーバー13は、応答テキストに応じた音声を生成する。音声合成サーバー13は、クライアントから送信されてきた応答テキストに対応した音声波形を生成し、クライアントに送信する。なお、ここでのクライアントは、例えば、対話制御サーバー12であるが、他の装置でも良い。
【0061】
音声合成サーバー13を構成する応答テキスト受付部131は、対話制御サーバー12から送出された応答テキストを受け付ける。
【0062】
音声合成エンジン132は、応答テキスト受付部131が受け付けた応答テキストに対して音声合成処理を行い、音声を取得する。
【0063】
音声送出部133は、音声合成エンジン132が取得した音声を、通常、対話クライアント16へ送出する。
【0064】
図6は、機械翻訳サーバー14のブロック図である。機械翻訳サーバー14は、テキスト受付部141、機械翻訳エンジン142、および翻訳結果送出部143を備える。なお、
図6では、機械翻訳サーバー14は、全言語対に対応する複数の機械翻訳エンジン142を有するが、一つの機械翻訳エンジン142が複数の言語対に対する機械翻訳処理を行っても良い。
【0065】
機械翻訳サーバー14は、発話テキストを当該発話テキストの言語以外の1以上の言語に翻訳し、1以上の発話翻訳結果を取得する。また、機械翻訳サーバー14は、応答テキストを当該応答テキストの言語以外の1以上の言語に翻訳し、1以上の応答翻訳結果を取得する。
【0066】
詳細には、機械翻訳サーバー14は、例えば、クライアントから送信された翻訳元言語のテキストおよび翻訳元言語のID(=言語識別子)と1以上の翻訳先言語のIDとから、翻訳先言語のテキストを生成し、クライアントに送信する。機械翻訳サーバー14では、実況中継ディスプレイにおいて、ユーザー発話を元の言語以外の全対応言語で表示するために補助的に用いている。機械翻訳サーバー14の内部は
図6の通りであり、各対応言語の一方を翻訳元言語、もう一方を翻訳先言語とする機械翻訳エンジン142を具備する。対応言語数をNとすると、機械翻訳エンジン142は、N×(N−1)個用意してもよい。なお、機械翻訳サーバー14は、公知技術であるので、詳細な説明を省略する。なお、ここでのクライアントは、例えば、音声認識サーバー11、対話制御サーバー12、ユーザー端末18であるが、他の装置でも良い。
【0067】
テキスト受付部141は、音声認識サーバー11からの発話テキスト並びに対話制御サーバー12からの応答テキストを受け付ける。
【0068】
機械翻訳エンジン142は、テキスト受付部141が受け付けたテキストに対して、機械翻訳処理を行い、目的言語のテキストを取得する。かかるテキストは、1以上の発話翻訳結果または1以上の応答翻訳結果である。
【0069】
翻訳結果送出部143は、機械翻訳エンジン142が取得した翻訳結果のテキストを送出する。ここでの送出は、クライアントへの送信である。
【0070】
図7は、ペアリングサーバー15のブロック図である。ペアリングサーバー15は、例えば、ペアリング情報格納部151、指示受信部152、ペアリング情報蓄積部153、およびペアリング関連情報送出部154を備える。
【0071】
ペアリングサーバー15は、対話クライアント16(およびロボット17)とユーザー端末18との間でペアリングを行なうために用いる。ペアリングサーバー15は、通常、ユーザー端末18からのペアリングの指示を受信し、当該指示に応じたペアリングの処理を行う。ペアリングサーバー15は、例えば、ユーザー端末18からのペアリングの指示を受信し、指示に応じたペアリング情報を蓄積する。ここで、ペアリングの指示は、例えば、ユーザー端末18を識別する端末識別子、または対話情報が格納されている記憶領域のURL等を含む。
【0072】
ペアリングサーバー15が行うペアリングでは既存の技術が利用可能であるが、例えば、下記のような方法(1)〜(4)を用いる。
(1)予め、ペアリングサーバー15にURLを付与しておく。また、対話クライアント16とペアリングサーバー15とは予めセッションを確立しておき、両者間でデータのやり取りができるようにしておく。
(2)対話クライアント16またはロボット17に、そのURLを埋め込んだコード(例えば、QRコード(登録商標)、バーコード等)、またはそれに類するものを印刷しておく。
(3)ユーザー端末18上でコードリーダーのアプリまたはそれに類するものを起動し、ユーザー端末18のカメラでそのコードを撮影すると、ユーザー端末18とペアリングサーバー15の間でセッションが確立される。
(4)対話クライアント16とペアリングサーバー15との間は既にセッションが確立されているため、(3)と合わせて対話クライアント16とユーザー端末18との間でペアリングが完成したことになる。
【0073】
ペアリングサーバー15を構成するペアリング情報格納部151は、ユーザー端末18とのペアリングを示す情報である1以上のペアリング情報が格納される。ペアリング情報は、例えば、ユーザー端末18の端末識別子である。
【0074】
指示受信部152は、例えば、端末識別子を有するペアリングの指示を受信する。指示受信部152は、通常、ユーザー端末18から指示を受信する。
【0075】
ペアリング情報蓄積部153は、指示受信部がペアリングの指示を受信した場合に、指示に対応するペアリング情報をペアリング情報格納部151に蓄積する。
【0076】
ペアリング関連情報送出部154は、対話クライアント16とユーザー端末18との間でペアリングを行なうためのペアリング関連情報を送出する。ペアリング関連情報のデータ構造等は問わない。ペアリング関連情報は、例えば、対話クライアント16がユーザー端末18にテキストを送信するために用いる、端末識別子である。
【0077】
図8は、対話クライアント16およびロボット17のブロック図である。対話クライアント16は、音声受付部161、音声出力部162を備える。
【0078】
対話クライアント16は、音声合成サーバー13が取得した音声を受け付け、出力する。ここでの出力は、通常、ロボット17への引き渡しである。また、対話クライアント16は、ロボット17から入力音声を受け付ける。
【0079】
対話クライアント16は、例えば、主に以下の処理を行なうモジュールである。
(1)ロボット17のマイクロホンから音声波形を取得し、それを音声認識サーバー11に送信し、音声認識結果(応答テキスト)と言語識別子とを受信する。
(2)音声認識結果と言語識別子とを対話制御サーバー12に送信し、全言語分の応答テキストを受信する。
(3)全言語分の応答テキストの内、言語識別子と一致する言語に対応するものを音声合成サーバー13に送信し、そのテキストに対応した音声波形を受信する。
(4)受信した音声波形をロボット17のスピーカーから出力する。
(5)必要に応じて、ユーザー発話とシステム応答などからなる対話履歴を対話制御サーバー12から受信し、その情報を加工した上で、ディスプレイへの表示やユーザー端末18への送信を行なう。
【0080】
対話クライアント16を構成する音声受付部161は、入力音声を受け付ける。ここでの受け付けは、通常、ロボット17からの受信である。
【0081】
音声出力部162は、音声受付部161が受け付けた入力音声を音声認識サーバー11に送出する。また、音声出力部162は、音声合成サーバー13から受け付けた音声をロボット17に送出する。
【0082】
ロボット17は、ユーザーから入力音声を受け付ける。また、ロボット17は、応答テキストに応じた音声を出力する。ここでの出力は、通常、音声出力である。ロボット17がディスプレイを有する場合、発話テキスト、1以上の発話翻訳結果、応答テキスト、1以上の応答翻訳結果を、当該ディスプレイに表示することは好適である。なお、かかるディスプレイを、実況中継ディスプレイという。
【0083】
図9は、ユーザー端末18のブロック図である。ユーザー端末18は、端末格納部181、端末受付部182、端末処理部183、端末送信部184、端末受信部185、および端末出力部186を備える。
【0084】
ユーザー端末18は、対話に参加するユーザーが保持する端末である。ユーザー端末18は、通常、実況中継ディスプレイに表示されている文の中のユーザーが理解できる言語の文の表示を行なう他、仮想エージェントの持ち出しや同期・分岐などを行なうことができる。仮想エージェントの持ち出しや同期・分岐などの詳細については、後述する。
【0085】
ユーザー端末18を構成する端末格納部181は、各種の情報を格納している。各種の情報とは、例えば、ユーザーが使用する言語を識別する言語識別子、ユーザー端末18を識別する端末識別子等である。
【0086】
端末受付部182は、入力音声やペアリングの指示等の各種の情報や指示等を受け付ける。各種の情報や指示等の入力手段は、マイク、カメラ、タッチパネル、メニュー画面によるもの等、何でも良い。端末受付部182は、入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0087】
端末処理部183は、各種の処理を行う。各種の処理とは、例えば、受信された対話情報から、端末格納部181の言語識別子に対応するテキストを取得するフィルタリング処理、端末受付部182が受け付けた情報や指示等から送信する情報や指示等を構成する処理、端末受信部185が受信した情報を表示するための情報に構成する処理等である。
【0088】
端末送信部184は、各種の情報や指示等を送信する。端末送信部184は、例えば、音声対話システム1との間の一連の対話の途中において、ペアリングの指示を送信する。
【0089】
端末受信部185は、各種の情報を受信する。端末受信部185は、例えば、ペアリングの指示の送信に応じて、今までの一連の対話の情報である対話情報を受信する。
【0090】
端末出力部186は、端末受信部185が受信した情報をフィルタリングして出力する。端末出力部186は、端末受信部185が受信した対話情報の中の、言語識別子で識別される言語の情報のみを出力することは好適である。つまり、端末出力部186は、端末処理部183が行ったフィルタリング処理の結果、抽出されたテキストのみを出力することは好適である。
【0091】
言語識別部112、音声認識エンジン113、言語理解部1224、シナリオ制御部1225、応答生成部1226、音声合成エンジン132、機械翻訳エンジン142、ペアリング情報蓄積部153、および端末処理部183は、通常、MPUやメモリー等から実現され得る。言語識別部112等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0092】
音声受付部111、発話テキスト受付部121、応答テキスト受付部131、テキスト受付部141、指示受信部152、音声受付部161、および端末受信部185は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【0093】
発話テキスト送出部114、応答テキスト送出部123、音声送出部133、翻訳結果送出部143、ペアリング関連情報送出部154、音声出力部162、および端末送信部184は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【0094】
端末出力部186は、ディスプレイやスピーカー等の出力デバイスとそのドライバーソフトによって構成されている。
【0095】
次に、音声対話システム1の動作について説明する。まず、対話制御サーバー12の動作について、
図10のフローチャートを用いて説明する。
【0096】
(ステップS1001)発話テキスト受付部121は、発話テキストを受け付けたか否かを判断する。発話テキストを受け付けた場合はステップS1002に行き、発話テキストを受け付けない場合はステップS1006に行く。
【0097】
(ステップS1002)対話制御モジュール122は、ステップS1001で受け付けられた発話テキストから、当該発話テキストに対応する応答テキストを生成する。
【0098】
(ステップS1003)応答テキスト送出部123は、ステップS1002で生成された応答テキスト等を送出する。応答テキスト等とは、通常、応答テキスト、または発話テキストと応答テキストである。応答テキスト送出部123は、例えば、応答テキストを音声合成サーバーと対話クライアント16とに送出する。また、応答テキスト送出部123は、例えば、発話テキストと応答テキストとを機械翻訳サーバー14に送出する。
【0099】
(ステップS1004)対話制御サーバー12のテキスト受付部121は、機械翻訳サーバー14の処理結果である翻訳結果を受け付けたか否かを判断する。翻訳結果を受け付けた場合はステップS1005に行き、翻訳結果を受け付けない場合はステップS1004を繰り返す。なお、翻訳結果とは、1以上の発話翻訳結果、または1以上の発話翻訳結果と1以上の応答翻訳結果である。また、発話翻訳結果や応答翻訳結果は、通常、言語を識別する言語識別子に対応付いている。
【0100】
(ステップS1005)対話制御サーバー12の図示しない処理部は、例えば、対話制御モジュール122の対話履歴格納部1223に、発話テキスト、応答テキスト、および翻訳結果を蓄積し、ステップS1001に戻る。
【0101】
(ステップS1006)対話制御サーバー12の図示しない受付部は、ペアリング関連情報を受け付けたか否かを判断する。ペアリング関連情報を受け付けた場合はステップS1007に行き、ペアリング関連情報を受け付けない場合はステップS1009に行く。なお、ペアリング関連情報は、対話クライアント16(およびロボット17)とユーザー端末18との間でペアリングが行われた場合に受け付けられる。
【0102】
(ステップS1007)対話制御サーバー12の図示しない処理部は、今までの一連の対話の内容を示す対話情報を、対話制御モジュール122の対話履歴格納部1223から取得する。
【0103】
(ステップS1008)対話制御サーバー12の図示しない送信部は、ペアリング関連情報に対応するユーザー端末18に、ステップS1007で取得された対話情報を送信し、ステップS1001に戻る。
【0104】
(ステップS1009)対話制御サーバー12の図示しない受信部は、ユーザー端末18からの情報を受け付けたか否かを判断する。ユーザー端末18からの情報を受け付けた場合はステップS1010に行き、ユーザー端末18からの情報を受け付けない場合はステップS1001に戻る。なお、受け付けられる情報は、通常、発話テキストと箇所情報とを含む。
【0105】
(ステップS1010)対話制御モジュール122は、ユーザー端末18からの情報から箇所情報を取得する。
【0106】
(ステップS1011)対話制御モジュール122は、ステップS1010で取得した箇所情報に対応する箇所までの対話情報を用いて、ユーザー端末18からの情報に含まれる発話テキストから、応答テキストを生成する。
【0107】
(ステップS1012)対話制御サーバー12の図示しない送信部は、情報を送信してきたユーザー端末18に、例えば発話テキストも含む応答テキスト等を送信する。
【0108】
(ステップS1013)対話制御サーバー12の図示しない処理部は、発話テキストと応答テキストを端末識別子に対応付けて蓄積し、ステップS1001に戻る。
【0109】
なお、
図10のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0110】
次に、ユーザー端末18の動作について、
図11のフローチャートを用いて説明する。
【0111】
(ステップS1101)端末受付部182は、ペアリングの指示を受け付けたか否かを判断する。ペアリングの指示を受け付けた場合はステップS1102に行き、ペアリングの指示を受け付けない場合はステップS1106に行く。なお、例えば、ユーザー端末18の図示しないカメラを経由したQRコードの読み込み、Bluetooth(登録商標)による通信の開始により、ペアリングの指示が受け付けられる。
【0112】
(ステップS1102)端末送信部184は、ステップS1101で受け付けられたペアリングの指示をペアリングサーバー15に送信する。
【0113】
(ステップS1103)端末受信部185は、ステップS1102におけるペアリングの指示の送信に応じて、対話情報を受信したか否かを判断する。対話情報を受信した場合はステップS1104に行き、対話情報を受信しない場合はステップS1103を繰り返す。
【0114】
(ステップS1104)端末処理部183は、ステップS1103で受信された対話情報から、端末格納部181の言語識別子に対応するテキストを取得するフィルタリング処理を行う。
【0115】
(ステップS1105)端末出力部186は、ステップS1104で取得されたテキストである対話情報を出力し、ステップS1101に戻る。
【0116】
(ステップS1106)端末受信部185は、テキストを受信したか否かを判断する。テキストを受信した場合はステップS1107に行き、テキストを受信しない場合はステップS1109に行く。なお、ここでのテキストは、例えば、ペアリング後、他のユーザーとロボット17との間で行われるリアルタイムの対話の情報であり、ロボット17での表示とユーザー端末18での表示が同期している場合の対話の情報である。また、ここでのテキストは、例えば、ペアリング後、ユーザー端末18が、ロボット17との同期から分岐して、ユーザー独自に音声対話システム1と対話する場合の対話の情報である。
【0117】
(ステップS1107)端末処理部183は、ステップS1106で受信されたテキストから、端末格納部181の言語識別子に対応するテキストを取得するフィルタリング処理を行う。
【0118】
(ステップS1108)端末出力部186は、ステップS1107でフィルタリングされたテキストを出力し、ステップS1101に戻る。
【0119】
(ステップS1109)端末受付部182は、ユーザーの入力音声を受け付けたか否かを判断する。入力音声を受け付けた場合はステップS1110に行き、入力音声を受け付けない場合はステップS1101に戻る。
【0120】
(ステップS1110)端末処理部183は、箇所情報を取得する。この箇所情報は、例えば、一連の対話の対話情報の中で、現在、フォーカスされている発話テキストまたは応答テキストの箇所を示す情報である。また、箇所情報は、例えば、出力されている対話情報の中で、ユーザーが指示した発話テキストまたは応答テキストの箇所を示す情報でも良い。
【0121】
(ステップS1111)端末送信部184は、ステップS1109で受け付けられた入力音声、およびステップS1110で取得された箇所情報を送信し、ステップS1101に戻る。なお、端末送信部184は、入力音声と箇所情報とを、通常、対話制御サーバー12に送信する。
【0122】
なお、
図11のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0123】
以下、本実施の形態における音声対話システム1の具体的な動作について説明する。音声対話システム1のシステム構成図は
図1である。
【0124】
上述したように、従来の音声対話システムにおける実況中継ディスプレイには、例えば、[発明が解決しようとする課題]で述べた(A)から(C)の課題があった。
【0125】
そして、音声対話システム1は、課題(A)と(B)とを解決するために以下の解決手段を講じる。つまり、音声対話システム1では、ユーザー所有のユーザー端末18上に実況表示ディスプレイと同等の表示をする機構を備える。その表示の例を
図12に示す。
図12の1201は、従来の実況中継ディスプレイであり、ユーザーの発話(ユーザー発話)とロボットの形で具現化されたシステムからの応答(システム応答)とが全対応言語(
図12では、日英中韓の4言語)で表示されている。なお、1201の星印は、実際に発話された言語の文字列である。
【0126】
一方、ユーザー端末18上では、その端末の表示言語設定などの情報(上述した言語識別子と同意義)を用いて、ユーザー端末18の所有者が通常使用する言語のみ(1202では日本語)で表示する。また、最近のユーザー発話およびシステム応答だけでなく、対話のセッションが開始されてから現在までのユーザー発話およびシステム応答も表示する。実況中継ディスプレイと異なり、ユーザー端末18はユーザー各人が操作できるため、スクロール等により過去の対話のやり取りをユーザー端末18の画面上で、しかも自分の理解できる言語で確認することができる。
【0127】
以上により、ディスプレイを持たない音声対話システム1でも、ユーザーは現在どのような対話がなされているかを理解することができる。また、実況中継ディスプレイで表示可能な範囲よりも前の対話のやり取りも確認できるため、音声対話システム1、特に、ロボット17のある場所に途中からやってきたユーザーであっても、それまでどのような対話がなされていたかを理解した上で対話に参加することが容易になる。
【0128】
なお、音声対話システム1と自分のユーザー端末18との間で連携を行なうためには、両者の間でペアリングのような操作が必要である。ペアリングの手段としては、例えば、以下のような既存の(1)または(2)の方法を用いることができる。
(1)所定のURLを埋め込んだQRコードを対話システム(ロボット17本体など)に印字しておき、それをユーザー端末18のQRコードリーダーで読み込ませると、ユーザー端末18は所定のURLにアクセスし、対話システムとのペアリングが行なわれる。
(2)Bluetoothのペアリングの機構を利用する。
【0129】
また、音声対話システム1では、課題(C)を解決するために以下の解決手段を講じる。つまり、音声対話システム1で、ロボット17等に対応した仮想エージェントを用意し、その仮想エージェントの「持ち出し」および「同期・分岐」機構を導入する。なお、仮想エージェントとは、ユーザー端末18上で音声対話を行なうアプリ内に存在するキャラクターである。なお、以下では、現実の対話システムを対話ロボット、ユーザー端末18内にいるキャラクターを仮想エージェントと呼んで区別する。
【0130】
そして、音声対話システム1とユーザー端末18との間でペアリングが行なわれると、対話ロボット17とユーザー端末18とが同期する状態となる。そして、ユーザー端末18の画面には実況中継ディスプレイと同内容であり、通常、ユーザーが理解できる言語の文が表示される。なお、ユーザー端末18で表示される文の言語はユーザー端末18の表示言語設定に合わせる。また、ユーザー端末18には、
図12で説明した通り、過去の対話のやり取りも表示される。
【0131】
同期している状態で、ユーザーが対話ロボット17に対して発話した場合、応答はロボット17から、ユーザー発話と同じ言語で出力される。それと共に、実況中継ディスプレイには、ユーザー発話とロボット応答とが全言語で表示され、それと同期してユーザー端末18上にも、ユーザー発話とロボット応答とが表示される。ユーザーが対話ロボットに対して発話する限りは、対話ロボットと仮想エージェントとは同期し続ける。
【0132】
一方、同期している状態で、ユーザーがユーザー端末18に向かって発話した場合は、同期は解除され、応答はユーザー端末18からのみ出力される。そして、ユーザー端末18内に仮想エージェント1301が存在するようになる。これを「仮想エージェントの持ち出し」と呼ぶ。また、この段階では、ユーザー端末18の表示は、
図13のような状態である。なお、仮想エージェントとは、システムを模したものであり、ユーザー端末18上に表示される仮想的な対話ロボットである。
【0133】
そして、かかる状態のユーザー端末18の表示例が
図13である。
図13では、ユーザーがユーザー端末18に向かって発話した文が表示される前に、仮想エージェント1301がユーザー端末18に表示されているが、以下の
図14に示すように、ユーザー端末18に向かって発話した文等も一緒に、または当該文等の表示の後に仮想エージェント1301が表示されても良い。
【0134】
そして、ユーザーがユーザー端末18に向かって発話した文等も表示されている状態が
図14である。
図14では、ユーザーがユーザー端末18に対して日本語で「他のルートはありますか」と発話した状況を想定している。それまでの対話は京都駅までの行き方についてだったため、音声対話システム1はユーザーが京都駅までの別のルートを聞いていると理解し、そのルートを応答として出力する。ただし、この出力はユーザー端末18上でのみ行なわれ、対話ロボット17および実況中継ディスプレイからは出力されない。すなわち実況中継ディスプレイは
図12の1201の状態から変化しない。
【0135】
上記では、ユーザー端末18に向かって発話され、同期が解除された場合(即ち、ユーザー端末18が分岐された場合)に、仮想エージェントを出現させ、ユーザーに分岐状態にあることを視認させる態様を説明した。
【0136】
しかしながら、音声対話システム1とユーザー端末18との間でペアリングが行なわれた際に、ユーザー端末18上に仮想エージェントを表示させ、その後ユーザー端末18が分岐された場合には、仮想エージェントの表示形態(色彩等)を変更して、ユーザーが分岐状態にあることを視認できるようにしても良い。
【0137】
以下、「同期・分岐」について、さらに説明する。まだ、対話に参加していないユーザー(
図14では英語、日本語、中国語をしゃべる3人のユーザーが既に対話に参加しているという想定なので、4人目のユーザーということになる)は、ユーザー端末18上でこれまでの対話のやり取りを確認した後、対話に参加したい場合は対話ロボット17に対して発話すればよい。一方、これまでの対話の流れを引き継いだ発話をしたいと思いながらも既存のユーザーと対話ロボット17との間の対話に影響を与えたくない場合は、既存のユーザーには聞こえないように自分のユーザー端末18に対して発話すればよい。後者の場合、対話ロボット17と仮想エージェントとで分岐が発生する。一度分岐した後は、ユーザーは対話ロボット17と同じ場所にいる必要はなく、別の場所に行って対話を続けることができる。
【0138】
さらに、同じセッションの対話であれば、過去の任意のやり取りに遡って分岐することが可能である。このことを、
図15を用いて説明する。
【0139】
図15においては、京都駅への行き方についての対話が行なわれる前に、奈良駅への行き方についての対話がなされていたとする。そしてユーザー(
図14と同様に、また対話に参加していない4人目のユーザー)は、ユーザー端末18上で過去にそのような対話がなされていたことを確認し、奈良駅までの交通費について追加で質問したくなったとする。
【0140】
現時点では対話の内容は
図14に示すように京都駅への行き方についての対話に変化してしまっているため、ここで対話ロボット17に対して「いくらですか」と発話しても、対話ロボット17トは奈良駅ではなく京都駅までの交通費を答えてしまう。なお、対話ロボット17に対して「奈良駅までいくらかかりますか」と発話すれば、ロボットは答えてくれるだろうが、そこで対話の話題が切り替わってしまうため、京都駅までのルートについての話題を続けたかった既存のユーザーからは不評を買うであろう。従来のシステムでは、新規ユーザーはそのことを懸念し、質問自体を断念してしまう可能性もあった。
【0141】
そこでユーザーは、ユーザー端末18上で奈良駅への行き方が話題となっていた時点の対話のやり取り(
図15ではロボット応答の「奈良駅にはバスと電車で行けます。・・・(以下略)」かユーザー発話の「奈良駅への行き方を教えて」)を指定しながら「いくらですか」と発話する。かかる場合、上述した箇所情報は、ロボット応答「奈良駅にはバスと電車で行けます。・・・(以下略)」またはユーザー発話「奈良駅への行き方を教えて」を識別する情報である。
【0142】
すると対話システムは、その時点で対話ロボットと仮想エージェントとを分岐させる。その結果、その応答である「580円です」がユーザー端末18のみから出力される。それと同時に、仮想エージェントにおいては、「奈良駅にはバスと電車で行けます。・・・(以下略)」の次以降(
図15では「京都駅への行き方を教えて」以降)のやり取りを削除した上で、今回の「いくらですか」というユーザー発話と「580円です」というシステム応答を追加する。
【0143】
このような仮想エージェントの「持ち出し」および「同期・分岐」の機構を導入することで、まだ対話に参加していないユーザーが対話に参加するための心理的な敷居が下がる。すなわち、仮想エージェントを持ち出した後は、時間や場所の制約を受けずに過去の任意のやり取りに遡って対話を継続することができる。
【0144】
なお、仮想エージェントの持ち出し自体は従来技術として存在するが、従来の仮想エージェントとの相違点は以下の(1)〜(3)である。(1)対話が進んだ状態の対話システムを持ち出すことができる。(2)過去の対話のやり取りが残っていれば、任意のところから対話を分岐させることができる。言い換えると、やり取りの先頭に遡って分岐させた場合は、従来の「持ち出し」と等価である。(3)クロスリンガル対話システムである。
【0145】
次に、対話制御モジュール122を構成する対話シナリオ格納部1221に格納されている対話シナリオの例について、
図16を用いて説明する。この図では、対話シナリオにおける状態を3状態のオートマトンで表現しており、円が状態(ノード)、矢印がアークである。
図16において、状態1は対話開始直後の状態を表わす。この状態において、例えば奈良駅への経路を聞くような発話が入力された場合は状態2に遷移する。そして、状態2において交通費や所要時間を尋ねる発話が入力された場合は、それぞれ奈良駅までの交通費および所要時間について尋ねているとシステムは理解し、それに対応した応答をする。
【0146】
一方、京都駅への経路を聞くような発話が入力された場合は状態3に遷移する。そして、状態3において交通費や所要時間を尋ねる発話が入力された場合は、それぞれ京都駅までの交通費および所要時間について尋ねているとシステムは理解し、それに対応した応答をする。
【0147】
次に、対話履歴格納部1223の対話履歴である対話情報について、
図17を用いて説明する。対話情報は、例えば、テーブルの形式で保存される。「発話者」の欄には「ユーザー」と「システム」とのどちらかが入り、前者はその行がユーザー発話であり、後者はシステム応答であることを表わす。また、「発話言語」は、ユーザー発話またはシステム応答がどの言語でなされたかを表わす。また、「全言語分のテキスト」は、全対応言語におけるユーザー発話またはシステム応答である。発話者が「システム」である場合、この欄には応答生成部1226によって生成された全対応言語分の応答テキストが保存されている。一方、発話者が「ユーザー」である場合、発話言語と同じテキストは音声認識結果が保存されるが、それ以外の言語のテキストについては、機械翻訳サーバー14による翻訳結果である。例えば、
図17の一番上の行では、発話言語が日本語であるため、「全言語分のテキスト」の内の日本語「奈良駅への行き方を教えて」は音声認識結果であるが、それ以外の言語のテキストは機械翻訳による翻訳結果である。さらに、「シナリオの状態」は、応答生成の際に発生した対話シナリオ上の遷移が記録される欄である。例えば、
図17の表において、1行目と2行目は、対話システム1とユーザーとが以下の対話をした際に、
図16の対話シナリオにおいて状態1から状態2への遷移が発生したことを表わしている(1701のシナリオの状態の属性値「状態1→状態2」のレコードを参照)。
【0148】
以上のような対話履歴において、シナリオの状態もあわせて記録しておくことで、
図15のように過去の対話のやり取りの一つを指定しながら発話した場合に、そこから分岐を発生させることが可能になる。
【0149】
次に、対話クライアント16の詳細な例について、
図18を用いて説明する。対話クライアント16を構成するマイクロホン&ADコンバーター163は、ユーザーの発話を取得し、それをデジタル信号の音声波形に変換する。
【0150】
音声区間検出手段164は、連続的に入力される波形の中から、ユーザーの発話の始端から終端に相当する部分の音声波形を切り出す働きをする。この処理は自動で行なってもよいし、ユーザーが所定のボタンを押している間の波形を切り出すという処理でも良い。
【0151】
スピーカー165は、音声合成サーバー13によって生成された対話応答の音声波形を音として出力するために用いる。
【0152】
ディスプレイ166は、前述の実況中継ディスプレイとして使用する。
【0153】
対話履歴167は、
図4において対話制御モジュール122が備えている対話履歴格納部1223の対話履歴のコピーである。対話履歴のコピーを持たず、必要に応じて対話制御モジュール122から取得するようにしてもよい。なお、対話履歴は、対話情報と言っても良い。
【0154】
なお、マイクロホン&ADコンバーター163と音声区間検出手段164は、音声受付部161に該当し、スピーカー165は、音声出力部162に該当する。
【0155】
次に、仮想エージェントの「持ち出し」および「同期・分岐」を実現する方法について説明する。
【0156】
図19は、仮想エージェントを持ち出す前の状態であり、これは従来のクロスリンガル音声対話システム1と同一である。この時点では、対話制御サーバー12の中では対話制御モジュール122が1個だけ動作している。この状態で、1人以上のユーザーと対話ロボット17との間でクロスリンガル対話が進行する。
【0157】
ユーザーと対話ロボット17との間でクロスリンガル対話が進行した後、ユーザー(既存でも新規でも良い)が自分のユーザー端末18と対話クライアント16との間でペアリングを行なうと、
図20のように、対話クライアント16とユーザー端末18とが接続された状態になる。正しくは、ユーザー端末18と対話クライアント16との間はペアリングサーバー15によって中継されているが、図の簡略化のため、直接接続されているように記載されている。
【0158】
対話クライアント16は、内部に保持されている対話履歴をユーザー端末18に送信する。あるいは、最新の対話履歴を対話制御モジュール122から取得し、それをユーザー端末18に送信する。対話履歴には、例えば、全言語分のテキストが保存されているが、ユーザー端末18では表示言語設定と一致するもののみをフィルタリングして表示することで、
図12の1202のような表示を行なう。
【0159】
そして、ユーザーがロボット17に対して発話する場合は、発話のたびに対話履歴が更新され、そのたびに対話履歴がユーザー端末18に送信される。
【0160】
この段階では、ロボット17とユーザー端末18は同期している。言い換えると、見た目は対話ロボット17と仮想エージェントという2つの対話エージェントが存在しているように見えるが、応答生成等を行なう対話制御モジュール122は1個だけであるため、対話履歴も1個だけである。
【0161】
ここで、ユーザーがユーザー端末18に対して発話すると、ロボット17と仮想エージェントとの間で分岐が発生する。分岐後の状態を
図21に示す。この
図21においては、対話クライアント16とユーザー端末18との接続が消滅している(セッションが切断されている)。つまり、対話クライアント16またはユーザー端末18が当該セッションを切断する。
【0162】
一方、対話制御サーバー12においては、対話制御モジュール122が複製されている。複製とは、
図4の各モジュールを複製することを意味するが、支障がなければ、オリジナルとコピーとの間で共通のモジュールを参照するようにしてもよい。ただし、対話シナリオと対話履歴については、それぞれオリジナルとは別のメモリー空間にコピーし、オリジナルとコピーとで別々に更新できるようにする。以下の説明では、対話制御モジュール122のオリジナルを122(1)、コピーを122(2)とする。箇所情報を使った、コピーの処理の詳細については後述する。
【0163】
分岐によって、ユーザー端末18は122(2)と接続するようになる(正しくは、両者はペアリングサーバー15によって中継されている)。また、ユーザー端末18から音声認識サーバー11および音声合成サーバー13(さらに必要に応じて機械翻訳サーバー14)に対しても、直接アクセスできるようにする。
【0164】
そして、一度分岐が発生すると、対話ロボット17と仮想エージェントはそれぞれ別の対話制御モジュール122に接続するため、ユーザー端末18に対して発話すると応答の出力はユーザー端末18からのみ行なわれ、対話ロボット17からは出力されない。逆も同様である。
【0165】
分岐後にユーザー端末18にユーザー発話およびシステム応答を表示するために、ユーザー端末18は対話履歴を対話クライアント16からではなく対話制御モジュール122(2)から取得し、言語によるフィルタリングを行なった上で画面上に表示する。
図13の1301は、そのような状態である。
【0166】
次に、分岐の他の例として、
図15に示すように、過去の対話のやり取りの一つを指定しながらユーザーがユーザー端末18に対して発話した場合について説明する。
【0167】
この場合も、分岐後の状態は、
図21の通りであるが、対話制御モジュール122(2)が保持する対話履歴は
図17ではなく
図22の通りである。すなわち、テーブルの上2行(2201)は同一であるが、3行目(2202)以降から相違が発生する。以下、その点について説明する。
【0168】
図15の1501では、ユーザーは過去の履歴の「奈良駅にはバスと電車で行けます。・・・(以下略)」というシステム応答を指定しながら「いくらですか」と発話している。
図17によると、このシステム応答はテーブルの2行目に対応し、この応答によって対話シナリオは状態2(奈良駅への行き方に関する話題を表わす状態)に遷移したことが分かる。そこで対話制御モジュール122は対話履歴の複製において、1701の部分のみを複製する。それが2201である(あるいは、
図17のテーブル全体を複製した後で1702の部分を削除する。)。そして、対話シナリオの状態を状態2に戻した上で、「いくらですか」というユーザー発話に対する応答生成を行なう。その結果、2202に相当する部分が生成される。この対話履歴がユーザー端末18に送信され、言語によるフィルタリングを行なった後で1502の表示が行なわれる。
【0169】
以上、本実施の形態によれば、クロスリンガル音声対話システムにおいて、ユーザーと音声対話システムとの一連の対話がある程度進行した後、そのユーザーまたは別のユーザーが過去の対話の状況を確認したり、認知したりすることができる。
【0170】
また、本実施の形態によれば、音声対話システム1とユーザー端末18とが同期できる。
【0171】
また、本実施の形態によれば、ユーザーがユーザー端末18に対して発話した場合、同期が解除され、対話履歴の分岐を発生させることができる。つまり、例えば、2人目以降のユーザーは、自分のユーザー端末18に発話することで、対話の途中から、1人目のユーザーとは独立に対話を続けることができる。
【0172】
また、本実施の形態によれば、対話の分岐を、過去の対話のやり取りに遡って行なうことができる。
【0173】
また、本実施の形態において、音声対話システム1を構成する音声認識サーバー11、対話制御サーバー12、音声合成サーバー13、機械翻訳サーバー14、ペアリングサーバー15、対話クライアント16、ロボット17は、分離した装置である必要はない。つまり、音声対話システム1は、1または2以上の装置で実現されれば良い。
【0174】
さらに、本実施の形態における音声対話システム1を構成する各装置の処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。
【0176】
本実施の形態において、実施の形態1の音声対話システム1を構成する音声認識サーバー11、対話制御サーバー12、音声合成サーバー13、機械翻訳サーバー14、ペアリングサーバー15、対話クライアント16、ロボット17を、一つの音声対話装置で実現する場合の例について説明する。なお、音声対話システム1を構成する各装置の機能をいくつの装置で実現しても良いことは言うまでもない。
【0177】
図23は、本実施の形態における音声対話システム2のブロック図である。音声対話システム2は、音声対話装置21、1または2以上のユーザー端末18を備える。ここでのユーザー端末18は、各種の情報の送受信を音声対話装置21との間で行う以外、実施の形態1のユーザー端末18と同じであるため、説明を略す。
【0178】
音声対話装置21は、格納部211、受付部212、処理部213、出力部214、受信部215、および送信部216を備える。
【0179】
格納部211は、対話情報格納部2111、およびペアリング情報格納部2112を備える。
【0180】
処理部213は、音声認識部2131、対話制御部2132、対話情報蓄積部2133、音声合成部2134、機械翻訳部2135、およびペアリング情報蓄積部2136を備える。
【0181】
出力部214は、音声出力部2141を備える。
【0182】
受信部215は、指示受信部2151、およびユーザー情報受信部2152を備える。
【0183】
送信部216は、対話情報送信部2161を備える。
【0184】
音声対話装置21を構成する格納部211には、各種の情報が格納される。
【0185】
格納部211を構成する対話情報格納部2111は、一連の対話の履歴である対話情報が格納される。対話情報は、通常、発話テキストと1以上の発話翻訳結果と応答テキストと1以上の応答翻訳結果とを有する。
【0186】
ペアリング情報格納部2112は、ユーザー端末18とのペアリングを示す情報である1または2以上のペアリング情報が格納される。
【0187】
受付部212は、2以上の異なる言語により発声され得る入力音声を受け付ける。
【0188】
処理部213は、各種の処理を行う。各種の処理は、後述するペアリングの処理、音声認識部2131等が行う処理である。
【0189】
音声認識部2131は、入力音声を音声認識し、音声認識結果である発話テキストを生成する。なお、音声認識部2131は、通常、入力音声の言語を識別する言語識別子も取得する。
【0190】
対話制御部2132は、音声認識部2131が生成した発話テキストを用いて、発話テキストに対する応答である応答テキストを生成する。
【0191】
対話制御部2132は、ユーザー情報受信部2152が入力音声または発話テキスト(いずれも、ユーザー情報に含まれる)を受信した場合、ユーザー情報受信部2152が受信した入力音声に対応する発話テキストまたはユーザー情報受信部2152が受信した発話テキストから、発話テキストに対する応答である応答テキストを生成する。
【0192】
対話制御部2132は、対話情報の中の対話の情報であり、箇所情報に対応する箇所までの対話の情報を用いて、ユーザー情報受信部2152が受信した入力音声に対応する発話テキストまたはユーザー情報受信部2152が受信した発話テキストから、発話テキストに対する応答である応答テキストを生成する。
【0193】
対話情報蓄積部2133は、対話履歴である対話情報を対話情報格納部2111に蓄積する。対話情報蓄積部2133は、発話テキストと応答テキストとを含む対話情報を対話情報格納部2111に蓄積する。また、対話情報蓄積部2133は、発話テキストと1以上の発話翻訳結果と応答テキストと1以上の応答翻訳結果とを含む対話情報を対話情報格納部2111に蓄積する。
【0194】
音声合成部2134は、対話制御部2132が生成した応答テキストに対して音声合成処理を行い、音声を取得する。
【0195】
機械翻訳部2135は、発話テキストを発話テキストの言語以外の1以上の言語に翻訳し、1以上の発話翻訳結果を取得する。また、機械翻訳部2135は、応答テキストを応答テキストの言語以外の1以上の言語に翻訳し、1以上の応答翻訳結果を取得する。
【0196】
なお、発話テキストの言語を含む2以上の言語は予め決められている。例えば、日本語、英語、中国語、韓国語の4カ国の言語のテキストが必要であることが格納部211に格納されている場合(4つの言語の言語識別子が格納部211に格納されている場合)、機械翻訳部2135は、受け付けたテキストが日本語の場合、当該テキストを、英語、中国語、韓国語の3カ国の言語に翻訳し、翻訳結果を取得する。また、例えば、日本語、英語、中国語、韓国語の4カ国の言語のテキストが必要であることが格納部211に格納されている場合、機械翻訳部2135は、受け付けたテキストが英語の場合、当該テキストを、日本語、中国語、韓国語の3カ国の言語に翻訳し、翻訳結果を取得する。
【0197】
ペアリング情報蓄積部2136は、指示受信部2151がペアリングの指示を受信した場合に、指示に対応するペアリング情報をペアリング情報格納部2112に蓄積する。
【0198】
出力部214は、各種の情報を出力する。ここでの出力は、通常、音声出力であるが、ディスプレイへの表示、表示装置への送信等でも良い。ディスプレイへの表示は、例えば、上述した実況中継ディスプレイである。
【0199】
音声出力部2141は、音声を出力する。
【0200】
受信部215は、各種の情報や指示等を受信する。各種の情報や指示等とは、例えば、ペアリングの指示、後述するユーザー情報である。
【0201】
指示受信部2151は、ユーザー端末18からペアリングの指示を受信する。ペアリングの指示は、例えば、端末識別子、または対話情報が格納されているURL等を含む。
【0202】
ユーザー情報受信部2152は、ユーザー端末18からユーザー情報を受信する。ユーザー情報は、例えば、入力音声または発話テキストである。また、ユーザー情報は、例えば、対話情報の中の一の箇所を示す箇所情報を有しても良い。なお、ユーザー情報が発話テキストである場合、ユーザー端末18が入力音声を音声認識し、発話テキストを取得する。
【0203】
送信部216は、各種の情報を送信する。
【0204】
対話情報送信部2161は、指示受信部2151がユーザー端末18から指示を受信した場合に、対話情報格納部2111に格納されている対話情報をユーザー端末18に送信する。
【0205】
対話情報送信部2161は、対話情報、または対話情報の中の情報でありユーザー端末18に対応する言語の情報をユーザー端末18に送信する。
【0206】
対話情報送信部2161は、受付部212が入力音声を受け付けるごとに、発話テキストをユーザー端末18に送信し、対話制御部2132が応答テキストを生成するごとに、応答テキストをユーザー端末18に送信する。
【0207】
対話情報送信部2161は、ペアリング情報格納部2112に格納されている1以上の各ペアリング情報に対応する1以上のユーザー端末18に、受付部212が入力音声を受け付けるごとに、発話テキストをユーザー端末18に送信し、対話制御部2132が応答テキストを生成するごとに、応答テキストを送信する。
【0208】
対話情報送信部2161は、対話制御部2132が生成した応答テキストをユーザー端末18に送信する。
【0209】
格納部211、対話情報格納部2111、およびペアリング情報格納部2112は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【0210】
格納部211等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部211等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部211等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部211等で記憶されるようになってもよい。
【0211】
処理部213、音声認識部2131、対話制御部2132、対話情報蓄積部2133、音声合成部2134、機械翻訳部2135、およびペアリング情報蓄積部2136は、通常、MPUやメモリー等から実現され得る。処理部213等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0212】
出力部214は、ディスプレイやスピーカー等の出力デバイスとそのドライバーソフトとによって構成されている。
【0213】
受信部215、指示受信部2151、およびユーザー情報受信部2152は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【0214】
送信部216、および対話情報送信部2161は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【0215】
次に、音声対話装置21の動作について、
図24のフローチャートを用いて説明する。
【0216】
(ステップS2401)受付部212は、入力音声を受け付けたか否かを判断する。入力音声を受け付けた場合はステップS2402に行き、入力音声を受け付けない場合はステップS2409に行く。
【0217】
(ステップS2402)音声認識部2131は、ステップS2401で受け付けられた入力音声を音声認識し、発話テキストを生成する。
【0218】
(ステップS2403)対話制御部2132は、ステップS2402で生成された発話テキストから、当該発話テキストに対する応答テキストを生成する。
【0219】
(ステップS2404)音声合成部2134は、ステップS2403で生成された応答テキストに対して音声合成処理を行い、音声を取得する。
【0220】
(ステップS2405)機械翻訳部2135は、ステップS2402で生成された発話テキストを発話テキストの言語以外の1以上の言語に翻訳し、1以上の発話翻訳結果を取得する。また、機械翻訳部2135は、ステップS2403で生成された応答テキストを応答テキストの言語以外の1以上の言語に翻訳し、1以上の応答翻訳結果を取得する。
【0221】
(ステップS2406)処理部213は、ステップS2402で生成された発話テキスト、ステップS2403で生成された応答テキスト、およびステップS2405で取得された翻訳結果を対応付けて、対話情報格納部2111に蓄積する。
【0222】
(ステップS2407)出力部214は、ステップS2402で生成された発話テキスト、ステップS2403で生成された応答テキスト、およびステップS2405で取得された翻訳結果を表示する。
【0223】
(ステップS2408)音声出力部2141は、ステップS2404で取得された音声を出力し、ステップS2401に戻る。
【0224】
(ステップS2409)指示受信部2151は、ユーザー端末18からペアリングの指示を受信したか否かを判断する。ペアリングの指示を受信した場合はステップS2410に行き、ペアリングの指示を受信しない場合はステップS2413に行く。
【0225】
(ステップS2410)処理部213は、ユーザー端末18と音声対話装置21とのペアリングのための処理を行う。かかる処理は、実施の形態1で述べた処理、ペアリング情報蓄積部2136がペアリング情報をペアリング情報格納部2112に蓄積する処理である。
【0226】
(ステップS2411)処理部213は、対話情報格納部2111から対話情報を取得する。
【0227】
(ステップS2412)対話情報送信部2161は、ステップS2410で取得された対話情報を、ペアリングの指示を送信してきたユーザー端末18に送信し、ステップS2401に戻る。
【0228】
(ステップS2413)ユーザー情報受信部2152は、ユーザー端末18から情報を受信したか否かを判断する。情報を受信した場合はステップS2414に行き、情報を受信しない場合はステップS2401に戻る。
【0229】
(ステップS2414)処理部213は、ステップS2413で受信された情報から入力音声、箇所情報を取得する。
【0230】
(ステップS2415)音声認識部2131は、ステップS2414で取得した入力音声を音声認識し、発話テキストを生成する。ここで、音声認識部2131は、通常、言語識別子も取得する。
【0231】
(ステップS2416)対話制御部2132は、ステップS2415で生成した発話テキストを用いて、発話テキストに対する応答である応答テキストを生成する。
【0232】
(ステップS2417)送信部216は、情報を送信してきたユーザー端末18に、応答テキスト等を送信する。なお、応答テキスト等とは、例えば、発話テキストと応答テキスト、または応答テキストである。
【0233】
(ステップS2418)処理部213は、発話テキストと応答テキストとを端末識別子に対応付けて蓄積し、ステップS2401に戻る。
【0234】
なお、
図24のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0235】
以下、本実施の形態における音声対話システム2の具体的な動作は、音声対話システム1の具体的な動作と同様であるので、説明を省略する。
【0236】
以上、本実施の形態によれば、クロスリンガル音声対話において、ユーザーと音声対話装置21との一連の対話がある程度進行した後、そのユーザーまたは別のユーザーが過去の対話の状況を確認したり、認知したりすることができる。
【0237】
また、本実施の形態によれば、音声対話装置21とユーザー端末とが同期できる。
【0238】
また、本実施の形態によれば、ユーザーがユーザー端末に対して発話した場合、同期が解除され、対話履歴の分岐を発生させることができる。つまり、例えば、2人目以降のユーザーは、自分のユーザー端末に発話することで、対話の途中から、1人目のユーザーとは独立に対話を続けることができる。
【0239】
さらに、本実施の形態によれば、対話の分岐を、過去の対話のやり取りに遡って行なうことができる。
【0240】
また、
図25は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の音声対話システム1を構成する各装置、音声対話装置21等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。
図25は、このコンピュータシステム300の概観図であり、
図26は、システム300の内部構成を示すブロック図である。
【0241】
図25において、コンピュータシステム300は、CD−ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304と、マイク305と、スピーカー306とを含む。
【0242】
図26において、コンピュータ301は、CD−ROMドライブ3012に加えて、MPU3013と、CD−ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
【0243】
コンピュータシステム300に、上述した実施の形態の音声対話装置21等の機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。
【0244】
プログラムは、コンピュータ301に、上述した実施の形態の音声対話装置21等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
【0245】
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信するステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
【0246】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0247】
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
【0248】
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【0249】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。