(58)【調査した分野】(Int.Cl.,DB名)
外部に設けられた複数のサーバの各々が、如何なる属性に対応する情報を保有しているかという情報を予め格納するデータベースを有する情報処理装置の制御方法であって、
入力される音声情報をテキスト情報に変換する工程と、
前記変換されたテキスト情報を分節する工程と、
前記データベースに格納された情報に基づいて、前記分節されたテキスト情報から得られる属性と、前記属性に対応する情報を保有しているサーバとをそれぞれを対応付ける工程と、
前記分節されたテキスト情報と前記テキスト情報から得られる属性との対応関係を一時保存する工程と、
前記対応付ける工程により対応付けされたサーバから所定の属性に対応する情報を検索する際、文節されたテキスト情報が如何なる属性に対応する情報であるかを判定する工程と、
前記文節されたテキスト情報に属性を確定しない要素が存在するかどうかを判断する工程と、
前記判断する工程により、前記文節されたテキスト情報に属性を確定しない要素が存在すると判断すると、属性を確定するための音声情報を要求する工程と、
前記判断する工程により、前記文節されたテキスト情報に属性を確定しない要素が存在しないと判断すると、前記文節されたテキスト情報から得られる属性に対応する情報を保有しているサーバを特定する工程と、
前記音声情報を要求する工程により前記音声情報を要求しても、前記文節されたテキスト情報の属性を確定するための音声情報が得られないと判断すると、前記一時保存する工程により保存されている過去に分節されたテキスト情報と前記過去に分節されたテキスト情報から得られた属性との対応関係に基づいて推測された属性に対応する情報を保有しているサーバを特定する工程と、
を含むことを特徴とする制御方法。
【背景技術】
【0002】
近年、文字、音声、図形、映像等のマルチメディアを入力、出力、及び加工処理することで、人間とコンピュータとの対話を様々な形態で行うことが可能となっている。特に、最近になって、メモリ容量やパーソナルコンピュータ(以下、PCともいう。)の処理能力が飛躍的に向上したことで、マルチメディアを取り扱うことができるPCが開発され、種々のアプリケーションが開発されてきている。これらは何れも単に種々のマルチメディアを出し入れするだけのもので各種マルチメディアを有機的に融合するまでには至っていない。
【0003】
一方、従来からの数値データに代わり、文字を含む言語データが一般的になり、白黒のイメージデータはカラー化や図形、アニメーション、三次元グラフィックス、さらには動画が扱えるように拡張されてきている。また、音声やオーディオ信号についても、単なる音声信号レベルの入出力の他に、音声認識や音声合成の機能が研究開発されつつある。しかし、マンマシンインタフェースとして使用するには性能が不安定で、実用化は限定された分野に限られているのが現状である。
【0004】
このように、上述した文字、テキスト、音声、グラフィックデータ等については、従来の入出力処理(記録、再生)から各種メディアへの展開や生成機能へと発展が続いている。換言すれば、各メディアの表面的な処理からメディアの内容や構造、意味的内容を取り扱い、人間とPCとの間の対話をより自然に快適に行うことを目的として、音声やグラフィックス等のメディアの融合や生成を利用する対話システムの構築が検討されつつある。
【0005】
ここで、対話システムに用いられる音声検索とは、文字列ではなく、発話する声により話しかけることで検索できる技術やサービスのことを指す。近年では、Apple(登録商標)iOSに搭載されるSiri(登録商標)や、Google(登録商標)音声検索が知られている。また、最近では、音声操作できるカーナビ、一部のメーカーが発売する音声による操作や番組検索が可能なテレビ、話しかけるとそのまま指定した言語に翻訳してくれる携帯電話やスマートフォン等も出てきている。このように近年、音声解析技術を使ったサービスが登場してきている。
【0006】
ところで、音声検索は、キーボードやタッチパネルで文字列を打つ必要がないので、両手が塞がっている時でも情報にアクセスでき、発声という直感的なアプローチが可能である。そして、検索結果に該当するものをPCによる音声を用いた回答で得ることができれば、対話によりインターネットから欲しい情報を容易に取り出せるようになる、等の理由から、将来性が期待されている。
【0007】
しかしながら、現状、インターネットを用いた音声検索は、それ程普及が進んでいるとはいえない。音声検索の普及が進まない原因として考えられるのが、検索サービスにおける音声認識の難しさ、その汎用性にある。すなわち、テレビに搭載されている音声認識は、基本的にテレビ番組名や出演者名等、番組と人物に関連する物事や、テレビ操作に関連する物事が認識できれば足りるのである。同様にカーナビであれば、基本的に住所・施設名等、地図情報に関連する物事を認識できれば良いのである。
【0008】
例えば、カーナビで入力する住所は、東京都○○区△△町等のように定型化されているので、連続的な音声を認識した時に、○○、△△に入る文言を特定できれば良いので、結果的に精度は良くなる。このように、特定用途の機器であれば、認識すべき範囲や文脈はある程度絞り込むことができる、つまり候補を限定することができる。しかしながら、汎用的な検索サービスではそうはいかないのが現状である。
【0009】
このように、音声認識については、単一単語認識から連続単語認識、連続音声認識へと発展しており、実用化のために応用を限定した方向でも開発が進められている。このような応用場面では、音声対話システムとして、音声の文字面の認識よりも音声の発話内容の理解が重要であり、例えば、キーワードスポッティングをベースに応用分野の知識を利用した音声理解システムも研究されてきている。
【0010】
他方、音声等のメディアの理解と生成は、単なるデータの入出力とは異なり、メディアの変換の際に発生する情報の欠落やエラーが不可避である。すなわち、音声理解は情報量の多い音声パターンデータから音声の発話の内容や発話者の意図を抽出する処理であり、情報の圧縮を行う過程で音声認識エラーや曖昧性が生じる。したがって、音声対話システムとしては上述した認識エラーや曖昧性等の音声認識の不完全さに対処するため、PC側からユーザに対して適切な質問や確認を行い、対話制御によりスムーズに対話を進行する必要がある。
【0011】
そして、音声対話システムにおいて、PC側からユーザに対して質問や確認を行った結果、ユーザ側から必要とされる回答と異なる回答が寄せられたとき、PC側では、ユーザに対して再度聞き返す、又は必要としている回答とは異なる旨を通知している。しかし、PCがユーザに対して再度聞き返したり、必要としている回答とは異なる旨を通知したりしても、ユーザから的確な回答が得られないときは、ユーザからの回答が無視される場合もある。
【0012】
そして、特許文献1には、音声認識した複数の候補の中に、ユーザによって音声入力された指定カテゴリに属するものがなければ、再度の音声入力を促すメッセージを出力する音声認識装置が記載されている。
【発明を実施するための形態】
【0029】
次に、本発明を実施するための形態について図面を参照して詳細に説明する。なお、各図中、同一又は相当する部分には同一の符号を付しており、その重複説明は適宜に簡略化乃至省略する。本発明の内容を簡潔に説明すると、入力される音声情報をテキスト情報に変換する手段と、変換されたテキスト情報を分節する手段と、外部に設けられた複数のサーバの各々が、如何なる属性に対応する情報を保有しているかという情報を予め格納するデータベースと、データベースに格納された情報に基づいて、分節されたテキスト情報から得られる属性と、属性に対応する情報を保有しているサーバとをそれぞれを対応付ける手段と、分節されたテキスト情報とテキスト情報から得られる属性との対応関係を一時保存する手段と、対応付けされたサーバから属性に対応する情報を検索する手段と、検索により得られた属性に対応する情報の情報量が所定の閾値以上であるか否かを判断する手段と、情報量が所定の閾値以上であると判断すると、情報量を絞り込むための音声情報を要求する手段と、情報量を絞り込めない音声情報を獲得しても、対応関係に基づいて、音声情報を変換し、分節されたテキスト情報から得られる属性に対応する情報を保有しているサーバを特定し、サーバの中から属性に対応する所定の情報量を有する情報を検索する手段と、を含むことにより、検索を継続するために必要とされる質問に対して的外れな回答が寄せられたとしても、その的外れな回答の意図を汲んで、追随して検索を継続することができるのである。
【0030】
まず、
図1を用いて本発明の実施形態における情報処理装置の構成について説明する。
図1は、本発明の実施形態における情報処理装置の構成について説明する概略ブロック図である。
図1を参照すると、本発明の実施形態における情報処理装置100は、電子情報端末、PDA、ノート型PC、タブレット型PC等を具体例とする情報処理装置である。
【0031】
図1において、本発明の実施形態における情報処理装置(以下、パーソナルコンピュータ(PC)ともいう。)100は、マイク101と、音声認識部102と、ROM(Read Only Memory)103と、RAM(Random Access Memory)104と、スピーカ105、音声合成部106と、CPU(Central Processing Unit)107と、表示部108と、入力部109と、電源部110と、ネットワーク接続部111と、HDD(Hard Disk Drive)112と、から構成される。
【0032】
マイク101は、ユーザの音声を音声データ(電気信号)に変換するものである。音声認識部102は、マイク101によって音声データに変換されたユーザの音声を認識するものである。ROM103は、PC100全体の動作を制御するプログラムを格納するものである。RAM104は、ROM103に格納されたプログラムが展開される記憶領域である。スピーカ105は、後述するPC100のコンシェルジュが出力する音声データを音声に変換するものである。音声合成部106は、PC100のコンシェルジュが出力する音声データを、所望の音声に変換されるよう合成するものである。CPU107は、PC100全体の動作を制御するものであり、ROM103に格納された制御プログラムをロードし、PC100の動作によって得られた様々なデータをRAM104に展開するものである。
【0033】
表示部108は、LCD(Liquid Crystal Display)等で構成される表示画面であり、PC100によって実行されたアプリケーションの結果や図示しないTVチューナによって受信されたテレビ番組を表示するものであり、PC100の出力装置を構成している。入力部109は、キーボード、マウス、タッチパネル等、ユーザがPC100に対して指示を与えるものであり、PC100の入力装置である。電源部110は、PC100に対してAC(Alternative Current:交流)又はDC(Direct Current:直流)電源を与えるものである。ネットワーク接続部111は、インターネットに代表される図示しないネットワーク網に接続され、ネットワーク網とのインタフェースを図るものである。HDD112は、PC100のアプリケーションソフトウェアを格納したり、図示しないTVチューナによって受信されたテレビ番組等のコンテンツを録画したりするものである。なお、表示部108と入力部109は、LCDとタッチパネルとが一体となったタッチパネルディスプレイであっても良い。この場合、キーボードやマウスといった入力装置に代えて、指や図示しないスタイラスペンをタッチパネルディスプレイに接触させて直接文字を書く動作等を行ってデータ入力やコマンド入力といった操作を行うことができる。
【0034】
次に、
図2を参照して、本発明に実施形態における情報処理装置の主要部の構成について説明する。
図2は、本発明の実施形態における情報処理装置の主要部の構成について説明する概略ブロック図である。
【0035】
図2において、本発明の実施形態におけるPC100は、マイク201から入力されたユーザの音声が音声データ(電気信号)に変換されて、当該音声データが音声信号解釈部202によって解釈され、その結果がクライアント型音声認識部203において認識される。クライアント型音声認識部203は、認識した音声データをクライアントアプリケーション部204に渡す。
【0036】
クライアントアプリケーション部204は、ユーザからの問い合わせに対する回答が、オフライン状態にあるローカルコンテンツ部208に格納されているか否かを確認し、ローカルコンテンツ部208に格納されている場合は、当該ユーザからの問い合わせに対する回答を、後述するテキスト読上部209、クライアント型音声合成部210を経由して、スピーカ211から音声出力する。
【0037】
ユーザからの問い合わせに対する回答が、ローカルコンテンツ部208に格納されていない場合は、PC100単独で回答を持ち合わせていないことになるので、インターネット等のネットワーク網207に接続されるネットワーク接続部206を介して、インターネット上の検索エンジン等を用いてユーザからの問い合わせに対する回答を検索し、得られた検索結果を、テキスト読上部209、クライアント型音声合成部210を経由して、スピーカ211から音声出力する。
【0038】
クライアントアプリケーション部204は、ローカルコンテンツ部208、又はネットワーク網207から得られた回答をテキスト(文字)データに変換し、テキスト読上部209に渡す。テキスト読上部209は、テキストデータを読み上げ、クライアント型音声合成部210に渡す。クライアント型音声合成部210は、音声データを人間が認識可能な音声データに合成しスピーカ211に渡す。スピーカ211は、音声データ(電気信号)を音声に変換する。また、スピーカ211から音声を発するのに合わせて、ディスプレイ部に当該音声に関連する詳細な情報を表示する。
【0039】
次に、本発明の実施形態における情報処理装置のソフトウェア機能について説明する。
図3は、本発明の実施形態における情報処理装置のソフトウェア機能について説明する機能ブロック図である。
【0040】
図3に示すように、本発明の実施形態におけるPC100は、ネットワーク313を介して外部に設けられた複数のサーバ701、702、・・・、70Nに接続されている。サーバ701、702、・・・、70Nは、それぞれ、後述する様々な属性に対応する情報を保有している。
【0041】
そして、PC100は、ユーザから発せられる音声を入力するマイク301と、マイク301から入力された音声入力を音声信号(音声情報)として取り扱い、増幅等を行う音声入力部302と、音声入力部302から入力される音声情報をテキスト情報に変換すると共に、変換されたテキスト情報を所定の音節毎に分節するテキスト解析部303と、分節されたテキスト情報が、如何なる属性に対応する情報であるかを判定し、当該分節されたテキスト情報から属性を取得する要素属性判定部304と、を有している。また、要素属性判定部304は、分節されたテキスト情報と、このテキスト情報から得られる属性との対応関係を一時的に保存する機能も備えている。
【0042】
さらに、PC100は、サーバ701、702、・・・、70Nのうち、どのサーバが、如何なる属性に対応する情報を保有しているかという情報を予め格納しているサーバAPI(Application Programming Interface)データベース307と、分節されたテキスト情報から得られる属性が、様々な属性に対応する情報を保有しているサーバ701、702、・・・、70Nのうち、どのサーバが保有している属性に対応するものであるかを対応付けて特定するサーバ特定部305と、特定されたサーバにアクセスして、分節されたテキスト情報から得られる属性に対応するサーバから、当該属性に対応する情報を検索する検索部306と、を有している。
【0043】
そして、PC100は、検索部306によって検索された結果を文章(テキスト情報)として生成する文章生成部310と、文章生成部310によって生成されたテキスト情報(検索結果等)をディスプレイ部205(
図2)に表示する表示部309と、テキスト情報で得られた検索結果を、スピーカ312から出力するための音声信号(音声情報)に変換する音声出力部311と、音声出力部311によって変換された音声を出力するスピーカ312と、を有している。
【0044】
また、後述するように、1つの属性は、ある1つのテキスト情報だけでなく、互いに類似する複数のテキスト情報から得られる場合もある。したがって、分節されたテキスト情報が複数の互いに類似するテキスト情報であっても、同一の属性が得られるようにすることが求められる。そこで、PC100は、用語データベース308を有しており、この用語データベース308には、互いに類似するテキスト情報を纏めた類義語辞書が予め保持されている。
【0045】
次に、本発明の実施形態における情報処理装置の起動時の画面表示について説明する。
図4から
図6は、本発明の実施形態における情報処理装置の起動時の画面表示について説明する図である。
【0046】
本発明の実施形態に係るPC100のコンシェルジュ400、500、600は、起動時の時間帯や曜日に応じて、様々な挨拶を行うことができる。例えば、起動時が朝の時間帯であるときには、
図4に示すように、コンシェルジュ400が、「おはようございます!」と発声するのに合わせてディスプレイ部205(
図2)に関連情報を表示する。同様に、起動時が昼間の時間帯であれば、
図5に示すように、コンシェルジュ500は、「こんにちは!」と発声し、夜の時間帯であれば
図6に示すように、コンシェルジュ600は、「こんばんは!」と発声する。また、時間帯以外にも、平日と休日といった曜日に応じた発声も行うことができる。
【0047】
次に、本発明の実施形態における情報処理装置の具体的な動作について説明する。
図7から
図9は、本発明の実施形態における情報処理装置の具体的な動作について説明する図である。
【0048】
PC100が、
図4から
図6に示したように起動している状態で、ユーザが、知りたい情報、検索したい情報をPC100に対して質問すると、PC100は、その質問に対して回答する。例えば、
図7に示すように、ユーザ800が、「チャーリィ!女子会を渋谷で開きたい♪」とPC100に対して質問すると、PC100は、入力された音声情報を、「ジョシカイヲシブヤデヒラキタイ」というテキスト情報に変換すると共に、「ジョシカイ」、「シブヤ」、「ヒラキタイ」に分節し、この分節されたテキスト情報から得られる属性に対応する情報を保有しているサーバを、サーバAPIデータベース307(
図3)に基づいてテキスト情報毎に特定する。
【0049】
しかし、PC100は、テキスト情報「ジョシカイ」の属性に対応する情報を保有しているサーバを特定することができない(サーバAPIデータベース307に存在しない。)ので、テキスト情報「ジョシカイ」の属性を特定するため、「近いもの(パーティ・宴会、友達・同僚・家族と楽しむ)があったのですが、どれにしましょうか?」とユーザ800に対して追加質問を行っている。そして、ユーザ800は、PC100がテキスト情報「ジョシカイ」の属性を特定することができるように、「友達!」という音声情報を入力している。
【0050】
この質問と回答とのやり取りで重要なことは、PC100は、ユーザ800から発せられる音声情報である、「チャーリィ!女子会を渋谷で開きたい♪」のうち、「チャーリィ」という音声に反応し、この音声に続けて発せられる音声を認識し、ユーザ800との対話を開始しているのである。すなわち、PC100は、ユーザ800から発せられる音声情報に基づいて、これをテキスト情報に変換し、この変換されたテキスト情報の中に、所定のキーワード(本実施形態の場合は「チャーリィ」というキーワード)が含まれているか否かを判断し、キーワードが含まれていると判断すると、ユーザ800との対話を開始し、このキーワード以降、ユーザ800から発せられる音声情報(質問)を所定のテキスト情報に変換し、この変換された所定のテキスト情報に基づいて特定される、ユーザから要求されるコマンド(例えばユーザから発話される質問に対する回答等)を実行するのである。なお、このキーワードを何にするかは、ユーザが予め定めておくものとする。
【0051】
また、上記の例では、PC100は、ユーザ800から発せられるある特定の音声情報に反応し、この音声情報に続けて発せられる音声情報をテキスト情報として認識し、所定のコマンドを実行しているが、PC100が、音声認識部102(
図1)によりテキスト情報を認識し、所定のコマンドを実行する契機としては、ユーザ800から発せられる特定の音声情報に限定されることなく、音声認識部102によりテキスト情報を認識することができる音声情報であれば、如何なる音源を用いても良いことは勿論である。
【0052】
そして、PC100は、ユーザ800からの質問の内容である「女子会」、すなわちテキスト情報「ジョシカイ」から得られる属性に対応する情報を保有しているサーバを特定できないので、サーバを用いた検索を行うことができない。そこで、PC100は、テキスト情報「ジョシカイ」の属性を特定するため、「近いもの(パーティ・宴会、友達・同僚・家族と楽しむ)があったのですが、どれにしましょうか?」と追加質問を行い、テキスト情報「ジョシカイ」が如何なる属性のものであるかを特定するため、ユーザ800に対して聞き直しを行い、音声入力を要求しているのである。
【0053】
そして、テキスト情報「ジョシカイ」が、如何なる属性のものであるかを特定できるよう、ユーザ800が、「友達!」という音声を発した段階で、PC100は、テキスト情報「ジョシカイ」が、如何なる属性のものであるか、すなわち「女子会」なるものが「友達」と楽しむパーティという属性を有するものであることが分かるので、改めて「友達」と楽しむパーティという属性に対応する情報を保有しているサーバを特定するのである。そして、
図8に示すように、「こんなお店が見つかりましたよ。」と回答し、ディスプレイ部205(
図2)にリスト表示する。
【0054】
しかしながら、友達と楽しむパーティという属性に対応する情報を保有しているサーバを用いて検索を行った結果、候補となるお店が複数存在する。すなわち、検索により得られた情報量が予め定められた所定の閾値以上存在することになるので、情報量を絞り込むため、PC100は、ユーザ800に対して、「何料理にしましょうか?」という逆質問を動的に行う。要するに、ユーザ800から発せられた友達と楽しむパーティという属性に基づいて検索を行った結果、検索結果が多数存在し、この多数の検索結果の中から最終的な候補を絞り込む、要するに、検索により得られる情報量を所定の閾値未満に絞り込むため、PC100は、ユーザ800に対して「何料理にしましょうか?」と逆質問を行い、情報量を絞り込むための音声情報の要求を行っているのである。
【0055】
そうすると、
図9に示すように、ユーザ800は、「イタリア料理、4000円ぐらいで、」といった回答、すなわち、PC100が要求している「何料理にしましょうか?」という、検索により得られた情報量が予め定められた所定の閾値以上存在することになるので、情報量を絞り込むために必要なキーワードを要求しているのに対し、ユーザ800は、「イタリア料理、」という音声に加えて「4000円ぐらいで、」という音声を発している。すなわち、多数のお店情報に共通して付されるレストランというキーワード以外の料理の種類に関するキーワードに、予算に関する「4000円くらいで、」というキーワードを付加するといった、いわば要求しているキーワードとは直接的に無関係な自由な条件に関するキーワードも発している。そして、PC100は、料理の種類に関するキーワードに、予算に関するキーワードが付加されたとしても、ユーザ800によって発せられたキーワードを分析し、「こんなお店が見つかりました。どんなタイプのお店でしょうか?」と回答すると共に、ディスプレイ部205(
図2)にお店のリストを表示する。
【0056】
また、
図9の例では、ユーザ800は、料理の種類に関するキーワードと、予算に関するキーワードを発しているが、ユーザ800が、料理の種類に関するキーワードである「イタリア料理、」と言わずに、単に予算に関するキーワードである、「4000円くらいで、」と発した場合であっても、PC100は、「こんなお店が見つかりました。どんなタイプのお店でしょうか?」と回答すると共に、ディスプレイ部205(
図2)にお店のリストを表示するのである。
【0057】
本実施形態におけるPC100には、音声対話システムのソフトウェアアプリケーションプログラムがインストールされているが、このソフトウェアアプリケーションプログラムを常駐モードにするか、非常駐モードにするかを予め選択することができる。そして、常駐モードを選択すると、次回起動時からはスタートアップ時から起動する。さらに、常駐モードでは、常時、音をモニタリングし、ノイズなのか音声なのかを即座に判断している。
【0058】
常駐モードにされていると、音声認識されたテキスト情報の中から「チャーリィ」といった所定のキーワードの有無だけを認識し、当該所定のキーワードが認識されると、音声認識されたテキストを、記憶して文脈解析するルーチンに引き渡す動作に移行する。
【0059】
本実施形態におけるPC100には、一通りの応答、及び結果が存続する時間、具体的には、現在の話題が天気に関するものである場合、その天気に対する一通りの応答、及び天気に関する検索結果が存続する時間として、所定の時間からなる待機時間という概念を用いている。この待機時間は、ユーザ800が、何らかのアクションを起こした場合、例えば、ユーザ800が、話題を天気に関するものから他の話題に変える質問を行った場合、又は、ユーザ800の求めに応じて返事を行った場合、例えば、ユーザ800から、天気に関する話題とは異なる質問がなされ、その質問に応じてPC100が返事を行った場合、の何れかのタイミングにおいてリセットされる。そして、この待機時間は、ユーザ800に対して何らかの検索結果を回答した直後から直ちにカウントされる。
【0060】
そして、この待機時間の間は、すべての情報、すなわち、ユーザ800との間で取り交わされたすべての情報、具体的には、待機時間が経過する前のキーワード、キーワードに基づいて行った検索、及び検索結果を履歴情報として保持し、活用している。そして、待機時間内に、ユーザ800から新たな質問、及び/又は命令が発せられた場合、この保持している履歴情報を活用することとしている。すなわち、保持している履歴情報に共通する事項を抽出し、当該新たな質問、及び/又は命令を特定する事項と共にキーワードとして検索を行うのである。そして、待機時間が経過すると、待機時間が経過する前に保持されていたキーワード、キーワードに基づいて行った検索、及び検索結果等の履歴を削除する。
【0061】
また、この待機時間が経過すると、PC100は、ネットワーク接続部206(
図2)を介して接続されるネットワーク網207上のサーバとのセッション(接続)を開放する。この時点で、PC100にそれまで保持されていたサーバから得た情報が破棄される。そして、ユーザ800によるPC100を用いた他の作業の邪魔にならないよう、さらに、待機時間が経過したこと(PC100のモードが変わったこと)を示すため、PC100の表示部108(
図1)のウィンドウモード(ユーザインタフェース)を、
図11に示すようなコンパクトなウィンドウモードに移行する。
図11は、本発明の実施形態における情報処理装置のユーザインタフェースが最小化された時の画面表示について説明する図である。
【0062】
そして、PC100は、ユーザ800から発せられる次のコマンドを待つ。この状態では、キーワード、キーワードに基づいて行った検索、及び検索結果の履歴情報を保持している待機時間を既に経過しているので、ユーザ800から発せられる音声情報に、所定のキーワード(本実施形態の場合は「チャーリィ」というキーワード)が含まれているか否かを判断し、キーワードが含まれていると判断すると、ユーザ800から入力される音声情報から認識されたテキスト情報に含まれる質問をキーワードとして検索を行い、検索結果を出力しているのである。
【0063】
なお、待機時間経過後、PC100を、ウェークアップさせる契機として、上記所定のキーワード(後述するウェークアップワード、本実施形態では、「チャーリィ」)の認識以外に、例えば、ディスプレイ部205(
図2)に表示された所定のボタンをマウスポインタでクリックする、PC100のハードウェアボタンを押下する、又は、ユーザ800が発する声により声紋を認識する等、如何なる方法を用いても良いことは勿論である。
【0064】
そして、ユーザ800から発せられる質問に対しローカルコンテンツ部208に格納されている情報で回答が済む場合は、ネットワーク網207に接続することなく回答を行い、ネットワーク網207に対するアクセスが必要な質問であれば、セッションを接続し、新たな状態、すなわち、履歴情報がない状態で質問に対する回答を検索する。
【0065】
このように、ユーザは、PC100を起動状態にさえしておけば、後は、今やっている普通の作業(読書等)を何ら中断することなく、すなわち、PC100とは無関係の作業を行っていたり、PC100を使って何か別の作業を行っていたりしても、PC100に触れることなく、PC100に対して自然な言い方で質問すれば、PC100は回答してくれるのである。また、候補が複数存在する場合であっても、PC100が誘導してくれるのである。よって、検索のためのキーワードを会話の最初からすべて入力することなく、自然な会話で、声だけで簡単に、しかも快適に情報を入手することができるのである。
【0066】
そして、PC100は、上述したように、オフライン状態にあるローカルコンテンツ部208(
図2)を有しており、ユーザ800からなされた質問に対する回答が、このローカルコンテンツ部208に格納されているか否かを確認し、ローカルコンテンツ部208に格納されている場合は、ネットワーク接続部206(
図2)を介してネットワーク網207に接続することなく、ユーザに対してスピーカ211(
図2)から回答を行う。要するに、ネットワーク網207に対しては、必要に応じて接続し、検索を行い、ローカルコンテンツ部208に格納されている情報で回答が済む場合は、ネットワーク網207に接続しないのである。
【0067】
次に、ユーザ800からなされる質問が如何なる属性のものであるか特定するため、PC100が追加質問を行い、それに対し、PC100が、質問が如何なる属性のものであるかを特定できるよう、ユーザ800が再び回答し、PC100が、質問が如何なる属性のものであるかを特定し、検索を行った結果、候補が複数存在し、この複数の候補の中から最終的な候補を絞り込むためのキーワードを要求するPC100が、キーワードに基づいて導かれる複数の属性を含む検索結果(「こんなお店が見つかりましたよ。何料理にしましょうか?」)を提示し、ユーザ800に対してある特定の属性からなる検索結果を絞り込むために必要なキーワードを要求したとき、ユーザ800が、ある特定の属性からなるキーワードに、他の属性からなるキーワードを付加して言った場合、又は、ある特定の属性からなるキーワードを言わずに、他の属性からなるキーワードを言った場合であっても、PC100は、ユーザ800から言われた属性からなるキーワードに基づいて検索結果を回答するといった、PC100が行っている具体的な音声解析の中身について述べる。
【0068】
複数の属性を含む検索結果の中から、ある特定の属性からなる検索結果を絞り込むために必要なキーワードを、PC100からユーザ800に対して要求し、ユーザ800が、ある特定の属性からなるキーワードに、他の属性からなるキーワードを付加して言った場合、又は、ある特定の属性からなるキーワードを言わずに、他の属性からなるキーワードを言った場合、PC100は、ユーザ800から発せられたすべての言葉に対してキーワード分析を行っている。これは、PC100からユーザ800に対して複数の検索結果の中からいずれかを選択するよう要求した場合であっても同様である。
【0069】
そして、このとき、上記した要素属性判定部304(
図3)に一時的に保存されている
、これまでに分節されたテキスト情報と、このテキスト情報から得られた属性との対応関
係を参照しているのである。すなわち、ユーザ800から発せられたすべての言葉を分節
し、この分節されたテキスト情報が、要素属性判定部3
04に一時的に保存されている、
これまでに分節されたテキスト情報と、このテキスト情報から得られた属性との対応関係
に基づいて、如何なる属性に対応するものであるかを特定し、この特定された属性に対応
する情報を有しているサーバを特定し、この特定したサーバの中から情報を検索している
のである。
【0070】
これにより、ユーザ800が、ある特定の属性からなるキーワードに、他の属性からなるキーワードを付加して言った場合、又は、ある特定の属性からなるキーワードを言わずに、他の属性からなるキーワードを言った場合(上記の例では、「イタリア料理、4000円くらいで、」のように、料理の種類に関するキーワードと、予算に関するキーワードを発した場合、又は、「4000円くらいで、」のように、予算に関するキーワードを発した場合)であっても、予算(という属性)のキーワード=4000円のように、発言された言葉に対してキーワード分析を行い、そのキーワードの属性に対応する条件を埋めることができるのである。さらにいえば、PC100は、ユーザ800から発せられたすべての言葉に対してキーワード分析を行っているため、上記の例の場合、仮に「天気」について突然話題が振られたとしても、追従することができるのである。
【0071】
このように、複数の属性を含む検索結果の中からある属性からなる検索結果を絞り込むためのキーワードの要求に対して、ある特定の属性からなるキーワードに、他の属性からなるキーワードを付加して言った場合、又は、ある特定の属性からなるキーワードを言わずに、他の属性からなるキーワードを言った場合であっても、PC100は、その回答の意図を汲んで、追随して検索を継続することができるのである。
【0072】
次に、本発明の実施形態における情報処理装置の動作について説明する。
図10は、本発明の実施形態における情報処理装置の動作について説明するフローチャートである。
【0073】
図10において、ステップ(以下、「S」という。)1001の処理では、まず、PC100のマイク301(
図3)から音声が入力される。入力された音声は、音声入力部302において音声信号(音声情報)として取り扱われ、増幅等が行われた後、S1002の処理へ移行する。S1002の処理では、テキスト解析部303において、音声情報がテキスト情報に変換されると共に、所定の音節毎に分節され解析される。そして、S1003の処理では、要素属性判定部304において、分節されたテキスト情報が、如何なる属性に対応する情報であるかが判定され、S1004の処理へ移行する。
【0074】
S1004の処理では、サーバAPIデータベース307(
図3)を参照することにより、分節されたテキスト情報から得られる属性のうち、サーバ701、702、・・・、70Nが保有している属性に対応しない要素、すなわち、属性が確定しない要素(テキスト情報)があるか否かが判断される。属性が確定しない要素がある(S1004:YES)と判断されると、S1010の処理へ移行し、属性が確定しない要素がない(S1004:NO)と判断されると、S1005の処理へ移行する。
【0075】
S1010の処理では、分節されたテキスト情報の属性を確定するための音声情報を要求する旨の質問がなされる。そして、要求された音声情報が入力されると、再びS1001の処理を行う。属性の確定しない要素がないとき(S1004:NO)、又は、S1010の処理で要求された音声情報をテキスト情報に変換した結果、当該テキスト情報から属性を得ることができ、属性の確定しない要素がないとき(S1004:NO)は、S1005の処理において、テキスト情報から得られる属性に対応する情報を保有するサーバが、サーバ特定部305(
図3)によって特定される。
【0076】
S1006の処理では、S1005の処理で特定されたサーバを用いて検索を実行する際、分節されたテキスト情報が、検索を実行するための必須項目(必須要件)をすべて満たしているか(不足項目があるか)否かが判断される。不足項目がある(S1006:YES)と判断されると、S1011の処理へ移行し、不足項目がない(S1006:NO)と判断されると、S1007の処理へ移行する。
【0077】
S1011の処理では、不足項目を補充するための質問、すなわち、音声情報の入力を要求する。そして、要求された音声情報が入力されると、再びS1001の処理を行う。不足項目がない(S1006:NO)と判断されたとき、又はS1011の処理で要求された音声情報をテキスト情報に変換し、当該テキスト情報から得られる属性に基づいて行う検索の不足項目が補充され、不足項目がない(S1006:NO)と判断されたときは、S1007の処理において、S1005の処理で特定されたサーバを用いた検索が開始される。
【0078】
S1008の処理では、S1007の処理で検索が実行された結果、検索結果(ある属性に対応する情報)の情報量が所定の閾値以上(検索結果の情報量が所定の閾値未満)であるか否かが判断される。所定の閾値以上(所定の閾値未満)である(S1008:NO)と判断されると、S1012の処理へ移行し、所定の閾値未満である(S1008:YES)と判断されると、S1009の処理へ移行する。なお、この所定の閾値は、検索対象となる属性に応じて、任意の値に設定することが可能である。
【0079】
S1012の処理では、検索結果(ある属性に対応する情報)の情報量を所定の閾値未満に絞り込むための質問、すなわち、音声情報の入力を要求する。そして、要求された音声情報が入力されると、再びS1001の処理を行う。検索結果の情報量が所定の閾値未満である(S1008:YES)と判断されたとき、又はS1012の処理で要求された音声情報をテキスト情報に変換し、当該テキスト情報から得られる属性に基づいて行う検索結果の情報量が所定の閾値未満である(S1008:YES)と判断されたときは、S1009の処理へ移行する。S1009の処理では、検索結果がスピーカ211(
図2)から出力されると共に、ディスプレイ部205(
図2)に表示される。
【0080】
なお、上記実施の形態では、
図10のS1008の処理において、検索結果の情報量が所定の閾値以上であったとき(S1008:NO)、S1012の処理においてなされる音声情報の要求に対し、検索結果の情報量を所定の閾値未満に絞り込みを行うための音声情報が得られなかった場合について説明しているが、本発明の実施形態は、この場合に限定されない。
【0081】
すなわち、S1004の処理において、サーバAPIデータベース307(
図3)を参照することにより、分節されたテキスト情報から得られる属性のうち、サーバ701、702、・・・、70Nが保有している属性に対応しない要素がある(S1004:YES)と判断されると、S1010の処理においてなされる、分節されたテキスト情報の属性を確定するための音声情報の要求に対し、分節されたテキスト情報の属性を確定するための音声情報が得られなかった場合も、要素属性判定部3
04(
図3)に一時的に保存されている、これまでに分節されたテキスト情報と、このテキスト情報から得られた属性との対応関係を参照し、ユーザ800から発せられた音声情報をテキスト情報に変換、分節し、この分節されたテキスト情報が、要素属性判定部3
04に一時的に保存されている、これまでに分節されたテキスト情報と、このテキスト情報から得られた属性との対応関係に基づいて、如何なる属性に対応するものであるかを推測し、この推測された属性に対応するサーバを特定し、この特定したサーバの中から情報を検索しているのである。
【0082】
また、S1006の処理において、S1005の処理で特定されたサーバを用いて検索を実行する際、分節されたテキスト情報が、検索を実行するための必須項目(必須要件)をすべて満たしていない(S1006:YES)と判断されると、S1011の処理においてなされる、不足項目を補充するための音声情報の要求に対し、不足項目を補充するための音声情報が得られなかった場合も、要素属性判定部3
04(
図3)に一時的に保存されている、これまでに分節されたテキスト情報と、このテキスト情報から得られた属性との対応関係を参照し、ユーザ800から発せられた音声情報をテキスト情報に変換、分節し、この分節されたテキスト情報が、要素属性判定部3
04に一時的に保存されている、これまでに分節されたテキスト情報と、このテキスト情報から得られた属性との対応関係に基づいて、如何なる属性に対応するものであるかを推測し、この推測された属性に対応するサーバを特定し、この特定したサーバの中から情報を検索しているのである。
【0083】
なお、
図10に示した本発明の実施形態における情報処理装置100を構成する各機能ブロックの各動作は、コンピュータ上のプログラムに実行させることもできる。すなわち、情報処理装置100のCPU107が、ROM103、RAM104等から構成される記憶部に格納されたプログラムをロードし、プログラムの各処理ステップが順次実行されることによって行われる。
【0084】
以上説明してきたように、本発明によれば、入力される音声情報をテキスト情報に変換する手段と、変換されたテキスト情報を分節する手段と、外部に設けられた複数のサーバの各々が、如何なる属性に対応する情報を保有しているかという情報を予め格納するデータベースと、データベースに格納された情報に基づいて、分節されたテキスト情報から得られる属性と、属性に対応する情報を保有しているサーバとをそれぞれを対応付ける手段と、分節されたテキスト情報とテキスト情報から得られる属性との対応関係を一時保存する手段と、対応付けされたサーバから属性に対応する情報を検索する手段と、検索により得られた属性に対応する情報の情報量が所定の閾値以上であるか否かを判断する手段と、情報量が所定の閾値以上であると判断すると、情報量を絞り込むための音声情報を要求する手段と、情報量を絞り込めない音声情報を獲得しても、対応関係に基づいて、音声情報を変換し、分節されたテキスト情報から得られる属性に対応する情報を保有しているサーバを特定し、サーバの中から属性に対応する所定の情報量を有する情報を検索する手段と、を含むことにより、検索を継続するために必要とされる質問に対して的外れな回答が寄せられたとしても、その的外れな回答の意図を汲んで、追随して検索を継続することができるのである。
【0085】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範囲な趣旨及び範囲から逸脱することなく、これら具体例に様々な修正及び変更が可能である。