以下、本発明の実施の形態について図面を参照して説明する。
まず、図1を用いて、本発明の第1の実施の形態として示す音声対話装置の構成について説明をする。図1に本発明の第1の実施の形態として示す音声対話装置は、車両などの移動体に搭載されるナビゲーション装置に適用した場合の構成である。ナビゲーション装置は、例えば、移動体である車両に搭載された場合、車両の現在位置を検出し、地図データから表示された車両の現在位置に対応する地図を表示しながら所望の目的地までの経路案内をすることができる。
この音声対話装置をナビゲーション装置に適用すると、ナビゲーション装置で要求される各種機能を、ユーザとシステムとの対話によってインタラクティブに動作させることができる。
図1に示すように、音声対話装置は、入力装置10と、マイク20と、メモリ30と、経路案内に用いる地図データや、ガイダンス音声の音声データなどを格納するディスク40と、ディスク40に格納された各種データを読み取るディスク読み取り装置41と、マイク20を介して入力された音声を音声認識し、音声認識結果の内容を理解してシステム応答を生成する制御装置50と、経路探索結果を示す地図、メニュー画面、制御装置50による音声認識結果などを表示する、例えば液晶ディスプレイといったモニタ60と、ガイダンス音声やユーザとの対話におけるシステム応答音声などを出力するスピーカ70とを備えている。
入力装置10は、ユーザの押下により、ユーザによって発話されマイク20を介して入力された音声に対する音声認識処理の開始を指示するための音声認識開始ボタン11と、音声認識処理によって得られた認識結果に基づき生成された理解結果が誤りであった場合に、直前の音声入力前の状態にシステム状態を戻して再度音声入力をやり直すためのキャンセルボタン12とを備えている。
マイク20は、ユーザによって発話された音声を、後述する制御装置50の音声認識部52に入力する。例えば、ユーザは、ナビゲーション装置の操作に使用される語句及び文、すなわち操作コマンド及び地名や施設名、道路名などの固有名詞及びこれらの語句を含む文を発話して、マイク20からその音声を入力する。
メモリ30は、ランダムアクセス可能なRAM(Random Access Memory)などであり、音声認識処理が実行される場合に、ディスク読み取り装置41によってディスク40から読み出される音声認識用辞書・文法を記憶し展開する記憶領域31、音声認識処理により得られる認識結果候補に含まれる単語と、その単語信頼度とを保存する記憶領域32、キャンセルボタン12が押下された場合に、キャンセル時の理解結果やシステム応答などをキャンセル情報として保存する記憶領域33とを備えている。
ディスク40は、音声認識に使用する音声認識用辞書・文法、地図データベース、ガイダンス音声の音声データなどを格納した記憶媒体である。
一般に、音声認識用辞書・文法を用いて音声認識をするシステムでは、この音声認識用辞書・文法に記述されている認識対象語と文法とを用いた入力文だけを音声認識結果として受理することができる。
例えば、ナビゲーション装置のメインタスクを経路探索をする際の目的地設定とすると、ユーザによってマイク20から入力される入力文として、「神奈川県」「横浜駅」などといった施設に関する単語のみの入力と「神奈川県の横浜駅」「東海道線の横浜駅」などといった複数のキーワードを組み合わせた文章による入力との両方を想定することができる。
したがって、ディスク40に格納される音声認識用辞書・文法は、このような単語のみの入力と複数のキーワードを含んだ文書の両方に対応することができる構成となっている。
続いて、制御装置50について説明をする。制御装置50は入力制御部51と、音声認識部52と、理解結果生成部53と、対話制御部54と、GUI表示制御部55と、音声合成部56とを備え、マイク20を介して入力された音声に対して、音声認識処理をし、音声認識結果に応じたシステム応答を行う。
入力制御部51は、ユーザによって音声認識開始ボタン11が押下されたことに応じて、音声認識部52に対して音声認識処理を開始するよう指示をする。また、入力制御部51は、ユーザによってキャンセルボタン12が押下され、直前の理解結果の訂正が指示された場合には、その旨を理解結果生成部53に伝える。
音声認識処理が開始されると、マイク20から入力される音声をトリガーとして音声認識部52による音声認識処理と、理解結果生成部53による理解結果生成処理、対話制御部54によるシステム応答出力が、ナビゲーション装置の機能である目的地設定や施設検索など、一つのタスクが終了するまで繰り返されることになる。この間にユーザはキャンセルボタン12を押下することで直前の理解結果を取り消すことができる。
音声認識部52は、入力制御部51の指示に応じて、マイク20から入力されるユーザによって発話され、図示しないA/Dコンバータでデジタル化された音声信号を取り込み音声認識処理を実行する。
音声認識部52は、取り込んだデジタル化された音声信号と、メモリ30の記憶領域31に構築された音声認識用辞書・文法が保持する認識対象語からなる待ち受け文とのマッチング処理により音声認識を行い、音声認識結果を理解結果生成部53に出力する。
音声認識部52は、マッチング処理の際に、音声特徴データと各待ち受け文との音響的な近さである尤度を計算し、この尤度が一定の値以上のものを音声認識結果の認識結果候補とする。
音声認識部52は、認識結果候補として、尤度が高い音声認識結果の上位N個の認識結果候補(以下、N−best候補とも呼ぶ。)とその尤度とを理解結果生成部53に出力する。
音声認識部52は、入力制御部51の指示に応じて、マイク20から入力されるユーザによって発話され、図示しないA/Dコンバータでデジタル化された音声信号を取り込み音声認識処理を実行する。
理解結果生成部53は、音声認識部52から音声認識結果として出力された認識結果候補に含まれる全ての単語に対して、各単語の読み方毎に単語信頼度を算出し、算出された単語信頼度に基づいて、認識結果候補からユーザによって発話された音声に対する正しい理解結果を選択して対話制御部54に出力する。この理解結果生成部53における処理内容については、後で詳細に説明をする。
ここで、理解結果生成部53で算出される単語信頼度について説明をする。理解結果生成部53は、同じ意味を示す単語であっても読み方が異なれば、異なる単語であるとして扱い、その単語信頼度を算出する。
単語信頼度とは、単一の発話において、その読み方で単語が発話された可能性を示す値であり、ある単語Wの単語信頼度をConf(W)、N−best候補それぞれに対する対数尤度をLiとすると、以下に示す(1)式によって求めることができる。
理解結果生成部53によって算出された単語信頼度は、メモリ30に保存される。なお、理解結果生成部53による単語信頼度の演算については、特開2004−251998号公報で開示されている。
対話制御部54は、理解結果生成部53から出力された理解結果に基づいて応答文を生成し、GUI表示制御部55、音声合成部56に出力する。
GUI表示制御部55は、必要に応じて、ディスク読み取り装置41を制御してディスク40に格納されている地図データを読み出し、モニタ60を介して地図を表示させたり、対話制御部54で生成された応答文に即した応答内容をモニタ60を介して表示させる。
音声合成部56は、対話制御部54によって生成される応答文に応じて、応答文に即したデジタル音声信号を合成し、当該音声合成部56が備える図示しないD/Aコンバータ、出力増幅器を介してスピーカ70に出力する。
続いて、図2に示すフローチャートを用いて、制御装置50による音声認識処理を開始してから応答文を出力するまでの処理動作について説明をする。
まず、ステップS1において、ナビゲーション装置が起動されると、音声対話装置の制御装置50は、ディスク読み取り装置41を制御してディスク40から音声認識用辞書・文法を読み出しメモリ30の記憶領域31に格納させる。
そして、ユーザが入力装置10の音声認識開始ボタン11を押下することで、入力制御部51により、音声認識開始が指示され、音声認識部52は音声認識可能状態となる。これに応じて、音声認識部52は、ユーザによって発話されマイク20を介して入力され、図示しないA/Dコンバータでデジタル化された音声信号の取り込みを開始する。
音声認識部52は、音声認識開始ボタン11が押下されるまでは、デジタル化された音声信号(以下、単にデジタル信号とも呼ぶ。)の平均パワーの演算を継続している。音声認識開始ボタン11が押下された後、この平均パワーに較べてデジタル信号の瞬時パワーが所定値以上に大きくなった時、ユーザが発話したと判断して、デジタル化された音声信号の取り込みが開始される。
ステップS2において、音声認識部52は、入力制御部51により音声認識開始の指示がなされたことに応じて、ユーザの発話待機状態となる。ユーザによって発話された場合、ステップS3へと進み、ユーザによって発話されなかった場合は、ステップS6へと進む。
ステップS3において、音声認識部52は、ユーザによって発話されたことに応じて、取り込んだデジタル化された音声信号と、メモリ30の記憶領域31に構築された音声認識用辞書・文法が保持する待ち受け文とを比較して、音響的な尤度を計算することで音声認識処理を実行する。
音声認識部52は、音響的な尤度の高い上位N個の認識結果候補とその尤度とを音声認識結果として理解結果生成部53に出力する。
ステップS4において、理解結果生成部53は、理解結果生成処理を実行する。なお、理解結果生成部53による理解結果生成処理については、後で詳細に説明をする。
ステップS5において、理解結果生成部53による理解結果生成処理が終了したことに応じて、対話制御部54は、理解結果に基づいて音声合成部56に出力する応答文及びGUI表示制御部55に出力する応答表示内容を生成する。
ステップS6において、入力制御部51は、ユーザによる発話待機状態において、入力装置10のキャンセルボタン12が押下されたかどうかを検出する。入力制御部51は、ユーザによる発話待機状態において、キャンセルボタン12が押下された場合、ステップS7へと進め、キャンセルボタン12が押下されなかった場合、ステップS2へと戻り、ユーザの発話待機、並びにキャンセルボタン12の押下待機を所定の時間だけ継続する。
ステップS7において、入力制御部51は、ユーザによりキャンセルボタン12が押下されたことに応じて、キャンセルボタン12が押下された旨を理解結果生成部53に通知する。これに応じて、理解結果生成部53は、キャンセルボタン12が押下された時点での理解結果や、直前のルーチンで対話制御部54によって生成された応答文及び応答表示内容をキャンセル情報として、メモリ30の記憶領域33に保存する。
ステップS8において、音声対話装置は、当該音声対話装置のシステムの状態を一つ前の状態に戻す。これにより、見かけ上、ユーザによって、直前の発話内容が取り消されたことになる。
ステップS9において、音声対話装置は、ステップS5又はステップS8の処理を受けシステム応答を出力する。
ステップS5を経た場合、GUI表示制御部55は、対話制御部54によって生成された応答表示内容をモニタ60に表示させる。音声合成部56は、対話制御部54によって生成された応答文に応じて、応答文に即したデジタル音声信号を合成し、当該音声合成部56が備える図示しないD/Aコンバータ、出力増幅器を介してスピーカ70に出力する。
また、ステップS8を経た場合、対話制御部54は、メモリ30の記憶領域33にキャンセル情報として保存された応答文及び応答表示内容を読み出し、それぞれ音声合成部56、GUI表示制御部55に出力する。
GUI表示制御部55は、対話制御部54によってメモリ30から読み出された応答表示内容をモニタ60に表示させる。音声合成部56は、対話制御部54によってメモリ30から読み出された応答文に応じて、応答文に即したデジタル音声信号を合成し、当該音声合成部56が備える図示しないD/Aコンバータ、出力増幅器を介してスピーカ70に出力する。
ステップS10において、対話制御部54は、音声認識開始ボタン11が押下されたことに応じて開始された施設検索や目的地設定などのタスクが一通り完了したかどうかを判断する。対話制御部54は、全てのタスクが完了した場合は、音声認識処理を終了し、タスク継続中の場合は、ステップS1へと戻り音声取り込みを再開する。
ステップS6〜ステップS8を経た場合は、タスクが完了しないためステップS1へと戻り、ユーザからの次の発話を待ち受けることになる。
このようにして、音声対話装置は、ユーザによって発話された音声の認識処理を実行し、認識結果から生成される理解結果に応じたシステム応答が出力される。この時、キャンセルボタン12を押下することで、出力されたシステム応答、つまり理解結果をキャンセルすることができる。
続いて、理解結果生成部53による理解結果生成処理について説明をする。理解結果生成部53による理解結果生成処理について説明するにあたり、『対話例1』として以下に示すユーザと音声対話装置とによる対話例を利用する。
『対話例1』
第1のシステム発話:「目的地をどうぞ」
第1のユーザ発話 :「○×鉄道の品川駅」
第2のシステム発話:「○×鉄道の北川駅でよろしいですか?」
第1のユーザ操作 :キャンセルボタン12押下
第3のシステム発話:「目的地をどうぞ」
第2のユーザ発話 :「○×鉄道の品川駅」
第4のシステム発話:「○×鉄道の品川駅でよろしいですか?」
まず、この『対話例1』について説明をする。『対話例1』において、第1のシステム発話として出力された「目的地をどうぞ」という問いに対し、ユーザは、目的地を設定するために第1のユーザ発話として「○×鉄道の品川駅」を発話した。
音声対話装置は、第1のユーザ発話に対して、「○×鉄道の北川駅」と誤認識し、第2のシステム発話で「○×鉄道の北川駅でよろしいですか?」と応答した。
そのため、ユーザは、第1のユーザ操作でキャンセルボタン12を押下し、音声対話装置による「○×鉄道の北川駅」という認識結果をキャンセルした。これによって、音声対話装置は、第1のシステム発話である「目的地をどうぞ」と同じ応答を、第3のシステム発話として行うため、見かけ上の音声対話装置のシステム状態を、第1のユーザ発話が入力される前の状態まで戻すことになる。
そして、ユーザが、第2のユーザ発話として「○×鉄道の品川駅」と、第1のユーザ発話と同じ発話を繰り返しているという例である。
図3に、『対話例1』における第1のユーザ発話である「○×鉄道の品川駅」に対して音声対話装置の音声認識部52により求められた認識結果候補であるN−bestを示す。また、図4に、『対話例1』における第2のユーザ発話である「○×鉄道の品川駅」に対して音声対話装置の音声認識部52により求められた認識結果候補であるN−bestを示す。図3、図4に示すように、どちらの認識結果候補においても第1の認識結果候補は、「○×鉄道の北川駅」となっている。
このように、第1のユーザ発話、第2のユーザ発話に対する音声認識部52の音声認識結果は、どちらも第1候補が「○×鉄道の北川駅」となり、同じ誤認識が繰り返されている。本発明の実施の形態として示す音声対話装置では、このように繰り返し誤認識される状態を回避することができ、正確な理解結果を生成することができる。
このような、『対話例1』を踏まえ、図5に示すフローチャートを用いて、図2に示したフローチャートのステップS4での処理である理解結果生成部53による理解結果生成処理について説明をする。
まず、ステップS21において、理解結果生成部53は、音声認識部52から認識結果候補のN−bestを受け取ると、今回の発話の直前にキャンセルボタン12が押下されたかどうかを調べる。理解結果生成部53は、今回の発話の直前にキャンセルボタン12が押下されていなかった場合には、ステップS22へと進み、キャンセルボタン12が押下されていた場合には、ステップS24へと進める。
ステップS22において、今回の発話の直前にキャンセルボタン12が押下されていなかったことに応じて、理解結果生成部53は、音声認識部52から出力された認識結果候補であるN−bestから第1位の認識結果候補を理解結果とする。
ステップS23において、理解結果生成部53は、メモリ30の記憶領域32に過去の認識結果が保存してあればこれを削除する。また、前回の発話以前にキャンセルボタン12が押下され、キャンセル時の理解結果などがキャンセル情報として、メモリ30の記憶領域33に保存されている場合、キャンセル情報も削除をする。
『対話例1』において、理解結果生成部53は、第1のユーザ発話に対する理解結果生成の際には、それ以前にキャンセルボタン12が押下されていないので、図3の中で最も尤度が高い認識結果候補である「○×鉄道の北川駅」を理解結果として選択することになる。
『対話例1』では、これに応じて、システムが出力した「○×鉄道の北川駅でよろしいですか?」という第2のシステム発話に対して、ユーザがキャンセルボタン12を押下したため、システムは直前の理解結果「○×鉄道+北川駅」をキャンセル情報としてメモリ30の記憶領域33に保存し(図2:ステップS7)、システム状態を直前の状態に戻す(図2:ステップS8)ことになる。ここで、メモリ30の記憶領域33に保存されたキャンセル情報は、次回の認識結果理解の際に用いられることになる。
ステップS24において、理解結果生成部53は、今回の発話の直前にキャンセルボタン12が押下されたことに応じて、このキャンセルボタン12の押下の直前にもう一度、キャンセルボタン12が押下されたかどうか、つまり2回連続してキャンセルボタン12が押下されたかどうかを調べる。
このステップS24において、キャンセルボタン12が押下されることで、今回の発話の直前に2回連続でキャンセルボタン12が押下された場合には、キャンセルボタン12が押下された直後であっても、ステップS22、ステップS23へと進む。
このように、発話を間に挟まずに、2回連続でキャンセルボタン12が押下された場合、理解結果生成部53は、ユーザによってリセットされたと判断し、キャンセルボタン12が押下されたことによって実行される処理を無効とする。
また、理解結果生成部53は、2回連続ではなく、1度だけキャンセルボタン12が押下された場合には、ステップS25以降の処理において、キャンセルボタン12の押下によってメモリ30の記憶領域33に保存されたキャンセル情報を考慮しつつ、今回の認識結果から最適な理解結果を導き出す。
『対話例1』における、第2のユーザ発話を受理する場合、直前に1度だけキャンセルボタン12が押下されているので、ステップS25〜ステップS35の処理が適用される。
ステップS25において、理解結果生成部53は、音声認識部52から受け取った全ての認識結果候補に含まれる単語の中から、助詞などを除く意味を理解するために必要な単語を全て取り出し、その尤度を用いて、上述した(1)式より今回の認識結果に対する単語信頼度を算出する。
図6に、一例として『対話例1』における、第2のユーザ発話である「○×鉄道の品川駅」に対する認識結果候補に含まれる単語の単語信頼度を算出した結果を示す。
ステップS26において、理解結果生成部53は、単語信頼度を算出した後、メモリ30の記憶領域32に過去の認識結果として、過去の認識結果候補に含まれる単語とその単語信頼度とが保存されているかどうかを調べる。
このとき、理解結果生成部53は、一つ前、つまり前回の音声認識時にも、直前にキャンセルボタン12が押下されており、単語信頼度の算出を行なったかどうかを調べる。
理解結果生成部53は、前回の音声認識時に直前でキャンセルボタン12が押下されなかったり、2回連続でキャンセルボタン12が押下されたことなどにより、メモリ30の記憶領域32に保存されていた過去の認識結果候補に含まれる単語とその単語信頼度がクリアされた場合、ステップS27へと進める。
また、理解結果生成部53は、メモリ30の記憶領域32に保存されていた過去の認識結果がクリアされずに残っている場合、メモリ30の記憶領域32に保存されている過去の認識結果候補に含まれる単語とその単語信頼度を、前回までの認識結果候補中の理解結果生成に必要な単語と、その信頼度としステップS28へと進める。
ステップS27において、理解結果生成部53は、メモリ30の記憶領域32に保存されていた過去の認識結果候補に含まれる単語とその単語信頼度が一旦クリアされたことに応じて、後述するステップS35において、メモリ30の記憶領域32のクリア後に保存される前回の認識結果候補に含まれる単語の単語信頼度を算出する。
前回の認識結果候補に含まれる単語から単語信頼度を算出するには、ステップS25における今回の認識結果候補に含まれる単語の単語信頼度を算出する場合と同様に、上述した(1)式を用いて算出する。
そして、理解結果生成部53は、この前回の認識結果候補とその単語信頼度を、前回までの認識結果候補に含まれる理解結果生成に必要な単語とその単語信頼度とする。
『対話例1』における、第1のユーザ発話「○×鉄道の品川駅」に対する理解結果生成処理時には、キャンセルボタン12が押下されなかったため、単語信頼度の計算が行なわれなかった。したがって、第1のユーザ操作によりキャンセルボタン12が押下されたことに応じて、本ステップにおいて、新たに第1のユーザ発話の認識結果候補に含まれる単語の単語信頼度を算出することになる。図7に、第1のユーザ発話の認識結果候補に含まれる単語と、その単語の算出された単語信頼度とを示す。
ステップS28において、理解結果生成部53は、求められた前回までの認識結果候補に含まれる全ての単語の単語信頼度を修正する。
理解結果生成部53は、単語信頼度を修正するにあたり、前回までの認識結果候補に含まれる単語の単語信頼度が、今回の認識結果候補に含まれる単語の単語信頼度よりも信頼度が低いとして、前回まで認識結果候補に含まれる単語の単語信頼度を全て一定の割合だけ下げる方向で修正を行う。
上述した図7には、『対話例1』における、前回までの認識結果候補に含まれる単語の単語信頼度を修正した修正結果も示している。ここでは、単語信頼度を60%まで低下させるように修正をしている。
ステップS29において、理解結果生成部53は、単語信頼度の修正が終了したことに応じて、ステップS28で修正を施した前回までの認識結果候補に含まれる単語と、ステップS25で求めた今回の認識結果候補に含まれる単語とをマージして認識結果単語リストを生成する。
理解結果生成部53は、認識結果単語リストを生成する際、前回までの認識結果候補と今回の認識結果候補それぞれに重複して含まれる単語の単語信頼度を、前回までの認識結果から得られた単語信頼度と今回の認識結果から得られた単語信頼度の合計とする。それ以外の重複しない単語については、各単語の単語信頼度をそのまま用いる。
ステップS30において、理解結果生成部53は、ステップS29で得られた結果を、次回の理解結果生成処理において、“前回までの認識結果候補に含まれる単語とその単語信頼度”として利用するため、生成した認識結果単語リストをメモリ30に保存する。
図8に、『対話例1』における、第1のユーザ発話と第2のユーザ発話の認識結果候補に含まれる単語とその単語信頼度とをマージして得られる認識結果単語リストを示す。
ステップS31において、理解結果生成部53は、図2に示すフローチャートのステップS3で求められた今回の認識結果候補に含まれる単語に対して新たに単語信頼度を割り当て、割り当てられた単語信頼度を足し合わせ、認識結果候補から最適な理解結果を選択するためのスコアとする。
具体的には、理解結果生成部53は、まず今回の認識結果候補に含まれる単語と同一の単語を、ステップS29で生成した認識結果単語リストから検索する。そして、認識結果単語リストから検索された単語に対応づけられている単語信頼度を取得し、この単語を今回の認識結果候補に含まれる単語に対して割り当てる。
さらに、理解結果生成部53は、今回の認識結果候補に含まれる単語に対して、認識結果単語リストから取得した単語信頼度を割り当てた後、認識結果候補ごとに割り当てられた単語信頼度を合計することで上述のスコアを算出する。以下、このスコアを理解結果スコアとし、理解結果スコアが求められたことで、認識結果候補を理解結果候補とする。
図9に、『対話例1』の第2のユーザ発話における理解結果候補と理解結果スコアの例を示す。例えば、図9に示すように、理解結果候補が「○×鉄道+北川駅」であれば、図8に示す認識結果単語リストより、「○×鉄道」に対して単語信頼度1.32を設定し、「北川駅」に対して単語信頼度0.74を設定し、両者を足し合わせて理解結果スコア2.06を求めることができる。
ステップS32において、理解結果生成部53は、異なる単語数の理解結果候補同士でも、理解結果スコアを比較できるようにするため、各理解結果候補に含まれる単語の単語数に応じて各理解結果スコアを補正する。理解結果スコアの補正は、様々な補正方法が考えられるが、単語数に応じた補正値で理解結果スコアを除算する手法がある。
例えば、理解結果生成部53は、理解結果候補に2単語を含んでいる場合、この理解結果スコアには、2単語分の単語信頼度が加算されている。そこで、この理解結果スコアを補正値1.6で割ることで、1単語のみの理解結果候補の理解結果スコアと比較可能となる。
上述した図9には、各理解結果候補の理解結果スコアを補正した補正後スコアも示している。図9に示した補正後スコアは、各理解結果スコアを補正値1.6で割ることで求まる値である。
このような、理解結果スコアと、理解結果スコアの補正後スコアまで含めた理解結果候補を、まとめて理解結果候補リストとする。
ステップS33において、理解結果生成部53は、過去にキャンセルされた理解結果に応じて、理解結果候補の補正後スコアを修正し修正後スコアを求める。
例えば、理解結果生成部53は、理解結果候補リストの各理解結果候補のうち、過去にキャンセルされた情報と一致する理解結果候補があるかどうかを検索し、一致する理解結果候補の補正後スコアに対しては、補正後スコアの値を下げるように修正をし修正後スコアを求める。この、補正後スコアを修正し、修正後スコアを求める処理については、後で詳細に説明をする。
ステップS34において、理解結果生成部53は、求めた修正後スコアが最大となっている理解結果候補を最適な理解結果として選択する。
ステップS35において、理解結果生成部53は、図2に示すフローチャートのステップS3において、音声認識部52で求められた今回の認識結果候補をメモリ30の記憶領域32に保存し、理解結果生成処理を終了する。
このとき、ステップS22、ステップS23を経由した場合、メモリ30の記憶領域32には、過去の認識結果として、今回の認識結果候補のみが保存さる。また、ステップS25〜ステップS34を経由した場合、メモリ30の記憶領域32には、過去の認識結果として今回の認識結果候補とその単語信頼度とが追加保存される。
このようにして、本発明の実施の形態として示す音声対話装置では、キャンセルボタン12の押下により、一旦キャンセルされた認識結果に含まれる単語が、理解結果候補に含まれている場合、ユーザによって発話された音声と一致する可能性が低いとして補正後スコアの値を下げるように修正し、最終的な理解結果として選択される可能性を低減させる。
これにより、ユーザによって発話された音声が何度も繰り返して誤認識されることを低減させることができると共に、キャンセルされた認識結果が理解結果として採用される可能性を残すことができる。したがって、ユーザによって発話された音声の音声認識率を大幅に向上させることができる。
続いて、図5に示したフローチャートのステップS33におけるキャンセルされた理解結果候補の補正後スコアを修正するいくつかの手法について説明をする。
(補正後スコアの修正処理:一致度に応じた修正)
まず、メモリ30の記憶領域33にキャンセル情報として保存されている過去の理解結果と、理解結果候補リストの理解結果候補との一致度に応じて、補正後スコアを修正する手法について説明をする。
理解結果生成部53は、メモリ30の記憶領域33にキャンセル情報として保存されている過去の理解結果を読み出し、理解結果候補リストの理解結果候補との一致度に応じて0より大きく、1よりも小さい範囲の修正係数(0<修正係数<1)を選択し、選択された修正係数を補正後スコアに乗算することで修正処理を行う。
理解結果生成部53は、今回の理解結果候補と過去のキャンセル時の理解結果とを比較して、一致度に応じて、例えば、両者が完全に一致する場合(完全一致)、理解結果候補が過去にキャンセルされた理解結果に含まれる場合(訂正⊃理解結果)、過去にキャンセルされた理解結果が理解結果候補に含まれる場合(訂正⊂理解結果)の3つに場合分けをし、それぞれの場合に応じて異なる修正係数を選択する。
これは、過去にキャンセルされた理解内容と完全に一致する内容が再度入力される、つまり“完全一致”となる可能性が最も低く、続いて、過去にキャンセルされた理解内容の一部と一致する内容が再度入力される、つまり“訂正⊃理解結果”となる可能性が低く、過去にキャンセルされた理解内容を全て含む内容が再度入力される、つまり“訂正⊂理解結果”となる可能性が最も高いことに基づいている。
例えば、図10に示すように、今回の理解結果候補と過去のキャンセル時の理解結果との一致度に応じて、異なる修正係数が用いられる。図11に、『対話例1』において、“完全一致”、“訂正⊃理解結果”、“訂正⊂理解結果”となるキャンセル時の理解結果と今回の理解結果の組み合わせの一例を示す。
続いて、図12に示すフローチャートを用いて、図5に示したフローチャートのステップS33におけるキャンセルされた理解結果候補の補正後スコアを修正する処理動作について説明をする。
まず、ステップS41において、理解結果生成部53は、理解結果候補リストから理解結果候補を一つ取り出す。
ステップS42において、理解結果生成部53は、メモリ30の記憶領域33にキャンセル情報として保存されている過去の理解結果を読み出し、理解結果候補リストから取り出した理解結果候補と完全に一致するかどうかを調べる。理解結果生成部53は、一致する場合、ステップS43へと進め、一致しない場合ステップS44へと進める。
ステップS43において、理解結果生成部53は、理解結果候補リストから取り出した理解結果候補と過去の理解結果とが完全一致したことに応じて、この理解結果候補の補正後スコアに、“完全一致”した場合の修正係数aを乗算して修正後スコアを算出する。
図11に示したように、『対話例1』において、キャンセル時の理解結果が「○×鉄道+北川駅」で、今回の理解結果候補も同じく「○×鉄道+北川駅」である場合、この理解結果候補は、キャンセル時の理解結果と“完全一致”しているとみなされる。
このように“完全一致”している場合は、図10に示すように、修正係数として0.5が選択されるため、今回の理解結果候補「○×鉄道+北川駅」の補正後スコアに、修正係数0.5を乗算して修正し、修正後スコアを求めることができる。
また、『対話例1』において、「北川駅」が「○×鉄道」の下位カテゴリとしてしか存在しない場合、「○×鉄道+北川駅」と「北川駅」は意味上、一致しているので「完全一致」であるとみなすことにする。
なお、『対話例1』では、第1のユーザ操作により、キャンセルされた時の理解結果は、「○×鉄道+北川駅」である。図9に示した今回の理解結果候補の一つである「○×鉄道+北川駅」は、キャンセル時の理解結果と今回の理解結果が完全に一致している。よって、「○×鉄道+北川駅」の修正後スコアは、補正後スコアの1.29にキャンセルによる修正係数0.5を乗算して0.65となる。図9に示すように、修正後スコアは、理解結果候補リストに記述される。
ステップS44において、理解結果生成部53は、キャンセル時の理解結果が、理解結果候補リストから取り出した理解結果候補を全て含んでいる(訂正⊃理解結果)かどうかを調べる。
ステップS45において、理解結果生成部53は、キャンセル時の理解結果が、理解結果候補リストから取り出した理解結果候補を全て含んでいることに応じて、この理解結果候補の補正後スコアに、“訂正⊃理解結果”である場合の修正係数bを乗算して修正後スコアを算出する。
図11に示すように、キャンセル時の理解結果が「○×鉄道+北川駅」で、今回の理解結果候補が「○×鉄道」である場合、キャンセル時の理解結果は、理解結果候補を全て含むため、“訂正⊃理解結果”であるとみなされる。
このように、“訂正⊃理解結果”である場合は、図10に示すように、修正係数として0.7が選択されるため、今回の理解結果候補「○×鉄道」の補正後スコアに、修正係数0.7を乗算して修正し、修正後スコアを求めることができる。
ステップS46において、理解結果生成部53は、理解結果候補リストから取り出した理解結果候補が、キャンセル時の理解結果を全て含んでいる(訂正⊂理解結果)かどうかを調べる。
ステップS47において、理解結果生成部53は、理解結果候補リストから取り出した理解結果候補が、キャンセル時の理解結果を全て含んでいることに応じて、この理解結果候補の補正後スコアに、“訂正⊂理解結果”である場合の修正係数cを乗算して修正後スコアを算出する。
図11に示すように、キャンセル時の理解結果が「○×鉄道」で、今回の理解結果候補が「○×鉄道+北川駅」である場合、この理解結果候補は、キャンセル時の理解結果を全て含むため、“訂正⊂理解結果”であるとみなされる。
このように、“訂正⊂理解結果”である場合は、図10に示すように、修正係数として0.9が選択されるため、今回の理解結果候補「○×鉄道+北川駅」の補正後スコアに、修正係数0.9を乗算して修正し、修正後スコアを求めることができる。
ステップS48において、理解結果生成部53は、全ての理解結果候補に対して、キャンセル時の理解結果との一致度を調べ終わったことに応じてスコア修正処理を終了する。
図9に示した理解結果候補リストの理解結果候補の中で、図11に示すキャンセル時の理解結果との一致が認められるのは「○×鉄道+北川駅」のみであるため、他の理解結果候補の補正後スコアは修正されず、補正後スコアがそのまま修正後スコアとなる。
これにより、図9に示す修正後スコアから、理解結果候補である「○×鉄道+北川駅」と「○×鉄道+品川駅」の修正後スコアが逆転し、「○×鉄道+品川駅」の修正後スコアが最大になる。したがって、図5に示すフローチャートにおけるステップS34において、理解結果生成部53は、理解結果候補から最大の修正後スコアとなる「○×鉄道+品川駅」を理解結果として選択する。
これにより、音声認識部52では、『対話例1』における第1のユーザ発話と第2のユーザ発話に対して同じ誤認識をしたにも関わらず、第4のシステム発話にて「○×鉄道の品川駅でよろしいですか?」と正しい応答をすることができる。
このように、今回の理解結果候補とキャンセル時の理解結果とを比較した際の一致度に応じて修正係数を変化させることで、キャンセルされた理解結果を修正係数に正しく反映させることができるため、補正後スコアを正確に修正することが可能となる。
上述した例では、今回の理解結果候補とキャンセル時の理解結果とを比較した際の一致度に応じて異なる3段階の修正係数を用意することで、キャンセルされた理解結果を修正係数に反映させていた。さらに、一致度以外の観点から、キャンセル時の理解結果を修正係数に反映させることもできる。
(補正後スコアの修正処理:理解結果のキャンセルされた回数よる修正)
まず、理解結果に対するキャンセル回数に応じて補正後スコアを修正する手法について説明をする。
例えば、理解結果に対して複数回キャンセルを行った場合に、対象となる理解結果が何回前にキャンセルされたかに応じて、修正係数を変化させることができる。この手法は、上述した一致度に応じて修正係数を変化させる手法と組み合わせて用いることもできる。
図13に、修正係数を変化させるパラメータとして、理解結果候補とキャンセル時の理解結果との一致度の他に、何回前にキャンセルされた理解結果であるのかというパラメータを付加した場合の修正係数の一例を示す。
例えば、図13に示す修正係数を用いると、1回前にキャンセルボタン12が押下された時の理解結果と現在の理解結果候補とが完全に一致したら、補正後スコアを0.5倍して修正をする。また、2回前にキャンセルボタン12が押下された時の理解結果と現在の理解結果候補とが完全に一致したら、補正後スコアを0.6倍して修正をする。さらに、3回前に、キャンセルボタン12が押下された時の理解結果と現在の理解結果候補とが完全に一致したら、補正後スコアを0.7倍して修正をする。
このように、その理解結果が「キャンセルされた」という情報が古ければ古いほど、つまりキャンセルしたことによる理解結果への影響の低下に応じて、0<d(d:修正係数)<1の範囲で、修正係数を大きくし、補正後スコアを下げる割合を小さくする。
具体的には、メモリ30の記憶領域33に、キャンセル情報として保存されている過去の理解結果と共に、他の理解結果がキャンセルされる度にその回数をカウントした情報を記憶させる。
理解結果候補リストの理解結果候補とキャンセル時の理解結果とを比較した際に、キャンセル時の理解結果に付加されたキャンセル回数をカウントした情報を参照し、キャンセル回数が多ければ理解結果候補への影響が少なく、キャンセル回数が少なければ理解結果候補への影響が大きいと判断することができる。
したがって、これに応じて修正係数を変化させることで、キャンセルされた理解結果を修正係数に反映させることができるため、補正後スコアを正確に修正することが可能となる。
(補正後スコアの修正処理:理解結果がキャンセルされてからの経過時間に応じた修正)
次に、キャンセルされたという情報が入力されてから、現在、理解結果生成処理中の発話をが入力されるまでに要した時間に応じて補正後スコアを修正する手法について説明をする。
この手法は、キャンセルされたという情報が入力されてから、現在、理解結果生成処理中の発話が入力されるまでに要した時間によって修正係数を変化させることで実現できる。
これについて、図14に示すユーザによる発話とシステムによるシステム応答のタイミングを示したタイミングチャートを用いて説明をする。図14に示すタイミングチャートでは、ユーザが時刻T1において、「品川駅」と発話し、これに対して、システムは「北川駅」であると誤認識をし、時刻T2において「北川駅でよろしいですか?」というシステム応答を行っている。
これに応じて、ユーザは、時刻T3にキャンセルボタン12を押下し、時刻T5において「○×鉄道の品川駅」と再入力している。ここでシステムは、これまでの認識結果とキャンセル情報とを用いて入力音声を認識するが、再度誤認識をし、時刻T6において「○×鉄道の立川駅でよろしいですか?」というシステム応答を行っている。
そのため、ユーザは、時刻T7において、再度、キャンセルボタン12を押下、時刻T9において再度「品川駅」と入力をしている。これに応じて、システムは、これまでの認識結果とキャンセル情報とを用いて、最適な理解結果を導き出し、時刻T10において、「品川駅でよろしいですか?」というシステム応答を行っている。
このような、図14に示すユーザとシステムとの対話例の中で、時刻T9において入力されたユーザ発話に対して、理解結果生成部53は、時刻T3でキャンセルされたシステムによる理解結果「北側駅」と、時刻T7でキャンセルされたシステムによる理解結果「○×鉄道の立川駅」について、現在の理解結果候補と一致するかどうか判定し、補正後スコアを修正する必要がある。
この時、理解結果生成部53は、キャンセルされた発話が入力されてから、現在の理解結果生成を行っている発話が入力されるまでに要した時間に応じて修正係数を変化させる。
例えば、図14に示す例では、キャンセルされた発話が入力されてから、現在の理解結果生成を行っている発話が入力されるまでに要する時間は、時刻T3において、キャンセルされた理解結果「北川駅」を導いた発話の入力が開始された時刻T1から、現在、理解結果生成処理中の発話の入力が開始された時刻T9までの時間Tx1と、時刻T7において、キャンセルされた理解結果「○×鉄道の立川駅」を導いた発話の入力が開始された時刻T5から、現在、理解結果生成処理中の発話の入力が開始された時刻T9までの時間Tx2である。
理解結果生成部53は、キャンセルされた発話が入力されてから現在、理解結果生成処理を行なっている発話が入力されるまでに要した時間に比例して、0<d(d:修正係数)<1の範囲で、修正係数を大きくする。つまり、キャンセルされた発話が入力されてから、現在、理解結果生成処理を行っている発話が入力されるまでの時間が長ければ長いほど、修正係数が大きくなるため、その影響力は小さくなる。
ここで、修正係数をdとし、キャンセルされた発話が入力されてから現在の入力が開始されるまでの時間をTとすると、修正係数は、以下に示す(3)式で表すことができる。
上述したTx1、Tx2をそれぞれ40秒、20秒とし、図14に示す対話例に(3)式を適用すると、Tx1、Tx2に応じた修正係数d1と、修正係数d2とは以下に示すように求めることができる。
d1 = 0.02×40 = 0.8
d2 = 0.02×20 = 0.4
補正後スコアを修正し修正後スコアを求める場合、この修正係数を補正後スコアに乗算するため、修正係数が小さいほど補正後スコアに対する修正の割合が大きくなる。
したがって、今回の理解結果候補が、時刻T1に入力された発話より得られた理解結果である「北川駅」と一致する場合よりも、時刻T5に入力された発話より得られた理解結果である「○×鉄道の立川駅」と一致した場合のほうが、補正後スコアを修正する割合が大きくなる。
図15に、図14に示す対話例における第3のユーザ発話に対する理解結果候補と、その理解結果スコア、補正後スコア、修正係数、修正後スコアを示す。
図15に示す理解結果候補のうち第1候補の「○×鉄道+立川駅」、第2候補の「北川駅」は、図14の対話例で示したように誤認識であり、第3候補である「品川駅」がユーザによって入力された発話と一致する正しい結果である。
図15の理解結果スコア、補正後スコアは、上述した図5のフローチャートのステップS31、ステップS32においてそれぞれ求められる値である。また、図15に示す理解結果候補のうち、過去にキャンセルされている「○×鉄道+立川駅」と「北川駅」に対し、それぞれ上述した修正係数d2=0.4、修正係数d1=0.8を乗算すると、修正後スコアを求めることができる。
図15に示すように、修正前のスコアである補正後スコアは、「○×鉄道+立川駅」のの方が「北川駅」よりも大きいが、修正された修正後スコアを較べると、直近でキャンセルされた「○×鉄道+立川駅」の方が、「北川駅」よりも小さなスコアとなっているのが分かる。しかしながら、キャンセルによって修正されなかった「品川駅」の修正後スコアの方が、他の理解結果候補の修正後スコアよりも大きいため、最終的な最適な理解結果として「品川駅」が選択されることになる。
このように、キャンセルされた理解結果を導く音声が発話されて入力されてから、現在、理解結果生成処理中の音声が発話され入力されるまでに要した時間に応じて修正係数を変化させることで、キャンセルされた理解結果を修正係数に正しく反映させることができるため、補正後スコアを正確に修正することが可能となる。
(補正後スコアの修正処理:タスクシーケンスによる修正)
また、現在のシステム状態がタスクシーケンスのどこにあるかによって修正係数を変化させることもできる。
例えば、階層的にツリー構造を辿って施設を検索するような目的地設定の場合、上位項目の選択と、その中身の確認をいくつかの上位項目に対して行なってから最終的な項目を選択するような場合がある。
例えば、現在地の近くで飲食店を選択する場合に、選択可能なジャンルとして「和食」と「中華」があったとする。その際、一旦、「和食」を選択して中身を確認した後、「和食」をキャンセルして「中華」を選択し、さらに「中華」の中身を確認したが結局「中華」もキャンセルして「和食」を選択しなおすような場合がある。
このような場合、「和食」は、一旦キャンセルされているが誤認識だったわけではない。このように、階層的にならんだツリー構造の途中の項目を過去にキャンセルした場合には、誤認識ではなく正解であったとしても、キャンセルされた可能性があるとして考慮する必要がある。
しかし、ツリー構造の末端、例えば「○○寿司」などの店舗名などを選択した場合には、いったん選択してからキャンセルされる可能性は非常に低いため、キャンセルされた場合これは誤認識であった可能性が高いと考える必要がある。
つまり、音声対話装置が、段階的に発話を要求し所望のタスクを実現するタスクシーケンスを実行する際に、タスクシーケンスにおけるツリー構造の末端がキャンセルされた場合の修正係数は、0<d(d:修正係数)<1の範囲で、ツリー構造の途中の項目がキャンセルされた場合の修正係数よりも小さくなるように、つまり修正の割合を大きくして、再度選択されにくくする方向で修正を行う。
これにより、キャンセルされた理解結果を修正係数に正しく反映させることができるため、補正後スコアを正確に修正することが可能となる。
例えば、ツリー構造のメニューを辿ることでタスクを実現するタスクシーケンスにおいて、下位の選択項目を有する上位項目を選択する場合には、キャンセルの影響を小さく、末端の下位の選択項目を選択する場合には、キャンセルの影響を大きくすることができる。 したがって、ツリー構造のメニュー操作において、各上位項目の下にどのような下位項目があるかを確認してから上位項目を選択するような場合には、一度キャンセルされても上位項目であれば、次回確認時に再度認識されやすくすることができる。
(補正後スコアの修正処理:キャンセル操作までに要した時間に応じた修正)
また、発話された音声が入力されてから、この音声に対する理解結果が生成されキャンセル操作がなされるまでに要した時間に応じて修正係数を修正することもできる。
具体的には、キャンセルされた発話が入力されてからキャンセル操作までの時間が短い場合には、キャンセルされた理解結果の影響が大きくなるように修正係数を修正し、キャンセルされた発話が入力されてからキャンセル操作までの時間が長い場合には、キャンセルされた理解結果の影響が小さくなるように修正係数を修正する。
これにより、上述したようなツリー構造のメニューにおいて、各上位項目の下にどのような下位項目があるかを確認してから上位項目を選択ような場合において、ユーザが下位項目に興味を示さずに理解結果が出力されてから時間をかけずに直ぐにキャンセルすると、この上位項目は次回認識時に再度認識されにくくなる。逆に、下位項目を長く表示させて内容を確認するなど時間をかけると、この上位項目は次回認識時に再度認識されやすくなる。
(補正後スコアの修正処理:キャンセル指示の入力手法の違いに応じた修正)
また、本発明の実施の形態として示す音声対話装置では、音声認識結果をキャンセルする場合にキャンセルボタン12を押下することで、キャンセルする旨を入力しているが、例えば、否定語などの音声入力により音声認識結果をキャンセルする旨を入力するようにしてもよい。また、キャンセルボタン12の押下、音声による入力、さらに別な手法により音声認識結果をキャンセルする旨を入力するようにしてもよい。
このように、音声認識結果をキャンセルする旨と通知する手段を複数備えている場合、キャンセル手段の違いに応じて上述した、修正係数を変化させることができる。
例えば、音声入力による誤認識は、スイッチ入力の際の押し間違えなどによる誤入力よりも頻繁に起こるため、音声入力により音声認識結果をキャンセルする旨を入力した場合、その信頼性は低いと考えられる。
そこで、音声入力による音声認識によりキャンセルする旨を入力する場合、キャンセルボタン12を押下して音声認識結果をキャンセルする旨を入力する場合よりも、0<d(d:修正係数)<1の範囲で、修正係数を大きくして、補正後スコアを修正する割合を小さくすることで、音声入力による不確かなキャンセル情報であっても理解結果生成に利用することができる。
これにより、キャンセルされた理解結果を修正係数に正しく反映させることができるため、補正後スコアを正確に修正することが可能となる。
以上、説明した補正スコアの修正処理手法は、それぞれ独立して用いた場合でも、それぞれを任意に組み合わせて使用した場合でも、キャンセルされた理解結果を正確に修正係数へと反映させることができ、補正後スコアを正確に修正することが可能となる。したがって、ユーザによって発話された音声に対して、高い認識率で認識されるため、より正確な理解結果を生成することができる。
上述した説明では、認識結果候補に含まれる単語の単語信頼度を求め、理解結果候補から最適な理解結果を選定するための判断基準となる理解結果スコアをこの単語信頼度から算出している。そして、理解結果がキャンセルされた場合には、理解結果スコアを理解結果候補の単語数に基づいて補正した補正後スコアに対して、キャンセルされた理解結果に応じた修正することで、最終的に選定される理解結果に、キャンセルされた理解結果による影響を反映させている。
本発明は、音声認識部52による音声認識結果である認識結果候補から最終的な理解結果を選択するにあたり、選択の基準値として必ずしも理解結果スコアを求める必要はなく、認識結果候補に含まれる単語の単語信頼度を選択の基準値として理解結果を求めたり、認識結果候補の音響的な尤度を選択の基準値として理解結果を求めるようにしてもよい。
したがって、このような場合、最終的に選定される理解結果にキャンセルされた理解結果による影響を反映するには、理解結果スコアに対するスコア修正ではなく、単語信頼度の修正又は音響的な尤度の修正を行うことになる。
具体的には、上述した理解結果スコアを求める際に認識結果候補に含まれる単語に対して求めた単語信頼度を、キャンセルされた理解結果に応じて、最終的な理解結果とし選択されにくくなる方向に修正することになる。そして、キャンセルされた理解結果に応じて修正された単語信頼度が最も高い単語を最終的な理解結果として選定する。
また、音響的な尤度の場合は、音声認識部52による音声認識処理により得られた認識結果候補の尤度を、キャンセルされた理解結果に応じて、最終的な理解結果として選択されにくくなる方向に修正をする。そして、キャンセルされた理解結果に応じて修正された音響的な尤度が最も高い認識結果候補を、最終的な理解結果として選定する。
このように、単語信頼度に基づいて理解結果を生成する場合、音響的な尤度に基づいて理解結果を生成する場合、いずれの場合も、図5に示すフローチャートのステップS33におけるキャンセルされた理解結果候補に対する理解結果スコアを修正する手法を全て適用することができ、この手法を用いて単語信頼度又は音響的な尤度を修正することで、キャンセルされた理解結果をより正確に反映させて、最終的な理解結果を生成することができる。
ただし、単語信頼度を求めた場合、さらには、理解結果スコアを求めた場合には、同一の判断基準で各単語の発話可能性を判断することができるため、より正確な理解結果を生成することができるという点で優位性がある。
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。