以下、本発明の実施形態を図面に基づいて説明する。なお、以下で説明する実施形態では、カーナビゲーションシステムに代表される車載端末を例として、本発明による音声認識装置を説明する。ただし、本発明は音声入力機能を有する他の装置、たとえば携帯電話、スマートフォン、ロボットなどにも適用できる。
図1は、本発明の一実施形態に係る音声認識システム1の構成を示す図である。図1に示す音声認識システム1は、端末装置100とサーバ200とが通信ネットワーク300を介して接続されることで構成されている。
端末装置100は、たとえば車両に搭載されており、音声区間検出部1010、音声符号化部1020、通信制御部1030、音声認識部1040、辞書データベース1050、意図推定部1060、選択部1070、ユーザ満足度記憶部1080、HMI制御部1100、音声出力装置1110、録音音声合成部1120および規則音声合成部1130を備える。なお、端末装置100は、たとえば不図示のCPUやメモリ、記録媒体等を備えており、メモリや記録媒体に記憶された所定のプログラムをCPUにおいて実行することで、音声区間検出部1010、音声符号化部1020、通信制御部1030、音声認識部1040、意図推定部1060、選択部1070、HMI制御部1100、音声出力装置1110、録音音声合成部1120および規則音声合成部1130の各機能を実現することができる。また、記録媒体内の所定の記憶領域を用いて、辞書データベース1050およびユーザ満足度記憶部1080の各機能を実現することができる。
音声区間検出部1010は、マイク10を通してユーザから入力された音声を検出する。音声区間検出部1010は、たとえばマイク10から入力される音声信号から実際にユーザが発話している部分を抽出し、その部分の信号波形をサンプリングして音声データ化することで、ユーザの音声を検出する。
音声符号化部1020は、音声区間検出部1010で検出されたユーザの音声を、サーバ200に送信するためのデータ形式に変換する。音声符号化部1020は、たとえば音声区間検出部1010から出力される音声データに対して所定の圧縮処理を行うことでデータ量を削減し、サーバ200への送信に適した音声情報を生成する。
通信制御部1030は、音声区間検出部1010で検出されたユーザの音声に基づく音声情報、すなわち音声符号化部1020で生成された音声情報をサーバ200に送信する。また、音声情報を受信したサーバ200において後述のように音声認識処理が実行されることで音声認識情報がサーバ200から送信されると、この音声認識情報を受信して選択部1070に出力する。通信制御部1030は、携帯電話網やインターネット等の公衆通信回線を用いて構成された通信ネットワーク300と接続可能であり、通信ネットワーク300を介してサーバ200との間で通信を行う。
音声認識部1040は、端末装置100に備えられている音声認識エンジンであり、音声区間検出部1010で検出されたユーザの音声を認識するための音声認識処理を実行する。音声認識部1040が実行する音声認識処理では、辞書データベース1050が用いられる。辞書データベース1050には、複数の辞書データが予め登録されている。音声認識部1040は、この複数の辞書データのいずれかを用いて、ユーザの音声に対応するテキストを特定する。具体的には、たとえば音声認識部1040は、端末装置100を用いてユーザに提供されるコンテンツの内容(たとえばナビゲーション情報、音楽再生等)や、端末装置100が搭載されている車両の状態などに応じて、辞書データベース1050に登録されている複数の辞書データの中から、ユーザが発する可能性の高い音声の種類に対応する辞書データを選択する。そして、選択した辞書データを用いて、音声区間検出部1010から入力された音声データに対応するテキストを検索することで、ユーザの音声に対応するテキストを特定する。音声認識部1040による音声認識結果、すなわち音声認識部1040で特定されたユーザの音声に対応するテキストは、意図推定部1060および選択部1070に出力される。
意図推定部1060は、音声認識部1040で得られた音声認識結果に基づいて、マイク10から入力された音声に対するユーザの意図を推定する。意図推定部1060は、たとえば音声認識結果として得られたテキストが施設の検索を示唆するものであれば、ユーザの意図が「施設検索」であると推定する。同様にして、たとえば「電話発信」、「オーディオ再生」などのユーザの意図を推定することができる。意図推定部1060によるユーザの意図の推定結果を示す意図推定情報は、音声認識部1040による音声認識結果(テキスト)と共に、端末装置100での音声認識結果に基づく音声認識情報として選択部1070に入力される。以下では、この端末装置100での音声認識結果に基づく音声認識情報を「端末音声認識情報」と称する。また、通信制御部1030で受信されるサーバ200での音声認識結果に基づく音声認識情報を「サーバ音声認識情報」と称する。なお、意図推定部1060は端末装置100において必須の構成ではなく、省略してもよい。この場合、端末装置100においてユーザの意図推定は行われない。
選択部1070は、音声認識部1040および意図推定部1060から入力された端末音声認識情報と、通信制御部1030から入力されたサーバ音声認識情報とのいずれか一方を選択する。このとき選択部1070は、ユーザ満足度記憶部1080に記憶されたユーザの満足度に関するデータに基づいて、端末音声認識情報とサーバ音声認識情報とのそれぞれについてユーザの満足度を算出し、その算出結果に基づいて、いずれか一方の音声認識情報を選択する。そして、選択した音声認識情報のテキストをHMI制御部1100へ出力すると共に、選択した音声認識情報を用いてHMI制御部1100の動作を制御するなお、選択部1070による具体的な音声認識情報の選択方法については、後で詳しく説明する。
HMI制御部1100は、選択部1070の制御に基づき、選択部1070から出力されたテキストを用いて、ユーザへの情報提供を行うHMI(Human Machine Interface)を制御する。具体的には、たとえば音声出力装置1110に対してテキストに応じた音声の出力指令を行ったり、端末装置100と接続されたディスプレイ30に対してテキストに応じた画像や文字の表示指令を出力したりすることで、HMIを制御し、ユーザへの情報提供を行う。
音声出力装置1110は、HMI制御部1100からの音声出力指令に応じて、スピーカ20へ音声信号を出力する。音声出力装置1110は、録音音声合成部1120に予め保存された録音音声や、規則音声合成部1130により生成された合成音声を用いて、任意の音声信号を生成することができる。HMI制御部1100から音声出力指令が出力されると、その音声出力指令に応じた音声信号が音声出力装置1110において生成され、スピーカ20に出力される。
タッチパネル40は、ディスプレイ30と一体的に構成された操作部材であり、ユーザがディスプレイ30の画面を手で触ったときの操作情報を検知してHMI制御部1100に出力する。HMI制御部1100は、タッチパネル40からの操作情報に基づき、ディスプレイ30に表示される画面を制御する。
サーバ200は、端末装置100から離れた場所に設置されており、通信制御部1210、音声対話制御部1220、対話シナリオ1230、音声復号化部1240、音声認識部1250、辞書データベース1260および意図推定部1270を備える。なお、サーバ200は、たとえば不図示のCPUやメモリ、記録媒体等を備えており、メモリや記録媒体に記憶された所定のプログラムをCPUにおいて実行することで、通信制御部1210、音声対話制御部1220、音声復号化部1240、音声認識部1250および意図推定部1270の各機能を実現することができる。また、記録媒体内の所定の記憶領域を用いて、対話シナリオ1230および辞書データベース1260の各機能を実現することができる。
通信制御部1210は、端末装置100から送信された音声情報を受信する。また、受信した音声情報に基づいて音声認識部1250が音声認識処理を実行し、その結果に基づく音声認識情報が音声認識部1250から音声対話制御部1220を介して入力されると、この音声認識情報をサーバ音声認識情報として端末装置100に送信する。通信制御部1210は、通信ネットワーク300と接続可能であり、通信ネットワーク300を介して端末装置100との間で通信を行う。
音声対話制御部1220は、対話シナリオ1230を用いて、端末装置100がディスプレイ30やスピーカ20によりユーザに提示する画面や音声ガイダンスなどの制御を行う。対話シナリオ1230には、たとえば各場面においてユーザに出力すべき画面や音声の情報と、これらの情報に対してユーザが発声する可能性がある音声に対応するテキストや意図とが組み合わせて記録されている。さらに、ユーザの音声に応じた遷移先の情報として、次に出力すべき画面や音声の情報も記録されている。音声対話制御部1220は、これらの情報に基づき、通信制御部1210を介して端末装置100の動作を制御することができる。
音声復号化部1240は、端末装置100から送信された音声情報に基づき、ユーザの音声を復元する。音声復号化部1240は、たとえば端末装置100の音声符号化部1020において圧縮された音声データを解凍することで、マイク10を介して端末装置100に入力されたユーザの音声を復元する。
音声認識部1250は、サーバ200に備えられている音声認識エンジンであり、端末装置100から受信した音声情報に基づくユーザの音声を認識するための音声認識処理を実行する。音声認識部1250が実行する音声認識処理では、辞書データベース1260が用いられる。音声認識部1250は、辞書データベース1260を用いて、音声復号化部1240から入力された音声データに対応するテキストを検索することで、ユーザの音声に対応するテキストを特定する。なお、端末装置100の辞書データベース1050と同様に、辞書データベース1260において予め複数の辞書データを登録しておき、この複数の辞書データのいずれかを用いて、音声認識部1250がユーザの音声に対応するテキストを特定するようにしてもよい。音声認識部1250による音声認識結果、すなわち音声認識部1250で特定されたユーザの音声に対応するテキストは、意図推定部1270に出力されると共に、音声対話制御部1220を介して通信制御部1210に出力される。
意図推定部1270は、音声認識部1250で得られた音声認識結果に基づいて、端末装置100に対して入力された音声に対するユーザの意図を推定する。意図推定部1270は、端末装置100における意図推定部1060と同様の手法により、ユーザの意図を推定することができる。意図推定部1270によるユーザの意図の推定結果を示す意図推定情報は、音声認識部1250による音声認識結果(テキスト)と共に、サーバ音声認識情報として、音声対話制御部1220を介して通信制御部1210に出力される。通信制御部1210は、こうして入力されたサーバ音声認識情報を端末装置100に送信する。なお、意図推定部1270はサーバ200において必須の構成ではなく、省略してもよい。この場合、サーバ200においてユーザの意図推定は行われない。
次に、端末装置100によるユーザへの情報提供について説明する。音声認識システム1における端末装置100は、前述のように選択部1070において、端末音声認識情報とサーバ音声認識情報のそれぞれについてユーザの満足度を算出し、その算出結果に基づいて、いずれか一方の音声認識情報を選択する。そして、選択した音声認識情報を用いたときのユーザ満足度が最大となるようにHMI制御部1100の動作を制御して、ユーザへの情報提供を行う。たとえば、採用動作、確認動作、棄却動作の3種類の動作のいずれかを行うようにHMI制御部1100を制御することで、ユーザへの情報提供の方法を変化させ、ユーザ満足度が最大となるようにする。
図2は、採用動作、確認動作、棄却動作のそれぞれにおいてディスプレイ30に表示される画面の例を示す図である。このときユーザは、たとえば「横浜国際空港」という音声を発話したとする。さらに、この音声に対するユーザの意図は、「横浜国際空港を目的地に設定する」という入力操作であったとする。なお、音声認識システム1は、ユーザが発話した上記の音声を認識して、その認識結果からユーザの意図どおりに情報提供が行われるように動作する。しかし、ユーザの音声に含まれる雑音が大きい等の理由から、端末装置100の音声認識部1040やサーバ200の音声認識部1250において、音声認識に誤りが生じてしまう場合がある。そのため、音声認識システム1では、端末装置100が上記の3種類の動作のいずれかを行うことで、状況に応じて、ユーザに確認をとった上でユーザの入力操作の内容を決定したり、得られた音声認識結果を採用せずに一旦棄却したりするようにしている。
図2(a)の画面2010は、上記の音声に対して採用動作を行った場合にディスプレイ30に表示される画面の例である。この場合、選択部1070は、音声認識システム1が端末装置100またはサーバ200の音声認識結果に基づいて特定した「横浜国際空港を目的に設定する」という入力操作は、ユーザの意図通りであるという信頼性が高いと判断する。そのため、これをユーザの入力操作として即座に採用し、端末装置100がユーザに提供するナビゲーション情報の処理に反映する。
図2(b)の画面2020および図2(c)の画面2030は、上記の音声に対して確認動作を行った場合にディスプレイ30に表示される画面の例である。この場合、選択部1070はユーザに対して、音声認識システム1が端末装置100またはサーバ200の音声認識結果に基づいて特定した入力操作はユーザの意図通りであるか否かを確認させる。図2(b)の画面2020では、音声認識システム1が認識した入力操作の候補が一つだけ表示されている。ユーザは、この候補が意図通りであるかどうかを、「はい」と「いいえ」の二択で確認する。一方、図2(c)の画面2030では、音声認識システム1が認識した入力操作の候補が複数表示されている。ユーザは、これらの候補の中からいずれかを選択することで、意図に合致した入力操作の確認を行う。ユーザの確認後、選択部1070は、確認された入力操作をユーザの入力操作として採用する。
図2(d)の画面2040は、上記の音声に対して棄却動作を行った場合にディスプレイ30に表示される画面の例である。この場合、選択部1070は、音声認識システム1が端末装置100またはサーバ200の音声認識結果に基づいて特定した入力操作の候補が正しくないと判断して、いずれの候補も採用せずに棄却する。そして、ユーザに再度発話するように促すことで、正しい入力操作の候補が得られるように、音声認識システム1における音声認識のやり直しを図る。
次に、端末装置100の選択部1070における音声認識情報の選択方法について説明する。図3は、選択部1070において実行される処理のフローチャートである。図3のフローチャートに示す処理は、ユーザが発話した音声がマイク10から端末装置100に入力されると開始される。なお、ユーザが端末装置100に設けられた不図示の操作ボタンを押すことで、ユーザが発話を開始したと判断してもよいし、操作ボタンを押さずにユーザの発話を検知できるようにしてもよい。
ステップ3010において、選択部1070は、端末装置100の音声認識部1040からの音声認識結果、すなわち端末音声認識情報、または、サーバ200の音声認識部1250からの音声認識結果、すなわちサーバ音声認識情報が到着するか、あるいは、処理の開始または前回の音声認識結果の到着から一定時間が経過するまで待機する。なお、ここで一定時間が経過するのを待つ理由は、音声認識結果が得られない場合にその時点でのユーザ満足度を定期的に予測し、その値に応じて次の動作を決定するためである。音声認識結果が到着するか、または一定時間が経過したら、待機を解除して次のステップ3020に処理を進める。
ステップ3020において、選択部1070は、ステップ3010で待機を解除した原因が音声認識結果の到着と一定時間の経過とのいずれであるかを判断する。その結果、音声認識結果の到着によって待機を解除した場合は処理をステップ3030に進め、一定時間の経過によって待機を解除した場合は処理をステップ3060に進める。
ステップ3030において、選択部1070は、到着した音声認識結果が一個めであるか否かを判定する。一個目である場合、すなわち最初に到着した音声認識結果である場合はステップ3040に進み、二個目である場合、すなわち二番目に到着した音声認識結果である場合はステップ3050に進む。なお、このステップ3030の処理では、到着した音声認識結果の出力元が端末装置100(音声認識部1040)とサーバ200(音声認識部1250)のどちらであるかは問わない。ただし通常は、通信の遅延などのため、端末装置100からの音声認識結果が先に到着し、サーバ200からの音声認識結果が後で到着することになる。
ステップ3040において、選択部1070は、結果1個目新規到着の判断ルーチンへと進む。ここでは図4に示すフローチャートに従って、最初に到着した音声認識結果を使用するか、または次の音声認識結果を待つかを判断するための処理が実行される。なお、図4のフローチャートの詳細については後で説明する。
ステップ3050において、選択部1070は、結果2個目新規到着の判断ルーチンへと進む。ここでは図5に示すフローチャートに従って、最初に到着した音声認識結果と二番目に到着した音声認識結果のいずれを使用するかを判断するための処理が実行される。なお、図5のフローチャートの詳細については後で説明する。
ステップ3060において、選択部1070は、音声認識結果が未到着であるか否かを判定する。未到着である場合、すなわち端末装置100(音声認識部1040)とサーバ200(音声認識部1250)のいずれからも音声認識結果を受領していない場合はステップ3070に進み、一個目の音声認識結果が到着済みである場合、すなわち端末装置100(音声認識部1040)とサーバ200(音声認識部1250)のいずれか一方から音声認識結果を受領済みである場合はステップ3080に進む。
ステップ3070において、選択部1070は、結果未到着時の判断ルーチンへと進む。ここでは図6に示すフローチャートに従って、音声認識結果が到着するまで待つか否かを判断するための処理が実行される。なお、図6のフローチャートの詳細については後で説明する。
ステップ3080において、選択部1070は、結果1個目到着済みの判断ルーチンへと進む。ここでは図7に示すフローチャートに従って、最初に到着した音声認識結果を使用するか、または次の音声認識結果を待つかを判断するための処理が実行される。なお、図7のフローチャートの詳細については後で説明する。
ステップ3040、3050、3070または3080のいずれかを実行したら、選択部1070はステップ3090を実行する。ステップ3090において、選択部1070は、次の音声認識結果を待つか否かを判断する。ここでは、所定のフラグ状態を確認する。その結果、フラグが立っている場合は次の音声認識結果を待つと判断し、ステップ3010へ戻って待機する。一方、フラグが立っていない場合は処理をステップ3100に進める。なお、ステップ3090の判定に用いられるフラグは、ステップ3040、3070または3080において所定の条件を満たしたときにセットされる。この条件の詳細については、後で図4、6、7を参照して説明する。
ステップ3100において、選択部1070は、ステップ3040、3050、3070、3080のいずれかで決定した動作を行う指令をHMI制御部1100に出力する。この指令に従って、HMI制御部1100はHMIの制御を行い、図2で説明したような画面表示を用いてユーザへの情報提供を行う。すなわち、採用動作の場合は図2(a)の画面2010のような画面を、確認動作の場合は図2(b)の画面2020や図2(c)の画面2030のような画面を、棄却動作の場合は図2(d)の画面2040のような画面をディスプレイ30にそれぞれ表示する。また、端末装置100は、これらの画面に対応した処理を実行する。
ステップ3100を実行したら、選択部1070は図3のフローチャートに示す処理を終了し、次の音声入力まで待機する。
次に、図3のステップ3040、3050、3070、3080の各処理の詳細について順に説明する。まず、図4のフローチャートを参照して、ステップ3040で実行される結果1個目新規到着の判断ルーチンを説明する。
ステップ4010において、選択部1070は、到着した音声認識結果を受領し、その音声認識結果に対して識別符号i1を設定する。この識別符号i1は、音声認識結果を表す記号である「i」と、一番目の音声認識結果を表す数字である「1」とを組み合わせて構成されている。以下では、識別符号i1を設定した一番目の音声認識結果を「音声認識結果i1」と称する。
ステップ4020において、選択部1070は、音声認識結果i1の出力元が端末装置100とサーバ200のいずれであるかを判断する。出力元がサーバ200である場合、すなわち音声認識結果i1がサーバ音声認識情報である場合は処理をステップ4030に進め、出力元が端末装置100である場合、すなわち音声認識結果i1が端末音声認識情報である場合は処理をステップ4040に進める。
ステップ4030において、選択部1070は、一番目の音声認識結果の出力元k1および二番目の音声認識結果の出力元k2を設定する。ここでは、一番目の音声認識結果すなわち音声認識結果i1の出力元k1に対しては、サーバ200を示す「サーバ」を設定し、未受領である二番目の音声認識結果の出力元k2に対しては、端末装置100を示す「端末」を設定する。
ステップ4040において、選択部1070は、一番目の音声認識結果の出力元k1および二番目の音声認識結果の出力元k2を設定する。ここでは、ステップ4030とは反対に、一番目の音声認識結果すなわち音声認識結果i1の出力元k1に対しては、端末装置100を示す「端末」を設定し、未受領である二番目の音声認識結果の出力元k2に対しては、サーバ200を示す「サーバ」を設定する。
ステップ4030または4040で識別符号k1、k2を設定したら、ステップ4050において、選択部1070は、音声認識結果i1に対応するドメインd1を推定する。ドメインとは、ユーザに入力された音声の属性を表す情報である。端末装置100には、たとえば対応する入力操作により実行されるタスクの困難さや、ユーザに提供される情報の種類などによって音声を複数の属性に分類し、この複数の属性に対応して複数のドメインが予め設定されている。たとえば、ナビゲーション情報を提供する際に入力される音声に対して、「住所検索」、「施設名検索」、「ナビコマンド」の三種類のドメインが設定されている。選択部1070は、端末装置100において設定されているこれらのドメインのうち、どのドメインが音声認識結果i1に対応するドメインであるかを推定し、その推定結果に基づいてドメインd1を設定する。このとき、辞書データベース1050または1230において予め登録されている複数の辞書のうち、いずれの辞書を用いて音声認識部1040または1250が音声認識を行ったかにより、ドメインd1を推定してもよい。また、音声認識結果i1として取得した端末音声認識情報またはサーバ音声認識情報に、意図推定部1060または1270によるユーザの意図の推定結果を示す意図推定情報が含まれる場合は、この意図推定情報に基づいてドメインd1を推定してもよい。なお、音声認識結果i1に対応するドメインが推定できなかった場合は、ドメインd1を「不明」に設定する。
ステップ4060において、選択部1070は、音声認識結果i1の信頼度c1を推定する。信頼度とは、音声認識結果の確からしさを表す指標であり、様々な指標を用いることができる。
ステップ4070において、選択部1070は、ユーザが発話を終了して端末装置100に音声が入力されてから、現在までの、すなわち端末装置100において音声認識結果i1が得られるまでの経過時間を、経過時間t1として計測する。なお、端末装置100に音声が入力されてから音声認識結果i1が得られるまでの経過時間に関連するものであれば、他の時間指標を経過時間t1として計測してもよい。たとえば、ユーザが発話を開始した時点から経過時間t1の計測を開始してもよいし、音声認識結果i1を受領してからディスプレイ30に画面が表示されるまでの時間を予測し、その時間を経過時間t1に加えてもよい。
ステップ4080において、選択部1070は、音声認識結果i1の推定正解率p1を算出する。ここでは、ステップ4030または4040で設定した出力元k1と、ステップ4050で推定したドメインd1と、ステップ4060で推定した信頼度c1と、ステップ4070で計測した経過時間t1とに基づき、予め設定された関数Fpを用いて、推定正解率p1を算出する。推定正解率p1とは、音声認識結果i1がどの程度の確率でユーザの音声と一致するかを表す値である。すなわち、音声認識結果i1がユーザの音声と一致する確率は、信頼度c1だけでなく、ドメインd1や出力元k1によっても変化する場合がある。また、端末装置100の音声認識部1040やサーバ200の音声認識部1250での音声認識処理に要した時間に応じて、音声認識結果i1がユーザの音声と一致する確率が変化することが経験的に分かっている場合もある。そのため、こうした経験上の知識等を用いることで、k1、d1、c1、t1の各変数と推定正解率p1との相関関係を予め調べておき、その結果に基づいて関数Fpを設定する。そして、この関数Fpに対して、ステップ4030〜4070の各処理で設定したk1、d1、c1、t1の各変数の値を入力することで、推定正解率p1を算出することができる。ただし、ステップ4080において、k1、d1、c1、t1の変数は必ずしも全て用いる必要はない。いずれか任意の一つ以上の変数を用いることで、推定正解率p1の算出が可能である。
ステップ4090において、選択部1070は、音声認識結果i1を用いた場合の情報提供に対するユーザ満足度を算出する。ここでは、HMI制御部1100がユーザへの情報提供を行う際の前述の3種類の動作、すなわち採用動作、確認動作、棄却動作のそれぞれについて、音声認識結果i1に対するユーザ満足度を算出する。以下では、採用動作でのユーザ満足度をSa1、確認動作でのユーザ満足度をSc1、棄却動作でのユーザ満足度をSr1とそれぞれ表す。
上記のユーザ満足度Sa1、Sc1、Sr1は、ステップ4050で推定したドメインd1と、ステップ4070で計測した経過時間t1と、ステップ4080で算出した推定正解率p1とに基づいて、それぞれ算出することができる。たとえば、d1、t1およびp1の変数を、動作の種類ごとに予め設定された関数Fsa、Fsc、Fsrに代入することで、ユーザ満足度Sa1、Sc1、Sr1をそれぞれ算出できる。これらの関数Fsa、Fsc、Fsrは、経験上の知識等を用いて予め設定されており、ユーザの満足度に関するデータとしてユーザ満足度記憶部1080に格納されている。ただし、ステップ4090において、d1、t1、p1の変数は必ずしも全て用いる必要はない。いずれか任意の一つ以上の変数を用いることで、ユーザ満足度Sa1、Sc1、Sr1の算出が可能である。
図8は、ユーザ満足度Sa1、Sc1、Sr1を算出するための関数Fsa、Fsc、Fsrの例を示す図である。図8(a)に示すグラフ8010、8011、8012は、採用動作でのユーザ満足度Sa1を算出するための関数Fsaの例である。グラフ8010は、関数Fsaの例として、推定正解率p1が90%であるときの経過時間t1とユーザ満足度Sa1との関係を示している。グラフ8011は、関数Fsaの例として、推定正解率p1が80%であるときの経過時間t1とユーザ満足度Sa1との関係を示している。グラフ8012は、関数Fsaの例として、推定正解率p1が60%であるときの経過時間t1とユーザ満足度Sa1との関係を示している。これらのグラフにおいて、ユーザ満足度Sa1の最低値は1、最高値は5としている。
図8(b)に示すグラフ8020、8021、8022は、確認動作でのユーザ満足度Sc1を算出するための関数Fscの例である。グラフ8020は、関数Fscの例として、推定正解率p1が90%であるときの経過時間t1とユーザ満足度Sc1との関係を示している。グラフ8021は、関数Fscの例として、推定正解率p1が80%であるときの経過時間t1とユーザ満足度Sc1との関係を示している。グラフ8022は、関数Fscの例として、推定正解率p1が60%であるときの経過時間t1とユーザ満足度Sc1との関係を示している。また、図8(b)に示すグラフ8023は、棄却動作でのユーザ満足度Sr1を算出するための関数Fsrの例であり、経過時間t1とユーザ満足度Sr1との関係を示している。これらのグラフにおいて、ユーザ満足度Sc1、Sr1の最低値は1、最高値は5としている。
なお、図8(a)および図8(b)の各グラフは、ドメインd1がたとえば「ナビコマンド」である場合の例を示している。
ユーザ満足度の一般的な特性としては、ユーザが発話してから端末装置100が何らかの動作を行うまでの時間が長くなるほど、ユーザ満足度が低下していくことが知られている。そのため、図8(a)および図8(b)の各グラフでは、経過時間t1が増加するにつれて、ユーザ満足度Sa1、Sc1、Sr1が次第にそれぞれ低下するようになっている。
ここで、図8(a)および図8(b)の各グラフにおいて、経過時間t1の値が比較的小さいときには、採用動作でのユーザ満足度Sa1が最も高く、確認動作でのユーザ満足度Sc1が次に高く、棄却動作でのユーザ満足度Sr1が最も低いことが分かる。また、経過時間t1の値が大きくなるにつれて、採用動作でのユーザ満足度Sa1が大きく低下していく一方で、確認動作でのユーザ満足度Sc1や、棄却動作でのユーザ満足度Sr1はそれほど低下しないことが分かる。さらに、経過時間t1の増加に応じた採用動作でのユーザ満足度Sa1の低下は、推定正解率p1の値が大きいほど顕著であることが分かる。このようなユーザへの情報提供方法の違いによるユーザ満足度の変化傾向の差異について、以下に説明する。
一般的に、推定正解率p1の値が十分に高ければ、なるべく早いタイミングで採用動作を行って正しい音声認識結果を採用する方が、ユーザ満足度が高くなる。その一方で、推定正解率p1の値が低い場合に採用動作を行うと、間違った音声認識結果が採用されてしまい、ユーザの意図とは異なる入力操作が端末装置100において行われるリスクが高まる。よって、推定正解率p1の値が低い場合には、確認動作を行って音声認識結果が示す一つまたは複数の選択肢をユーザに提示することで、採用動作を行った場合よりもユーザの意図通りの入力操作を実行できる可能性があるため、平均的にはユーザ満足度が高くなる。また、経過時間t1が長くなり、かつ推定正解率p1が低い場合には、採用動作を行うことで誤った音声認識結果を採用してしまうと、ユーザ満足度が極めて低くなる。したがって、この場合にも、採用動作よりも確認動作を行った方が高いユーザ満足度を得られると予測される。
さらに、棄却動作を行った場合には、総じてユーザ満足度が低くなる。しかし、経過時間t1が長い場合には、棄却動作を行ってユーザに再び発話するように促すことで、音声認識がうまくできなかったことをユーザにとって分かりやすく伝えることができる。また、この場合にはユーザが前回よりもはっきりと発話することが期待できるため、正しい音声認識結果を得られる可能性が高くなる。このように、経過時間t1が長い場合には、採用動作や確認動作よりも棄却動作を行う方が、ユーザ満足度が高くなることがある。
図9は、図8とはドメインd1が異なる場合に、ユーザ満足度Sa1、Sc1、Sr1を算出するための関数Fsa、Fsc、Fsrの例を示す図である。図9(a)に示すグラフ9010、9011、9012は、採用動作でのユーザ満足度Sa1を算出するための関数Fsaの例である。グラフ9010は、関数Fsaの例として、推定正解率p1が90%であるときの経過時間t1とユーザ満足度Sa1との関係を示している。グラフ9011は、関数Fsaの例として、推定正解率p1が80%であるときの経過時間t1とユーザ満足度Sa1との関係を示している。グラフ9012は、関数Fsaの例として、推定正解率p1が60%であるときの経過時間t1とユーザ満足度Sa1との関係を示している。これらのグラフにおいて、ユーザ満足度Sa1の最低値は1、最高値は5としている。
図9(b)に示すグラフ9020、9021、9022は、確認動作でのユーザ満足度Sc1を算出するための関数Fscの例である。グラフ9020は、関数Fscの例として、推定正解率p1が90%であるときの経過時間t1とユーザ満足度Sc1との関係を示している。グラフ9021は、関数Fscの例として、推定正解率p1が80%であるときの経過時間t1とユーザ満足度Sc1との関係を示している。グラフ9022は、関数Fscの例として、推定正解率p1が60%であるときの経過時間t1とユーザ満足度Sc1との関係を示している。また、図9(b)に示すグラフ9023は、棄却動作でのユーザ満足度Sr1を算出するための関数Fsrの例であり、経過時間t1とユーザ満足度Sr1との関係を示している。これらのグラフにおいて、ユーザ満足度Sc1、Sr1の最低値は1、最高値は5としている。
なお、図9(a)および図9(b)の各グラフは、ドメインd1がたとえば「住所検索」または「施設名検索」である場合の例を示している。これらのグラフでは、図8(a)や図8(b)に示した、ドメインd1が「ナビコマンド」である場合の各グラフと比較して、経過時間t1が長くなっても、ユーザ満足度Sa1、Sc1の低下幅が小さくなっている。このようなドメインd1の違いによるユーザ満足度の変化傾向の差異について、以下に説明する。
一般的に、ドメインが「ナビコマンド」である場合のように、ユーザが発話する音声の種類が比較的限られている場合には、サーバとの接続機能を持たずに車両の端末装置のみで音声認識を行う従来の音声認識装置でも、比較的短い応答時間で正しい音声認識結果を得ることができていた。そのため、こうした従来の音声認識装置をこれまで使用してきたユーザにとっては、経過時間t1が長くなることに対する抵抗感が強く、ユーザ満足度が低下し始める経過時間t1が短くなる。一方、ドメインが「施設名検索」や「住所検索」である場合のように、ユーザが発話する音声の種類が多岐にわたる場合には、従来の音声認識装置では応答時間が長くかかったり、ユーザが施設名や住所名を正確に発話しないと音声認識ができなかったりしていた。そのため、このような従来では音声認識が困難な状況の場合には、経過時間t1が長くなっても、ユーザ満足度の低下度合いは比較的少なくなる。
図8および図9の各グラフに示したユーザ満足度の関数Fsa、Fsc、Fsrは、以上説明したようなドメインd1の違いによるユーザ満足度の変化傾向の差異を考慮して、端末装置100において予め設定されたものである。さらに、前述したようなユーザへの情報提供方法の違いによるユーザ満足度の変化傾向の差異についても考慮されている。なお、関数Fsa、Fsc、Fsrの設計には、たとえば、実際に被験者への実験を行った結果に基づいて各関数を決定する方法や、所定の官能評価に基づいて各関数を決定する方法や、所定の設計ポリシーに従って各関数を決定する方法などが適用できる。
なお、上記の説明では、音声認識エンジンの種類、すなわち端末装置100の音声認識部1040またはサーバ200の音声認識部1250のいずれによる音声認識結果であるかに関わらず、同一の関数Fsa、Fsc、Fsrを用いてユーザ満足度Sa1、Sc1、Sr1を求めることとしていた。しかし、音声認識エンジンとドメインd1の組み合わせによっては推定正解率p1が大きく変わるため、それに応じてユーザ満足度も大きく変わる可能性がある。そのため、音声認識エンジンの種類によって別々の関数Fsa、Fsc、Fsrのデータをユーザ満足度記憶部1080において予め設定しておき、これらを使い分けてユーザ満足度Sa1、Sc1、Sr1を求めるようにしてもよい。
図4の説明に戻ると、ステップ4095において、選択部1070は、2エンジン目のドメイン、すなわち未受領である二番目の音声認識結果に対応するドメインd2’を推定する。ここで、通常であればドメインd2’は、1エンジン目のドメイン、すなわち音声認識結果i1に対応するドメインd1と同一である可能性が高いと考えられる。したがって、ドメインd2’はドメインd1と同じであると推定し、ドメインd1と同一の内容をそのまま設定すればよい。
ステップ4100において、選択部1070は、ユーザが発話を終了して端末装置100に音声が入力されてから、未受領である二番目の音声認識結果が得られるまでの経過時間t2を予測する。ここでは、ステップ4030または4040で設定した出力元k2と、ステップ4095で推定したドメインd2’と、ステップ4060で推定した信頼度c1と、端末装置100とサーバ200との間の通信状態を表す通信状態csとに基づき、予め設定された関数Ftを用いて、経過時間t2の予測値を算出する。すなわち、出力元k2が端末装置100の場合とサーバ200の場合とで、二番目の音声認識結果が到着するまでの時間が変わるため、経過時間t2が変化すると考えられる。また、二番目の音声認識結果に対応するドメインd2’によっても、音声認識に要する時間が異なるため、経過時間t2が変化すると考えられる。さらに、出力元k2がサーバ200の場合は、通信状態csも経過時間t2を大きく左右する要因となる。加えて、音声認識結果i1の信頼度c1についても、別の音声認識エンジンによる音声認識の困難性を予測するのに使用できる可能性がある。そのため、k2、d2’、c1、csの各変数と経過時間t2との相関関係を予め調べておき、その結果に基づいて関数Ftを設定する。そして、この関数Ftに対して、先の各処理で設定したk2、d2’、c1、csの各変数の値を入力することで、経過時間t2を推定することができる。なお、関数Ftは数式で表したものでもよいし、予め収集したデータに基づいて設定された変数ごとのテーブル値としてもよい。また、前述の経過時間t1と同様に、端末装置100に音声が入力されてから二番目の音声認識結果が得られるまでの経過時間に関連するものであれば、他の時間指標を経過時間t2として予測してもよい。ただし、ステップ4100において、k2、d2’、c1、csの変数は必ずしも全て用いる必要はない。いずれか任意の一つ以上の変数を用いることで、経過時間t2の推定が可能である。
ステップ4110において、選択部1070は、二番目の音声認識結果の推定正解率p2を算出する。ここでは、現時点で利用可能な情報をすべて使用して、推定正解率p2を算出する。すなわち、ステップ4030または4040で設定した出力元k1およびk2と、ステップ4095で推定したドメインd2’と、ステップ4060で推定した信頼度c1と、ステップ4100で予測した経過時間t2とに基づき、予め設定された関数Fp2を用いて、推定正解率p2を算出する。なお、関数Fp2は、ステップ4080で音声認識結果i1の推定正解率p1を算出するのに用いられた関数Fpと同様に、予め設定しておくことができる。ただし、ステップ4110において、k1、k2、d2’、c1、t2の変数は必ずしも全て用いる必要はない。いずれか任意の一つ以上の変数を用いることで、推定正解率p2の算出が可能である。
ステップ4120において、選択部1070は、二番目の音声認識結果を用いた場合の情報提供に対するユーザ満足度を算出する。ここでは、採用動作、確認動作のそれぞれについて、ステップ4090と同様の方法により、二番目の音声認識結果に対するユーザ満足度Sa2’、Sc2’を算出する。すなわち、ステップ4095で推定したドメインd2’と、ステップ4100で予測した経過時間t2と、ステップ4110で算出した推定正解率p2とに基づいて、これらの変数を前述の関数Fsa、Fscに代入することで、ユーザ満足度Sa2’、Sc2’をそれぞれ算出する。ただし、ステップ4120において、d2’、t2、p2の変数は必ずしも全て用いる必要はない。なお、ここでは棄却動作でのユーザ満足度Sr2’については算出しなくてもよい。その理由は、わざわざ二番目の音声認識結果を待った上でそれを棄却したほうがよいと判断されるケースは、現実的には存在しないためである。
ステップ4130以降の処理では、選択部1070は、ステップ4090で算出した音声認識結果i1に対するユーザ満足度Sa1、Sc1、Sr1と、ステップ4120で算出した二番目の音声認識結果に対するユーザ満足度Sa2’、Sc2’とを比較する。この比較結果に基づいて、選択部1070は、HMI制御部1100によるユーザへの情報提供に用いる音声認識結果として音声認識結果i1を選択するか、または、音声認識結果i1を選択せずに二番目の音声認識結果を受領するまで待つかを判断する。また、音声認識結果i1を選択する場合には、採用動作、確認動作、棄却動作のうちどれを用いてユーザへの情報提供を行うかを判断する。
ステップ4130において、選択部1070は、音声認識結果i1を用いるよりも二番目の音声認識結果を待った方が、ユーザ満足度が高いか否かを判定する。具体的には、選択部1070は、音声認識結果i1に対するユーザ満足度Sa1、Sc1、Sr1の最大値と、二番目の音声認識結果に対するユーザ満足度Sa2’、Sc2’の最大値とを比較する。その結果、ユーザ満足度Sa1、Sc1、Sr1の最大値よりもユーザ満足度Sa2’、Sc2’の最大値の方が大きければ、二番目の音声認識結果を待った方がユーザ満足度が高いと判断して、処理をステップ4170に進める。一方、ユーザ満足度Sa1、Sc1、Sr1の最大値がユーザ満足度Sa2’、Sc2’の最大値以上であれば、二番目の音声認識結果を待たずに音声認識結果i1を用いた方がユーザ満足度が高いと判断して、処理をステップ4140に進める。
ステップ4140において、選択部1070は、音声認識結果i1による採用動作でのユーザ満足度Sa1を、確認動作でのユーザ満足度Sc1および棄却動作でのユーザ満足度Sr1と比較する。その結果、Sa1がSc1以上かつSr1以上であれば処理をステップ4180に進め、そうでない場合は処理をステップ4150に進める。
ステップ4150において、選択部1070は、音声認識結果i1による確認動作でのユーザ満足度Sc1を、棄却動作でのユーザ満足度Sr1と比較する。その結果、Sc1がSr1以上であれば処理をステップ4160に進め、そうでない場合、すなわちSc1がSr1未満であれば処理をステップ4190に進める。
ステップ4160において、選択部1070は、音声認識結果i1によるユーザへの情報提供の方法として棄却動作を選択する。その後、選択部1070は図4のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、棄却動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(d)の画面2040のような画面がディスプレイ30に表示され、ユーザに再度の発話が促される。
ステップ4170において、選択部1070は、二番目の音声認識結果を待つことに決定し、前述のフラグを立てる処理を行う。その後、選択部1070は図4のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が肯定判定された後、ステップ3010へ戻って二番目の音声認識結果が受領されるか、または一定時間が経過するまで待機する。
ステップ4180において、選択部1070は、音声認識結果i1によるユーザへの情報提供の方法として採用動作を選択する。その後、選択部1070は図4のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、音声認識結果i1に基づいて採用動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(a)の画面2010のような画面がディスプレイ30に表示され、認識された入力操作に応じた処理へと移行する。
ステップ4190において、選択部1070は、音声認識結果i1によるユーザへの情報提供の方法として確認動作を選択する。その後、選択部1070は図4のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、音声認識結果i1に基づいて確認動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(b)の画面2020または図2(c)の画面2030のような画面がディスプレイ30に表示され、ユーザの確認を待った後、確認された入力操作に応じた処理へと移行する。
以上説明したように、ステップ4130以降の処理では、音声認識結果i1に対するユーザ満足度Sa1、Sc1、Sr1と、二番目の音声認識結果に対するユーザ満足度Sa2’、Sc2’とを比較し、その比較結果に基づいて最もユーザ満足度が高くなるような動作を選択している。この点について、以下に具体例を挙げてさらに説明する。
なお、以下に説明する具体例では、前提条件として、最初に端末装置100からの音声認識結果が選択部1070に到着し(k1=「端末」)、このときの経過時間t1が3秒であったとする。また、音声認識結果i1が「日本武道館」であり、この認識結果に対応する入力操作が施設名検索であったとする。そのため、ドメインd1の推定結果が「施設名検索」であり、これに対する推定正解率p1の算出結果が80%であったとする。
ステップ4100、4110では、音声認識結果i1に対する上記の各情報に基づいて、未受領である二番目の音声認識結果(k2=「サーバ」)に関する経過時間t2と推定正解率p2がそれぞれ算出される。その結果、前提条件として、経過時間t2が7秒と予測され、推定正解率p2が90%であったとする。なお、ドメインd2’にはドメインd1と同じ「施設名検索」が設定される。
上記の前提条件に基づいて、最初の音声認識結果または二番目の音声認識結果を用いて採用動作、確認動作、棄却動作のそれぞれによるユーザへの情報提供を行った場合のユーザ満足度は、たとえば以下のように求められる。なお、以下の各ユーザ満足度の算出では、図9に示した関数Fsa、Fsc、Fsrを用いることとした。
図9のグラフ9011、9021、9023から、最初の音声認識結果を用いた場合のユーザ満足度Sa1、Sc1、Sr1は、それぞれ以下のように求められる。
採用動作:Sa1=4.0
確認動作:Sc1=3.8
棄却動作:Sr1=1.8
また、図9のグラフ9010、9020、9023から、二番目の音声認識結果を用いた場合のユーザ満足度Sa2’、Sc2’は、それぞれ以下のように求められる。
採用動作:Sa2’=4.2
確認動作:Sc2’=4.3
上記の各ユーザ満足度を比較すると、二番目の音声認識結果を用いて確認動作を行った場合のユーザ満足度Sc2’が最も高い。そのため、この具体例では、最初の音声認識結果を用いずに、二番目の音声認識結果を待つこととなる。
なお、上記の具体例では、ユーザ満足度記憶部1080において予め記憶されている関数Fsa、Fsc、Fsrのデータが推定正解率p1、p2にそれぞれ一致する場合を説明したが、一致しない場合であってもユーザ満足度の算出は可能である。たとえば、推定正解率p1、p2が85%であった場合の採用動作でのユーザ満足度Sa1、Sa2’は、図9のグラフ9010、9011からユーザ満足度をそれぞれ読み取り、これらのユーザ満足度の平均値を算出することで求められる。同様に、確認動作でのユーザ満足度Sc1、Sc2’は、図9のグラフ9020、9021からユーザ満足度をそれぞれ読み取り、これらのユーザ満足度の平均値を算出することで求められる。すなわち、推定正解率p1、p2に一致するユーザ満足度のデータがユーザ満足度記憶部1080に記憶されていない場合には、その前後のユーザ満足度のデータを線形補間することで、ユーザ満足度を求めることができる。また、たとえば推定正解率が100%である場合など、前後にユーザ満足度のデータが存在せずに線形補間ができない場合には、その推定正解率に最も近いユーザ満足度のデータを使用して、ユーザ満足度を求めることもできる。
次に、図5のフローチャートを参照して、ステップ3050で実行される結果2個目新規到着の判断ルーチンを説明する。
ステップ5010において、選択部1070は、二番目に到着した音声認識結果を受領し、その音声認識結果に対して識別符号i2を設定する。以下では、識別符号i2を設定した二番目の音声認識結果を「音声認識結果i2」と称する。
ステップ5020において、選択部1070は、音声認識結果i2に対応するドメインd2を推定する。なお、ドメインd2の推定方法は、図4のステップ4050におけるドメインd1の推定方法と同様である。
ステップ5030において、選択部1070は、音声認識結果i2の信頼度c2を推定する。
ステップ5040において、選択部1070は、ユーザが発話を終了して端末装置100に音声が入力されてから、現在までの、すなわち端末装置100において音声認識結果i2が得られるまでの経過時間t2を計測する。なお、前述の経過時間t1と同様に、端末装置100に音声が入力されてから音声認識結果i2が得られるまでの経過時間に関連するものであれば、他の時間指標を経過時間t2として計測してもよい。
ステップ5050において、選択部1070は、音声認識結果i2の推定正解率p2を算出する。ここでは、図4のステップ4080で算出した推定正解率p1と同様に、ステップ4030または4040で設定した出力元k2と、ステップ5020で推定したドメインd2と、ステップ5030で推定した信頼度c2と、ステップ5040で計測した経過時間t2とに基づき、予め設定された関数Fpを用いて、推定正解率p2を算出する。ただし、ステップ5050において、k2、d2、c2、t2の変数は必ずしも全て用いる必要はない。いずれか任意の一つ以上の変数を用いることで、推定正解率p2の算出が可能である。
ステップ5060において、選択部1070は、現在のモードが最大満足度モードと最大正解率モードのいずれであるかを判断する。その結果、現在のモードが最大満足度モードである場合は処理をステップ5160に進め、最大正解率モードである場合は処理をステップ5070に進める。なお、最大満足度モードとは、ユーザ満足度が最大となるように音声認識結果およびHMI制御部1100の動作を選択してユーザへの情報提供を行うモードであり、最大正解率モードとは、推定正解率p1またはp2が最大となる音声認識結果を用いてユーザへの情報提供を行うモードである。
現在のモードが最大正解率モードである場合、ステップ5070において、選択部1070は、音声認識結果i1の推定正解率p1と、音声認識結果i2の推定正解率p2とを比較する。その結果、推定正解率p1の方が高い場合は処理をステップ5080に進め、推定正解率p2の方が高い場合、または推定正解率p1と推定正解率p2とが同一である場合は処理をステップ5090に進める。
ステップ5080において、選択部1070は、音声認識結果i1と、これに対応する推定正解率p1、ドメインd1および信頼度c1とを、最尤結果にそれぞれ設定する。そして、次のステップ5100でユーザ満足度を算出する際の変数として参照するために、i=i1、p=p1、d=d1、c=c1とそれぞれ設定する。
ステップ5090において、選択部1070は、音声認識結果i2と、これに対応する推定正解率p2、ドメインd2および信頼度c2とを、最尤結果にそれぞれ設定する。そして、次のステップ5100でユーザ満足度を算出する際の変数として参照するために、i=i2、p=p2、d=d2、c=c2とそれぞれ設定する。
ステップ5100において、選択部1070は、ステップ5080または5090で最尤結果に設定した音声認識結果i(i=i1またはi2)を用いた場合の情報提供に対するユーザ満足度Sa、Sc、Srを算出する。ここでは、図4のステップ4090で算出したユーザ満足度Sa1、Sc1、Sr1と同様に、ステップ5090で設定したd、tおよびpの変数を関数Fsa、Fsc、Fsrに代入することで、最尤結果を用いた場合の採用動作、確認動作、棄却動作によるユーザ満足度Sa、Sc、Srをそれぞれ算出できる。ただし、ステップ5100において、d、t、pの変数は必ずしも全て用いる必要はない。いずれか任意の一つ以上の変数を用いることで、ユーザ満足度Sa、Sc、Srの算出が可能である。
ステップ5110において、選択部1070は、音声認識結果iによる採用動作でのユーザ満足度Saを、確認動作でのユーザ満足度Scおよび棄却動作でのユーザ満足度Srと比較する。その結果、SaがSc以上かつSr以上であれば処理をステップ5120に進め、そうでない場合は処理をステップ5130に進める。
ステップ5120において、選択部1070は、音声認識結果iによるユーザへの情報提供の方法として採用動作を選択する。その後、選択部1070は図5のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、音声認識結果iに基づいて採用動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(a)の画面2010のような画面がディスプレイ30に表示され、認識された入力操作に応じた処理へと移行する。
ステップ5130において、選択部1070は、音声認識結果iによる確認動作でのユーザ満足度Scを、棄却動作でのユーザ満足度Srと比較する。その結果、ScがSr以上であれば処理をステップ5140に進め、そうでない場合、すなわちScがSr未満であれば処理をステップ5150に進める。
ステップ5140において、選択部1070は、音声認識結果iによるユーザへの情報提供の方法として確認動作を選択する。その後、選択部1070は図5のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、音声認識結果iに基づいて確認動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(b)の画面2020または図2(c)の画面2030のような画面がディスプレイ30に表示され、ユーザの確認を待った後、確認された入力操作に応じた処理へと移行する。
ステップ5150において、選択部1070は、音声認識結果iによるユーザへの情報提供の方法として棄却動作を選択する。その後、選択部1070は図5のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、棄却動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(d)の画面2040のような画面がディスプレイ30に表示され、ユーザに再度の発話が促される。
以上説明したように、最大正解率モードにおいて実行されるステップ5070〜5150の処理では、最初に受領した音声認識結果i1と二番目に受領した音声認識結果i2のうち、推定正解率が高い方の音声認識結果について、採用動作、確認動作、棄却動作の中から最もユーザ満足度が高くなる動作が選択されて実行される。
現在のモードが最大満足度モードである場合、ステップ5160において、選択部1070は、最初に受領した音声認識結果i1を用いた場合の情報提供に対するユーザ満足度Sa1、Sc1、Sr1を算出する。ここでは、図4のステップ4090と同様に、ステップ4050で推定したドメインd1と、ステップ5040で計測した経過時間t2と、ステップ4080で算出した推定正解率p1との変数を関数Fsa、Fsc、Fsrに代入することで、音声認識結果i1を用いた場合の採用動作、確認動作、棄却動作によるユーザ満足度Sa1、Sc1、Sr1をそれぞれ算出できる。ただし、ステップ5160において、d1、t2、p1の変数は必ずしも全て用いる必要はない。いずれか任意の一つ以上の変数を用いることで、ユーザ満足度Sa1、Sc1、Sr1の算出が可能である。
ステップ5170において、選択部1070は、二番目に受領した音声認識結果i2を用いた場合の情報提供に対するユーザ満足度Sa2、Sc2を算出する。ここでもステップ5160と同様に、ステップ5020で推定したドメインd2と、ステップ5040で計測した経過時間t2と、ステップ5050で算出した推定正解率p2との変数を関数Fsa、Fsc、Fsrに代入することで、音声認識結果i2を用いた場合の採用動作、確認動作、棄却動作によるユーザ満足度Sa2、Sc2をそれぞれ算出できる。ただし、ステップ5170において、d2、t2、p2の変数は必ずしも全て用いる必要はない。いずれか任意の一つ以上の変数を用いることで、ユーザ満足度Sa2、Sc2の算出が可能である。
ステップ5180において、選択部1070は、音声認識結果i1による採用動作でのユーザ満足度Sa1が、ステップ5160および5170で算出した全てのユーザ満足度の中で最大であるか否かを判定する。その結果、Sa1が最大である場合は処理をステップ5190に進め、そうでない場合は処理をステップ5200に進める。
ステップ5190において、選択部1070は、音声認識結果i1によるユーザへの情報提供の方法として採用動作を選択する。その後、選択部1070は図5のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、音声認識結果i1に基づいて採用動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(a)の画面2010のような画面がディスプレイ30に表示され、認識された入力操作に応じた処理へと移行する。
ステップ5200において、選択部1070は、音声認識結果i2による採用動作でのユーザ満足度Sa2が、ステップ5160および5170で算出した全てのユーザ満足度の中で最大であるか否かを判定する。その結果、Sa2が最大である場合は処理をステップ5210に進め、そうでない場合は処理をステップ5220に進める。
ステップ5210において、選択部1070は、音声認識結果i2によるユーザへの情報提供の方法として採用動作を選択する。その後、選択部1070は図5のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、音声認識結果i2に基づいて採用動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(a)の画面2010のような画面がディスプレイ30に表示され、認識された入力操作に応じた処理へと移行する。
ステップ5220において、選択部1070は、音声認識結果i1による確認動作でのユーザ満足度Sc1が、ステップ5160および5170で算出した全てのユーザ満足度の中で最大であるか否かを判定する。その結果、Sc1が最大である場合は処理をステップ5230に進め、そうでない場合は処理をステップ5240に進める。
ステップ5230において、選択部1070は、音声認識結果i1によるユーザへの情報提供の方法として確認動作を選択する。その後、選択部1070は図5のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、音声認識結果i1に基づいて確認動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(b)の画面2020または図2(c)の画面2030のような画面がディスプレイ30に表示され、ユーザの確認を待った後、確認された入力操作に応じた処理へと移行する。
ステップ5240において、選択部1070は、音声認識結果i2による確認動作でのユーザ満足度Sc2が、ステップ5160および5170で算出した全てのユーザ満足度の中で最大であるか否かを判定する。その結果、Sc2が最大である場合は処理をステップ5250に進め、そうでない場合は処理をステップ5260に進める。
ステップ5250において、選択部1070は、音声認識結果i2によるユーザへの情報提供の方法として確認動作を選択する。その後、選択部1070は図5のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、音声認識結果i2に基づいて確認動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(b)の画面2020または図2(c)の画面2030のような画面がディスプレイ30に表示され、ユーザの確認を待った後、確認された入力操作に応じた処理へと移行する。
ステップ5260において、選択部1070は、音声認識結果i1、i2によるユーザへの情報提供の方法として棄却動作を選択する。その後、選択部1070は図5のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、棄却動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(d)の画面2040のような画面がディスプレイ30に表示され、ユーザに再度の発話が促される。
以上説明したように、最大満足度モードにおいて実行されるステップ5160〜5260の処理では、最初に受領した音声認識結果i1と二番目に受領した音声認識結果i2について、採用動作、確認動作、棄却動作の満足度がそれぞれ算出され、最もユーザ満足度が高くなる音声認識結果と動作の組み合わせが選択されて実行される。
次に、図6のフローチャートを参照して、ステップ3070で実行される結果未到着時の判断ルーチンを説明する。
ステップ6010において、選択部1070は、未到着の音声認識結果に対応するドメインd0を「不明」に設定する。すなわち、この時点では音声認識結果として何も得られていないため、ドメインは不明であるとして、ドメインd0を「不明」に設定する。
ステップ6020において、選択部1070は、未到着の音声認識結果に対する仮の推定正解率p0として、所定の正解率、たとえば50%を設定する。すなわち、この時点では音声認識結果として何も得られていないため、推定正解率は不明であるとして、仮の推定正解率p0を設定する。
ステップ6030において、選択部1070は、ユーザが発話を終了して端末装置100に音声が入力されてから現在までの経過時間t0を計測する。
ステップ6040において、選択部1070は、現時点で何らかの動作を行った場合のユーザ満足度Sa0、Sc0、Sr0を算出する。ここでは、図4のステップ4090で算出したユーザ満足度Sa1、Sc1、Sr1と同様に、ステップ6010で設定したドメインd0と、ステップ6030で計測した経過時間t0と、ステップ6020で設定した推定正解率p0との変数を関数Fsa、Fsc、Fsrに代入することで、現時点での採用動作、確認動作、棄却動作によるユーザ満足度Sa0、Sc0、Sr0をそれぞれ算出できる。ただし、ステップ6040において、d0、t0、p0の変数は必ずしも全て用いる必要はない。いずれか任意の一つ以上の変数を用いることで、ユーザ満足度Sa0、Sc0、Sr0の算出が可能である。
ステップ6050において、選択部1070は、棄却動作でのユーザ満足度Sr0を、採用動作でのユーザ満足度Sa0および確認動作でのユーザ満足度Sc0と比較する。その結果、Sr0がSa0以上かつSc0以上であれば処理をステップ6060に進め、そうでない場合は処理をステップ6070に進める。
ステップ6060において、選択部1070は、棄却動作を選択する。その後、選択部1070は図6のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、棄却動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(d)の画面2040のような画面がディスプレイ30に表示され、ユーザに再度の発話が促される。
ステップ6070において、選択部1070は、音声認識結果が到着するまで待つことに決定し、前述のフラグを立てる処理を行う。その後、選択部1070は図6のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が肯定判定された後、ステップ3010へ戻って音声認識結果が受領されるか、または再び一定時間が経過するまで待機する。
以上説明したステップ6010〜6070の処理では、音声認識結果が未到着であるにも関わらず、棄却動作を行ってユーザに再度の発話を促すか否かが決定される。そのため、この処理において安易に棄却動作を行うように決定されると、ユーザは何回も繰り返して発話を行わなければならなくなり、音声認識システム1の使い勝手が大きく損なわれる。こうした事態を避けるため、ステップ6010でドメインd0を設定する際には、音声認識が最も困難なドメイン、たとえば「不明」を設定することが好ましい。また、ステップ6020で仮の推定正解率p0を設定する際には、採用動作や確認動作を行うのに必要となる最低限の推定正解率、たとえば50%を設定することが好ましい。
次に、図7のフローチャートを参照して、ステップ3080で実行される結果1個到着済みの判断ルーチンを説明する。
ステップ7010において、選択部1070は、ユーザが発話を終了して端末装置100に音声が入力されてから現在までの経過時間を経過時間t3として計測する。なお、前述の経過時間t1と同様に、端末装置100に音声が入力されてから現在までの経過時間に関連するものであれば、他の時間指標を経過時間t3として計測してもよい。
ステップ7020において、選択部1070は、ステップ7010で計測した経過時間t3が、図4のステップ4100で予測した経過時間t2以下であるか否かを判定する。t3がt2以下である場合は、二番目の音声認識結果を待った方がユーザ満足度が高いことが図4のステップ4130において予め分かっているため、処理をステップ7030に進める。一方、t3がt2よりも大きい場合は、現時点で何らかの動作を行った方がユーザ満足度が高くなる可能性があるため、処理をステップ7040に進める。
ステップ7030において、選択部1070は、二番目の音声認識結果を待つことに決定し、前述のフラグを立てる処理を行う。その後、選択部1070は図7のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が肯定判定された後、ステップ3010へ戻って二番目の音声認識結果が受領されるか、または再び一定時間が経過するまで待機する。
ステップ7040において、選択部1070は、経過時間t3が期待値から大きく外れているか否かを判断する。たとえば、経過時間t3と経過時間t2の予測値との差分を求め、この差分が所定の閾値を超えていた場合に、経過時間t3が期待値から大きく外れていると判断することができる。また、経過時間t2が取りうる値の範囲が予め分かっている場合には、経過時間t3をこの範囲と比較することで、経過時間t3が期待値から大きく外れているか否かを判断してもよい。たとえば、経過時間t2が取りうる値の範囲が正規分布などの確率分布で端末装置100に予め記憶されている場合に、経過時間t3がこの確率分布の所定領域、たとえば上限値から5%までの領域内に入っていれば、経過時間t3が期待値から大きく外れていると判断することができる。その結果、経過時間t3が期待値から大きく外れていると判断した場合は処理をステップ7100に進め、そうでない場合は処理をステップ7045に進める。
ステップ7045において、選択部1070は、2エンジン目のドメイン、すなわち未受領である二番目の音声認識結果に対応するドメインd2’を推定する。ここでは、図4のステップ4095と同様に、ドメインd2’はドメインd1と同じであると推定し、ドメインd1と同一の内容をそのまま設定する。
ステップ7050において、選択部1070は、二番目の音声認識結果の推定正解率p2を算出する。ここでは、図4のステップ4110と同様の方法により、推定正解率p2を算出する。すなわち、ステップ4030または4040で設定した出力元k1およびk2と、ステップ7045で推定したドメインd2’と、ステップ4060で推定した信頼度c1と、ステップ7010で計測した経過時間t3とに基づき、予め設定された関数Fp2を用いて、推定正解率p2を算出する。なお、ここでは図4のステップ4110とは異なり、現時点での経過時間t3を使用する。ただし、ステップ7050において、k1、k2、d2’、c1、t3の変数は必ずしも全て用いる必要はない。いずれか任意の一つ以上の変数を用いることで、推定正解率p2の算出が可能である。
ステップ7060において、選択部1070は、二番目の音声認識結果を用いた場合の情報提供に対するユーザ満足度を算出する。ここでは、図4のステップ4120と同様に、採用動作、確認動作のそれぞれについて、二番目の音声認識結果に対するユーザ満足度Sa2’、Sc2’を算出する。すなわち、ステップ7045で推定したドメインd2’と、ステップ7010で計測した経過時間t3と、ステップ7050で算出した推定正解率p2とに基づいて、これらの変数を関数Fsa、Fscに代入することで、ユーザ満足度Sa2’、Sc2’をそれぞれ算出する。なお、ここでもステップ7050と同様に、現時点での経過時間t3を使用する。ただし、ステップ7060において、d2’、t3、p2の変数は必ずしも全て用いる必要はない。
ステップ7070において、選択部1070は、受領済みの音声認識結果i1を用いた場合の情報提供に対するユーザ満足度Sa1、Sc1、Sr1を算出する。ここでは、図4のステップ4090と同様に、ステップ4050で推定したドメインd1と、ステップ7010で計測した経過時間t3と、ステップ4080で算出した推定正解率p1との変数を関数Fsa、Fsc、Fsrに代入することで、音声認識結果i1を用いた場合の採用動作、確認動作、棄却動作によるユーザ満足度Sa1、Sc1、Sr1をそれぞれ算出できる。ただし、ステップ7070において、d1、t3、p1の変数は必ずしも全て用いる必要はない。いずれか任意の一つ以上の変数を用いることで、ユーザ満足度Sa1、Sc1、Sr1の算出が可能である。
ステップ7080以降の処理では、選択部1070は、ステップ7070で算出した受領済みの音声認識結果i1に対するユーザ満足度Sa1、Sc1、Sr1と、ステップ7060で算出した二番目の音声認識結果に対するユーザ満足度Sa2’、Sc2’とを比較する。この比較結果に基づいて、選択部1070は、図4のステップ4130以降の処理と同様に、HMI制御部1100によるユーザへの情報提供に用いる音声認識結果として音声認識結果i1を選択するか、または、音声認識結果i1を選択せずに二番目の音声認識結果を受領するまで待つかを判断する。また、音声認識結果i1を選択する場合には、採用動作、確認動作、棄却動作のうちどれを用いてユーザへの情報提供を行うかを判断する。
ステップ7080において、選択部1070は、受領済みの音声認識結果i1を用いるよりも二番目の音声認識結果を待った方が、ユーザ満足度が高いか否かを判定する。具体的には、選択部1070は、図4のステップ4130と同様に、音声認識結果i1に対するユーザ満足度Sa1、Sc1、Sr1の最大値と、二番目の音声認識結果に対するユーザ満足度Sa2’、Sc2’の最大値とを比較する。その結果、ユーザ満足度Sa1、Sc1、Sr1の最大値よりもユーザ満足度Sa2’、Sc2’の最大値の方が大きければ、二番目の音声認識結果を待った方がユーザ満足度が高いと判断して、処理をステップ7090に進める。一方、ユーザ満足度Sa1、Sc1、Sr1の最大値がユーザ満足度Sa2’、Sc2’の最大値以上であれば、二番目の音声認識結果を待たずに現時点で受領済みの音声認識結果i1を用いた方がユーザ満足度が高いと判断して、処理をステップ7100に進める。
ステップ7090において、選択部1070は、二番目の音声認識結果を待つことに決定し、前述のフラグを立てる処理を行う。その後、選択部1070は図7のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が肯定判定された後、ステップ3010へ戻って二番目の音声認識結果が受領されるか、または再び一定時間が経過するまで待機する。
ステップ7100において、選択部1070は、音声認識結果i1による採用動作でのユーザ満足度Sa1を、確認動作でのユーザ満足度Sc1および棄却動作でのユーザ満足度Sr1と比較する。その結果、Sa1がSc1以上かつSr1以上であれば処理をステップ7110に進め、そうでない場合は処理をステップ7120に進める。
ステップ7110において、選択部1070は、音声認識結果i1によるユーザへの情報提供の方法として採用動作を選択する。その後、選択部1070は図7のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、音声認識結果i1に基づいて採用動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(a)の画面2010のような画面がディスプレイ30に表示され、認識された入力操作に応じた処理へと移行する。
ステップ7120において、選択部1070は、音声認識結果i1による確認動作でのユーザ満足度Sc1を、棄却動作でのユーザ満足度Sr1と比較する。その結果、Sc1がSr1以上であれば処理をステップ7130に進め、そうでない場合、すなわちSc1がSr1未満であれば処理をステップ7140に進める。
ステップ7130において、選択部1070は、音声認識結果i1によるユーザへの情報提供の方法として確認動作を選択する。その後、選択部1070は図7のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、音声認識結果i1に基づいて確認動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(b)の画面2020または図2(c)の画面2030のような画面がディスプレイ30に表示され、ユーザの確認を待った後、確認された入力操作に応じた処理へと移行する。
ステップ7140において、選択部1070は、音声認識結果i1によるユーザへの情報提供の方法として棄却動作を選択する。その後、選択部1070は図7のフローチャートに示す処理を終了し、図3のステップ3090に処理を進める。この場合、ステップ3090が否定判定された後、ステップ3100において、棄却動作を行う指令が選択部1070からHMI制御部1100に出力される。その結果、図2(d)の画面2040のような画面がディスプレイ30に表示され、ユーザに再度の発話が促される。
以上説明したように、ステップ7080以降の処理では、受領済みの音声認識結果i1に対するユーザ満足度Sa1、Sc1、Sr1と、二番目の音声認識結果に対するユーザ満足度Sa2’、Sc2’とを比較し、その比較結果に基づいて最もユーザ満足度が高くなるような動作を選択している。
以上説明した本発明の一実施形態によれば、以下の作用効果を奏する。
(1)音声認識装置としての端末装置100は、ユーザから入力された音声を検出する音声検出部すなわち音声区間検出部1010と、音声認識部1040による音声の認識結果に基づく端末音声認識情報、または端末音声認識部とは異なる音声認識部1250による音声の認識結果に基づくサーバ音声認識情報のいずれか一方の音声認識情報を用いて、ユーザへの情報提供を行う情報提供部すなわちHMI制御部1100と、選択部1070とを備える。選択部1070は、図3〜図7のフローチャートに示す処理を実行することで、音声が入力されてからの経過時間に基づいて、これらの音声認識情報のいずれか一方をHMI制御部1100が用いる音声認識情報として選択すると共に、HMI制御部1100による情報提供の方法を変化させる。このようにしたので、ユーザにとって快適な音声入力機能を実現することができる。
(2)選択部1070は、ステップ4090および4120、またはステップ5160および5170、またはステップ7070および7060において、音声が入力されてからの経過時間t1、t2またはt3に基づいて、最初の音声認識情報を用いた場合の情報提供に対するユーザの満足度合いの予測値を表すユーザ満足度と、二番目の音声認識情報を用いた場合の情報提供に対するユーザの満足度合いの予測値を表すユーザ満足度と、を算出する。そして、ステップ4130、またはステップ5180、5200、5220および5240、またはステップ7080において、これらのユーザ満足度を比較し、その比較結果に基づいて、最初の音声認識情報または二番目の音声認識情報のいずれか一方を選択する。このようにしたので、いずれかの音声認識情報を適切に選択できる。
(3)最初の音声認識情報を先に取得し、二番目の音声認識情報を未取得である場合に、選択部1070は、図4のフローチャートに従って、結果1個目新規到着の判断ルーチンを実行する。この処理において、選択部1070は、音声が入力されてから最初の音声認識情報が得られるまでの経過時間に関する経過時間t1を計測する(ステップ4070)と共に、音声が入力されてから二番目の音声認識情報が得られるまでの経過時間に関する経過時間t2を予測する(ステップ4100)。そして、計測した経過時間t1に基づいて、最初の音声認識情報を用いた場合の情報提供に対するユーザ満足度Sa1、Sc1、Sr1を算出し(ステップ4090)、予測した経過時間t2に基づいて、二番目の音声認識情報を用いた場合の情報提供に対するユーザ満足度Sa2’、Sc2’を算出する(ステップ4120)。その後、算出したユーザ満足度Sa1、Sc1、Sr1とユーザ満足度Sa2’、Sc2’とを比較し(ステップ4130)、その比較結果に基づいて、最初の音声認識情報を選択するか否かを決定する(ステップ4140〜4170)。このようにしたので、ユーザの満足度を考慮して、最初の音声認識情報を選択するか、それとも二番目の音声認識情報を待つかの判断を、適切に行うことができる。
(4)最初の音声認識情報を取得済みであり、二番目の音声認識情報を未取得である場合に、選択部1070は、図7のフローチャートに従って、結果1個到着済みの判断ルーチンを実行する。この処理において、選択部1070は、音声が入力されてから現在までの経過時間に関する経過時間t3を計測し(ステップ7010)、計測した経過時間t3に基づいて、取得済みの音声認識情報を用いた場合の情報提供に対するユーザ満足度Sa1、Sc1、Sr1と、二番目の音声認識情報を用いた場合の情報提供に対するユーザ満足度Sa2’、Sc2’とを算出する(ステップ7070、7060)。その後、算出したユーザ満足度Sa1、Sc1、Sr1とユーザ満足度Sa2’、Sc2’とを比較し(ステップ7080)、その比較結果に基づいて、取得済みの音声認識情報を選択するか否かを決定する(ステップ7090〜7140)。このようにしたので、ユーザの満足度を考慮して、取得済みの音声認識情報を選択するか、それとも二番目の音声認識情報を待つかの判断を、適切に行うことができる。
(5)最初の音声認識情報を先に取得し、二番目の音声認識情報を後で取得した場合に、選択部1070は、図5のフローチャートに従って、結果2個目新規到着の判断ルーチンを実行する。この処理において、選択部1070は、音声が入力されてから二番目の音声認識情報が得られるまでの経過時間に関する経過時間t2を計測し(ステップ5040)、計測した経過時間t2に基づいて、最初の音声認識情報を用いた場合の情報提供に対するユーザ満足度Sa1、Sc1、Sr1と、二番目の音声認識情報を用いた場合の情報提供に対するユーザ満足度Sa2、Sc2とを算出する(ステップ5160、5170)。その後、算出したユーザ満足度Sa1、Sc1、Sr1とユーザ満足度Sa2、Sc2とを比較し(ステップ5180、5200、5220、5240)、その比較結果に基づいて、最初の音声認識情報または二番目の音声認識情報のいずれか一方を選択する(ステップ5190、5210、5230、5250)。このようにしたので、ユーザの満足度を考慮して、最初の音声認識情報と二番目の音声認識情報のいずれを選択するかの判断を、適切に行うことができる。
(6)選択部1070は、ステップ4090および4120、またはステップ5160および5170、またはステップ7070および7060において、さらに、音声の属性に応じて予め定められた複数のドメインのうち最初の音声認識情報および二番目の音声認識情報にそれぞれ対応するドメインd1およびドメインd2と、最初の音声認識情報および二番目の音声認識情報にそれぞれ対応して求められた推定正解率p1および推定正解率p2と、の少なくとも一つに基づいて、最初の音声認識情報に対するユーザ満足度および二番目の音声認識情報に対するユーザ満足度を算出する。このようにしたので、ユーザ満足度を適切に算出することができる。
(7)音声認識部1040および音声認識部1250の少なくとも一つは、辞書データベース1050、1260において予め登録された、複数の辞書データのいずれかを用いて、音声の認識を行う。選択部1070は、ステップ4050および5020において、音声認識部1040および音声認識部1250の少なくとも一つが音声の認識に用いた辞書データに基づいて、ドメインd1およびドメインd2の少なくとも一つを推定することとしてもよい。このようにすれば、ドメインd1、d2の推定を容易に行うことができる。
(8)最初の音声認識情報および二番目の音声認識情報の少なくとも一つは、音声に対するユーザの意図の推定結果を示す意図推定情報を含むこともできる。この場合、選択部1070は、ステップ4050および5020において、当該意図推定情報に基づいて、ドメインd1およびドメインd2の少なくとも一つを推定することとしてもよい。このようにすれば、ドメインd1、d2の推定を容易に行うことができる。
(9)選択部1070は、ステップ4080および5050において、ドメインd1およびドメインd2と、最初の音声認識情報に対する信頼度c1および二番目の音声認識情報に対する信頼度c2と、音声が入力されてからの経過時間t1およびt2と、の少なくとも一つに基づいて、推定正解率p1および推定正解率p2を決定する。このようにしたので、推定正解率p1および推定正解率p2を正確に決定することができる。
(10)選択部1070は、ステップ4180、5120、5190、5210および7110、またはステップ4190、5140、5230、5250および7130、またはステップ4160、5150、5260、6060および7140において、最初の音声認識情報または二番目の音声認識情報のいずれかに基づく入力操作をユーザの入力操作として採用する採用動作と、最初の音声認識情報または二番目の音声認識情報のいずれかに基づく入力操作をユーザの確認後にユーザの入力操作として採用する確認動作と、最初の音声認識情報に基づく入力操作および二番目の音声認識情報に基づく入力操作のいずれも採用せずに棄却する棄却動作と、のいずれかの動作を選択し、選択した動作に応じてHMI制御部1100による情報提供の方法を変化させる。このようにしたので、状況に応じて適切な方法でユーザへの情報提供を行うことができる。
(11)音声認識システム1は、端末装置100とサーバ200とを備える。端末装置100は、ユーザから入力された音声を検出する音声検出部すなわち音声区間検出部1010と、検出した音声を認識するための音声認識処理を実行し、その音声の認識結果に基づく端末音声認識情報を出力する音声認識部1040と、検出した音声に基づく音声情報をサーバ200に送信し、サーバ200から送信されるサーバ音声認識情報を受信する通信制御部1030と、端末音声認識情報またはサーバ音声認識情報のいずれか一方を用いて、ユーザへの情報提供を行う情報提供部すなわちHMI制御部1100と、音声が入力されてからの経過時間に基づいて、これらの音声認識情報のいずれか一方を選択すると共に、HMI制御部1100による情報提供の方法を変化させる選択部1070と、を備える。サーバ200は、端末装置100から送信される音声情報を受信し、サーバ音声認識情報を端末装置100に送信する通信制御部1210と、受信した音声情報に基づいて音声を認識するための音声認識処理を実行し、その音声の認識結果に基づくサーバ音声認識情報を出力する音声認識部1250と、を備える。このようにしたので、音声認識システム1により、ユーザにとって快適な音声入力機能を実現することができる。
<第1変形例>
次に本発明の第1変形例について説明する。前述の実施形態では、推定正解率p1およびp2、ユーザ満足度、未受領である二番目の音声認識結果が得られるまでの経過時間t2の予測値など推定値が、変数を決めることで一意に決定できるとして説明した。しかし、実際にはこれらの推定値にはばらつきがあり、また、これらの推定値を決めるために用いられる変数にもばらつきがある。そこで、第1変形例では、これらの推定値を求めるための関数や変数を確率分布で表現することにより、様々なばらつきを考慮して、最も確からしい推定値を求める例を説明する。なお、以下の説明では、図4のフローチャートで示した結果1個目新規到着の判断ルーチンにおいて各推定値を確率分布に基づいて求める場合を説明するが、他の判断ルーチンにおいて求める場合も同様である。
まず、図4のステップ4080において、選択部1070は、音声認識結果i1の推定正解率p1を、実施形態で説明した関数Fpの代わりに、確率密度関数ppを用いて算出する。確率密度関数ppは、推定正解率p1が取りうる値の確率密度を表す関数であり、k1、d1、c1、t1の各変数によってその関数形が定義される。確率密度関数ppを使用すると、もっとも確からしい推定正解率p1は、確率密度関数ppの期待値として、たとえば以下の式(1)で求められる。
p1 = E[pp] = ∫p' 1・pp(p' 1, d1, c1, t1)・dp' 1 (1)
さらに、ステップ4090において、選択部1070は、音声認識結果i1を用いた場合の情報提供に対する動作ごとのユーザ満足度Sa1、Sc1、Sr1についても、確率的な値として求めることができる。たとえば、採用動作、確認動作、棄却動作のそれぞれに対応する前述の関数Fsa、Fsc、Fsrの代わりに、確率密度関数psa、psc、psrを用いて、以下の式(2)〜(4)でユーザ満足度Sa1、Sc1、Sr1が求められる。
Sa1 = E[psa] = ∬S' a1・psa(S' a1, d1, c1, p1)・p' 1・pp(p' 1, d1, c1, t1)・dp' 1dS' a1 (2)
Sc1 = E[psc] = ∬S' c1・psc(S' c1, d1, c1, p1)・p' 1・pp(p' 1, d1, c1, t1)・dp' 1dS' c1 (3)
Sr1 = E[psr] = ∬S' r1・psr(S' r1, d1, c1, p1)・p' 1・pp(p' 1, d1, c1, t1)・dp' 1dS' r1 (4)
上記の式(2)〜(4)のように、推定正解率p1を一意に決定することなく、確率分布として表すことにより、推定正解率p1のばらつきを踏まえて、より確からしいユーザ満足度を計算することができる。
なお、以上説明したような確率的な推定値の算出方法は、2エンジン目の各推定値、すなわち二番目の音声認識結果に関する各推定値を求めるときに、より高い効果を発揮することができる。その理由は、二番目の音声認識結果に関する各推定値は、最初の音声認識結果に基づいて求める必要があるためである。なお、二番目の音声認識結果に関する推定値は、前述の経過時間t2、推定正解率p2、ドメインd2’などである。
まず、図4のステップ4095において、選択部1070は、二番目の音声認識結果に対応するドメインを推定する。実施形態では、このドメインは最初の音声認識結果i1に対応するドメインd1と同一であるドメインd2’として推定される。しかし、厳密には二番目の音声認識結果に対応するドメインは、ドメインd1と異なることも考えられる。そこで第1変形例では、二番目の音声認識結果に対応するドメインをd2とし、ある状況下でのドメインd2の確率Pdを以下の式(5)で表す。
Pd(d2│d1, c1, t1, p1) (5)
次に、ステップ4100において、選択部1070は、ユーザが発話を終了して端末装置100に音声が入力されてから、未受領である二番目の音声認識結果が得られるまでの経過時間t2を予測する。この経過時間t2の確率を確率密度関数ptで表すと、経過時間t2の期待値は以下の式(6)で表される。
t2 = E[pt] = ∫t' 2・pt(t' 2, d2, k2, c1, cs)・dt' 2 (6)
ここで、上記の式(6)におけるドメインd2の確率Pdは、前述の式(5)で表される。また、式(5)における推定正解率p1は、前述の式(1)で表される。したがって、式(6)を変形して、経過時間t2の期待値は以下の式(7)で表される。ただし、式(7)において、Dはドメインd2が取りうるドメインの全集合を表す。
t2 = E[pt] = Σd'2∈D{∬Pd(d' 2│d1, c1, t1, p1)・t' 2・pt(t' 2, d2, k2, c1, cs)・p' 1・pp(p' 1, d1, c1, t1)・dp' 1dt' 2} (7)
なお、二番目の音声認識結果の推定正解率p2や、二番目の音声認識結果を用いた場合の情報提供に対するユーザ満足度については、上記の経過時間t2やドメインd2に基づいて、最初の音声認識結果i1の推定正解率p1やユーザ満足度と同様に算出することができる。
第1変形例では、以上説明したように、各推定値の確率的なばらつきを考慮して、ユーザ満足度や到着時間t2などの推定値を計算する。これにより、不確かさが多い場面においても、ユーザビリティが高い情報提供を行うことができる。
<第2変形例>
次に本発明の第2変形例について説明する。前述の実施形態では、端末装置100で得られた音声認識結果またはサーバ200で得られた音声認識結果のいずれかを用いて、採用動作、確認動作、棄却動作のいずれかを行うことで、ユーザへの情報提供を行う例を説明した。これに対して第2変形例では、端末装置100で得られた意図推定結果またはサーバ200で得られた意図推定結果のいずれかを用いて、ユーザへの情報提供を行う例を説明する。なお、実施形態で説明したように、端末装置100では意図推定部1060によりユーザの意図推定が行われ、サーバ200では意図推定部1270によりユーザの意図推定が行われる。選択部1070に入力される端末音声認識情報とサーバ音声認識情報には、それぞれの意図推定結果が含まれているものとする。
なお、意図推定部1060および1270において推定されるユーザの意図とは、ユーザが発話した内容が、端末装置100に対するどのような入力操作を意図したものであるかを表したものである。たとえば、端末装置100がユーザにナビゲーション情報を提供する場合には、施設名検索、自宅ルート検索、電話発信、地図拡大、地図縮小などが、ユーザの意図として推定される。さらに、施設検索では、施設検索におけるクエリなどを推定してもよい。意図推定部1060および1270では、予め定められたルールや統計的手法などを用いた周知の方法により、音声認識結果からこれらのユーザの意図を推定することができる。
図4のステップ4010や、図5のステップ5010において、選択部1070は、意図推定部1060または1270で推定されたユーザの意図を、音声認識結果i1、i2の代わりに使用することができる。これらの意図には、意図推定の確からしさを示す信頼度を付与してもよい。さらに、音声認識結果の信頼度と、意図推定結果の信頼度との両方に基づく信頼度として、たとえばこれらを掛け合わせたり足し合わせたりした信頼度を使用してもよい。このようにすれば、音声認識の確からしさと、意図推定の確からしさとの両方を考慮して、処理を行うことができる。
以上説明した本発明の第2変形例によれば、端末音声認識情報およびサーバ音声認識情報は、音声に対するユーザの意図の推定結果を示す意図推定情報をそれぞれ含む。選択部1070は、これらの音声認識情報のいずれか一方に含まれる意図推定情報を選択する。このようにしたので、ユーザの意図を考慮した情報提供が可能である。
<第3変形例>
次に本発明の第3変形例について説明する。前述の実施形態では、ユーザが直前に発声した音声に対する音声認識結果や意図推定結果に基づいてドメインの推定を行う例を説明した。しかし実際には、高頻度で利用するドメインはユーザごとに一定の傾向がある。また、ユーザが一連の入力操作において利用するドメインは概ね一定であり、急に異なるドメインに該当する音声を発声することは少ない。そこで、こうした点を考慮して、過去のドメインの推定履歴に基づいて今回のドメインを推定してもよい。この場合、端末装置100は、過去のドメインの推定履歴をユーザ満足度に関するデータとしてユーザ満足度記憶部1080に蓄積しておく。これにより、図4のステップ4050や図5のステップ5020において、選択部1070は、過去のドメインの推定履歴に基づいて、最初の音声認識結果i1に対応するドメインd1や、二番目の音声認識結果i2に対応するドメインd2を推定することができる。
以上説明した本発明の第3変形例によれば、選択部1070は、ステップ4050、5020において、過去のドメインd1およびドメインd2の推定履歴に基づいて、ドメインd1およびドメインd2を推定する。このようにしたので、ユーザの傾向や一連の入力操作を考慮して、ドメインの推定をより正確に行うことができる。
なお、以上説明した本発明の実施形態および変形例では、端末装置100が備える音声認識部1040とサーバ200が備える音声認識部1250において音声認識をそれぞれ行い、これらの音声認識結果を選択部1070において選択する例を説明した。しかし、本発明はこのような形態に限定されない。たとえば、端末装置100が複数のサーバに接続可能であり、これら複数のサーバでそれぞれ得られた音声認識結果を端末装置100が取得して選択するようにしてもよい。この場合、端末装置100は音声認識部1040を備えなくても構わない。あるいは、端末装置100が複数の音声認識部を備え、これら複数の音声認識部でそれぞれ得られた音声認識結果を選択するようにしてもよい。
以上説明した実施形態や各種の変化例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されない。本発明は、上述した実施形態や変形例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々の変更が可能である。