【実施例1】
【0023】
図1は、本実施例の音声認識システム1の全体構成を示すブロック図である。音声認識システム1は、コンピュータシステムとして構成される。音声認識システム1は、例えばロボット形状または筒型や直方体等の種々の形状を有するオブジェクト2に搭載することができる。さらに、音声認識システム1は、例えば、ディスプレイ装置、掃除機、冷蔵庫、携帯電話、携帯情報端末、家庭内エネルギー管理システム(HEMS)、洗濯機等の各種電気製品3に搭載することもできる。本実施例では、音声認識システム1を人型ロボット2に搭載する場合を例に挙げて説明する。
【0024】
なお、音声認識システム1の全部をロボット2内に設けてもよいし、音声認識システム1の一部をロボット2の外部に設けてもよい。さらには、音声認識システム1のほぼ全体を外部サーバに設け、ユーザとの情報を交換するマンマシンインターフェース(音声入力部21、カメラ23、音声出力部41、表示部42)をロボット2に設ける構成でもよい。但し、音声認識システム1の全体をロボット2に設けることで、ユーザとの会話にタイムラグが生じるのを防止し、より自然なコミュニケーションを実現することができる。
【0025】
音声認識システム1は、例えば、音声認識部11、発話信頼度判定部12、入力文分類部13、反応レベル決定部14、応答決定部15、応答出力部16を備える。さらに、音声認識システム1は、音声入力部21、画像解析部22、カメラ23、音響モデルデータベース24、文法データベース25、辞書データベース26、キーワード−動詞データベース27、認識結果履歴データベース28、音声出力部41、表示部42、動作機構43を備える。
【0026】
音声入力部21は、例えば一つまたは複数のマイクロフォン装置とA/D(Analog/Digital)変換回路等を含んで構成される。本実施例では、音源の方位を検出することのできる音源方位マイクも音声入力部21に含まれているものとする。
【0027】
画像解析部22は、「画像出力部」の一例であるカメラ23で撮影した画像データを解析して、解析結果を出力する。画像解析部22は、例えば、撮影した画像データに顔が写っているか、写っている顔は正面の顔か横顔か、写っている顔はシステム1に登録済みのユーザの顔と一致するか否か、などを解析する。画像解析結果は、発話信頼度判定部12、反応レベル決定部14、応答決定部15で利用される。
【0028】
カメラ23は、例えばロボット2の頭部または胸部などに取り付けられており、ロボット2の周囲に存在するユーザ等を撮影し、画像データを出力する。なお、カメラ23はロボット2に取り付けられている必要は必ずしもない。ロボット2から離れた場所にカメラ23を設け、カメラ23で撮影した画像情報を無線通信等を介して音声認識システム1に送信する構成でもよい。なお、カメラ23で撮影した画像データ、および/または、画像解析部22の画像解析結果は、所定時間分蓄積することができる。
【0029】
音声認識部11は、音声入力部21から入力される音声を、音響モデルデータベース24と文法データベース25および辞書データベース26を用いて解析し、単語に変換する機能である。
【0030】
音響モデルデータベース24は、テキスト(読み)とテキストを発音したときの波形とを対応づけて記憶したデータベースであり、どのような波形の音がどのような単語として認識されるかを定義している。文法データベース25は、単語の並べ方(文法)などを記憶したデータベースである。辞書データベース26には、所定のキーワードを含む種々の単語がその読みと共に登録されている。音声認識部11による音声認識結果の履歴は、認識結果履歴データベース28に記憶される。
【0031】
発話信頼度判定部12は、発話信頼度を判定するための情報となる所定パラメータを抽出する。発話信頼度判定部12は、音声認識部11の認識結果と、カメラ23の撮影した画像情報と、音源方位情報と、キーワード−動詞データベース27と、認識結果履歴データベース28を用いて、所定パラメータを取得する。
【0032】
さらに、発話信頼度判定部12は、所定パラメータに基づいて、音声認識部11による認識結果が自システムに向けられたユーザからの音声であるか判定する。詳しくは、発話信頼度判定部12は、ユーザから自システムへの音声入力であるか、自システムへの音声指示であるかを判定する。音声指示とは、基本的に、所定のキーワードと所定の動詞との組合せとして構成される。しかし、これに限らず、所定のキーワードのみでも音声指示であると判定することができる。
【0033】
入力文分類部13は、音声認識部11で認識され、発話信頼度判定部12で下限値以上の発話信頼度を有すると判断された音声入力文を、入力文分類データベース29に予め用意されている複数の入力文分類のうちのいずれかに分類する。
【0034】
反応レベル決定部14は、音声入力文の分類結果と発話信頼度とに基づいて反応レベルデータベース30を検索することで、予め用意されている反応レベルの中から音声入力文に対応する反応レベルを一つ選択する。
【0035】
応答決定部15は、反応レベル決定部14で決定された反応レベルと音声入力文に基づいて応答定義データベース31を検索することで、予め定義されている応答の中から音声入力文に対する応答を決定する。
【0036】
応答出力部16は、応答決定部15で決定された応答を実行する。応答出力部16は、例えば、音声出力部41、表示部42、動作機構43のいずれか一つまたは複数を用いて、ユーザに応答することができる。
【0037】
音声出力部41は、例えば合成音声出力装置とスピーカ等から構成されており、ユーザに音声で返事をする。表示部42は、例えばロボット2に設けられるランプ、ディスプレイから構成され、メッセージを表示したり、ランプを点灯させたりする。動作機構43は、例えば、ロボットの首、手足等を動かすための機構である。なお、音声出力、表示出力、動作以外に、プリンタ等への出力を行ってもよい。
【0038】
図2を用いて、発話信頼度判定部12が抽出する所定パラメータについて説明する。発話信頼度判定部12は、以下に述べるように、第1パラメータ、第2パラメータおよび第3パラメータの全部または一部を抽出することができる。発話信頼度判定部12は、第1〜第3パラメータを常に全て検出する必要はない。また、以下に述べる発話信頼度の判定方法は一例であって、本発明は下記の方法に限定されない。以下、音声入力文を入力文と略記する場合がある。
【0039】
図2(1)に示す第1パラメータは、音声入力部21から音声認識部11に入力された最新の入力文を解析することで得られる。第1パラメータは、さらに複数の(例えば3つの)サブパラメータ(1A)〜(1C)を含むことができる。
【0040】
第1サブパラメータ(1A)は、最新入力文に占める所定のキーワード(および所定の動詞)の率である。音声認識部11は、音声入力部21に入力された音声(ユーザの音声指示、周囲の会話、周囲の雑音等)を辞書データベース26に当てはめて認識する。その認識された単語群の中に所定のキーワード(および所定の動詞)が含まれている割合から、発話信頼度の高低を判断できる。
【0041】
所定のキーワードとは、一般的なキーワードのうち、音声認識システム1が提供可能なサービス(詳しくは音声認識システム1が搭載されているシステム(ここではロボット2)で提供可能なサービス)を示すキーワードである。さらに、所定のキーワードには、ユーザがサービスの利用に際して発する可能性のあるキーワード、例えば、「はい」、「いいえ」等の返事に相当するキーワードも含む。
【0042】
所定のキーワードは、サービスを利用する際の音声指示となるキーワードとして、音声認識システム1に予め登録されている。具体的には、音声認識システム1が搭載されるロボット2がユーザに提供可能なサービスに関するキーワードが、所定のキーワードとして音声認識システム1に登録されている。
【0043】
例えば、ロボット2がダンスを踊ったり、ニュースや物語を読んだり、クイズを出題したり、天気を予測したり、占ったりするサービスを提供可能である場合、それらサービスを特定するためのキーワード(「ダンス」、「ニュース」、「物語」、「クイズ」、「天気」、「占い」)が所定のキーワードとして登録される。
【0044】
先に
図3を参照する。
図3(a)は、所定のキーワードと所定の動詞との対応付けを管理するテーブルT10の例である。このテーブルT10は、例えば
図1に示すキーワード−動詞データベース27の例である。
【0045】
所定のキーワードには、それぞれのキーワードに関連する所定の動詞が予め対応付けられている。例えばキーワード「ダンス」の場合、そのキーワードと共に使用される頻度の高い所定の動詞としては「やって」、「みせて」、「おどって」等が考えられる。キーワード「ニュース」の場合は、所定の動詞として「よんで」、「きかせて」、「おしえて」等が考えられる。
【0046】
図2に戻る。第1サブパラメータ(1A)として抽出される、最新入力文を構成する単語に占める所定のキーワードの比率から、発話信頼度を判定することができる。
【0047】
例えば、所定のキーワードと所定の動詞の両方が最新入力文に含まれている場合、発話信頼度は高いと判定できる。例えば、所定のキーワードだけが最新入力文に含まれており、所定の動詞は存在しない場合、発話信頼度は中程度であると判定できる。例えば、所定のキーワードが含まれていない場合、または、所定のキーワード以外の無意味な単語(非キーワード)の占める割合が所定の基準値より大きい場合、発話信頼度は低いと判定できる。
【0048】
第1パラメータの第2サブパラメータ(1B)を説明する。第2サブパラメータ(1B)では、最新入力文全体の音の強さの平均値と単語ごとの音の強さとの関連性に基づいて、所定のキーワードが含まれているかを判定する。
【0049】
図2(1)に示す「ううう」は、例えば空調機、冷蔵庫、洗濯機等の発する機械音(サーボ音)であり、無意味な非キーワードである。音声認識部11は、入力された音声データをできる限り何らかの単語に変換しようとするため、単なる機械音であっても例えば「ううう」のように何らかの単語に認識する。
【0050】
しかし、機械音はユーザの発した言葉ではなく、単なる環境雑音であるため、音のレベルは弱い。これに対し、ユーザの発する言葉は比較的音のレベルが強い。特に、ユーザがロボット2の応答を期待して所定のキーワードを発する場合は、その音のレベルは相対的に強くなると考えられる。
【0051】
そこで、第2サブパラメータ(1B)では、入力文全体の単語の音の強さの平均値と単語毎の音の強さとを比較して、強く発せられた所定のキーワードだけを所定のキーワードであると判定する。図示の例では、「ダンス」の音のレベルは3000であり、「やって」の音のレベルは1000であり、いずれも、他の単語の音の強さ(450〜600)よりも明らかに強い。これに対し、所定のキーワードとして認識された単語であっても、その音のレベルが入力文全体の音の強さの平均値に比べて弱い場合は無視する。音のレベルが弱いキーワードは、周囲の雑音等が組み合わさって偶然に誤認識されたものであると考えられるためである。
【0052】
第1パラメータの第3サブパラメータ(1C)を説明する。第3サブパラメータ(1C)では、最新入力文を構成する各単語の音の長さ(フレーム長)に基づいて、ユーザの発した言葉であるか否かを判定する。換言すれば、第3サブパラメータ(1C)は、音の長さに基づいて、雑音等の認識結果を取り除く。1フレームの長さは、音声入力部21のサンプリング周波数から求められる。
【0053】
ユーザが或る所定のキーワードを発声する場合、肉声の特性上、所定の時間を要する。これに対し、周囲の雑音等が偶然組み合わさり、所定のキーワードであると誤認識された場合は、人の発声可能な時間よりも短い時間しか有さない場合が多い。そこで、第3サブパラメータ(1C)では、最新入力文の認識結果の中から不自然な長さの単語を除去し、自然な長さを有する単語をユーザの発した単語であると判定する。
【0054】
図2(2)は、第2パラメータを示す。第2パラメータは、現在から所定期間(例えば数秒〜十数秒程度)の認識結果を分析して得られる。所定期間内の認識結果を均等に考慮してもよいし、過去の認識結果となるほど重みを下げて判断してもよい。例えば、所定期間を7秒間とすると、7秒前から5秒前までに認識した単語は0.4、4秒前から2秒前までに認識した単語は0.7、1秒前および最後に認識した単語は1.0を乗じて、判定してもよい。
【0055】
第2パラメータは、以下に述べるように、複数の(例えば4つの)サブパラメータ(2A)〜(2D)を含むことができる。
【0056】
第2パラメータの第1サブパラメータ(2A)では、「ううう」等の機械音が連続した後で所定のキーワードが検出された場合、ユーザから話しかけられたと判断する。つまり、機械音しか聞こえなかった環境下で、所定のキーワードが発せられた場合は、ユーザからの言葉であると判定する。
【0057】
第2パラメータの第2サブパラメータ(2B)では、無関係な単語が連続して認識された場合に、それはユーザの音声指示ではなく、ロボット2の周囲で行われている会話であると判定する。周囲の会話としては、例えば、人間同士の会話、人間と他の機械(音声指示で制御可能な他の機械)との会話、テレビまたはラジオ等からの音声を挙げることができる。
【0058】
図3(b)は、キーワード間の関連を模式的に示す。所定のキーワードの周辺には、その所定のキーワードと意味的に関連する関連キーワードが一つまたは複数存在する。例えば、所定のキーワード「クイズ」の場合、その周辺には「問題」、「答え」等の関連キーワードが存在する。さらに、所定のキーワード「クイズ」と関連性の少ない他のキーワードも存在する。関連性の少ない他のキーワードには、他の所定のキーワード、他の所定のキーワードに関連するキーワード等が含まれる。このように、キーワード同士(単語同士)の関連性を予め分析しておくことで、無関係な単語が連続して入力されたか否かを判定することができる。
【0059】
図2に戻る。第2パラメータの第3サブパラメータ(2C)では、同一の所定のキーワードの出現頻度が大きい場合、発話信頼度が高いと判定する。例えば、「ダンス」、「ダンス」、「ダンス」のように、同一の所定のキーワードが高頻度で出現する場合は、ユーザが話している可能性が高い。特に、幼児、老人等の発話が不明瞭なユーザの場合、動詞を伴わずに所定のキーワードだけを連呼する可能性がある。
【0060】
第2パラメータの第4サブパラメータ(2D)では、所定の無音期間が経過した後で、所定のキーワードが検出された場合に、ユーザからロボット2への音声指示であると判定する。つまり、第4サブパラメータ(2D)は、第1サブパラメータ(2A)の変形例であり、比較的静かな環境下で所定のキーワードが検出された場合は、ユーザからの音声指示であると判定する。
【0061】
第3パラメータを説明する。
図2(3)に示す第3パラメータは、カメラ23の撮影した画像情報、および、音声入力部21に含まれる音源方位マイクで特定される音源方位情報から抽出される。第3パラメータは、複数の(例えば3つの)サブパラメータを含むことができる。
【0062】
第1サブパラメータ(3A)は、顔の有無である。カメラ23が人間の顔を撮影した場合、そのときの認識結果はユーザからの音声指示である可能性が高い。第2サブパラメータ(3B)は、顔の向きである。ユーザの正面の顔がカメラ23で撮影された場合、ユーザがロボット2に向けて話しかけている可能性が高い。第3サブパラメータ(3C)は、音源方位である。音声がロボット2の正面方向から発せられている場合、ユーザからの音声指示である可能性が高い。
【0063】
発話信頼度判定部12は、上述した各パラメータの全てを考慮して発話信頼度を算出してもよいし、各パラメータのうちの一つまたは複数のパラメータのみに基づいて発話信頼度を算出してもよい。各パラメータでの判定結果に重み付けして発話信頼度を算出してもよいし、単純に判定結果の合計と判定総数の比として求めてもよい。例えば、発話信頼度を、自システムへの音声入力であると判定したパラメータの数pnと使用したパラメータの総数tpとの比として算出してもよい(発話信頼度=pn/tp)。
発話信頼度は、所定の複数の判定値と比較されてる。システム1は、予め設定される第1判定値としての下限値未満の発話信頼度しか持たない入力文を、自システムへの入力ではなく、処理対象外の入力文として扱う。システム1は、入力文の発話信頼度が、予め設定された第2判定値としての通常値以上である場合、その入力文の発話信頼度は「通常」であると判定する。システム1は、入力文の発話信頼度が前記第2判定値未満の場合、その入力文の発話信頼度は「低」であると判定する。このように、本実施例では、入力文の発話信頼度を、「対象外」、「低」、「通常」のいずれかに区別して扱うが、これに限らず、例えば、「対象外」、「低」、「中」、「高」のようにより細かくランクを分けて扱う構成としてもよい。
【0064】
図4は、入力文分類部13の使用する入力文分類データベース29の一例を示す。
図4中の左端には、音声認識結果である入力文がカタカナで表示されている。
図4の右側には、入力文の種別を示す入力文種別が例えば「話しかけ1」、「話しかけ2」、「コマンド1」などとして表示されている。入力文と入力文種別との間には、入力文の文意でグループ化するための文意ラベルが表示されている。文意ラベルは、入力文の意味で分類した意味的グループなどと呼び変えることもできる。入力文種別は、応答レベルを決定するためのグループであるから、応答レベル決定用グループまたは応答制御用グループなどと呼び変えることもできる。
【0065】
例えば、入力文「ナマエハ」、「オナマエハ」、「ナンテナマエ」は、いずれも呼びかけ先の名を問うものであるため、「名前は?」という文意ラベルが設定される。入力文「アナタダレ」、「ダレデスカ」、「ダレ」は、いずれも呼びかけ先が誰であるのかを問うものでるから、「誰?」という文意ラベルが設定される。そして、文意ラベル「名前は?」と「誰?」とは、その上位概念グループである「話しかけ1 「名前は?」」に対応付けられる。
入力文種別は、文意ラベルを応答レベルに応じて分類するための種別名(例えば、話しかけ、コマンド、挨拶など)と、その種別に属する一つまたは複数の文意ラベルのうち代表する文意ラベルとを対応付けて定義されている。上記の例では、文意ラベル「名前は?」と「誰?」とはいずれも、「話しかけ1」という種別の中の代表文意ラベル「名前は?」に属するものとして定義されている。
【0066】
入力文「ヘンジシテ」、「ムシシナイデ」、「ハナシキイテ」は、文意ラベル「返事して」に対応付けられている。入力文「ハンノウシテ」、「ハンノウハ」は、文意ラベル「反応して」に対応付けられている。そして、文意ラベル「返事して」と「反応して」は、いずれも入力文種別「話しかけ1 「返事して」」に対応付けられている。
【0067】
入力文「アタマイイ」、「リコウ」、「カシコイ」は、文意ラベル「頭良い」に対応付けられており、その文意ラベルは入力文種別「話しかけ2 「頭良い」」に対応付けられている。
【0068】
「話しかけ1」に属する入力文と「話しかけ2」に属する入力文とは、いずれもユーザから自システムに話しかけられた言葉であるが、応答レベルが異なるため別々の種別として定義している。
【0069】
入力文「キョウナンニチ」、「ヒニチオシエテ」は、文意ラベル「今日何日?」に対応付けられており、その文意ラベルは入力文種別「コマンド1 「今日何日?」」に対応付けられている。種別「コマンド」は、ロボット2に搭載されているサービス(例えばダンス、ニュース読み上げ、日にち回答など)を利用するための音声指示であることを示す種別である。
【0070】
入力文「ダンスオドッテ」、「ダンスミセテ」、「ダンスヤッテ」は、文意ラベル「ダンス踊って」に対応付けられており、その文意ラベルは入力文種別「コマンド2 「ダンス踊って」」に対応付けられている。「コマンド1」に属する入力文と「コマンド2」に属する入力文とは、いずれもロボット2のサービスを利用するための音声指示であるが、応答レベルが異なるため(応答レベルを変えるため)、それぞれ別々の種別として定義している。
【0071】
図4の下に示す入力文「ハジメマシテ」、「オハツデス」は、文意ラベル「初めまして」に対応付けられており、その文意ラベルは入力文種別「挨拶1 「初めまして」」に対応付けられている。
【0072】
図4は、システム1で認識可能な入力文の一部を示しており、認識可能な入力文は、原則的にいずれかの文意ラベルに対応付けられる。本実施例では、音声認識結果である入力文を、文意ラベルごとにグループ化し、さらに文意ラベルを介していずれかの入力文種別に分類する。入力文分類データベース29に登録されていない入力文は、応答せずに無視してもよいし、初期値として設定される入力文種別に分類してもよい。
【0073】
新たな入力文(単語だけの場合もある)を入力文分類データベース29に登録する場合は、複数の文意ラベルのいずれかに対応付けるだけでよい。新たな入力文は、設定された文意ラベルを介して、所定の入力文種別に分類される。新たな入力文に適切な文意ラベルが見当たらない場合、新たな文意ラベルを生成してそこに対応付け、その新たな文意ラベルをいずれかの入力文種別に対応付ければよい。
【0074】
登録済みの入力文に対する反応レベルを変えたい場合には、その入力文の属する文意ラベルを、希望する反応レベルの入力文種別に対応付ければよい。例えば、「ヘンジシテ」という入力文の反応レベルを変えたい場合、その入力文に設定されている文意ラベル「返事して」を入力文種別「話しかけ1」から「話しかけ2」に変更できる。あるいは、新たな入力文種別を定義して、変更対象の文意ラベルを新たに定義した入力文種別に対応付けてもよい。
【0075】
入力文分類データベース29では、複数の入力文を文意でグループ化した上で、入力文種別に対応付けるため、表現が異なる入力文であっても、その文意が同じか似通っていれば、同一の反応レベルで応答できる。これにより、似たような意味合いの入力文に対して同一の反応レベルで応答できるため、統一感のある応答を実現することができる。なお、似通った文意とは、例えば、同一の入力文種別に対応付けられる異なる複数の文意ラベル(「名前は?」と「誰?」、「返事して」と「反応して」など)である。
【0076】
さらに、新たな入力文に文意ラベルを設定するだけで適切な入力文種別に分類することができるため、入力文ごとに反応レベルを直接定義する必要がなく、新たな単語や表現に柔軟かつ速やかに対応することができ、システム構築上およびシステム運用上の使い勝手がよい。
【0077】
図5は、反応レベルデータベース30の例を示す。反応レベルデータベース30は、反応レベル決定部14により使用されるもので、入力文種別ごとに一つまたは複数の反応レベルが設定されている。
【0078】
本実施例では、反応レベルとして、「無反応」、「無難な反応」、「本来の反応」の3段階を設定している。「無反応」とは、入力文に対して応答しないことを意味する。「無難な反応」とは、入力文に対して応答はするが、その入力文に対する本来の反応とは異なる、曖昧な応答または不明瞭な応答をすることを意味する。「本来の反応」とは、入力文に対する本来の反応、通常の対話として成り立つ応答をすること、または、発話者であるユーザが期待しているであろう通常の応答を返すこと、を意味する。
各入力文種別には、各反応レベルの一部または全部を選択するための条件が設定されている。例えば、入力文種別「話しかけ1」の場合、発話信頼度が低いときは反応レベル「無反応」が選択され、発話信頼度が通常のときは反応レベル「本来の反応」が選択されるように設定されており、「無難な反応」は設定されていない。
【0079】
入力文種別「話しかけ2」の場合、発話信頼度が低いときは反応レベル「無反応」が選択され、発話信頼度が通常かつ顔を検出できないときは反応レベル「無難な反応」が選択され、発話信頼度が通常かつ顔を検出できたときは反応レベル「本来の反応」が選択されるように設定されている。
【0080】
入力文種別「コマンド1」の場合、常に反応レベル「本来の反応」が選択されるように設定されており、反応レベル「無反応」および「無難な反応」は設定されていない。システム1は、「コマンド1」に分類される音声指示を認識すると、状況を問わずに、そのコマンドに対応する応答を実行する。
【0081】
入力文種別「コマンド2」の場合、発話信頼度が低くかつ顔を検出できないときは反応レベル「無難な反応」が選択され、発話信頼度が通常でかつ顔を検出できたときは反応レベル「本来の反応」が選択されるように設定されており、反応レベル「無反応」は設定されていない。
音声指示に対する「無難な反応」な反応の例としては、例えば指示内容を聞き返したり(「ダンスやって」に対して「ダンスですか?」と応答する等)、実行の延期を求めたりする応答(「ダンスですか。ちょっと準備させてください等」)が考えられる。
【0082】
入力文種別「挨拶1」の場合、発話信頼度が低いときは反応レベル「無反応」が選択され、発話信頼度が通常のときは反応レベル「本来の反応」が選択されるように設定されており、反応レベル「無難な反応」は設定されていない。
【0083】
入力文種別「挨拶2」の場合、発話信頼度が低くかつ顔が検出できないときは反応レベル「無難な反応」が選択され、発話信頼度が通常でかつ顔を検出できたときは反応レベル「本来の反応」が選択されるようになっており、「無反応」は設定されていない。
【0084】
挨拶に対する「無難な反応」の例としては、いろいろな受取り方のできる「やあ」、「はい」等のありふれた挨拶を返すことが考えられる。
【0085】
以上述べたように、反応レベルデータベース30を用いて、入力文への応答に関する反応レベルを決定することができる。全く異なる入力文であっても、反応レベルが同一である場合は、同じ程度の強さで応答することになる。逆に、たとえ同じ入力文であっても、状況(顔が検出できたか否か)が異なれば反応レベルも異なり、その結果、応答の強さも変化する。
【0086】
図6は、応答決定部15の使用する応答定義データベース31の例を示す。応答定義データベース31は、文意ラベルごとに、反応レベルに応じた応答内容、または、反応レベルおよび状況に応じた応答内容を定義している。
【0087】
文意ラベル「名前は?」に属する入力文に対しては、発話信頼度が通常の場合に「本来の反応」で応答する。システム1は、発話者の個人認証をし、発話者が未登録であれば「僕の名前は〇〇です」と応答する。発話者が登録済みであれば「僕の名前は〇〇です。知っていると思ってました」のように応答する。発話者がシステム1に登録済みであるか否かは、事前に登録されたユーザ音声又は、顔画像との類似度から判定することができる。
【0088】
文意ラベル「返事して」に属する入力文は、入力文種別「話しかけ1」に分類されるため、その発話信頼度が通常の場合に、その入力文に対し「本来の反応」として「はっ!ぼーっとしてました」などと応答する。
【0089】
文意ラベル「頭良い」に属する入力文は、入力文種別「話しかけ2」に分類されるため、発話信頼度が通常でかつ顔が検出できないときに、その入力文に対する「無難な反応」として、「もしかしてほめられている?」などと応答する。これに対し、発話信頼度が通常でかつ顔を検出できたときは、「本来の反応」として、「まだまだ勉強中です」のように応答する。
【0090】
文意ラベル「今日何日?」に属する入力文は、入力文種別「コマンド1」に分類されるため、その入力文に対しては、状況によらず常に「本来の反応」として「〇月○日です」のように応答する。
【0091】
文意ラベル「ダンス踊って」に属する入力文は、入力文種別「コマンド2」に分類されるため、発話信頼度が低くかつ顔が検出できないときは「無難な反応」として、「ダンスですか?」のように指示内容を聞き返す応答をする。これに対し、発話信頼度が通常でかつ顔を検出できたときは「本来の反応」として、予め記憶されているダンス用プログラムを実行し、ダンスを踊る。
【0092】
文意ラベル「初めまして」に属する入力文は、入力文種別「挨拶1」に分類されるため、発話信頼度が通常の場合に「本来の反応」で応答を返す。システム1は、反応レベルだけでなく、音声入力文の検出状況も考慮して応答する。例えば、システム1は、画像解析部22が画像データ中に顔を検出できたか判定し、次に発話者の個人認証を行い、さらに、検出した顔が横顔であるか判定する。登録済みのユーザ音声と入力文との類似度から個人認証してもよいし、または、もしもそれが可能ならば、登録済みのユーザの顔データと画像解析部22で検出した顔データの一致度から個人認証してもよい。
【0093】
第1の状況は、顔が検出できず、未登録の発話者の場合、または、横顔だけ検出できた未登録の発話者の場合である。第1の状況では、「本来の反応」として「初めまして、僕の名前は〇〇です」のように応答する。
【0094】
第2の状況は、正面の顔を検出でき、かつ発話者が未登録の場合である。第2の状況では、「本来の反応」として「初めまして、僕の名前は〇〇です。握手してください」のように応答する。
【0095】
第3の状況は、正面の顔を検出でき、かつ発話者が登録済みの場合である。第3の状況では、「本来の反応」として「初めまして、僕の名前は〇〇です。あれ?知ってますよね」のように応答する。
このように、文意ラベルごとに、反応レベルと状況とに基づいて、応答の内容を定義することができる。この結果、一貫した反応レベルで、統一性のある応答を返すことができ、かつ自然な対話を実現できる。
【0096】
図7は、音声認識システム1の全体処理を示すフローチャートである。システム1は、音声入力部21を介して何らかの音声を検出すると(S1)、その入力された音声を解析し、
図2で述べた所定パラメータを抽出し(S2)、所定パラメータに基づいて発話信頼度を判定する(S3)。
【0097】
システム1は、入力文について算出された発話信頼度が所定の下限値以上であるか判定し(S4)、下限値以下であると判定すると(S4:NO)本処理を終了する。システム1は、下限値以上の発話信頼度を持つ入力文であると判定すると(S4:YES)、入力文分類データベース29を用いて、その入力文を文意ラベルおよび入力文種別で分類する(S5)。
【0098】
システム1は、反応レベルデータベース30を用いて、入力文の分類先である入力文種別についての反応レベルを決定する(S6)。システム1は、応答定義データベース31を用いて、入力文に設定された文意ラベルと決定された反応レベルとに基づいて、応答内容を決定する(S7)。システム1は、決定した応答内容を、音声出力部41、表示部42、動作機構43のいずれか一つまたは複数を用いて出力する(S8)。
【0099】
図8は、
図7中の入力文分類処理S5の一例を示すフローチャートである。システム1の入力文分類部13は、入力文分類データベース29を検索することで、入力文に該当する文意ラベルがあるか判定する(S50)。入力文分類部13は、該当する文意ラベルがあると判定した場合(S50:YES)、その文意ラベルを入力文に設定(S51)。さらに、入力文分類部13は、選択した文意ラベルの属する入力文種別を、入力文の分類先として決定する(S52)。
【0100】
このように構成される本実施例によれば、入力文を文意に応じた入力文種別に分類し、入力文種別ごとに発話信頼度および状況を考慮して反応レベルを定義し、反応レベルと状況に応じて文意ラベルごとに応答内容を決定する。
【0101】
このように本実施例では、反応レベルの決定処理(入力文分類部13および反応レベル決定部14、ステップS5およびS6)と、応答内容の決定処理(応答決定部15、ステップS7)とを分けており、反応レベルは入力文種別ごとに設定するため、入力文の文意に応じて統一性のある一貫した応答を返すことができ、より自然な対話を実現することができる。
【0102】
さらに、入力文の文意ごとに反応レベルおよび状況に応じた応答内容を定義するため、統一性があり、かつ柔軟な応答を返すことができる。
【0103】
本実施例では、入力文に、その文意に応じた文意ラベルを設定してグループ化するため、新たな単語や表現などにも柔軟かつ速やかに対応することができる。
【0104】
本実施例では、画像データから解析される顔の画像を発話信頼度を算出するためのパラメータの一つとして利用するだけでなく、対話状況を判定するための状況判定用情報としても利用する。従って、実際の人間の多くがそうであるように、顔の有無などから状況を判断して応答することができ、より自然な対話を実現できる。
【0105】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。