本実施の形態について、以下、図面を参照しながら説明する。実施の形態の説明において、個数および量などに言及する場合、特に記載がある場合を除き、本発明の範囲は必ずしもその個数およびその量などに限定されない。実施の形態の説明において、同一の部品および相当部品に対しては、同一の参照番号を付し、重複する説明は繰り返さない場合がある。特に制限が無い限り、実施の形態に示す構成に示す構成を適宜組み合わせて用いることは、当初から予定されていることである。
<実施形態1>
(音声認識システム1の構成)
図1は、本実施形態に基づく音声認識システム1について説明する図である。
図1を参照して、本実施形態に基づく音声認識システム1は、掃除ロボット(音声認識端末)10、ネットワーク5、サーバ20とにより構成されている。
掃除ロボット10は、ネットワーク5を介してサーバ20と通信可能に設けられている。なお、本例においては、ネットワーク5を介してサーバ20と通信する場合について説明するが、直接、サーバ20と通信する方式としてもよい。
音声認識システム1は、掃除ロボット10に人間(ユーザ)が発した音声が入力されると、掃除ロボット10あるいはサーバ20において音声認識されて、入力された音声に対する応答内容を表す音声(以降では、「応答音声」とも記載)を、掃除ロボット10から出力する。
これによって、本実施形態に係る音声認識システム1は、ユーザと、掃除ロボット10との疑似的な会話を実現する。
なお、本実施形態では、音声認識端末の一例として、音声を認識してユーザに対して返答音声を出力する掃除ロボット10を例に挙げて説明するが、本発明はこれに限定されるものではない。例えば、音声認識機能を有する人形や、掃除ロボット10以外の家電(例えば、テレビ、電子レンジなど)などを、音声認識端末として採用することもできる。
また、本実施形態では、サーバ20が1つのサーバによって実現される構成を例に挙げて説明するが、本発明はこれに限定されるものではなく、サーバ20の備える各部(各機能)の少なくとも一部を、他のサーバにより実現する構成を採用してもよい。
(音声認識システム1の要部構成)
図2は、本実施形態に係る音声認識システム1の要部構成について説明する図である。
図2を参照して、まず、掃除ロボット10の構成について説明する。
本実施形態に基づく掃除ロボット10は、通信部101、制御部102、マイク103、スピーカ104、掃除部105、駆動部106、表示部108および記憶部109を含む。
通信部101は、外部との通信を行う手段である。具体的には、通信部101は、サーバ20と例えばインターネットなどのネットワーク5を介して通信する。なお、無線あるいは有線のいずれの通信も可能である。
マイク103は、外部から音の入力を受け付ける。なお、本実施形態では、マイク103が入力を受け付ける音を示す音データには、主に人間の発する音声の周波数帯域に含まれる音のデータ(音声データとも称する)の入力を受け付ける場合について説明するが、音声データの周波数帯域以外の周波数帯域を含む音のデータが含まれていてもよい。マイク103は、入力された音を示す音声データを、制御部102に出力する。
スピーカ104は、制御部102から出力される応答内容を表す応答音声を出力する。以降では、掃除ロボット10がスピーカ104を介して行う応答音声の出力を、「発話」とも記載する。なお、応答内容の詳細については、後述する。
掃除部105は、制御部102からの指示に基づいて、掃除機としての機能を実現する。
駆動部106は、制御部102からの指示に基づいて、掃除ロボット10を移動させる。
掃除部105および駆動部106が協働して動作することによって、掃除ロボット10は、自動的に部屋の掃除を行うことが可能である。
表示部108は、制御部102からの指示に従って各種表示機能を実現する。
記憶部109は、RAM(Random Access Memory)及びフラッシュメモリなどの記憶装置であり、掃除ロボット10の各種機能を実現するためのプログラム等が格納されている。また、記憶部109は、一例として音声応答の出力に関する情報である発話内容データベース120を有している。
制御部102は、主にCPU(Central Processing Unit)で構成され、記憶部109に格納されているプログラムを当該CPUが実行する各部の機能を実現する。
制御部102は、掃除ロボット10の各部を統括的に制御する。具体的には、制御部102は、掃除部105および駆動部106を制御することにより、掃除ロボット10の掃除動作を制御する。また、制御部102は、マイク103によって外部から取得された音を示す音声データを、通信部101を介してサーバ20に送信する。
また、制御部102は、サーバ20に送信した音声データに対して、サーバ20で音声認識した音声認識結果データを通信部101を介して受信する。そして、制御部102は、受信した音声認識結果データに従って応答内容を表す音声応答をスピーカ104から出力することが可能である。
制御部102の主な機能構成について説明する。
制御部102は、音声認識部111と、応答処理実行部112と、動作モード切替部113と、音声入力受付部114とを含む。
音声入力受付部114は、音声データを検出(抽出)する。換言すれば、音声入力受付部114は、外部から受信した音データから、人間の発する音声の周波数帯域を抽出することによって、音データ(音声データ)を検出する。
音声入力受付部114における、音データから音声データを検出する方法としては、例えば、音データから人間の発する音声の周波数帯域(例えば、100Hz以上かつ1kHz以下の周波数帯域)を抽出することによって音声データを検出する方法を挙げることができる。この場合には、音声入力受付部114は、音データから人間の発する音声の周波数帯域を抽出するために、例えば、バンドパスフィルタ、又は、ハイパスフィルタ及びローパスフィルタを組み合わせたフィルタなどを備えていればよい。
音声入力受付部114は、音データから検出した音声データを、音声認識部111に出力するとともに、通信部101を介してサーバ20に送信する。
音声認識部111は、音声入力受付部114によって受け付けた音声データの示す音声の内容(音声内容)を認識内容として認識する。そして、音声認識部111は、音声データから認識した音声内容の認識結果を、応答処理実行部112に出力する。
なお、後述するが、音声認識部111は、音声内容の認識結果(音声認識結果)として得られる認識の確度(確からしさを示す度合)を示す信頼度を算出することも可能である。
なお、認識確度の最小値を「0」とし、最大値を「1」とした場合、例えば、信頼度が高い場合とは「0.6」以上とすることが可能であるが、本発明はこれらの値に限定されるものではない。
なお、音声認識部111における音声認識結果の信頼度の判定方法としては、例えば、予め複数用意されている、所定の言葉(フレーズ)を示す音声波形モデル(音響モデル)と音声データの示す波形との一致度を判定し、最も高い一致度を信頼度とする判定方法などを用いることができる。なお、本発明はこれに限定されるものではなく、例えば、パターンマッチングなどを用いることもできる。
応答処理実行部112は、音声認識部111の音声内容の認識結果に基づいて、応答内容を決定する。具体的には、応答処理実行部112は、記憶部109に格納されている発話内容データベース120を参照して、音声データの示す音声内容に対する応答内容を決定する。応答処理実行部112は、音声認識部111の音声内容の認識結果に基づいて応答内容を決定すると、決定した応答内容に基づいて一例としてスピーカ104を介してユーザに発話する。また、応答処理実行部112は、通信部101を介してサーバ20から送信された音声認識の認識結果である音声認識結果データに基づいて一例としてスピーカ104を介してユーザに発話することが可能である。
動作モード切替部113は、掃除ロボット10が有する複数の動作モードの切り替えを実行する。動作モードの切り替えについては後述する。
次に、本実施形態に基づくサーバ20の構成について説明する。
本実施形態に基づくサーバ20は、通信部201、制御部202および記憶部203を含む。
通信部201は、外部との通信を行う手段である。具体的には、通信部201は、掃除ロボット10と、例えばインターネットなどのネットワーク5を介して通信する。なお、無線あるいは有線のいずれの通信でも可能である。
記憶部203は、RAM(Random Access Memory)及びフラッシュメモリなどの記憶装置であり、サーバ20の各種機能を実現するためのプログラム等が格納されている。また、記憶部203は、一例として音声応答の出力に関する情報である発話内容データベース232、掃除ロボット10の状態を記憶する状態記憶部233を有している。
制御部202は、主にCPU(Central Processing Unit)で構成され、記憶部203に格納されているプログラムを当該CPUが実行することによって実現される。
制御部202は、サーバ20の各部を統括的に制御する。具体的には、制御部202は、掃除ロボット10からの通信部201を介して受信した音声データについて、音声認識した結果を音声認識結果データとして通信部201を介して掃除ロボット10に出力する。
次に、サーバ20の制御部202の主な機能構成について説明する。
制御部202は、音声入力受信部221、音声認識部222および応答処理実行指示部224を有する。
音声入力受信部221は、通信部201を介して掃除ロボット10から送信された音声データを受信する。
音声認識部222は、音声入力受信部221によって受信した音声データの示す音声の内容(音声内容)を認識内容として認識する。そして、音声認識部222は、音声データから認識した音声内容の認識結果を、応答処理実行指示部224に出力する。
なお、後述するが、音声認識部222は、音声内容の認識結果(音声認識結果)として得られる認識の確度(確からしさを示す度合)を示す信頼度を算出することも可能である。
なお、信頼度の最小値を「0」とし、最大値を「1」とした場合、例えば、信頼度が高い場合とは「0.6」以上とすることが可能であるが、本発明はこれらの値に限定されるものではない。
なお、音声認識部222における音声認識結果の信頼度の判定方法としては、例えば、予め複数用意されている、所定の言葉(フレーズ)を示す音声波形モデル(音響モデル)と音声データの示す波形との一致度を判定し、最も高い一致度を信頼度とする判定方法などを用いることができる。なお、本発明はこれに限定されるものではなく、例えば、パターンマッチングなどを用いることもできる。
応答処理実行指示部224は、音声認識部222の音声内容の認識結果に基づいて、応答内容を決定する。具体的には、応答処理実行指示部224は、記憶部203に格納されている発話内容データベース232を参照して、音声データの示す音声内容に対する応答内容を決定する。なお、記憶部203に格納されているデータベースの詳細については後述する。
応答処理実行指示部224は、音声認識部222の音声内容の認識結果に基づいて、応答内容を決定すると、音声認識の認識結果である音声認識結果データとして決定した応答内容を示す応答内容データを含めて、通信部201を介して掃除ロボット10に送信する。
また、応答処理実行指示部224は、必要に応じて掃除ロボット10が有する複数の動作モードの切り替えの指示を実行する。動作モードの切り替えの指示については後述する。
(発話内容データベース)
図3は、本実施形態に基づく発話内容データベースについて説明する図である。
図3を参照して、当該発話内容データベース120は、一例として本実施形態に基づく掃除ロボット10の備える記憶部109に格納されている。
具体的には、発話内容データベース232には、認識内容(認識フレーズ)と応答内容(回答フレーズ)とが関連付けられて登録されている。
一例として、ここでは認識フレーズとして、「疲れた」、「眠いよ」、「ただいま」、「今日は怒られたよ」、「今日は喧嘩したよ」、「いってきます」に対応して回答フレーズが関連付けられて格納されている。例えば、認識フレーズ「疲れた」に対応して回答フレーズ「大変だったねぇ」が関連付けられて登録されている場合が示されている。
また、認識フレーズとして、制御コマンドを登録することも可能である。本例においては、一例として、「お掃除して」に対応して回答フレーズ「掃除開始」とが関連付けられて格納されている。ここで、「掃除開始」は、掃除ロボット10に対する掃除機能の開始を指示するコマンドを意味する。これにより掃除ロボット10は、掃除部105による掃除を開始する。
なお、同じ認識フレーズに対して、複数の回答フレーズが有る場合には複数の中からランダムに回答フレーズが選択されるものとする。なお、優先度を付けて選択させるようにしてもよい。当該複数の回答フレーズを設けることにより、パターン化された応答内容になることなく、ユーザとの間での円滑なコミュニケーションを図ることが可能である。
本例においては、掃除ロボット10およびサーバ20にともに発話内容データベース120、232を設ける。そして、それぞれの装置で並列的に音声認識処理を実行して音声認識結果の早い方を優先して応答処理を実行する。なお、本例においては、一例としてサーバ20の発話内容データベース232には、掃除ロボット10の発話内容データベース120の情報が少なくとも含まれているものとする。
(応答処理)
図4は、実施形態1に基づく音声認識システム1における応答処理の流れを示すシーケンス図である。
図4に示されるように、ユーザは、掃除ロボット10に対して発話(ユーザ発話とも称する)する(シーケンスsq0)。
掃除ロボット10は、ユーザ発話に対して音声の入力を受け付ける(シーケンスsq1)。具体的には、音声入力受付部114は、マイク103を介して外部からの音の入力を受け付ける。
次に、掃除ロボット10は、音声データをサーバ20に出力する(シーケンスsq2)。具体的には、音声入力受付部114は、通信部101を介してサーバ20に出力する。
次に、サーバ20は、掃除ロボット10から送信された音声データを受信して音声認識を実行する(シーケンスsq3)。具体的には、音声入力受信部221は、通信部201を介して音声データを受信して、音声認識部222に出力する。そして、音声認識部222は、音声内容を認識する。
次に、サーバ20は、音声認識した音声認識結果データを掃除ロボット10に送信する(シーケンスsq4)。具体的には、音声認識部222は、音声内容の認識結果を応答処理実行指示部224に出力する。応答処理実行指示部224は、音声内容に対する応答内容を決定して、通信部201を介して応答内容を示す応答内容データを含めた音声認識結果データを掃除ロボット10に送信する。
一方、掃除ロボット10は、シーケンスsq1の後、音声データの音声認識を実行する(シーケンスsq5)。具体的には、音声認識部111は、音声入力受付部114で生成した音声データに従って音声内容を認識する。そして、音声内容の認識結果を応答処理実行部112に出力する。
次に、掃除ロボット10は、音声応答処理を実行する(シーケンスsq6)。
具体的には、応答処理実行部112は、音声認識部111から出力された音声内容の認識結果あるいはサーバ20から送信された音声認識結果データに基づいてスピーカ104を介してユーザに応答(発話)する。
すなわち、本実施形態1においては、掃除ロボット10は、音声認識部111による音声内容の認識結果に基づく応答処理あるいはサーバ20の音声認識部222による音声内容の認識結果である音声認識結果データに基づく応答処理を実行し、本例においては、より早い応答処理を優先して実行する。
具体的には、掃除ロボット10は、音声認識部111による音声内容の認識結果がサーバ20から送信される音声認識結果データよりも早く得られた場合には、当該音声認識部111による音声内容の認識結果を優先して応答処理を実行する。一方で、サーバ20から送信される音声認識結果データが音声認識部111による音声内容の認識結果よりも早く得られた場合には、当該音声認識結果データを優先して応答処理を実行する。なお、遅い認識結果については応答処理を実行しないようにすることにより重複する応答処理を回避することが可能である。
上記の構成により、本実施形態1においては、音声認識を掃除ロボット10およびサーバ20で並列的に実行して処理が早い方を優先して、優先した結果を用いて応答処理を実行する。したがって、掃除ロボット10での音声認識結果の後に、サーバで音声認識処理が実行されることはなく、それぞれで音声認識した最先の音声認識結果が応答処理に利用されるため掃除ロボット10からの応答出力時間が短縮され、ユーザにストレスを与えることなく円滑なコミュニケーションを実行することが可能である。
(フロー図)
図5は、本実施形態1に基づく掃除ロボット10の音声認識処理を実行するフロー図である。
図5を参照して、当該フロー図は、記憶部109に格納されているプログラムを実行して制御部102の各部が機能することにより実行される処理である。
まず、音声の入力が有るかどうかを判断する(ステップS1)。具体的には、音声入力受付部114は、マイク103を介して音声データを検出したかどうかを判断する。
ステップS1において、音声の入力が有るまで待機(ステップS1においてNO)し、音声の入力が有ると判定した場合(ステップS1においてYES)には、出力フラグをオフに設定する(ステップS2)。具体的には、音声入力受付部114は、音声データを検出したと判断した場合には、出力処理が実行されたことを示すフラグ値をリセットする。たとえば、フラグ値が「1」の場合に初期値「0」に設定する。当該出力フラグは、掃除ロボット10からの重複する応答処理を回避するためのデータであり、記憶部109の所定の領域に格納するようにすればよい。
次に、音声データを送信する(ステップS3)。具体的には、音声入力受付部114は、通信部101を介して検出した音声データを通信部101を介してサーバ20に送信する。
そして、次に、音声認識を実行する(ステップS4)。具体的には、音声認識部111は、音声入力受付部114で検出した音声データについて音声内容を認識する。そして、音声認識部111は、音声認識が完了した場合に音声認識結果を応答処理実行部112に出力する。
次に、音声認識が完了したかどうかを判断する(ステップS5)。具体的には、応答処理実行部112は、音声認識部111から音声認識結果の出力を受けたか否かを判断する。
ステップS5において、音声認識処理が完了したと判断した場合(ステップS5においてYES)には、認識フレーズが有るかどうかを判断する(ステップS6)。具体的には、応答処理実行部112は、音声認識部111から受けた音声認識結果に従う認識フレーズが有るか否かを判断する。すなわち、発話内容データベース232(図3)を参照して、認識内容に対応する認識フレーズが登録されているか否かを判断する。
ステップS6において、認識フレーズが有ると判断した場合(ステップS6においてYES)には、回答フレーズを決定する(ステップS7)。具体的には、応答処理実行部112は、発話内容データベース120(図3)を参照して認識フレーズに対応する回答フレーズを決定する。
そして、次に、出力処理を実行する(ステップS8)。具体的には、応答処理実行部112は、一例として回答フレーズの応答内容を発話するようにスピーカ104に指示する。
そして、次に、出力フラグをオンに設定する(ステップS9)。具体的には、応答処理実行部112は、記憶部109の所定の領域に格納されている出力フラグを一例として「1」に設定する。
一方、ステップS6において、認識フレーズが無いと判断した場合(ステップS6においてNO)には、ステップS7〜S9をスキップしてステップS10に進む。
次に、音声認識結果データを受信したかどうかを判断する(ステップS10)。具体的には、応答処理実行部112は、通信部101を介してサーバ20から音声認識結果データを受信したかどうかを判断する。
ステップS10において、音声認識結果データを受信するまで待機(ステップS10においてNO)し、音声認識結果データを受信したと判断した場合(ステップS10においてYES)には、次に出力フラグがオン(「1」)であるかどうかを判断する(ステップS11)。
具体的には、応答処理実行部112は、サーバ20からの音声認識結果データを受信したと判断した場合には、所定の領域に格納されている出力フラグを確認して出力フラグが「1」に設定されているか否かを判断する。
ステップS11において、出力フラグがオン(「1」)であると判断した場合(ステップS11においてYES)には、キャンセル処理を実行する(ステップS14)。具体的には、応答処理実行部112は、出力フラグが「1」に設定されている場合にはサーバ20からの音声認識結果データを無効として処理する。
そして、処理を終了する(エンド)。すなわち、当該キャンセル処理により、既に出力フラグが「1」に設定されて出力処理が完了しているため重複した応答処理を実行しないようにすることが可能である。
一方、ステップS11において、出力フラグがオン(「1」)で無いと判断した場合(ステップS11においてNO)には、出力処理を実行する(ステップS12)。具体的には、応答処理実行部112は、出力フラグが「1」に設定されていない、すなわち「0」に設定されている場合には音声認識結果データに含まれている応答内容データに基づいて一例として回答フレーズの応答内容を発話するようにスピーカ104に指示する。
そして、次に、出力フラグをオン(「1」)に設定する(ステップS13)。具体的には、応答処理実行部112は、記憶部109の所定の領域に格納されている出力フラグを一例として「1」に設定する。
そして、処理を終了する(エンド)。
一方、ステップS5において、音声認識処理が完了していないと判断した場合(ステップS5においてNO)には、音声認識結果データを受信したかどうかを判断する(ステップS15)。具体的には、応答処理実行部112は、通信部101を介してサーバ20からの音声認識結果データを受信したかどうかを判断する。
ステップS15において、音声認識結果データを受信したと判断した場合(ステップS15においてYES)には、出力処理を実行する(ステップS16)。具体的には、応答処理実行部112は音声認識結果データに含まれている応答内容データに基づいて一例として回答フレーズの応答内容を発話するようにスピーカ104に指示する。
そして、次に、出力フラグをオン(「1」)に設定する(ステップS17)。具体的には、応答処理実行部112は、記憶部109の所定の領域に格納されている出力フラグを一例として「1」に設定する。
次に、音声認識が完了したかどうかを判断する(ステップS18)。具体的には、応答処理実行部112は、音声認識部111から音声認識結果の出力を受けたか否かを判断する。
ステップS18において、音声認識が完了するまで待機(ステップS18においてNO)し、音声認識が完了したと判断した場合(ステップS18においてYES)には、キャンセル処理を実行する(ステップS19)。具体的には、応答処理実行部112は、音声認識部111からの音声認識結果の出力を無効として処理する。
そして、処理を終了する(エンド)。すなわち、当該キャンセル処理により、既に出力フラグが「1」に設定されて出力処理が完了しているため重複した応答処理を実行しないようにすることが可能である。
一方、ステップS15において、音声認識結果データを受信していないと判断した場合(ステップS15においてNO)には、ステップS5に戻り、音声認識処理が完了したかどうかを判断する(ステップS5)。以降の処理については同様である。
当該処理により、掃除ロボット10は、音声認識部111による音声内容の認識結果がサーバ20から送信される音声認識結果データよりも早く得られた場合には、当該音声認識部111による音声内容の認識結果を優先して応答処理を実行し、サーバ20から送信される音声認識結果データが音声認識部111による音声内容の認識結果よりも早く得られた場合には、当該音声認識結果データを優先して応答処理を実行することが可能である。
なお、本例においては、応答処理の一例として掃除ロボット10が音声認識結果に基づいて発話する場合について説明したが、発話(音声応答)に限られず、他の応答処理、例えば、表示あるいは走行動作等、他の応答処理を実行するようにしても良い。
なお、本例においては、認識フレーズが無いと判断した場合(ステップS6においてNO)には、掃除ロボット10から何も出力せずにステップS10に進む場合について説明したが、サーバ20からの音声認識結果データを受信するまでの間に、例えば「え〜っと」等のつなぎの音声を発話あるいは他の応答処理を実行させるようにしても良い。また、サーバ20からの音声認識結果データに基づいて応答処理を実行させる場合、掃除ロボット10の音声内容の認識結果に基づく応答処理よりも時間がかかることが想定される。したがって、「え〜っと」等の音声を発話させたり、他の応答処理をさせることで、ユーザに違和感を与えることを軽減し、掃除ロボット10に対して親近感を抱かせることが可能となる。すなわち、より円滑なコミュニケーションを図ることが可能である。例えば、ステップS10におけるサーバ20からの音声認識結果データの受信待ちの場合(ステップS10においてNO)に、このようなつなぎの音声を発話する等の応答処理を一定時間ごとに実行してもよい。このような応答処理は、予め定められた応答でもよいし、いくつかのパターンの中から選択されるものでもよく、また、その選択はランダムに選択されるものでもよい。
このようなつなぎの音声を発話する等の応答処理は応答速度の面で掃除ロボット10により実行させる方がより好ましいが、サーバ20の指示により実行する方式を採用することも可能である。具体的には、図13のシーケンス図のシーケンスsq12において、サーバ20が掃除ロボット10からの音声データを受信した際に、当該つなぎの音声を発話する等の応答処理を実行するように、サーバ20から掃除ロボット10に対して指示する構成を採用するようにしても良い。なお、以下の形態についても同様に適用可能である。
<実施形態2>
上記の実施形態1では、音声認識部111による音声内容の認識結果、サーバ20から送信される音声認識結果データのいずれか早い方の認識結果に基づいて応答処理を実行する方式について説明した。一方で、掃除ロボット10とサーバ20とで実行される音声認識に関して、サーバ20から得られる音声認識結果の方が精度として適切な場合も考えられる。
本実施形態2においては、音声認識結果として得られる認識の確度(確からしさの度合い)を示す信頼度に基づいて適切な応答処理を実行する場合について説明する。一例として、信頼度は「0〜1」の値で示され、「1」に近いほど信頼度は高いとすることが可能である。
図6は、本実施形態2に基づく掃除ロボット10の音声認識処理を実行するフロー図である。
図6を参照して、当該フロー図は、記憶部109に格納されているプログラムを実行して制御部102の各部が機能することにより実行される処理である。
図5のフロー図と比較して、ステップS14の代わりにステップS20を設けた点が異なる。その他の点については同様であるのでその詳細な説明については繰り返さない。
ステップS11において出力フラグがオンであると判断した場合(ステップS11においてYES)には、信頼度判定処理を実行する(ステップS20)。具体的には、応答処理実行部112は、出力フラグがオン(「1」)に設定されている場合には音声認識の認識確度(信頼度)を判定する処理を実行する。
図7は、本実施形態2に基づく信頼度判定処理について説明するフロー図である。
図7を参照して、当該処理は、応答処理実行部112が処理するものとする。
まず、出力した音声認識結果に含まれる信頼度が閾値αよりも大きいかどうかを判定する(ステップS21)。一例として閾値αとして「0.6」とする。なお、当該閾値は一例であり、他の値に設定することも当然に可能である。
次に、ステップS21において、出力した音声認識結果に含まれる信頼度が閾値αよりも大きいと判定した場合(ステップS21においてYES)には、キャンセル処理を実行する(ステップS22)。
そして、処理を終了する(エンド)。具体的には、応答処理実行部112は、出力フラグが「1」に設定されており、かつ、出力した音声認識結果に含まれる信頼度が閾値αよりも大きい場合にはサーバ20からの音声認識結果データを無効として処理する。
一方、ステップS21において、出力した音声認識結果に含まれる信頼度が閾値αよりも大きくないすなわち閾値α以下であると判定した場合(ステップS21においてNO)には、出力した音声認識結果に含まれる信頼度が音声認識結果データに含まれる信頼度以上であるかどうかを判定する(ステップS23)。
ステップS23において、出力した音声認識結果に含まれる信頼度が音声認識結果データに含まれる信頼度以上であると判定した場合(ステップS23においてYES)には、キャンセル処理を実行する(ステップS22)。
そして、処理を終了する(エンド)。具体的には、応答処理実行部112は、出力フラグが「1」に設定されており、かつ、出力した音声認識結果に含まれる信頼度が閾値α以下であり、また、出力した音声認識結果に含まれる信頼度と音声認識結果データに含まれる信頼度とを比較して、出力した音声認識結果に含まれる信頼度が音声認識結果データに含まれる信頼度以上である場合にはサーバ20からの音声認識結果データを無効として処理する。
一方、ステップS23において、出力した音声認識結果に含まれる信頼度が音声認識結果データに含まれる信頼度未満であると判定した場合(ステップS23においてNO)には、再出力処理を実行する(ステップS24)。具体的には、音声認識結果データに含まれている応答内容データに基づいて一例として回答フレーズの応答内容を発話するようにスピーカ104に指示する。なお、その際、「もう一度いうね」という再応答であることを示す発話とともにスピーカ104から応答内容を発話するようにしてもよい。
そして、処理を終了する(エンド)。
当該処理により、掃除ロボット10は、出力した音声認識結果の信頼度が低い場合に、後に受信した音声認識結果データの方が高い場合には、再出力処理を実行する。これにより、掃除ロボット10とサーバ20とで実行される音声認識に関して、サーバ20から得られる音声認識結果の方が適切な場合には、再度出力処理を実行することにより、ユーザにストレスを与えることなく円滑なコミュニケーションを実行することが可能である。
なお、本例においては、出力した音声認識結果の信頼度が低い場合に、後に受信した音声認識結果データの方が高い場合には、再出力処理を実行する場合について説明したが、例えば、図7のステップS21を削除して後に受信した音声認識結果データの信頼度が出力した音声認識結果の信頼度よりも方が高い場合には、再出力処理を実行する構成とするようにしても良い。
<実施形態3>
上記の実施形態1および2においては、掃除ロボット10およびサーバ20とがそれぞれ音声認識を並列的に実行して、処理が早い方を優先して、優先した結果を用いて応答処理を実行する場合について説明した。
一方で、音声認識の内容によってはサーバ20で処理する方が適切な場合も考えられる。
本実施形態3においては、掃除ロボット10が有する動作モードとして通常モードとサーバモードとを有する場合にそのモードを切り替える場合について説明する。
本例にいう通常モードとは、掃除ロボット10およびサーバ20とがそれぞれ音声認識を並列的に実行して、処理が早い方を優先して、優先した結果を用いて応答処理を実行するモードを意味する。言い換えるならばサーバ20から与えられる結果すなわち指示を選択的に利用して応答処理を実行するモードである。
一方で、サーバモードは、サーバ20の音声認識を優先して、サーバ20での音声認識結果を用いて応答処理を実行するモードを意味する。言い換えるならばサーバ20から与えられる結果すなわち指示に従って応答処理を実行するモードである。
通常モードは、掃除ロボット10が予め有する機能を利用するモードであり、例えば掃除機能や通常の発話機能を利用する場合が挙げられる。
サーバモードは、サーバ20の機能を利用することにより掃除ロボット10が有する通常モードの機能を拡張するモードである。
本実施形態3に基づく掃除ロボット10は、サーバモードが有する機能の一例として「しりとりゲーム」を実行することが可能である。
当該処理を実行するためのサーバモードで利用される辞書等について説明する。
図8は、本実施形態3に基づく発話内容データベース232を説明する図である。
図8を参照して、ここでは、音声認識の結果に利用される複数の音声認識辞書が格納されている場合が示されている。具体的には、一例として通常辞書232A、しりとり辞書232B、郵便番号辞書232C、はい/いいえ辞書232Dが示されている。
各辞書は、掃除ロボットの状態に関して複数の動作モードでそれぞれ切り替えられる。
図9は、本実施形態3に基づく複数の動作モードについて説明する図である。
図9を参照して、ここでは、通常モードと、サーバモードとが設けられている場合が示されている。また、サーバモードは、さらにサーバモード(しりとり)、サーバモード(郵便番号)、サーバモード(はい/いいえ)に分けることが可能である。
具体的には、通常モードの場合には、音声認識辞書として、通常辞書を用いる。
通常辞書は、掃除ロボットを動作させる一般的なフレーズが登録されており、当該フレーズに対応する回答フレーズまたは制御フレーズ等が登録されている。
サーバモード(しりとり)の場合には、しりとり辞書が用いられる。
しりとり辞書には、しりとりゲームを実施するためのフレーズと制御フレーズとが登録されている。例えば、動物しりとりの場合には、フレーズとして「ゴリラ」、「らくだ」や、制御フレーズとして「しりとり終了」等が登録されている。
サーバモード(郵便番号)の場合には、郵便番号辞書が用いられる。例えば、フレーズとして「1」、「2」、「3」や、制御フレーズとして「設定終了」等が登録されている。
サーバモード(はい/いいえ)の場合には、はい/いいえ辞書が用いられる。例えば、フレーズとして「はい」、「いいえ」や、制御フレーズとして「設定終了等」が登録されている。
各辞書について具体的に説明する。
(通常辞書)
図10は、本実施形態3に基づく通常辞書について説明する図である。
図10を参照して、認識内容(認識フレーズ)と応答内容(回答フレーズ)と状態とが関連付けて登録されている。
一例として、ここでは認識フレーズとして、「しりとりしよう」、「お掃除して」、「今日の天気は」等に対応して回答フレーズが関連付けられて格納されている。
例えば、認識フレーズ「しりとりしよう」に対応して回答フレーズ「しりとりを始めるよ。ゴリラ」と「サーバモード変更」とが関連付けられて登録されている場合が示されている。そして、状態はサーバモード(しりとり)が関連付けられて登録されている場合が示されている。
ここで、「サーバモード変更」は、掃除ロボット10の動作モードを通常モードからサーバモードに変更するように指示するコマンドを意味する。
また、状態がサーバモード(しりとり)は、サーバ20における掃除ロボット10の状態をサーバモード(しりとり)に設定することを意味する。当該掃除ロボット10の状態を設定することにより掃除ロボット10からの音声データの入力を受信した場合に適切な音声認識辞書に変更することが可能である。
また、認識フレーズ「お掃除して」に対応して回答フレーズ「掃除開始」とが関連付けられて登録されている場合が示されている。
ここで、「掃除開始」は、掃除ロボット10に対する掃除機能の開始を指示するコマンドを意味する。これにより掃除ロボット10は、掃除部105による掃除を開始する。
また、認識フレーズ「今日の天気は」に対応して回答フレーズは2つのパターンが設けられている。具体的には、郵便番号の登録が有る場合と無い場合とに分けられている。郵便番号の登録が有る場合(登録有)には、登録された郵便番号により特定される天気情報が回答フレーズとして回答される。一方、郵便番号の登録が無い場合(登録無)には、「まず、郵便番号を設定するよ。イチ、ニー、サン、みたいに言ってね」と「サーバモード変更」とが関連付けられて登録されている場合が示されている。そして、状態はサーバモード(郵便番号)が関連付けられて登録されている場合が示されている。
状態がサーバモード(郵便番号)は、サーバ20における掃除ロボット10の状態をサーバモード(郵便番号)に設定することを意味する。この点については後述するが当該掃除ロボットの状態を設定することにより掃除ロボット10からの音声データの入力を受信した場合に適切な音声認識辞書に変更することが可能である。
(しりとり辞書)
図11は、本実施形態3に基づくしりとり辞書について説明する図である。
図11を参照して、認識内容(認識フレーズ)と応答内容(回答フレーズ)と状態とが関連付けられて登録されている。
一例として、ここでは認識フレーズとして、「ラッコ」、「ラクダ」、「しりとり終了」、「お掃除して」等に対応して回答フレーズが関連付けられて格納されている。
例えば、認識フレーズ「ラッコ」、「ラクダ」に対応して回答フレーズ「ラッコだね。コアラ」、「ラクダだね。ダチョウ」がそれぞれ関連付けられて登録されている場合が示されている。
また、認識フレーズ「しりとり終了」に対応して回答フレーズ「しりとりを終わるね。」と「通常モード変更」とが関連付けられて登録されている場合が示されている。そして、状態は通常モードが関連付けられて登録されている場合が示されている。
ここで、「通常モード変更」は、掃除ロボット10の動作モードを通常モードに変更するように指示するコマンドを意味する。
状態が通常モードは、サーバ20における掃除ロボット10の状態を通常モードに設定することを意味する。当該掃除ロボット10の状態を設定することにより掃除ロボット10からの音声データの入力を受信した場合に適切な音声認識辞書に変更することが可能である。
また、認識フレーズ「お掃除して」に対応して回答フレーズ「しりとりは終わったよ」と、「掃除開始」と、「通常モード変更」とが関連付けられて登録されている場合が示されている。そして、状態は通常モードが関連付けられて登録されている場合が示されている。
ここで、「掃除開始」は、掃除ロボット10に対する掃除機能の開始を指示するコマンドを意味する。これにより掃除ロボット10は、掃除部105による掃除を開始する。
(掃除ロボット状態)
本実施形態3に基づくサーバ20は、状態記憶部233において掃除ロボット10の状態に関する情報を格納している。
図12は、本実施形態3に基づく状態記憶部233に格納されている情報を説明する図である。
図12を参照して、ここでは、複数の掃除ロボット10が管理されている場合が示されている。具体的には、複数の掃除ロボット10に対してそれぞれ識別番号が割り当てられている。一例として、掃除ロボットIDとしてID1〜ID4がそれぞれ割り当てられて登録されており、それぞれの「掃除ロボットの状態」、「郵便番号」、「前回認識時刻」の情報が登録されている場合が示されている。
「掃除ロボットの状態」は、掃除ロボットを制御するモードに関する情報である。
「郵便番号」は、後述するが掃除ロボットの地理的な位置を特定するために登録される情報である。
「前回認識時刻」は、音声認識に対する応答処理を指示した際に更新されるタイムスタンプであり、新たな音声データの入力が有った場合に前回認識時刻から所定期間が経過している場合には初期状態に設定するために用いられる情報である。
例えば、「ID1」の掃除ロボットは、「掃除ロボットの状態」、「郵便番号」、「前回認識時刻」として「通常モード」、「未設定」、「2013/11/13 17:30:05」がそれぞれ設定されている場合が示されている。
同様に、「ID2」の掃除ロボットは、「掃除ロボットの状態」、「郵便番号」、「前回認識時刻」として「サーバモード(しりとり)」、「261−0013」、「2013/11/13 16:00:10」がそれぞれ設定されている場合が示されている。
同様に、「ID3」の掃除ロボットは、「掃除ロボットの状態」、「郵便番号」、「前回認識時刻」として「サーバモード(郵便番号)」、「未設定」、「2013/11/13 17:40:15」がそれぞれ設定されている場合が示されている。
同様に、「ID4」の掃除ロボットは、「掃除ロボットの状態」、「郵便番号」、「前回認識時刻」として「サーバモード(はい/いいえ)」、「未設定」、「2013/11/13 17:20:14」がそれぞれ設定されている場合が示されている。
以下、本実施形態3に基づく音声認識システム1における応答処理の流れについて説明する。まず、しりとりゲームを実行する場合について説明する。
(しりとりゲーム開始)
図13は、実施形態3に基づく音声認識システム1におけるしりとりゲーム開始の応答処理の流れを示すシーケンス図である。
図13に示されるように、まず、掃除ロボット10は、通常モードに設定されているものとする(シーケンスsq10A)。
次に、ユーザ発話「しりとりしよう」があるものとする(シーケンスsq10)。
次に、掃除ロボット10は、ユーザからの音声の入力を受け付ける(シーケンスsq11)。具体的には、掃除ロボット10の音声入力受付部114は、マイク103を介して外部からの音の入力を受け付ける。
次に、掃除ロボット10は、音声データをサーバ20に出力する(シーケンスsq2)。具体的には、音声入力受付部114は、通信部101を介してサーバ20に出力する。
次に、サーバ20は、掃除ロボット10から送信された音声データを受信して、音声認識を実行する(シーケンスsq12A)。具体的には、音声認識部222は、認識フレーズ「しりとりしよう」を取得する。そして、音声認識部222は、その結果を応答処理実行指示部224に出力する。
次に、サーバ20は、モード判定を実行する(シーケンスsq12A)。具体的には、応答処理実行指示部224は、掃除ロボット10の状態を判断するモード判定を実行する。モード判定は、状態記憶部233において格納されている掃除ロボット10の状態に従って状態に応じた音声認識辞書に設定する処理である。
例えば、図12で説明した「ID1」の掃除ロボットの場合には、「掃除ロボットの状態」が「通常モード」であるため音声認識辞書を「通常辞書」に設定する。また、「ID2」の掃除ロボットの場合には、「掃除ロボットの状態」が「サーバモード(しりとり)」であるため音声認識辞書を「しりとり辞書」に設定する。「ID3」の掃除ロボットの場合には、「掃除ロボットの状態」が「サーバモード(郵便番号)」であるため音声認識辞書を「郵便番号辞書」に設定する。また、「ID4」の掃除ロボットの場合には、「掃除ロボットの状態」が「サーバモード(はい/いいえ)」であるため音声認識辞書を「はい/いいえ辞書」に設定する。
本例においては、一例として「ID1」の掃除ロボットの場合、すなわち「通常モード」である場合に「通常辞書」に設定する。
次に、サーバ20は、回答フレーズを決定する(シーケンスsq14)。
具体的には、応答処理実行指示部224は、音声認識部222から得られた結果である音声内容に対する応答内容を決定する。
本例においては、例えば、図10で説明した通常辞書を用いた場合、認識フレーズ「しりとりしよう」に対応して回答フレーズ「しりとりを始めるよ。ゴリラ」と、「サーバモード変更」とが応答内容として決定される。本例においては、「しりとりを始めるよ。ゴリラ」は一例として音声ファイルであるものとする。なお、テキスト形式のファイルであっても良い。他の例においても同様である。
次に、サーバ20は、サーバモード(しりとり)に設定する(シーケンスsq15)。
具体的には、応答処理実行指示部224は、認識フレーズ「しりとりしよう」に関連付けられた「掃除ロボットの状態」をサーバモード(しりとり)に設定する。応答処理実行指示部224は、状態記憶部233の「ID1」の「掃除ロボットの状態」を「サーバモード(しりとり)」に変更する。これにより、次の応答の際に利用する適切な音声認識辞書(しりとり辞書)を利用することが可能である。
次に、サーバ20は、音声認識した音声認識結果データを掃除ロボット10に送信する(シーケンスsq16)。具体的には、応答処理実行指示部224は、通信部201を介して音声認識結果データとして、音声「しりとりを始めるよ。ゴリラ」と、サーバモード変更指示を掃除ロボット10に送信する。
一方、掃除ロボット10は、シーケンスsq11の後、音声データの音声認識を実行する(シーケンスsq17)。具体的には、音声認識部111は、音声入力受付部114で生成した音声データに従って音声内容を認識する。そして、音声内容の認識結果を応答処理実行部112に出力する。
次に、掃除ロボット10は、認識を失敗する(シーケンスsq18)。本例における掃除ロボット10の発話内容データベース120には、認識フレーズ「しりとりしよう」に対応する回答フレーズが設けられていないため認識失敗となった場合が示されている。
次に、掃除ロボット10は、サーバモードに設定する(シーケンスsq19)。具体的には、動作モード切替部113は、サーバ20から送信された音声認識結果データ(「サーバモード変更指示))に基づいて通常モードをサーバモードに変更する。
また、掃除ロボット10は、サーバ20から送信された音声認識結果データに基づいて音声応答処理を実行する(シーケンスsq20)。具体的には、応答処理実行部112は、音声認識結果データ(「しりとりを始めるよ。ゴリラ」)の音声ファイルを再生する。すなわち、スピーカ104により音声(「しりとりを始めるよ。ゴリラ」)をユーザに応答(発話)する(シーケンスsq21)。
次に、しりとりのルールに基づいてユーザ発話「ラッコ」があるものとする(シーケンスsq22)。
次に、掃除ロボット10は、ユーザからの音声の入力を受け付ける(シーケンスsq23)。具体的には、掃除ロボット10の音声入力受付部114は、マイク103を介して外部からの音の入力を受け付ける。
次に、掃除ロボット10は、音声データをサーバ20に出力する(シーケンスsq24)。具体的には、音声入力受付部114は、通信部101を介してサーバ20に出力する。
次に、サーバ20は、掃除ロボット10から送信された音声データを受信して、音声認識を実行する(シーケンスsq24A)。具体的には、音声認識部222は、認識フレーズ「ラッコ」を取得する。そして、音声認識部222は、その結果を応答処理実行指示部224に出力する。
次に、サーバ20は、モード判定を実行する(シーケンスsq25)。具体的には、応答処理実行指示部224は、掃除ロボット10の状態を判断するモード判定を実行する。モード判定は、状態記憶部233において格納されている掃除ロボット10の状態に従って状態に応じた辞書に設定する処理である。本例においては、シーケンスsq15により、サーバ20の状態記憶部233の「ID1」の「掃除ロボットの状態」は「サーバモード(しりとり)」に変更されている。これにより、音声認識辞書を「しりとり辞書」に設定する。
次に、サーバ20は、回答フレーズを決定する(シーケンスsq26)。具体的には、応答処理実行指示部224は、音声内容に対する応答内容を決定する。本例においては、例えば、図11で説明したしりとり辞書を用いた場合、認識フレーズ「ラッコ」に対応して回答フレーズ「ラッコだね。コアラ」が応答内容として決定される。
次に、サーバ20は、音声認識した音声認識結果データを掃除ロボット10に送信する(シーケンスsq26A)。具体的には、応答処理実行指示部224は、通信部201を介して音声認識結果データとして、音声ファイル(「ラッコだね。コアラ」)を掃除ロボット10に送信する。
一方、掃除ロボット10は、シーケンスsq24の後、音声データの音声認識を実行する(シーケンスsq25A)。具体的には、音声認識部111は、音声入力受付部114で生成した音声データに従って音声内容を認識する。そして、音声内容の認識結果を応答処理実行部112に出力する。
次に、掃除ロボット10は、認識を失敗する(シーケンスsq25B)。本例における掃除ロボット10は、認識フレーズ「ラッコ」に対応する回答フレーズが設けられていないため認識失敗となった場合が示されている。
次に、掃除ロボット10は、サーバ20から送信された音声認識結果データに基づいて音声応答処理を実行する(シーケンスsq27)。具体的には、応答処理実行部112は、音声認識結果データ(「ラッコだね。コアラ」)の音声ファイルを再生する。すなわち、スピーカ104により音声(「ラッコだね。コアラ」)をユーザに応答(発話)する(シーケンスsq28)。
次に、しりとりのルールに基づいてユーザ発話「ラクダ」があるものとする(シーケンスsq29)。以降、同様の処理に従ってしりとりゲームを実行することが可能である。
したがって、当該構成により、「しりとりゲーム」のようなサーバ20にのみ機能が設けられているような場合に、掃除ロボット10の状態を通常モードからサーバモードに切り替えてサーバ20の機能を利用することにより掃除ロボット10が有する通常モードの機能を拡張することが可能である。そして、サーバ20の音声認識を優先することによって、掃除ロボット10から出力される応答時間が短縮され、ユーザにストレスを与えることなく円滑なコミュニケーションを実行することが可能である。
なお、本例においては、ユーザが発話した音声内容を音声認識して、音声認識結果に基づいて掃除ロボット10の状態を通常モードからサーバモードに設定を変更する場合について説明したが、特に音声認識結果に基づいて状態を変更させる必要はなく、他の手段により行うことも可能である。具体的には、掃除ロボット10の操作部(図示せず)に対してサーバモードに切り替える操作入力を行うことで、掃除ロボット10を通常モードからサーバモードに変更するとともに、当該サーバモードへの切り替えをサーバ20に通知することにより、図12で説明した掃除ロボット状態をサーバモードに変更することが可能である。また、掃除ロボット10に対してサーバモードへの変更の指示を入力するのではなく、サーバ20に対して所定の命令を与えることにより、通常モードからサーバモードへの変更を指示することも可能である。そして、サーバ20から掃除ロボット10に対して通常モードからサーバモードに切り替わるようにサーバモード変更指示を送信するようにしてもよい。なお、以下の形態についても同様に適用可能である。
(しりとりゲーム終了(その1))
図14は、実施形態3に基づく音声認識システム1におけるしりとりゲーム終了の応答処理(その1)の流れを示すシーケンス図である。
図14に示されるように、まず、掃除ロボット10は、サーバモードに設定されているものとする(シーケンスsq30A)。
次に、ユーザ発話「しりとり終了」があるものとする(シーケンスsq30)。
次に、掃除ロボット10は、ユーザからの音声の入力を受け付ける(シーケンスsq31)。具体的には、掃除ロボット10の音声入力受付部114は、マイク103を介して外部からの音の入力を受け付ける。
次に、掃除ロボット10は、音声データをサーバ20に出力する(シーケンスsq32)。具体的には、音声入力受付部114は、通信部101を介してサーバ20に出力する。
次に、サーバ20は、掃除ロボット10から送信された音声データを受信して、音声認識を実行する(シーケンスsq32A)。具体的には、音声認識部222は、認識フレーズとして「しりとり終了」を取得する。そして、音声認識部222は、その結果を応答処理実行指示部224に出力する。
次に、サーバ20は、モード判定を実行する(シーケンスsq33)。具体的には、応答処理実行指示部224は、掃除ロボット10の状態を判断するモード判定を実行する。モード判定は、状態記憶部233において格納されている掃除ロボット10の状態に従って状態に応じた辞書に設定する処理である。本例においては、シーケンスsq15により、サーバ20の状態記憶部233の「ID1」の「掃除ロボットの状態」は「サーバモード(しりとり)」に設定されているものとする。これにより、音声認識辞書を「しりとり辞書」に設定する。
次に、サーバ20は、回答フレーズを決定する(シーケンスsq34)。具体的には、応答処理実行指示部224は、音声認識部222から得られた結果である音声内容に対する応答内容を決定する。
本例においては、例えば、図11で説明したしりとり辞書を用いた場合、認識フレーズ「しりとり終了」に対応して回答フレーズ「しりとりを終わるね」と、「通常モード変更」とが応答内容として決定される。
次に、サーバ20は、通常モードに設定する(シーケンスsq35)。具体的には、応答処理実行指示部224は、認識フレーズ「しりとり終了」に関連付けられた「掃除ロボットの状態」を通常モードに設定する。具体的には、状態記憶部233の「ID1」の「掃除ロボットの状態」を「通常モード」に変更する。これにより、次の応答の際に利用する適切な音声認識辞書(通常辞書)を利用することが可能である。
次に、サーバ20は、音声認識した音声認識結果データを掃除ロボット10に送信する(シーケンスsq36)。具体的には、応答処理実行指示部224は、通信部201を介して音声認識結果データとして、音声「しりとりを終わるね」と、通常モード変更指示を掃除ロボット10に送信する。
一方、掃除ロボット10は、シーケンスsq32の後、音声データの音声認識を実行する(シーケンスsq33A)。具体的には、音声認識部111は、音声入力受付部114で生成した音声データに従って音声内容を認識する。そして、音声内容の認識結果を応答処理実行部112に出力する。
次に、掃除ロボット10は、認識を無効とする(シーケンスsq33B)。本例における掃除ロボット10は、サーバモードの場合にサーバ20からの指示を優先し、掃除ロボット10の音声認識の認識結果を無効とする場合が示されている。
次に、掃除ロボット10は、通常モードに設定する(シーケンスsq37)。具体的には、動作モード切替部113は、サーバ20から送信された音声認識結果データ(「通常モード変更指示」)に基づいてサーバモードを通常モードに変更する。
また、掃除ロボット10は、サーバ20から送信された音声認識結果データに基づいて音声応答処理を実行する(シーケンスsq38)。具体的には、応答処理実行部112は、音声認識結果データ(「しりとりを終わるね」)の音声ファイルを再生する。すなわち、スピーカ104により音声(「しりとりを終わるね」)をユーザに応答(発話)する(シーケンスsq39)。
これにより、しりとりゲームを終了することが可能である。
なお、本例においては、ユーザが発話した音声内容を音声認識して、音声認識結果に基づいて掃除ロボット10の状態をサーバモードから通常モードに設定を変更する場合について説明したが、特に音声認識結果に基づいて状態を変更させる必要はなく、他の手段により行うことも可能である。具体的には、掃除ロボット10の操作部(図示せず)に対して通常モードに切り替える操作入力を行うことで、掃除ロボット10をサーバモードから通常モードに変更するとともに、当該通常モードへの切り替えをサーバ20に通知することにより、図12で説明した掃除ロボット状態を通常モードに変更することが可能である。また、掃除ロボット10に対して通常モードへの変更の指示を入力するのではなく、サーバ20に対して所定の命令を与えることにより、サーバモードから通常モードへの変更を指示することも可能である。そして、サーバ20から掃除ロボット10に対してサーバモードから通常モードに切り替わるように通常モード変更指示を送信するようにしてもよい。なお、以下の形態についても同様に適用可能である。
(しりとりゲーム終了(その2))
ここでは、しりとりゲームが開始されてから所定時間(一例として5分)以上継続して音声認識が無い場合について説明する。そして、所定時間以上、経過した後、ユーザ発話がある場合について説明する。
図15は、実施形態3に基づく音声認識システム1におけるしりとりゲーム終了の応答処理(その2)の流れを示すシーケンス図である。
図15に示されるように、まず、掃除ロボット10は、サーバモードに設定されているものとする(シーケンスsq40)。
次に、前回の認識から5分以上経過しているものとする(シーケンスsq40A)。
そして、掃除ロボット10は、前回の認識から5分以上経過しているためサーバモードから通常モードに変更する(シーケンスsq41)。
そして、ユーザ発話「お掃除して」があるものとする(シーケンスsq42)。
次に、掃除ロボット10は、ユーザからの音声の入力を受け付ける(シーケンスsq43)。具体的には、掃除ロボット10の音声入力受付部114は、マイク103を介して外部からの音の入力を受け付ける。
次に、掃除ロボット10は、音声データをサーバ20に出力する(シーケンスsq44)。具体的には、音声入力受付部114は、通信部101を介してサーバ20に出力する。
次に、サーバ20は、掃除ロボット10から送信された音声データを受信して、音声認識を実行する(シーケンスsq44A)。具体的には、音声認識部222は、認識フレーズとして「お掃除して」を取得する。そして、音声認識部222は、その結果を応答処理実行指示部224に出力する。
次に、サーバ20は、モード判定を実行する(シーケンスsq45)。具体的には、応答処理実行指示部224は、掃除ロボット10の状態を判断するモード判定を実行する。モード判定は、状態記憶部233において格納されている掃除ロボット10の状態に従って状態に応じた音声認識辞書に設定する処理である。
一方、本例においては、前回の認識から5分以上経過した状態である。当該モード判定において、状態記憶部233に格納されている前回認識時刻が参照される。そして、今回の音声認識時刻と前回認識時刻とを比較して所定時間経過しているか否かを判定して、所定時間経過していると判定した場合には、初期状態(通常モード)にリセットする。
これにより、サーバ20は、通常モードに設定する(シーケンスsq46)。すなわち、音声認識辞書として「通常辞書」に設定する。具体的には、応答処理実行指示部224は、状態記憶部233の「ID1」の「掃除ロボットの状態」を「通常モード」に変更する。
次に、サーバ20は、回答フレーズを決定する(シーケンスsq48)。具体的には、応答処理実行指示部224は、音声認識部222から得られた結果である音声内容に対する応答内容を決定する。
本例においては、例えば、図10で説明した通常辞書を用いた場合、認識フレーズ「お掃除して」に対応して回答フレーズ「掃除開始」が応答内容として決定される。
次に、サーバ20は、音声認識した音声認識結果データを掃除ロボット10に送信する(シーケンスsq49)。具体的には、応答処理実行指示部224は、通信部201を介して音声認識結果データとして、掃除開始指示マンドを掃除ロボット10に送信する。
一方、掃除ロボット10は、シーケンスsq44の後、音声データの音声認識を実行する(シーケンスsq51)。具体的には、音声認識部111は、音声入力受付部114で生成した音声データに従って音声内容を認識する。そして、音声内容の認識結果を応答処理実行部112に出力する。
次に、掃除ロボット10は、掃除機能の実行と判定する(シーケンスsq52)。
本例においては、例えば、図3で説明した通常辞書を用いた場合、認識フレーズ「お掃除して」に対応して回答フレーズ「掃除開始」が応答内容として決定される。
次に、掃除ロボット10は、掃除を開始する(シーケンスsq53)。具体的には、応答処理実行部112は、回答フレーズ「掃除開始」に従って掃除部105に指示して掃除機能の実行を指示する。
なお、掃除ロボット10が音声認識済みなら、サーバ20の音声認識結果データはキャンセルされる。また、サーバ20からの音声認識結果データが、掃除ロボット10の音声認識より早ければ、サーバ20からの音声認識結果データ(掃除開始指示コマンド)に基づいて掃除が開始される(シーケンスsq50)。
したがって、しりとりゲームが開始されてから所定時間(一例として5分)以上継続して音声認識が無い場合には、通常モードにリセットされることにより、しりとりゲームを終了することが可能である。
また、通常モードにおいて、掃除ロボット10は、音声認識部111による音声内容の認識結果がサーバ20から送信される音声認識結果データよりも早く得られた場合には、当該音声認識部111による音声内容の認識結果を優先して応答処理(掃除機能)を実行する。一方で、サーバ20から送信される音声認識結果データが音声認識部111による音声内容の認識結果よりも早く得られた場合には、当該音声認識結果データを優先して応答処理(掃除機能)を実行する。なお、遅い認識結果については応答処理を実行しないようにすることにより重複する応答処理(掃除機能)の実行を回避することが可能である。
(しりとりゲーム終了(その3))
ここでは、しりとりゲームの途中でしりとりゲームが終了する場合について説明する。
図16は、実施形態3に基づく音声認識システム1におけるしりとりゲーム終了の応答処理(その3)の流れを示すシーケンス図である。
図16に示されるように、まず、掃除ロボット10は、サーバモードに設定されているものとする(シーケンスsq60)。
そして、ユーザ発話「お掃除して」があるものとする(シーケンスsq61)。
次に、掃除ロボット10は、ユーザからの音声の入力を受け付ける(シーケンスsq62)。具体的には、掃除ロボット10の音声入力受付部114は、マイク103を介して外部からの音の入力を受け付ける。
次に、掃除ロボット10は、音声データをサーバ20に出力する(シーケンスsq63)。具体的には、音声入力受付部114は、通信部101を介してサーバ20に出力する。
次に、サーバ20は、掃除ロボット10から送信された音声データを受信して、音声認識を実行する(シーケンスsq63A)。具体的には、音声認識部222は、認識フレーズ「お掃除して」を取得する。そして、音声認識部222は、その結果を応答処理実行指示部224に出力する。
次に、サーバ20は、モード判定を実行する(シーケンスsq64)。具体的には、応答処理実行指示部224は、掃除ロボット10の状態を判断するモード判定を実行する。モード判定は、状態記憶部233において格納されている掃除ロボット10の状態に従って状態に応じた音声認識辞書に設定する処理である。本例においては、シーケンスsq15により、サーバ20の状態記憶部233の「ID1」の「掃除ロボットの状態」は「サーバモード(しりとり)」に設定されているものとする。これにより、音声認識辞書を「しりとり辞書」に設定する。
次に、サーバ20は、回答フレーズを決定する(シーケンスsq65)。具体的には、応答処理実行指示部224は、音声認識部222から得られた結果である音声内容に対する応答内容を決定する。
本例においては、例えば、図11で説明したしりとり辞書を用いた場合、認識フレーズ「お掃除して」に対応して回答フレーズ「しりとりは終わったよ」と、「掃除開始」と、「通常モード変更」とが応答内容として決定される。
次に、サーバ20は、通常モードに設定する(シーケンスsq66)。
また、応答処理実行指示部224は、認識フレーズ「お掃除して」に関連付けられた「掃除ロボットの状態」を通常モードに変更する。これにより、次の応答の際に利用する適切な音声認識辞書(通常辞書)を利用することが可能である。
次に、サーバ20は、音声認識した音声認識結果データを掃除ロボット10に送信する(シーケンスsq67)。具体的には、応答処理実行指示部224は、通信部201を介して音声認識結果データとして、音声「しりとりは終わったよ」と、掃除開始指示マンドと、通常モード変更指示を掃除ロボット10に送信する。
一方、掃除ロボット10は、シーケンスsq63の後、音声データの音声認識を実行する(シーケンスsq63A)。具体的には、音声認識部111は、音声入力受付部114で生成した音声データに従って音声内容を認識する。そして、音声内容の認識結果を応答処理実行部112に出力する。
次に、掃除ロボット10は、認識を無効とする(シーケンスsq63B)。本例における掃除ロボット10は、サーバモードの場合にサーバ20からの指示を優先し、掃除ロボット10の音声認識の認識結果を無効とする場合が示されている。
次に、掃除ロボット10は、通常モードに設定する(シーケンスsq68)。具体的には、動作モード切替部113は、サーバ20から送信された音声認識結果データ(「通常モード変更指示」)に基づいてサーバモードを通常モードに変更する。
また、掃除ロボット10は、サーバ20から送信された音声認識結果データに基づいて音声応答処理を実行する(シーケンスsq69)。具体的には、応答処理実行部112は、音声認識結果データ(「しりとりを終わるね」)の音声ファイルを再生する。すなわち、スピーカ104により音声(「しりとりを終わったよ」)をユーザに応答(発話)する(シーケンスsq70)。
そして、次に、掃除ロボット10は、掃除機能の実行と判定する(シーケンスsq71)。応答処理実行部112は、音声認識結果データ(掃除開始指示コマンド)に基づいて、掃除機能の実行と判定する。
次に、掃除ロボット10は、掃除を開始する(シーケンスsq72)。具体的には、応答処理実行部112は、回答フレーズ「掃除開始」に従って掃除部105に指示して掃除機能の実行を指示する。
したがって、しりとりゲームが開始されてから、所定のユーザ発話に従ってしりとりゲームを終了することが可能である。
(フロー図)
図17は、本実施形態3に基づくサーバ20の音声認識処理を実行するフロー図である。
図17を参照して、当該フロー図は、記憶部203に格納されているプログラムを実行して制御部202の各部が機能することにより実行される処理である。
まず、音声データを受信したかどうかを判定する(ステップS30)。具体的には、音声入力受信部221は、音声データを受信したかどうかを判定する。
ステップS30において、音声データの受信が有るまで待機(ステップS30においてNO)し、音声データの受信が有ると判定した場合(ステップS30においてYES)には、音声認識を実行する(ステップS31)。具体的には、音声認識部222は、音声入力受信部221で受信した音声データに従って音声内容を認識する。そして、音声内容の認識結果を応答処理実行指示部224に出力する。
次に、モード判定を実行する(ステップS32)。具体的には、応答処理実行指示部224は、図12で説明したようにサーバ20の記憶部203に格納されている状態記憶部233の掃除ロボット10の状態を確認する。また、前回の認識から所定時間経過しているか否かを判定して、所定時間経過していると判定した場合には初期状態(通常モード)にリセットする。
そして、次に、取得したモード(状態)に従って音声認識辞書を設定する(ステップS33)。具体的には、応答処理実行指示部224は、応答内容を決定するための音声認識辞書を設定する。
次に、認識フレーズが有るかどうかを判断する(ステップS34)。具体的には、応答処理実行指示部224は、設定した音声認識辞書に音声認識部222で認識した認識フレーズが含まれているか否かを判断する。
ステップS34において、認識フレーズが有ると判断した場合(ステップS34においてYES)には、回答フレーズを決定する(ステップS35)。具体的には、応答処理実行指示部224は、設定した音声認識辞書に音声認識部222で認識した認識フレーズが含まれていると判断した場合には、当該認識フレーズに対応する回答フレーズを決定する。
そして、次に、モードを設定する(ステップS36)。具体的には、応答処理実行指示部224は、認識フレーズに対応するモードが設定されている場合には、必要に応じて状態記憶部233のモードを更新する。
そして、次に、出力処理を実行する(ステップS8)。具体的には、応答処理実行指示部224は、決定した回答フレーズを音声認識結果データとして通信部201を介して掃除ロボット10に送信する。また、状態記憶部233の掃除ロボット10の状態の前回認識時刻を更新する。
そして、処理を終了する(エンド)。
一方、ステップS34において、認識フレーズが無いと判断した場合(ステップS34においてNO)には、ステップS35〜S37をスキップして処理を終了する(エンド)。具体的には、応答処理実行指示部224は、設定した音声認識辞書に音声認識部222で認識した認識フレーズが含まれていないと判断した場合には、認識失敗として処理を終了する。
なお、本例においては、サーバモードに切り替える場合として「しりとりゲーム」を実行する場合について説明したが、特に「しりとりゲーム」に限られるわけではなく、サーバ20の機能を優先的に利用する処理であればどのような処理でも適用することが可能である。
<実施形態4>
上記の実施形態3では、掃除ロボット10の状態に関して複数の動作モードを切り替える場合について説明した。本実施形態4においては、さらに拡張した機能について説明する。
本例においては、一例として天気情報を取得して掃除ロボット10が発話する場合について説明する。
具体的には、サーバモード(郵便番号)、サーバモード(はい/いいえ)の音声認識辞書(郵便番号辞書、はい/いいえ辞書)を利用する場合について説明する。
(郵便番号辞書)
図18は、本実施形態4に基づく郵便番号辞書およびはい/いいえ辞書について説明する図である。
図18(A)を参照して、郵便番号辞書に関して、認識内容(認識フレーズ)と応答内容(回答フレーズ)と状態とが関連付けて登録されている。
一例として、ここでは認識フレーズとして、「ニー、ロク、イチ」、「設定終了」等に対応して回答フレーズが関連付けられて格納されている。
例えば、認識フレーズ「ニー、ロク、イチ」に対応して回答フレーズ「XXXでいいですか?はい、か、いいえ、で答えてね。」とが関連付けられて登録されている場合が示されている。そして、状態はサーバモード(はい/いいえ)が関連付けられて登録されている場合が示されている。なお、「XXX」は、認識フレーズと同様の内容を意味している。
状態がサーバモード(はい/いいえ)は、サーバ20における掃除ロボット10の状態をサーバモード(はい/いいえ)に設定することを意味する。当該掃除ロボット10の状態を設定することにより掃除ロボット10からの音声データの入力を受信した場合に適切な音声認識辞書に変更することが可能である。
また、認識フレーズ「設定終了」に対応して回答フレーズ「設定を終了するね」とが関連付けられて登録されている場合が示されている。
また、状態が通常モードは、サーバ20における掃除ロボット10の状態を通常モードに設定することを意味する。
(はい/いいえ辞書)
図18(B)を参照して、はい/いいえ辞書に関して、認識内容(認識フレーズ)と応答内容(回答フレーズ)と状態とが関連付けて登録されている。
一例として、ここでは認識フレーズとして、「はい」、「いいえ」、「設定終了」等に対応して回答フレーズが関連付けられて格納されている。
例えば、認識フレーズ「はい」に対応して回答フレーズ「YYYを登録したよ」と、「天気情報」と、「通常モード変更」とが関連付けられて登録されている場合が示されている。そして、状態は通常モードが関連付けられて登録されている場合が示されている。なお、「YYY」は、登録した郵便番号の内容と同様の内容を意味している。
ここで、「通常モード変更」は、掃除ロボット10の動作モードを通常モードに変更するように指示するコマンドを意味する。
また、状態が通常モードは、サーバ20における掃除ロボット10の状態を通常モードに設定することを意味する。当該掃除ロボット10の状態を設定することにより掃除ロボット10からの音声データの入力を受信した場合に適切な音声認識辞書に変更することが可能である。
また、認識フレーズ「いいえ」に対応して回答フレーズ「もう一度ゆってね」とが関連付けられて登録されている場合が示されている。
また、状態がサーバモード(郵便番号)は、サーバ20における掃除ロボット10の状態をサーバモード(郵便番号)に設定することを意味する。当該掃除ロボット10の状態を設定することにより掃除ロボット10からの音声データの入力を受信した場合に適切な音声認識辞書に変更することが可能である。
また、認識フレーズ「設定終了」に対応して回答フレーズ「設定を終了するね」とが関連付けられて登録されている場合が示されている。
また、状態が通常モードは、サーバ20における掃除ロボット10の状態を通常モードに設定することを意味する。当該掃除ロボット10の状態を設定することにより掃除ロボット10からの音声データの入力を受信した場合に適切な音声認識辞書に変更することが可能である。
(天気情報取得)
図19は、実施形態4に基づく音声認識システム1における天気情報取得(その1)の応答処理の流れを示すシーケンス図である。
図19に示されるように、まず、掃除ロボット10は、通常モードに設定されているものとする(シーケンスsq80)。
次に、ユーザ発話「今日の天気は」があるものとする(シーケンスsq81)。
次に、掃除ロボット10は、ユーザからの音声の入力を受け付ける(シーケンスsq82)。具体的には、掃除ロボット10の音声入力受付部114は、マイク103を介して外部からの音の入力を受け付ける。
次に、掃除ロボット10は、音声データをサーバ20に出力する(シーケンスsq83)。具体的には、音声入力受付部114は、通信部101を介してサーバ20に出力する。
次に、サーバ20は、掃除ロボット10から送信された音声データを受信して、音声認識を実行する(シーケンスsq83A)。具体的には、音声認識部222は、認識フレーズ「今日の天気は」を取得する。そして、音声認識部222は、その結果を応答処理実行指示部224に出力する。
次に、サーバ20は、モード判定を実行する(シーケンスsq84)。具体的には、応答処理実行指示部224は、掃除ロボット10の状態を判断するモード判定を実行する。モード判定は、状態記憶部233において格納されている掃除ロボット10の状態に従って状態に応じた音声認識辞書に設定する処理である。本例においては、一例として「ID1」の掃除ロボットの場合、すなわち「通常モード」である場合に「通常辞書」に設定する。
次に、サーバ20は、登録無を確認する(シーケンスsq86)。具体的には、応答処理実行指示部224は、応答処理実行指示部224は、音声認識部222から得られた結果である音声内容に対する応答内容を決定する。
本例においては、例えば、図10で説明した通常辞書を用いた場合、認識フレーズ「今日の天気は」に対応して回答フレーズとして2つのパターンが設けられている。具体的には、郵便番号の登録が有る場合「登録有:天気情報」と、郵便番号の登録が無い場合「登録無:まず郵便番号を設定するよ。イチ、マル、サン、みたいに言ってね」とに分けられている。
したがって、応答処理実行指示部224は、状態記憶部233において格納されている掃除ロボット10の郵便番号が設定されているか否かを確認する。そして、本例においては、一例として「未設定」すなわち登録無であることを確認する。
次に、サーバ20は、回答フレーズを決定する(シーケンスsq86A)。
具体的には、応答処理実行指示部224は、例えば、図10で説明した通常辞書を用いた場合、認識フレーズ「今日の天気は」の登録無に対応して回答フレーズ「まず郵便番号を設定するよ。イチ、マル、サン、みたいに言ってね」と、「サーバモード変更」とを応答内容として決定する。
次に、サーバ20は、サーバモード(郵便番号)に設定する(シーケンスsq87)。具体的には、応答処理実行指示部224は、認識フレーズ「今日の天気は」に関連付けられた「掃除ロボットの状態」をサーバモード(郵便番号)に設定する。応答処理実行指示部224は、一例として状態記憶部233の「ID1」の「掃除ロボットの状態」を「サーバモード(郵便番号)」に変更する。これにより、次の応答の際に利用する適切な音声認識辞書(郵便番号辞書)を利用することが可能である。
次に、サーバ20は、音声認識した音声認識結果データを掃除ロボット10に送信する(シーケンスsq90)。具体的には、応答処理実行指示部224は、通信部201を介して音声認識結果データとして、音声「まず郵便番号を設定するよ。イチ、マル、サン、みたいに言ってね」と、サーバモード変更指示を掃除ロボット10に送信する。
一方、掃除ロボット10は、シーケンスsq83の後、音声データの音声認識を実行する(シーケンスsq88)。具体的には、音声認識部111は、音声入力受付部114で生成した音声データに従って音声内容を認識する。そして、音声内容の認識結果を応答処理実行部112に出力する。
次に、掃除ロボット10は、認識を失敗する(シーケンスsq89)。本例における掃除ロボット10の発話内容データベース120には、認識フレーズ「今日の天気は」に対応する回答フレーズが設けられていないため認識失敗となった場合が示されている。
次に、掃除ロボット10は、サーバモードに設定する(シーケンスsq91)。具体的には、動作モード切替部113は、サーバ20から送信された音声認識結果データ(「サーバモード変更指示」)に基づいて通常モードをサーバモードに変更する。
また、掃除ロボット10は、サーバ20から送信された音声認識結果データに基づいて音声応答処理を実行する(シーケンスsq92)。具体的には、応答処理実行部112は、音声認識結果データ(「まず郵便番号を設定するよ。イチ、マル、サン、みたいに言ってね」)の音声ファイルを再生する。すなわち、スピーカ104により音声(「まず郵便番号を設定するよ。イチ、マル、サン、みたいに言ってね」)をユーザに応答(発話)する(シーケンスsq93)。
次に、郵便番号の設定方式に基づいてユーザ発話「ニー、ロク、イチ」があるものとする(シーケンスsq94)。
次に、掃除ロボット10は、ユーザからの音声の入力を受け付ける(シーケンスsq95)。具体的には、掃除ロボット10の音声入力受付部114は、マイク103を介して外部からの音の入力を受け付ける。
次に、掃除ロボット10は、音声データをサーバ20に出力する(シーケンスsq96)。具体的には、音声入力受付部114は、通信部101を介してサーバ20に出力する。
次に、サーバ20は、掃除ロボット10から送信された音声データを受信して、音声認識を実行する(シーケンスsq96A)。具体的には、音声認識部222は、認識フレーズ「ニー、ロク、イチ」を取得する。そして、音声認識部222は、その結果を応答処理実行指示部224に出力する。
次に、サーバ20は、モード判定を実行する(シーケンスsq97)。具体的には、応答処理実行指示部224は、掃除ロボット10の状態を判断するモード判定を実行する。モード判定は、状態記憶部233において格納されている掃除ロボット10の状態に従って状態に応じた辞書に設定する処理である。本例においては、シーケンスsq87により、サーバ20の状態記憶部233の「ID1」の「掃除ロボットの状態」は「サーバモード(郵便番号)」に変更されている。これにより、音声認識辞書を「郵便番号辞書」に設定する。
次に、サーバ20は、回答フレーズを決得知する(シーケンスsq97A)。
具体的には、応答処理実行指示部224は、音声認識部222から得られた結果である音声内容に対する応答内容を決定する。
本例においては、例えば、図18(A)で説明した郵便番号辞書を用いた場合、認識フレーズ「ニー、ロク、イチ」に対応して回答フレーズ「XXXでいいですか?はい、か、いいえで応えてね」が応答内容として決定される。
次に、サーバ20は、サーバモード(はい/いいえ)に設定する(シーケンスsq98)。
具体的には、応答処理実行指示部224は、認識フレーズ「ニー、ロク、イチ」に関連付けられた「掃除ロボットの状態」を「サーバモード(はい/いいえ)」に変更する。応答処理実行指示部224は、一例として状態記憶部233の「ID1」の「掃除ロボットの状態」を「サーバモード(はい/いいえ)」に変更する。これにより、次の応答の際に利用する適切な音声認識辞書(はい/いいえ辞書)を利用することが可能である。
次に、サーバ20は、音声認識した音声認識結果データを掃除ロボット10に送信する(シーケンスsq101)。具体的には、応答処理実行指示部224は、通信部201を介して音声認識結果データとして、音声「ニー、ロク、イチでいいですか?はい、か、いいえで応えてね」を掃除ロボット10に送信する。
一方、掃除ロボット10は、シーケンスsq96の後、音声データの音声認識を実行する(シーケンスsq99)。具体的には、音声認識部111は、音声入力受付部114で生成した音声データに従って音声内容を認識する。そして、音声内容の認識結果を応答処理実行部112に出力する。
次に、掃除ロボット10は、認識を無効とする(シーケンスsq100)。本例における掃除ロボット10は、サーバモードの場合にサーバ20からの指示を優先し、掃除ロボット10の音声認識の認識結果を無効とする場合が示されている。
次に、掃除ロボット10は、サーバ20から送信された音声認識結果データに基づいて音声応答処理を実行する(シーケンスsq102)。具体的には、応答処理実行部112は、音声認識結果データ(「ニー、ロク、イチでいいですか?はい、か、いいえで応えてね」)の音声ファイルを再生する。すなわち、スピーカ104により音声(「ニー、ロク、イチでいいですか?はい、か、いいえで応えてね」)をユーザに応答(発話)する(シーケンスsq103)。
次に、はい、いいえの回答ルールに基づいてユーザ発話「はい」があるものとする(シーケンスsq104)。
次に、掃除ロボット10は、ユーザからの音声の入力を受け付ける(シーケンスsq105)。具体的には、掃除ロボット10の音声入力受付部114は、マイク103を介して外部からの音の入力を受け付ける。
次に、掃除ロボット10は、音声データをサーバ20に出力する(シーケンスsq106)。具体的には、音声入力受付部114は、通信部101を介してサーバ20に出力する。
次に、サーバ20は、掃除ロボット10から送信された音声データを受信して、音声認識を実行する(シーケンスsq106A)。具体的には、音声認識部222は、認識フレーズ「はい」を取得する。そして、音声認識部222は、その結果を応答処理実行指示部224に出力する。
次に、モード判定を実行する(シーケンスsq107)。具体的には、応答処理実行指示部224は、掃除ロボット10の状態を判断するモード判定を実行する。モード判定は、状態記憶部233において格納されている掃除ロボット10の状態に従って状態に応じた辞書に設定する処理である。本例においては、シーケンスsq98により、サーバ20の状態記憶部233の「ID1」の「掃除ロボットの状態」は「サーバモード(はい/いいえ)」に変更されている。これにより、音声認識辞書を「はい/いいえ辞書」に設定する。
次に、サーバ20は、設定登録する(シーケンスsq108)。具体的には、応答処理実行指示部224は、音声認識部222から得られた結果である音声内容を郵便番号として設定登録する。具体的には、状態記憶部233に格納されている掃除ロボットの状態の「郵便番号」に関して、得られた結果を登録する。
次に、サーバ20は、天気情報を取得する(シーケンスsq109)。具体的には、応答処理実行指示部224は、設定登録された郵便番号に従って天気情報を取得する。この点で公知の天気情報を取得可能な外部サーバに設定登録された郵便番号の情報を送信して、当該外部サーバから送信した郵便番号に関連付けられた天気情報を取得する。
次に、サーバ20は、回答フレーズを決定する(シーケンスsq109A)。
具体的には、応答処理実行指示部224は、音声認識部222から得られた結果である音声内容に対する応答内容を決定する。本例においては、例えば、図18(B)で説明したはい/いいえ辞書を用いた場合、認識フレーズ「はい」に対応して回答フレーズ「YYYを登録したよ」と、「天気情報」と、「通常モード変更」が応答内容として決定される。「YYY」は、「ニー、ロク、イチ」である。「天気情報」は、「今日の天気はZZZだよ」である。「ZZZ」は、外部サーバから取得した天気に関する情報、例えば、「晴れ」、「雨」、「くもり」等である。なお、気温や降水確率等の情報を含めるようにしても良い。
そして、サーバ20は、通常モードに設定する(シーケンスsq110)。
具体的には、応答処理実行指示部224は、認識フレーズ「はい」に関連付けられた「掃除ロボットの状態」を通常モードに設定する。応答処理実行部指示部224は、状態記憶部233の「ID1」の「掃除ロボットの状態」を「通常モード」に変更する。これにより、次の応答の際に利用する適切な音声認識辞書(通常辞書)を利用することが可能である。
次に、サーバ20は、音声認識した音声認識結果データを掃除ロボット10に送信する(シーケンスsq113)。具体的には、応答処理実行指示部224は、通信部201を介して音声認識結果データとして、音声「ニー、ロク、イチを登録したよ。今日の天気は晴れだよ」と、通常モード変更指示を掃除ロボット10に送信する。
一方、掃除ロボット10は、シーケンスsq106の後、音声データの音声認識を実行する(シーケンスsq111)。具体的には、音声認識部111は、音声入力受付部114で生成した音声データに従って音声内容を認識する。そして、音声内容の認識結果を応答処理実行部112に出力する。
次に、掃除ロボット10は、認識を無効とする(シーケンスsq112)。本例における掃除ロボット10は、サーバモードの場合にサーバ20からの指示を優先し、掃除ロボット10の音声認識の認識結果を無効とする場合が示されている。
次に、掃除ロボット10は、通常モードに設定する(シーケンスsq114)。具体的には、動作モード切替部113は、サーバ20から送信された音声認識結果データ(「通常モード変更指示」)に基づいてサーバモードを通常モードに変更する。
次に、掃除ロボット10は、サーバ20から送信された音声認識結果データに基づいて音声応答処理を実行する(シーケンスsq115)。具体的には、応答処理実行部112は、音声認識結果データ(「ニー、ロク、イチを登録したよ。今日の天気は晴れだよ」)の音声ファイルを再生する。すなわち、スピーカ104により音声(「ニー、ロク、イチを登録したよ。今日の天気は晴れだよ」)をユーザに応答(発話)する(シーケンスsq116)。
これにより、郵便番号を設定して、当該郵便番号に対応する天気情報を取得して発話することが可能となる。
(天気情報取得(その2))
図20は、実施形態4に基づく音声認識システム1における天気情報取得(その2)の応答処理の流れを示すシーケンス図である。
図20に示されるように、まず、掃除ロボット10は、通常モードに設定されているものとする(シーケンスsq120)。
次に、ユーザ発話「今日の天気は」があるものとする(シーケンスsq121)。
次に、掃除ロボット10は、ユーザからの音声の入力を受け付ける(シーケンスsq122)。具体的には、掃除ロボット10の音声入力受付部114は、マイク103を介して外部からの音の入力を受け付ける。
次に、掃除ロボット10は、音声データをサーバ20に出力する(シーケンスsq123)。具体的には、音声入力受付部114は、通信部101を介してサーバ20に出力する。
次に、サーバ20は、掃除ロボット10から送信された音声データを受信して、音声認識を実行する(シーケンスsq123A)。具体的には、音声認識部222は、認識フレーズ「今日の天気は」を取得する。そして、音声認識部222は、その結果を応答処理実行指示部224に出力する。
次に、サーバ20は、モード判定を実行する(シーケンスsq124)。具体的には、応答処理実行指示部224は、掃除ロボット10の状態を判断するモード判定を実行する。モード判定は、状態記憶部233において格納されている掃除ロボット10の状態に従って状態に応じた音声認識辞書に設定する処理である。本例においては、一例として「ID1」の掃除ロボットの場合、すなわち「通常モード」である場合に「通常辞書」に設定する。
次に、サーバ20は、登録有を確認する(シーケンスsq126)。具体的には、応答処理実行指示部224は、応答処理実行指示部224は、音声認識部222から得られた結果である音声内容に対する応答内容を決定する。
本例においては、例えば、図10で説明した通常辞書を用いた場合、認識フレーズ「今日の天気は」に対応して回答フレーズとして2つのパターンが設けられている。具体的には、郵便番号の登録が有る場合「登録有:天気情報」と、郵便番号の登録が無い場合「登録無:まず郵便番号を設定するよ。イチ、マル、サン、みたいに言ってね」とに分けられている。
したがって、応答処理実行指示部224は、状態記憶部233において格納されている掃除ロボット10の郵便番号が設定されているか否かを確認する。そして、本例においては、一例として登録有であることを確認する。
次に、サーバ20は、天気情報を取得する(シーケンスsq127)。具体的には、応答処理実行指示部224は、設定登録されている郵便番号に従って天気情報を取得する。具体的には、公知の天気情報を取得可能な外部サーバに設定登録された郵便番号の情報を送信して、当該外部サーバから送信した郵便番号に関連付けられた天気情報を取得する。
次に、サーバ20は、回答フレーズを決定する(シーケンスsq127A)。
具体的には、応答処理実行指示部224は、音声認識部222から得られた結果である音声内容に対する応答内容を決定する。本例においては、例えば、図10で説明した通常辞書を用いた場合、認識フレーズ「今日の天気は」に対応して、「登録有」の回答フレーズ「天気情報」が応答内容として決定される。「天気情報」は、「今日の天気はZZZだよ」である。「ZZZ」は、外部サーバから取得した天気に関する情報、例えば、「晴れ」、「雨」、「くもり」等である。なお、気温や降水確率等の情報を含めるようにしても良い。
次に、サーバ20は、音声認識した音声認識結果データを掃除ロボット10に送信する(シーケンスsq130)。具体的には、応答処理実行指示部224は、通信部201を介して音声認識結果データとして、音声「今日の天気は晴れだよ」を掃除ロボット10に送信する。
一方、掃除ロボット10は、シーケンスsq123の後、音声データの音声認識を実行する(シーケンスsq128)。具体的には、音声認識部111は、音声入力受付部114で生成した音声データに従って音声内容を認識する。そして、音声内容の認識結果を応答処理実行部112に出力する。
次に、掃除ロボット10は、認識を失敗する(シーケンスsq129)。本例における掃除ロボット10の発話内容データベース120には、認識フレーズ「今日の天気は」に対応する回答フレーズが設けられていないため認識失敗となった場合が示されている。
次に、掃除ロボット10は、サーバ20から送信された音声認識結果データに基づいて音声応答処理を実行する(シーケンスsq131)。具体的には、応答処理実行部112は、音声認識結果データ(今日の天気は晴れだよ」)の音声ファイルを再生する。すなわち、スピーカ104により音声(「今日の天気は晴れだよ」)をユーザに応答(発話)する(シーケンスsq132)。
これにより、郵便番号が設定されている場合には、当該郵便番号に対応する天気情報を取得して発話することが可能となる。
(フロー図)
図21は、本実施形態4に基づくサーバ20の音声認識処理を実行するフロー図である。
図21を参照して、当該フロー図は、記憶部203に格納されているプログラムを実行して制御部202の各部が機能することにより実行される処理である。
図17のフロー図と比較して、回答フレーズを決定する処理が異なる(ステップS35#)。その他の流れについては、図17と同様であるのでその詳細な説明は繰り返さない。
図22は、本実施形態4に基づく回答フレーズを決定する処理のサブフロー図である。
図22を参照して、認識フレーズが「今日の天気は」であるかどうかを判定する(ステップS40)。具体的には、音声認識部222で認識した認識内容が「今日の天気は」か否かを判定する。
ステップS40において、認識フレーズが「今日の天気は」であると判定した場合(ステップS40においてYES)には、郵便番号の登録が有るかどうかを判定する(ステップS41)。
ステップS41において、郵便番号の登録が有ると判定した場合(ステップS41においてYES)には、天気情報取得処理を実行する(ステップS42)。
そして、ステップS43において、回答フレーズとして「今日の天気はZZZだよ」に決定する。そして、処理を終了する(リターン)。
一方、ステップS41において、郵便番号の登録が無いと判定した場合(ステップS41においてNO)には、回答フレーズとして「まず郵便番号を設定するよ。イチ、マル、サン、みたいに言ってね」に決定する。そして、処理を終了する(リターン)。
また、認識フレーズが「今日の天気は」でないと判定した場合(ステップS40においてNO)には、認識フレーズが「はい」で有るかどうかを判定する(ステップS45)。
ステップS45において、認識フレーズが「はい」で有ると判定した場合(ステップS45においてYES)には、情報を登録する(ステップS46)。具体的には、ユーザ発話により得られた郵便番号に関する情報を状態記憶部233において格納されている掃除ロボット10の郵便番号の欄に登録する。
そして、次に、天気情報取得処理を実行する(ステップS47)。具体的には、設定登録された郵便番号に従って天気情報を取得する。この点で公知の天気情報を取得可能な外部サーバに設定登録された郵便番号の情報を送信して、当該外部サーバから送信した郵便番号に関連付けられた天気情報を取得する。
そして、ステップS48において、回答フレーズとして「YYYを登録したよ。今日の天気はZZZだよ」に決定する。そして、処理を終了する(リターン)。
一方、ステップS45において、認識フレーズが「はい」でないと判定した場合(ステップS45においてNO)には、その他の回答フレーズに決定する(ステップS49)。具体的には、認識フレーズに対応する回答フレーズを決定する。
そして、処理を終了する。
なお、本例においては、サーバモードとして、外部サーバにアクセスして天気情報を取得して掃除ロボット10から発話する場合について説明したが、特に取得可能な情報は「天気情報」に限られるわけではなく、他の外部サーバから取得可能な情報であればどのような情報にも適用することが可能である。例えば、最近のニュースやトピックスを掃除ロボット10から発話させることも可能であるし、ユーザの質問に対する回答情報を取得して掃除ロボット10から発話させることも可能である。
<実施形態5>
図23は、本実施形態5に基づくサーバの構成について説明する図である。
図23を参照して、本例においては、サーバが複数設けられている場合が示されている。
本例においては、一例としてサーバ20Aと、サーバ20Bとが設けられている場合が示されている。
上記の構成においては、音声認識と音声認識に対する回答フレーズを決定する処理とを同じサーバで実行する場合について説明したが、一方で、当該処理をそれぞれ独立のサーバで実行することも可能である。
具体的には、サーバ20Aにおいて音声データに対する音声認識を実行し、サーバ20Bにおいて回答フレーズである音声認識結果データを掃除ロボット10に出力する構成としてもよい。
例えば、掃除ロボット10から音声データをサーバ20Aに送信する(1)。サーバ20Aが音声データの音声認識を実行する(2)。そして、サーバ20Aが掃除ロボット10に対して認識フレーズを送信する(3)。
掃除ロボット10がサーバ20Aから認識フレーズを受信して、別のサーバ20Bに当該認識フレーズを送信する(4)。
サーバ20Bは、掃除ロボット10から認識フレーズを受信して、当該認識フレーズに対応する回答フレーズを決定する(5)。そして、サーバ20Bは、掃除ロボットに対して音声認識結果データを送信する(6)。
なお、本例においては、サーバ20Aが音声データの音声認識を実行した認識フレーズを掃除ロボット10に対して送信する場合について説明したが、認識フレーズに限られず音声認識の結果を示す情報であればどのようなものでも良い。例えば、サーバ20Bに格納されている回答フレーズにアクセスするために必要なアクセス情報(URL(Uniform Resource Locator)等)であってもよい。例えば、当該アクセス情報(URL)を掃除ロボット10は、サーバ20Aから受信して、サーバ20Bにアクセスすることにより回答フレーズをサーバ20Bから取得する構成としてもよい。また、アクセス情報に限られず、サーバ20Bに格納されている回答フレーズがファイル形式で保存されている場合には、サーバ20Aからの音声認識の結果を示す情報として、ファイル名を指定する情報であってもよい。例えば、当該ファイル名を掃除ロボット10は、サーバ20Aから受信して、サーバ20Bに対してファイル名を指定して情報を要求することにより、回答フレーズに関連するファイルをサーバ20Bから取得することが可能である。
また、同様に、サーバ20Aからの音声認識の結果を示す情報として、認識フレーズをテキスト化したテキスト情報を送信するようにしてもよい。掃除ロボット10は、当該テキスト情報から認識フレーズを抽出して、サーバ20Bにアクセスして回答フレーズを取得するようにしてもよいし、当該テキスト情報をサーバ20Bに送信して、サーバ20Bで認識フレーズを含むテキスト情報を解析して、解析結果に基づいて回答フレーズを決定して、掃除ロボット10に送信する構成としてもよい。
また、サーバ20Bから掃除ロボット10に送信する音声認識結果データとして回答フレーズを送信する構成について説明した。具体的には、回答フレーズに対応する音声ファイルを送信して掃除ロボット10が当該音声ファイルに従って発話する場合について説明したが、音声ファイルに限られず、回答フレーズを含むテキスト情報を送信して、掃除ロボット10で当該テキスト情報を解析(いわゆる読み上げ機能等)して発話するようにしてもよい。
また、本例においては、掃除ロボット10での音声認識の結果に対する回答フレーズを掃除ロボット10内で決定する場合について説明したが、掃除ロボット10で音声認識した後、回答フレーズをサーバ20Bから取得するようにしてもよい。その場合、認識フレーズに対するサーバ20Bの回答フレーズにアクセスするアクセス情報(URL)が対応付けられたURL対応テーブルを記憶部109に設けることにより実現することが可能である。
また、掃除ロボット10内に保存されている情報を利用して音声認識の結果に対する回答フレーズを取得することも可能である。
例えば、一時的に情報を格納することが可能なキャッシュメモリに以前に利用された認識フレーズに対する回答フレーズの情報が含まれている場合には、当該キャッシュメモリに格納されている回答フレーズの情報を利用することにより、例えば、サーバ20Bにアクセスすることなく回答フレーズを取得して掃除ロボット10から発話することも可能である。これによりキャッシュメモリに格納されている情報を利用して早期に発話することが可能である。
また、掃除ロボット10内に回答フレーズに対応する音声ファイルが保存されている場合に、サーバ20Aが当該掃除ロボット10内に保存されている音声ファイルを音声認識の結果を示す情報として指定するようにしても良い。当該処理により、サーバ20Bにアクセスすることなく、掃除ロボット10内に保存されている音声ファイルを利用して早期に発話することが可能である。なお、当該音声ファイルが掃除ロボット10内に保存されていない場合には、サーバ20Bに対して当該指定された音声ファイルを要求して、サーバ20Bから音声ファイルを取得して発話するようにしても良い。
本実施形態5のサーバの構成については、上記の実施形態1〜4のいずれにも適用可能である。
<実施形態6>
掃除ロボット10及びサーバ20の制御ブロックは、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、掃除ロボット10及びサーバ20は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
(まとめ)
本発明の態様1に係る音声認識端末(掃除ロボット10)は、音声を認識する音声認識が可能なサーバ20と通信可能に設けられた音声認識端末であって、ユーザからの音声入力を受け付ける音声入力受付部114と、音声入力受付部114で受け付けた音声入力に対して音声認識する音声認識部111と、音声入力受付部114で受け付けた音声入力に対する音声認識結果に基づいてユーザに対する応答処理を実行する応答処理実行部112と、サーバに音声入力受付部114で受け付けた音声入力を送信し、サーバでの音声認識結果を受信する通信部101とを備える。応答処理実行部112は、音声認識部111による音声認識結果とサーバから受信した音声認識結果とのうち先に得られた音声認識結果に基づいて、ユーザに対する応答処理を実行する。
上記の構成によれば、応答処理実行部112は、音声認識部111による音声認識結果とサーバから受信した音声認識結果とのうち先に得られた音声認識結果に基づいて、ユーザに対する応答処理を実行するため音声認識端末からの応答時間が短縮され、ユーザにストレスを与えることなく円滑なコミュニケーションを実行することが可能である。
本発明の態様2に係る音声認識端末(掃除ロボット10)の応答処理実行部112は、後に得られた音声認識結果に基づくユーザに対する応答処理を実行しなくても良い。
本発明の態様3に係る音声認識端末(掃除ロボット10)において、音声認識は、音声を認識するとともに当該認識の確度を示す信頼度を算出し、応答処理実行部112は、音声認識部111による音声認識結果に含まれる信頼度に関し、後に得られた音声認識結果に含まれる信頼度が先に得られた音声認識結果に含まれる信頼度よりも大きい場合に、後に得られた音声認識結果に基づいて、ユーザに対する応答処理をさらに実行しても良い。
本発明の態様4に係る音声認識端末(掃除ロボット10)の応答処理実行部112は、音声認識部111による音声認識結果に含まれる信頼度に関し、先に得られた音声認識結果に含まれる信頼度が所定の信頼度以下の場合に、後に得られた音声認識結果に含まれる信頼度が先に得られた音声認識結果に含まれる信頼度よりも大きい場合に、後に得られた音声認識結果に基づいて、ユーザに対する応答処理をさらに実行しても良い。
本発明の態様5に係る音声認識端末(掃除ロボット10)の音声入力受付部114に入力された音声入力に対する音声認識結果に基づいてサーバの指示に従って音声認識端末が動作するサーバモードと、音声認識端末がサーバの指示を選択的に利用して動作する通常モードとを切り換える動作モード切替部113をさらに備えても良い。
本発明の態様6に係る音声認識端末(掃除ロボット10)の応答処理実行部112は、サーバモードの場合に音声認識部による音声認識結果を無効としても良い。
本発明の態様7に係るサーバ20は、音声を認識する音声認識が可能な音声認識端末(掃除ロボット10)と通信可能に設けられたサーバであって、音声認識端末を介してユーザからの音声入力を受信する音声入力受信部221と、音声入力受信部221で受信した音声入力に対して音声認識する音声認識部222と、音声入力受信部221で受信した音声入力に対する音声認識結果に基づいて、音声認識端末に対しユーザに対する応答処理の実行を指示する応答処理実行指示部224とを備え、応答処理実行指示部224は、音声認識端末に対して音声認識端末がサーバの指示を選択的に利用して動作する通常モードから、サーバの指示に従って音声認識端末が動作するように指示するサーバモードに切り替わるように指示する。
上記の構成によれば、応答処理実行指示部224は、通常モードからサーバモードに切り替わるように指示するため、音声認識の内容によってはサーバ20で処理する方が適切な場合には、当該切り替え処理により、音声認識端末からの応答時間が短縮され、ユーザにストレスを与えることなく円滑なコミュニケーションを実行することが可能である。
本発明の態様8に係るサーバ20の応答処理実行指示部224は、音声入力受信部221で受け付けた音声入力に対する音声認識結果としてユーザからの所定情報の問い合わせの要求であるか否かを判断し、所定情報の問い合わせの要求であると判断した場合には、当該所定情報を取得するためのデータが登録されているか否かを判断し、判断結果に基づいて当該所定情報を取得するためのデータが登録されていない場合に、ユーザに対してデータの入力を促す応答処理の実行を指示する。
本発明の態様9に係るサーバ20の制御方法は、音声を認識する音声認識が可能な音声認識端末(掃除ロボット10)と通信可能に設けられたサーバ20の制御方法であって、音声認識端末を介してユーザからの音声入力を受信するステップ(ステップS30)と、受信した音声入力に対して音声認識するステップ(ステップS31)と、受信した音声入力に対する音声認識結果に基づいて、音声認識端末に対してユーザに対する応答処理の実行を指示するステップ(ステップS35〜S37)とを備え、応答処理の実行を指示するステップは、音声認識端末がサーバの指示を選択的に利用して動作する通常モードから、音声認識端末がサーバの指示に従って動作するように指示するサーバモードに切り替わるように指示するステップを含む。
上記の構成によれば、通常モードからサーバモードに切り替わるように指示するため、音声認識の内容によってはサーバ20で処理する方が適切な場合には、当該切り替え処理により、音声認識端末からの応答時間が短縮され、ユーザにストレスを与えることなく円滑なコミュニケーションを実行することが可能である。
本発明の態様10に係る音声認識システム1は、音声を認識する音声認識が可能なサーバ20と、サーバ20と通信可能に設けられた音声認識端末(掃除ロボット10)とを備える。音声認識端末は、ユーザからの音声入力を受け付ける音声入力受付部114と、音声入力受付部114で受け付けた音声入力に対して音声認識する音声認識部111と、音声入力受付部114で受け付けた音声入力に対する音声認識結果に基づいてユーザに対する応答処理を実行する応答処理実行部112と、サーバに音声入力受付部114で受け付けた音声入力を送信し、サーバでの音声認識結果を受信する通信部101とを含む。応答処理実行部112は、音声認識部111による音声認識結果とサーバから受信した音声認識結果とのうち先に得られた音声認識結果に基づいて、ユーザに対する応答処理を実行する。
上記の構成によれば、応答処理実行部112は、音声認識部111による音声認識結果とサーバから受信した音声認識結果とのうち先に得られた音声認識結果に基づいて、ユーザに対する応答処理を実行するため音声認識端末からの応答時間が短縮され、ユーザにストレスを与えることなく円滑なコミュニケーションを実行することが可能である。
本発明の態様11に係る制御プログラムは、音声を認識する音声認識が可能なサーバと通信可能に設けられた音声認識端末のコンピュータにおいて実行される制御プログラムであって、制御プログラムは、コンピュータに対して、ユーザからの音声入力を受け付けるステップ(ステップS1)と、受け付けた音声入力に対して音声認識するステップ(ステップS4)と、受け付けた音声入力に対する音声認識結果に基づいてユーザに対する応答処理を実行するステップ(ステップS5〜S8,S15,S16)と、サーバに受け付けた音声入力を送信し、サーバでの音声認識結果を受信するステップ(ステップS3)とを備え、応答処理を実行するステップは、音声認識するステップに基づく音声認識結果とサーバから受信した音声認識結果とのうち先に得られた音声認識結果に基づいて、ユーザに対する応答処理を実行する、処理を実行させる。
上記の構成によれば、応答処理を実行するステップについて、音声認識結果とサーバから受信した音声認識結果とのうち先に得られた音声認識結果に基づいて、ユーザに対する応答処理を実行するため音声認識端末からの応答時間が短縮され、ユーザにストレスを与えることなく円滑なコミュニケーションを実行することが可能である。
本発明の態様12に係る制御プログラムは、音声を認識する音声認識が可能な音声認識端末と通信可能に設けられたサーバのコンピュータにおいて実行される制御プログラムであって、制御プログラムは、コンピュータに対して、音声認識端末を介してユーザからの音声入力を受信するステップ(ステップS30)と、受信した音声入力に対して音声認識するステップ(ステップS31)と、受信した音声入力に対する音声認識結果に基づいて、音声認識端末に対してユーザに対する応答処理の実行を指示するステップ(ステップS35〜S37)とを備え、応答処理の実行を指示するステップは、音声認識端末がサーバの指示を選択的に利用して動作する通常モードから、音声認識端末がサーバの指示に従って動作するように指示するサーバモードに切り替わるように指示するステップを含む、処理を実行させる。
上記の構成によれば、通常モードからサーバモードに切り替わるように指示するため、音声認識の内容によってはサーバ20で処理する方が適切な場合には、当該切り替え処理により、音声認識端末からの応答時間が短縮され、ユーザにストレスを与えることなく円滑なコミュニケーションを実行することが可能である。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。