(57)【特許請求の範囲】
【請求項１】
認識対象についての予測情報を記憶する記憶手段と、
前記予測情報に基づいて音声情報を認識する認識手段と、
音声情報の種類に関する知識を記憶する知識ベースと、
該知識ベースに記憶された知識を参照し、前記認識手段による先の認識対象の認識結果に基づいて、当該認識手段における次の認識対象となる音声情報について予測を行なう予測手段と、
該予測手段による予測結果に基づいて、前記記憶手段に記憶された予測情報を更新する更新手段と、
前記認識手段による認識結果として得られた情報の妥当性を判断する判断手段と、
前記判断手段による判断結果に基づいて、前記認識手段により認識結果として得られた情報を修正する修正手段とを有し、
前記予測手段が、前記認識手段による認識結果に基づいて予測を行ない、前記修正手段による当該認識結果の修正結果に基づいて再度予測を行なうことを特徴とする情報処理装置。
【請求項２】
前記予測手段が、前記認識手段における次の認識対象となる情報の種類について予測することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記認識手段により認識結果として得られた情報を解析する解析手段を有し、先の認識対象の認識結果を当該該解析手段により解析した結果に基づいて前記予測手段が予測を行なうことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記認識手段が、認識結果として複数の候補を出力可能であり、前記予測手段は、先の認識対象の認識結果として複数の候補が出力された場合には、当該複数の候補のそれぞれに対する次の認識対象について予測することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記予測手段は、次の認識対象として入力される可能性の高い候補を予測し、前記認識手段は、前記予測手段により入力される可能性が高いと予測された候補の中から認識結果を選出することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記予測手段は、次の認識対象として入力される可能性の低い候補を予測し、前記認識手段は、前記予測手段により入力される可能性が低いと予測された候補を認識候補から除外することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
音声情報を入力する入力手段と、
該入力手段より入力された音声情報の属性を判別する判別手段とを有し、
該判別手段の判別結果に基づいて、前記認識手段が特定の属性の音声情報を認識することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記判別手段は、前記音声情報が言語情報か非言語情報かを判別することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記非言語情報は、笑い声を含むことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記非言語情報は、電話の音または警報音を含むことを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
前記判別手段は、機械の音と人間の声とを判別することを特徴とする請求項７に記載の情報処理装置。
【請求項１２】
前記判別手段は、周波数の違いに基づいて、機械の音と人間の声とを判別することを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記認識手段は、単語、音節、または音素を認識単位として自然言語の音声情報を認識することを特徴とする請求項１に記載の情報処理装置。
【請求項１４】
前記認識手段が音節または音素を認識単位とする場合、前記予測手段は、次の認識対象となる音節または音素を含む単語を予測し、当該予測された単語に基づいて、次の認識対象となる音節または音素を予測することを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記認識単位を以前の認識結果の良否に基づいて選択する選択手段を有することを特徴とする請求項１３に記載の情報処理装置。
【請求項１６】
前記知識ベースが、自然言語の情報における叙述の規則を含む言語知識を有することを特徴とした請求項１に記載の情報処理装置。
【請求項１７】
前記知識ベースが、ドメインに関する知識を有し、前記予測手段が、前記ドメインに関する知識に基づいて、特定のドメインに属する情報を次の認識対象となる音声情報として予測することを特徴とした請求項１に記載の情報処理装置。
【請求項１８】
前記認識手段による認識結果が処理命令である場合に、当該処理命令に対応する処理を実行する処理手段を備えたことを特徴とした請求項１に記載の情報処理装置。
【請求項１９】
前記予測手段は、先の動作に基づいて次の認識対象となる音声情報について予測を行なうことを特徴とした請求項１に記載の情報処理装置。
【請求項２０】
前記予測手段は、先の動作に基づいて次の動作を予測し、次の動作に基づいて次の認識対象となる音声情報について予測を行なうことを特徴とした請求項１９に記載の情報処理装置。
【請求項２１】
前記予測手段は、先の動作に基づいて次の動作が予測できない場合、特定の動作を次の動作として予測することを特徴とした請求項１９に記載の情報処理装置。
【請求項２２】
認識対象について記憶部に記憶された予測情報に基づいて音声情報を認識する認識工程と、
音声情報の種類に関する知識を記憶する知識ベースに記憶された知識を参照し、前記認識工程による先の認識対象の認識結果に基づいて、当該認識工程における次の認識対象となる音声情報について予測を行なう予測工程と、
該予測工程による予測結果に基づいて前記記憶部に記憶された予測情報を更新する更新工程と、
前記認識工程による認識結果として得られた情報の妥当性を判断する判断工程と、
前記判断工程による判断結果に基づいて、前記認識工程により認識結果として得られた情報を修正する修正工程とを有し、
前記予測工程では、前記認識工程による認識結果に基づいて予測を行ない、前記修正工程による当該認識結果の修正結果に基づいて再度予測を行なうことを特徴とする情報処理方法。
【請求項２３】
認識対象について記憶部に記憶された予測情報に基づいて音声情報を認識する認識工程と、
音声情報の種類に関する知識を記憶する知識ベースに記憶された知識を参照し、前記認識工程による先の認識対象の認識結果に基づいて、当該認識工程における次の認識対象となる音声情報について予測を行なう予測工程と、
該予測工程による予測結果に基づいて前記記憶部に記憶された予測情報を更新する更新工程と、
前記認識工程による認識結果として得られた情報の妥当性を判断する判断工程と、
前記判断工程による判断結果に基づいて、前記認識工程により認識結果として得られた情報を修正する修正工程とを備え、
前記予測工程では、前記認識工程による認識結果に基づいて予測を行ない、前記修正工程による当該認識結果の修正結果に基づいて再度予測を行なうことを特徴とするコンピュータ読み取り可能な情報処理プログラムを記憶した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声認識を行なう情報処理装置及びその方法、及びそのプログラムを記憶した記憶媒体に関するものである。
【０００２】
【従来の技術】
音声認識には、大きく分けて単語音声認識と文節音声認識とがある。単語音声認識は、入力された音声波形を分析し、特徴抽出して特徴量の時系列を作り、特徴時系列で表わされた単語辞書との類似度を計算し、認識結果として出力する。文節音声認識は入力音声を音素記号列に変換し、単語列に置き換える。これを構文解析し、文字列に変換する。さらに論理解析や意味解析し、文生成を行って文章として出力する。単語にも同音異義語があるために品詞情報を付したり、複合名詞化、単文節変換する方法なども研究されているが、極めて難易度が高い。
【０００３】
【発明が解決しようとする課題】
人間は会話の中では、殆どの場合、相手の声を一つの意味として理解を行っている。そして、話している途中でも、その前後の話題や常識によって、相手の話す内容をある程度予測して自分の理解を助けているので、少し位の言い誤りは問題にならないし、会話の中の単語に同音異義語が多数存在したとしても相手の意図する単語はどれであるかを判断できる。
【０００４】
それに対して、従来の音声認識装置では、パターンマッチングにより、入力音声の波形の任意の部分にマッチする単語の候補を、装置の持つ辞書からいくつか検索出力し、その中から良い候補を選択するという処理が行われているため、途中の部分の認識に失敗してしまうと、それ以降の処理がうまく行かなくなってしまう。
【０００５】
また、従来の音声認識では、認識対象の入力音声がある言語の構文を満たすものであるとして、音声認識モジュールの中で様々な判定を行い、結果を次の処理(別のモジュール)に渡すものが多い。具体的には、音声認識モジュール内部において、音声情報を構文解析というフィルタによってシステムのコマンドとして一意に決めるのである。間投詞や言い直しなどの不要語の処理や、倒置・助詞落ちなどの非文法的な発話に関しても、言語処理（単語や文法のDBとの照合）によって対処している。
【０００６】
しかしながら、構文解析の目的は構文の構造を解析することにあるため、構文情報以外は排除してしまうことになる。また、得られた単語が構文解析の結果有効な単語であると判定されたときにも、一般あるいは特定分野の知識を考慮していない。
【０００７】
図47に従来の音声認識装置の例を示す。同図に示すように、入力における処理の流れが一方向であるため、音声認識モジュールの処理結果が誤っていたとしても、システムの処理はそのまま次に進む。例えば、音声認識の結果、構文的には正しくてもシステム全体としては処理できないような入力も受け付けることになり、その場合、結局はエラーとなって返ってくるだけである。つまり、音声認識部とシステム全体の処理とが連動せずバラバラに処理を行っているために、簡単な処理しか実現できないと考えられる。従って、音声認識の結果がシステム全体の性能に大きく影響することになってしまう。
【０００８】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、情報処理装置に、認識対象についての予測情報を記憶する記憶手段と、前記予測情報に基づいて音声情報を認識する認識手段と、音声情報の種類に関する知識を記憶する知識ベースと、該知識ベースに記憶された知識を参照し、前記認識手段による先の認識対象の認識結果に基づいて、当該認識手段における次の認識対象となる音声情報について予測を行なう予測手段と、該予測手段による予測結果に基づいて、前記記憶手段に記憶された予測情報を更新する更新手段と、前記認識手段による認識結果として得られた情報の妥当性を判断する判断手段と、前記判断手段による判断結果に基づいて、前記認識手段により認識結果として得られた情報を修正する修正手段とを備え、前記予測手段が、前記認識手段による認識結果に基づいて予測を行ない、前記修正手段による当該認識結果の修正結果に基づいて再度予測を行なうことを特徴とする。
【０００９】
また、本発明の他の態様によれば、情報処理方法に、認識対象について記憶部に記憶された予測情報に基づいて音声情報を認識する認識工程と、音声情報の種類に関する知識を記憶する知識ベースに記憶された知識を参照し、前記認識工程による先の認識対象の認識結果に基づいて、当該認識工程における次の認識対象となる音声情報について予測を行なう予測工程と、該予測工程による予測結果に基づいて前記記憶部に記憶された予測情報を更新する更新工程と、前記認識工程による認識結果として得られた情報の妥当性を判断する判断工程と、前記判断工程による判断結果に基づいて、前記認識工程により認識結果として得られた情報を修正する修正工程とを備え、前記予測工程では、前記認識工程による認識結果に基づいて予測を行ない、前記修正工程による当該認識結果の修正結果に基づいて再度予測を行なうことを特徴とする。
【００１０】
更に、本発明の他の態様によれば、記憶媒体に、認識対象について記憶部に記憶された予測情報に基づいて音声情報を認識する認識工程と、音声情報の種類に関する知識を記憶する知識ベースに記憶された知識を参照し、前記認識工程による先の認識対象の認識結果に基づいて、当該認識工程における次の認識対象となる音声情報について予測を行なう予測工程と、該予測工程による予測結果に基づいて前記記憶部に記憶された予測情報を更新する更新工程と、前記認識工程による認識結果として得られた情報の妥当性を判断する判断工程と、前記判断工程による判断結果に基づいて、前記認識工程により認識結果として得られた情報を修正する修正工程とを備え、前記予測工程では、前記認識工程による認識結果に基づいて予測を行ない、前記修正工程による当該認識結果の修正結果に基づいて再度予測を行なうことを特徴とするコンピュータ読み取り可能な情報処理プログラムを格納する。
【００１１】
【発明の実施の形態】
＜実施形態１＞
以下、図面を用いて本発明の１実施形態を詳細に説明する。
【００１２】
はじめに、本実施形態に係るハードウェアの構成について説明する。図1は本発明にかかる自然言語処理装置の1実施形態のハードウェア構成を示すプロック図である。
【００１３】
同図において、101は、自然言語により情報を入力するための入力部である。この入力情報は一定の規則的な構造を有していれば、文法的に完全な文章でなくとも処理対象とすることが出来る。
【００１４】
入力部101は、音声を入力・認識する音声認識装置に加えて、文字をキー入力するためのキーボード、書類から光学的に文字を読み取って認識する文字認識装置、オンライン/オフラインの手書き文字認識装置、他のシステムより情報を受信する受信装置、例えば、文字認識システムにより生成された情報を受信して、ここでの入力としても良い。更にこれらのうちの2以上を併設して、選択的に利用しても良い。
【００１５】
102はCPUであり、各種処理のための演算、論理判断等を行い、バス106に接続された各構成要素を制御する。
【００１６】
103は分析されたデータ出力情報を出力する出力部であり、例えば、文字情報を音声合成して出力する音声合成装置、CRTや液晶表示器などの表示装置、書類上に文字を印刷出力するためのプリンタ、さらには、データベースのようなほかの装置への情報を送信する送信装置であっても良く、ここでの出力を同一装置内のほか出力部、例えば、概念解析部などへの入力としてもよい。更に、これらのうちの2以上を具え、選択的に利用するようにしても良い。
【００１７】
104はプログラムメモリであり、フローチャートにつき後述する処理手順を含むCPUによる制御のためのプログラムを格納するメモリである。プログラムメモリはROMであっても良いし外部記憶装置などからプログラムがロードされるRAMであっても良い。
【００１８】
105は、データメモリであり、各種処理で生じたデータを格納するほか、後述する知識ベースの知識を格納する。データメモリはたとえばRAMとするが、知識ベースの知識は、不揮発な外部記憶媒体から、処理に先立ってロードしておく、あるいは必要がある毎に参照するものとする。
【００１９】
106は、CPUの制御の対象とする構成要素を指示するアドレス信号、各構成機器相互間でやり取りされるデータ転送を行うためのバスである。
【００２０】
図2は、本実施形態に係る情報処理装置の基本構成を示す機能ブロック図である。本装置は知識ベースの知識を用いて処理を行っており、この知識を用いた処理の流れを示している。
【００２１】
201は入力処理部であり、各入力信号に対しての処理を行い入力情報を得る。
【００２２】
202はコンテキスト構築 ・ゴール推論部であり、入力部101から入力された自然言語情報の内容を、知識ベース208の知識を利用して概念解析し、意味を理解・把握する。
【００２３】
203はプランニング部であり、コンテキスト構築ゴール推論部202によって推論されたゴールを達成するために、コンテキストベース207、知識ベース208の知識を用いてプランニングを行う。
【００２４】
204は実行部であり、プランニング部203における処理の結果に基づいて、アプリケーション、データベースやシステムに接続されたプリンタなどによる処理の実行をメインアプリケーション部205へ依頼する。
【００２５】
205はメインアプリケーション部であり、システムに具わっているアプリケーションやデータベース、プリンタなどによる処理を実行する。
【００２６】
206は応答決定部であり、実行部204の処理の結果をうけて、ユーザに出力するべき応答を決定する。ここではコンテキストベース207、知識ベース208の知識を利用して、出力を分析し、応答が必要であれば、応答を生成し、最終的にどのような方法で応答出力を行うかという方法の選択を行う。
【００２７】
207はコンテキストベースであり、コンテキスト構築・ゴール推論部202、プランニング部203、応答決定部206などで必要とする知識を供与すると共に、コンテキスト構築・ゴール推論部202、プランニング部203、応答決定部206の処理の過程で生じた新たな知識を記憶する。
【００２８】
208は知識ベースであり、ゴール推論部202、応答決定部206に必要な知識を供与するとともに、ゴール推論部202、プランニング部203、応答決定部206における処理の過程で生じた新たな知識を記憶する。
【００２９】
図3は本実施形態に係る情報処理装置の処理の流れを示す図である。入力認識部301は、図2における入力処理部201に相当する部分であり、入力された情報に対して認識を行う。
【００３０】
概念解析部302は、コンテキスト構築部202、プランニング部203、実行部204に相当する部分であり、入力認識部301における情報に対する認識処理の結果から、システム内に存在する知識306を利用して入力情報の意味を解析する。解析の結果、次に入力される情報を予測したり、メインアプリケーション部303に実行を依頼したりする。
【００３１】
メインアプリケーション部303は、メインアプリケーション部204にあたる部分であり、概念解析部302に依頼された処理を実行し、実行の結果を応答生成部304に渡す。
【００３２】
応答生成部304は、応答決定部206の処理を行う部分であり、メインアプリケーション部303による実行の結果を分析し、ユーザに対する応答を生成して、最適な出力方法を選択する。
【００３３】
実際の出力は、出力合成部305へ依頼する。出力合成部305は、応答生成部304により生成された応答を、選択された方法で出力する。応答生成部304、出力合成部305のそれぞれの処理においても、システムの知識306が使用される。
【００３４】
本情報処理装置構成を音声認識に応用することで、人間の音声認識処理の優れている点を実現する。以下に、人間が実際にはどのように音声を認識しているかの例を示す。例として、「Send mail to May」という入力音声を処理する場合を説明する。
【００３５】
図4に、人間が他人の発声を理解する概要を示す。人間は他人の発声をほとんどの場合一通りの意味に理解し、現状の音声認識装置で行われているように、ある部分の音声波形に近い単語候補の中から順に選択しながら理解するようなことは行なわない。これは、音声情報だけでなく、その前後の文脈や一般常識などからある程度の予測を行った上で音声情報に対する認識、理解を行っているためであると考えられる。
【００３６】
システムとして人間の動作を実現するためには、入力情報に対してあらかじめ予測を立てておくことが考えられる。つまり、音声入力として"Send mail to May !"という入力が入ったとき、直前に“send ”という音声を認識したならば、言語知識からObjectが予測され、さらにドメインの知識によって“mail ”という音声が予測されている。
【００３７】
このため、普通の音声認識では"male"、 "mai"、 "may"、 "mate"という候補があがるかもしれないが、"mai"は言語知識から、通常の単語としては辞書に存在せず、また人名とすると"send"の直後にくることは考えにくいので、予測されていない。また"send to"という決まりきった言い回しが言語知識から予測されるため、"mate"という音の固まりで認識される可能性は低くされる。更に、"to"の同音異義語である"too"は知識ベースの予測からは候補としてあがらない。最後に、概念知識から"send to XXX"のXXXにはObjectがくると予測され、またドメインの知識から"send"する方向／場所は人間（人名）であるという予測が成り立ち、アドレス帳や人名辞典などから"May"が予測されることが考えられる。
【００３８】
図4のような人間の音声認識処理と、従来の音声認識装置の処理とを比較する。図47は従来の情報入力処理を示す図である。
【００３９】
従来の入力処理方法では、認識モジュールの中で様々な判定を行い、結果を次の処理(別のモジュール)に渡すものが多い。入力された情報は、認識処理によって認識されアプリケーションが受け入れる形に整形して処理を行う。この処理の流れは一方向で、各処理は孤立したモジュールとなっており、連動していない。
【００４０】
特に音声入力の場合には、音声認識部4701において音声認識した結果を、音声処理部4702において、構文解析というフィルタによってシステムのコマンドとして一意に決める方法が多く行われている。間投詞や言い直しなどの不要語の処理や、倒置・助詞落ちなどの非文法的な発話に関しても、言語処理（単語や文法のDBとの照合）によって音声処理部4702において対処する。構文解析の目的は構文の構造を解析することにあるため、構文情報以外は排除してしまうことになる。また、処理の流れが一方向であるため、音声認識モジュールの処理結果が誤っていたとしても、システムの処理はそのまま音声部4703のブロックを終了し、次のアプリケーション部4707に進む。キーボード入力やイメージ入力部4706（ＯＣＲ部4704、画像処理部4705）においても同様の処理が行われる。
【００４１】
この方法ではシステム全体としては処理できないような入力も受け付けることになり、結局はアプリケーション部4707からエラーとなって返ってくるだけである。つまり音声やイメージに対する入力処理部4703、4706とシステム全体の処理とが連動せずバラバラに処理を行っているために、簡単な処理しか実現できないと考えられる。音声認識の結果が機械全体の性能に大きく影響することになってしまう。
【００４２】
これに対して、図5は、本実施形態による入力処理の方法を示す図である。入力情報が音声の場合は音声認識部501において、イメージの場合はＯＣＲ502において認識されると、その結果は解析部503において一般常識・知識に基づいて解析され、次の入力を予測したり、解析した結果をシステムのアプリケーション504に渡す。
【００４３】
特に音声操作の入力処理部分においては、従来のような音声認識を孤立させた形ではなく、他の知識と音声情報とを総合的に判断することによって音声認識を実現する方法を理想とする。音声を処理した結果をシステム全体の知識として蓄え、システムに存在する他の知識と兼ねあわせて判断し、その音声の構造ではなく、意味を認識する事が必要であると考える。つまり、矢印505、506のような処理の流れにより、解析の結果からフィードバックをかけることによって、認識結果と解析結果の処理を連動させることによって入力処理の性能を向上させたり、矢印507、508のような処理の流れにより、解析結果とシステムのアプリケーションとの処理を連動させることによって実行処理の性能を向上させたりする。このことによりシステム全体の性能が向上することになると考えられる。
【００４４】
本実施形態では、図5のような入力処理、図2のようなシステムアーキテクチャを実現し、人間の音声認識処理と同様な処理を実現する。具体的に図6は図3で示されるような実装方法で音声認識システムを構築する際のシステムの全体図を示す。
【００４５】
音声が入力されると、音声認識部601によって、予め行われた予測や、知識ベース及びコンテキストベース606の情報を基に音声認識がなされる。ここで、音声情報に対する処理のために、知識ベースは、情報の種類に関わらず処理において有効な共通知識のほかに、音声情報に関する知識を持ちあわせている。この認識結果が概念解析部602において、再び知識ベース及びコンテキストベース606におけるシステムの常識や知識を利用して、概念解析され、認識結果の意味が解析される。
【００４６】
メインアプリケーション603においては、次の音声入力を予測したり、目的に応じた処理を行ったりする。メインアプリケーション603による処理の結果、ユーザに対して応答することが必要となる場合には、応答生成部604において応答が生成され、音声で応答することが最も適切であると判断される場合には、音声合成部605において、応答が音声に変換されて出力される。これらの処理においても、システムの知識606が用いられる。
【００４７】
予測の方法には大きく分けて2種類あり、その詳細は図46に示される。予測を行う段階には2段階あり、一つは音声を認識する段階で次に入力信号を予測する方法、もう一つは音声認識エンジンが出力する結果を内部処理に用いる段階で、次に入力される結果を予測する方法である。
【００４８】
前者の方法では、これまでの入力や常識から知識ベースを用いて次に入力される単語を予測する。この予測された単語から、更に次に入力される音（音素や音節など）を予測し、音声認識率を向上させるために利用する。後者の方法においても、これまでの入力や常識から知識ベースを用いて次に入力される単語を予測し、以後の処理をスムーズに行うために使用する。
【００４９】
例えば、ドメインが文書やメールなどを送信する装置である場合には、図43に示すような、コンテキストの状態遷移が予測される。このような装置の初期予測は次のように行われる。まず、“装置を操作するために、ユーザは何らかのアクションを起こすのではないか”という一般的な知識から、動詞が入力されるのではないかという予測が成り立つ。そこで、特にこの装置が受け付けるような動詞を特にActというカテゴリとして、そのカテゴリに属する動詞の入力を予測して、装置は音声の入力を待つようにする。
【００５０】
Actカテゴリに属する動詞の入力を認識した後は、“何を”というObjectカテゴリに属する音声を予測するといった、予測カテゴリの状態遷移が起こる。ここで、Actのようなカテゴリの分類は、例えば図44、45に示される。具体的にはその装置が扱うObjectにはmailやdocumentがあるといったようなカテゴリ分けである。
【００５１】
図8は装置全体の処理の概要を示すフローチャートである。情報に関する知識を記憶する記憶する知識ベースをもとに次の認識対象を予測する。
【００５２】
まず、ステップS800においてシステムが起動すると、ステップS801において初期予測を設定する。図48は、この初期予測の設定処理手順を示すフローチャートである。初期予測では、まだ認識すべき入力がなされていないので、先の動作に基づいて後の動作を予測し、それに基づいて入力情報を予測する。
【００５３】
まず、ステップS4801において、直前のシステムの処理の状態またはユーザの指示要求内容を参照し、前の動作を取得する。システムが起動した直後のように前の動作が存在しない場合など、ステップS4802において、前の動作の取得に失敗すると、ステップS4808において、その装置における初期予測が設定される。ここでは、例えばユーザは何らかのActionを依頼するに違いないと判断し、音声認識器の認識対象コンテキストとして、動詞単語をアクティブにしたりする。
【００５４】
一方、前の動作取得に成功すると、ステップS4803において、それに関連する動作を参照する。これは、知識ベースの中の一般知識を参照することによって行われたり、この装置のドメイン知識を参照することによって行われたりする。そして、ステップS4804において、ステップS4803で参照された関連する動作の中から、次の動作として可能性の高いものを予測する。次の動作として予測できる動作があれば、ステップS4805の判定によりステップS4806へ進み、その予測された動作に関係する情報を知識ベースから取得し、その情報をもとに、ステップS4807において入力される情報を予測する。
【００５５】
ここでは、例えば、前の動作が「文書を3部印刷する」という動作であった場合には、ステップS4803において、知識ベースからは、「印刷すること」に関係する動作として、「印刷状況を知りたい」とか「もう一部印刷する」とかいった動作が参照される。続いて、ステップS4804において、前の動作が「3部印刷する」という動作であったことから、これら参照された動作の中では、「もう一部印刷する」という動作よりも、「印刷状況を知りたい」という動作の方がより起こりやすいと予測できる。さらにステップS4806において「印刷状況を知る」という動作から、ドメイン知識を参照すると、「プリンタステータス」などのキーワードのような、関連する情報を得ることが出来る。この様な得られた情報を使用して、ステップS4807において次の入力情報を予測する。
【００５６】
また、前の動作が「ジョブをすべて削除する」という動作であった場合には、ステップS4803、S4804においては次の動作を予測することに失敗し、ステップS4805の判定はNoとなり、ステップS4808において、次の入力の予測は、装置の初期予測となる。
【００５７】
図8に戻り、ステップS802において入力が取得されると、ステップS803において入力が有効であるかを判断し、有効な場合、ステップS804で、入力はどの情報として認識されるかという判断がなされる。このとき認識される情報の区分は、音声・文字・イメージなどが考えられる。ステップS804で判定された区分に従って、ステップS805において予測に基づいた認識を行う。このとき、認識対象が言語情報か非言語情報か、また言語情報であれば音節か音素かといった単位を判断して認識が実行される。
【００５８】
認識された結果は、ステップS806の結果の分析処理の中で、次の認識対象を予測するために用いられる。図９は、処理結果の分析手順を示すフローチャートである。この処理における予測（ステップS904）は、認識結果のみからではなく、認識結果の解析処理（ステップS901）、正当性判断処理（ステップS902）、結果修正処理（ステップS903）などからも予測されることが考えられる。上記ステップS901〜903の処理は、すべてが一度に行われても良いし、解析処理のみ、正当性判断処理のみ、正当性判断＋結果修正処理の組み合わせ、解析処理＋正当性判断処理の組み合わせなどで行われても良い。生成された予測により、次の認識のため予測が更新される（ステップS905）。
【００５９】
このステップS806の認識結果の分析のブロック全体において、様々な知識を参照した処理が実行される。たとえば、知識として言語知識を使用する場合には、一般的な辞書の利用が考えられる。それにより、信号波形として"flint"と認識されたとしても、結果解析処理において、"flint"という言葉は辞書にないため、"print"であると判断することが出来る。
【００６０】
ドメイン知識を使用する場合には、そのドメインがメールを送信できるアプリケーションであると想定すると、予測としては、"male"ではなく"mail"の方が相応しいと予測できる。また、一般知識（常識）を用いると、例えば、一つ前のコマンドとして印刷が実行された場合には、次の動作はプリンタのステータスを表示することかもしれないと予測できる。
【００６１】
このように知識を用いて処理を進めた後、ステップS807においてシステムが処理を実行すべきであるかを判断する。例えば、入力文の認識が終了し、認識された入力文がシステムに対する処理命令であった場合には、対応する処理を実行すべきであると判断する。実行すべきであると判断した場合には、ステップS808において、処理を実行し、ステップS809において、必要ならばユーザに対して応答を行う。ステップS807において、更に次の入力がなされると判断する場合には、次の入力に対しての予測がすでに更新されているので、ステップS802に戻り、次の入力を取得しようとする。また、一つの処理が終了すると、ステップS810において、システム自体が終了するのか、それとも継続的に使用されるのかの判断がなされ、継続的に使用される場合には、ステップS802に戻り、終了した動作に基づいて初期予測を行なう。システムが終了する場合には、ステップS812においてシステムをシャットダウンして終了する。
【００６２】
図8のような処理を行うことによって、本実施形態の音声認識システムにおいて、実際に入力された音声がどのように処理されるかというユーザの発声に対するシステム処理の流れの概要を図7に示す。
【００６３】
まず、このようなシステムでは、ユーザが何らかのアクションを起こすのではないかと推測がなされ、アクションはほとんどの場合動詞からはじまることが多いので、音声認識器に動詞が入力されることを待つ。そして、「send」が入力されると、次は何を送信するのかが入力されると推測し、送信対象となるobjectが入力されると予測する。
【００６４】
このように、音声入力を予測しながら理解していき、概念解析を行うことによって実行が可能と判断すると、実際に実行を行う。実行結果からユーザに対して何らかの応答が必要であると判断される場合には、適切な応答を生成し、文章を作成し、最も適切であると考えられる方法でユーザに出力する。最適な方法が音声合成である場合には、作成された文章は音声としてユーザに出力される。例えば、無事にメールをMayさんに送信した場合には、「I sent mail to may@xxx, Successfully!」という応答が返されたりする。
【００６５】
以下では具体的な例を用いて、本実施形態装置の処理手順を説明する。
【００６６】
ここでは、予測を利用した認識により「send mail to may」という音声が認識され、概念解析を用いた解析により対応する適切な処理が実行される例を説明する。ここで、本実施形態の装置のドメインは、電子メールを使用して、メールや文書を送信することとする。
【００６７】
まず、システムが起動すると図8のステップS801においてユーザの入力を待つための初期予測が設定される。ここでは、例えばユーザは何らかのActionを依頼するに違いないと判断し、音声認識器の認識対象コンテキストとして、動詞単語をアクティブにしたりする。次にステップS802においてユーザの入力情報が取得される。この場合、ユーザの発声を認識し、その音声情報を取得する。
【００６８】
その音声情報が音のレベルなどの基準に対して有効な入力であるかどうかをステップS803において判断し、入力が有効でない場合には有効な入力が入るまで待つ。ステップS803において有効な入力であると判断された場合には、ステップS804においてその入力のタイプが判定され、この場合は音声であることが分かる。
【００６９】
音声と判定された場合には、ステップS805の各種入力情報認識処理において、具体的に図10に示す音声認識処理がおこなわれる。まずステップS1001において音声認識が行われる。その詳細は、図11に示すように、まず音声が入力されると、ステップS1101において音声情報が処理され、その音声情報が言語情報であるか、非言語情報であるかという判断がステップS1108においてなされる。この判断は、たとえば、知識ベースとして、言語情報のDB、非言語情報のDBを持たせてもよいし、音声情報の周波数などで判断してもよい。
【００７０】
このステップS1108の判断処理の例を図12に示す。まず始めにステップS1201において、装置に設定されている、人間の音声であるかどうかを分類するための周波数の基準を取得する。その基準にしたがって、ステップS1202において入力が人間の音声であると判断される場合には、ステップS1208に進む。ここで、人間の音声の周波数に含まれていたとしても、一般的な言語音声ではないもの、たとえば笑い声や冗長語などとして、装置の知識として登録されている“特別な音声”についての情報を取得する。
【００７１】
その後ステップS1209において、現在の入力が特別な音声であるかどうかを判断し、もし、特別な音声と判断された場合には、ステップS1210においてその種類を取得し、ステップS1211において入力音声は非言語情報であることを示すFlagをセットする。ステップS1209において、人間の音声の周波数で、特別な音声でもないと判断された音声は、ステップS1212において言語情報であることを示すFlagをセットする。
【００７２】
一方、ステップS1202において、入力音声の周波数が人間の音声の周波数範囲内にない場合には、ステップS1203において入力音声は非言語情報であることを示すFlagをセットし、非言語情報のなかでも特別に処理しなければならない音声、たとえば、緊急時を示す警報音や電話音に関する情報をステップS1204において取得する。ステップS1205において、入力された音声が非言語情報の中でも特別に処理されるべきものであると判断された場合には、ステップS1206においてその音声の種類を取得してセットする。一方、非言語情報であり、特別に処理する必要のないものはステップS1207において入力音声の種類として、雑音であるとセットする。
【００７３】
以上のように判断された、その音声のタイプがステップS1102において判定される。「send mail to may」という入力の場合、音声のタイプとして言語情報と判定される。このとき、ステップS1106においてさらに言語情報の単位が判定される。
【００７４】
この言語情報の単位は、たとえばユーザの話す速さ、ピッチが早い場合には、より長い単位、音素よりも単語と判定してもよいし、単語単位の認識がそれまであまりうまく行っていないといった履歴がある場合には、その装置の音声認識がもっとも精度良く行われると判断されるならば、音素などの短い単位としてもよい。この判定は装置によって自発的に認識率が上がるように行われてもよいし、ユーザが、「単語単位で認識をして欲しい」と希望する場合には、ユーザによって、認識単位が設定されてもよい。
【００７５】
ステップS1106で、仮に単語と判定された場合には、ステップS1103において単語認識処理が行われる。この処理のフローチャートを図17に示す。ステップS1701において音声認識器を用いて単語単位で音声認識を行う。「send mail to may」という入力に対しては、音声認識器の持つ単語辞書の中から入力された音声情報に最も近い単語「send」を選び出すような方法で単語音声認識が実現される。ステップS1702では、ステップS1701における単語認識の結果「send」を、辞書単語「send」と入力音声との類似度（例えば92%の類似度など）とともに取得し、ステップS1703においてこの単語音声認識の結果を採用するかどうかの判定を行う。
【００７６】
ステップS1106で、音声のタイプが音節と判定された場合には、ステップS1104において音節認識処理が行われる。この処理のフローチャートを図18に示す。ステップS1801において音声認識器を用いて音節単位で音声認識を行う。この例では音声認識器の持つ音節辞書のなかから入力された音声情報に類似した上位N個の音節を選び出すような方法で音節音声認識が実現される。ステップS1802ではステップS1801における音節認識の結果を、類似度ととともに取得し、ステップS1803において、音節単位の認識結果からシステムが扱う単語「send」として認識される。結果として単語全体と音声入力との類似度を出力する。具体的にはステップS1901において音節単位の認識結果「se」を取得し、その結果を用いて、ステップS1902において単語を判定する。この処理の中で、単語音声認識の結果を採用するかどうかの判定も行う。
【００７７】
ステップS1106で、音声のタイプがそれ以外であった場合には、ステップS1105においてそのタイプに適した音声認識が行われる。ここでそれ以外のタイプとは、例えば、音節よりも短い単位、音素で認識することも考えられるし、単語よりも長い単位、文章などの決まりきった言い回しなども考えられる。このような入力情報を認識する単位は、あるユーザの一連の操作が終了するまでに、複数種の単位で認識が行われてもよいし、一定の単位で認識が行われてもよい。
【００７８】
このように入力情報を認識した結果をステップS1002において処理する。具体的には、最終的にユーザの入力として受け入れるかという採否を判断するための処理を上述したステップS1703、ステップS1902において行う。詳細な手順を図37に示す。まず、ステップS3701において認識結果を決定するための処理を行う。例えば音声認識の類似度に閾値を設けて採否を判定する。仮に類似度80%以上と設定した場合に、「send：類似度85」という結果が出力されているとすると、ステップS3702において採否を判定し、「send」が採用となり、ステップS3703において「send」を認識結果とすることを通知する。一方、「send:類似度70」の場合には不採用となり、ユーザの次の入力を処理するために、ステップS3704において入力音声の認識が不採用となったことを通知する。
【００７９】
図8に戻り、ステップS805の各種入力情報認識処理の後、認識結果「send」がステップS806において分析される。この処理は主として「send」の概念を解析することによって行われる。大まかな流れは図9に示されるようなものである。認識された結果はステップS904において次の認識対象を予測するために用いられる。またこの予測は、認識結果のみからではなく、ステップS901の認識結果の解析処理、ステップS902の正当性判断処理、ステップS903の結果修正処理からも予測されることが考えられる。上記の処理はすべてが一度に行われても良いし、どれか解析処理のみ、正当性判断処理のみ、正当性判断＋結果修正処理の組み合わせ、解析処理＋正当性判断処理の組み合わせで行われても良い。生成された予測はステップS905において次の認識のために更新される。
【００８０】
具体的には、図38に示すように、まずステップS3801で、認識結果「send」の認識結果カテゴリ検索を行うことによって、その単語の属性や現在アクティブとされている単語のコンテキストなどの情報を取得する。次に、ステップS3802において、例えば、図29のような言語辞書から「send」の言語知識を参照し、ステップS3803において、例えば、図30のような概念辞書から概念知識を参照し、情報を得る。ステップS3804においては、装置のドメインから、「send」という動作やその対象について参照する。ステップS3805においては、例えば図31のようなルール表を参照して、「send」という単語の出現に関するシステムのルールを参照し、ステップS3806でこれらの各知識を利用した意味解析を行う。
【００８１】
ステップS3806における意味解析の処理は、具体的には、ステップS3802〜S3805において得た「send」に関する知識を用いて、ステップS3901において概念解析を行うことによって実現される。ステップS3802において、例えば図29に示されるような言語辞書を参照し、「send」が動詞であり、次に来る言葉としては対象物であったり、装置の名前であったりするということが分かる。ステップS3803においては図30のような概念辞書を参考として、「send」が物理的な移動を意味することがわかったりする。
【００８２】
また、ステップS3805においては、「send」の対象がmailやdocumentであることがわかる。この概念解析の結果、音声認識処理によって得た「send」という結果が意味的、常識的に正しいかどうか、また、現在の入力に対する予測を満たしているかという判定をステップS3902において行う。
【００８３】
ドメインがプリンタなどである場合、「send」という動詞はおそらく、初期予測としてあげられており、結果が正しいと判断できるので、ステップS3903において、システム内部の各知識を利用して、「send」の次に来ると予測される入力を推測し、次の入力に対する予測を生成する。この場合、「send」という単語認識から、「何を送信するのか」という指定をユーザが行うだろうということが推測されるため、次の入力はObjectであるという予測が行われる。このように生成された予測をステップS3904において更新する。
【００８４】
具体的に予測の更新によって行われることは、例えば音声認識器に持たせる単語辞書を更新することであったりする。次に概念解析の結果をもとに、ステップS3905においてユーザの目的に応じたシステムの処理が決定される。この場合「send」だけでは実行することが出来ないため、ステップS807の分析結果の判定により、次の入力を待つことになる。
【００８５】
続いて、ユーザによって「mail」という音声が入力されると、同様の流れで処理が行われる。このとき、音声認識処理の結果として、“次に出現する音声はObjectすなわち名詞である”という予測から、「mail」ではなく「mall」という結果が返されたとする。ステップS3701の認識結果決定処理において、ステップS3801からステップS3805の各知識を用いたステップS3806における意味解析を行なうと、ステップS3805におけるドメインの知識を参照した結果から、「mall」はドメインの知識としてはあまり適切でないと考えられる。そこでステップS3902の判定において、結果「mall」をステップS3906における結果修正処理を行って修正する必要が出てくる。
【００８６】
そこで認識結果を再判定するために、ステップS4001の結果再判定処理が行われる。この処理は図41に示される。ステップS4210において、これまでの認識結果を再判定し、ステップS4102において結果を修正すべきときにはステップS4103において前入力予測再生成の処理をおこなう。その後ステップS4104において単語認識判定処理を行い、改めて再判定する。この場合、これまでの認識結果「send」には修正の必要がないため、修正は行わない。以前の結果は「send」のまま、ステップS4002において現入力に対する予測を再生成する。再生成された予測をステップS4003において更新し、ステップS4004において、別の知識を利用して現入力に対して再度、認識処理をおこなう。
【００８７】
ここで、ステップS4003における予測の更新とは、以前の予測に加えて、新しく生成された予測をマージする作業にあたる。このため、予測が複数生成され、候補列が膨大になるということではない。反対に、予測がより詳細になっていくため、候補は絞られていくと考えられる。例えば、システムのドメインから考えると「mall」よりも「mail」が入力される可能性が高いとの予測をステップS4003において更新し、ステップS4004において現在の認識結果を再度検討すると、「male」よりも「mail」が適切であるといった処理が行われる。
【００８８】
このように、「send mail to may」までの単語の認識が終了すると、ステップS807の分析結果判定において、実行すべきであると判定され、ステップS808において、「mayさんに、mailを送信する」というコマンドが実行される。実行時においても、システム中に存在するスケジュール帳などからmayさんのメールアドレスを参照し、適切にmailを送るといった実行がなされる。
【００８９】
実行の後、ユーザに応答が必要な場合には、ステップS809において出力の処理が行われる。具体的には、ステップS4201において、実行結果のステータスを取得し、ステップS4202において出力すべき事柄を分析する。ステップS4203では実際にユーザへの応答をシステムの知識を用いて応答を生成し、ステップS4204で実際の文章を作成する。ステップS4205では、最も適切な方法を選択し、ステップS4206で、実際に押送を出力する。
【００９０】
例えば、「mayさんにメールを送信しました」といった確認のメッセージを音声合成によって音声で出力することが考えられる。
【００９１】
＜実施形態２＞
音節辞書、単語辞書、言語辞書、概念辞書が図25、26、27、28、29、30のように与えられている場合の「send mail to may」という音声入力に対する処理の流れを示す。同時に認識におけるパラメータの設定手順についても示す。
【００９２】
単語辞書は図32のようにM個の単語が登録されており、単語はR[i]個の音節に区切られているものとする。
【００９３】
まず、システムが起動すると、図24のような画面が表示され、はじめにステップS2301において音声認識エンジンの設定パラメータ、Garbageのレベル、Reaction Time、Minimum Speech Durationなどを表示し、ステップS2302において認識結果を判定するために条件として、類似度の基準を表示する。その後、ステップS2303において現在アクティブとなっているコンテキストの内容を表示する。
【００９４】
「send mail to may」という音声入力に対して、音節認識の結果から単語を認識し、全体の音声認識を実現する方法では、まず、「send」という音声が入力され、ステップS1101において処理された音声情報がステップS1102において音節であると判定されると、ステップS1103において音節認識処理が行われる。ステップS1801において音声認識エンジンにより、音声認識が行われるとN番目までの認識結果が返される。ここで、表示の処理としてはステップS2304では音声認識エンジンによる認識結果とその類似度取得し、ステップS2305で取得した情報を順番に表示する。表示されるものは、音節単位の認識結果をその類似度である。ステップS2306においては音声認識エンジンから出力された結果について判定をおこなう。表示処理はこの判定処理を待つ。
【００９５】
判定処理では音声エンジンの認識結果をステップS1802において取得する。「send」という音声入力に対して例えば図33のような結果が得られる。この結果を用いてステップS1803において単語マッチング処理が行われる。ステップS1901において音節から単語へのマッチングが行われる。ここではこの単語マッチング方法としてDPマッチングを用いる場合について説明する。DPマッチングは図34に示すようなアルゴリズムにより、単語辞書と入力音声のマッチングを行うものである。
【００９６】
DPマッチング処理の流れは図20に示される通りである。まず、ステップS2001において取得した結果に挙げられた候補数Nとこれまでに認識した音節の数T（認識時刻）を取得する。図35の結果より、N=5、T=0である。つぎにステップS2002において、システムに登録されている単語数Mとその音節区切り情報R[i]を取得する。図36よりM=3、R[1]=2、R[2]=2、R[3]=4である。ステップS2003においてi=1としてステップS2004の判定で、i<=Mが満たされている間、以下の処理を繰り返す。まず、i=1でステップS2005においてW[1]="send"を取得する。ステップS2006においてj=1として、ステップS2007の判定においてj<R[1](=2)の間、sendを構成する音節を取得する処理を行う。ステップS2008においてs[1][1]="se"を取得する。
【００９７】
ステップS2101においてk=1として、ステップS2102の判定においてk<=N(=5)の間、s[1][1]が音節認識の結果候補として返されているかどうかを調べる。k=1のときステップS2103においてC[k]、A[k]を取得するとC[1]="nd"、A[1]=60.4である。ステップS2105における判定において、s[1][1]<>c[1]であるので、ステップS2104においてkを1増やし、次の認識結果候補を取得し、判定を行う。C[3]="se"、A[3]=38.9でステップS2105における判定がtrueとなるのでステップS2106において、s[1][1]の類似度D[1][1]=A[3]=38.9となる。ステップS2108において対象単語W[1]=sendの類似度CD[1][1]を計算する。
【００９８】
ステップS2201においてT=0であるので、図34に示す式より、ステップS2211においてP1=0、P2=2*60.4=120.8、P3=0と設定される。ステップS2212において最適パスを決定すると、この場合P2=120.8が最適であると決定される。ステップS2213において累積類似度の計算、累積パスの計算を行う。
【００９９】
この場合、最適パス=2であるので、累積類似度はCD[1][1]=120.8、累積パス=2である。つぎにステップS2109においてjを1増やしj=2にすると、ステップS2102でC[1]="nd"、A[1]=61.0を取得したとき、ステップS2105における判定がtrueとなり、上記と同様に計算を行うとCD[1][2]=122.0となる。さらにステップS2109においてjを1増やしj=3にするとステップS2007 における判定がfalseとなるため、ステップS2009においてiを1増やしi=2にする。このようにしてi=3まで求めると、CD[1][1]=120.8、CD[1][2]=122.0、CD[2][1]=107.4、CD[2][2]=41.2、CD[3][1]=58.2、CD[3][2]=0、CD[3][3]=0、CD[3][4]=0になる。ステップS2009においてi=4になるとステップS2004における判定がfalseになり、処理は終了する。続いてステップS1902において単語判定処理が行われる。
【０１００】
ここで、現在T=0における音節認識と単語マッチングの結果が判定される。今回の計算では、まだどの単語とも判定が出来ないため、次の入力を待つことになる。次の入力がなされるとステップS1102によって音声のタイプが判定される。このとき、一つ前の入力が音節で、しかもまだ単語として認識されていないことから、次に入力される音声のタイプは同じく音節であると判定される。ステップS1104において音節認識がなされ、ステップS1801において音節認識の結果が返される。この結果が図35のように返されたとする。
【０１０１】
音声認識の結果をステップS1802において取得し、ステップS1803において、単語マッチング処理がなされる。ステップS2001においてN、Tを取得すると、N=1、T=1である。T=0のときと同様にステップS2002〜S2109の処理を行う。結果として、CD[1][1]=120.8、CD[1][2]=322.0、CD[2][1]=107.4、CD[2][2]=41.2、CD[3][1]=58.2、CD[3][2]=0、CD[3][3]=0、CD[3][4]=0という計算結果が得られる。ステップS2009においてi=4になるとステップS2004における判定がfalseになり、ステップS1902単語判定処理が行われる。
【０１０２】
この結果、音声認識の結果として"send"という単語をステップS805情報認識処理の結果とする。この結果"send"の採否については、以降のステップS806処理結果の分析などを経て最終的に入力として採用する。このように、"send mail to may"という音声入力を処理し、最終的にmayさんにmailを送信し、ユーザに応答を出力して全体の処理を終了する。
【０１０３】
ここで、音節などの短い音声単位での予測の効果としては、音声認識処理で、音声単位のすべてを認識できなかった際に発揮される。例えば単語を構成する音の全てが認識されなかったとしても、各単位の生起確率と状態間の遷移確率に知識ベースを用いた予測を加えれば、より精度の高い認識を行える点があげられる。
【０１０４】
表示処理においては、ステップS2307において採用判定ステップS806の処理を待ち、認識結果"send"が採用される場合には、採用された結果をステップS2308において最終的な認識結果として出力し、次の入力に関して以上のことを繰り返す。もし、図24において、各種パラメータが変更された場合には、逐次そのパラメータを有効にして、判定を行う。
【０１０５】
＜実施形態３＞
ここでは予測を利用した認識により日本語文「芽衣さんにメールを送信して」という音声が認識され、概念解析を用いた解析により対応する適切な処理が実行される例を説明する。
【０１０６】
現在までに「芽衣さんに」という認識結果を得ており、次の音声認識の結果として、ステップS805において「めーる」という認識結果を得たとする。ここでシステムのドメインの知識から「滅入る」ではなく、「メール」という単語が予測として成り立っており、この予測から、「芽衣さんに滅入る」ではなく、「芽衣さんにメール」という認識を得ることができる。
【０１０７】
次に、予測を利用した認識により「芽衣さんにメールを送信して」という音声が認識され、概念解析を用いた解析により、認識結果に修正が行われ、対応する適切な処理が実行される例を説明する。
【０１０８】
現在までに「めいさんに」という音声の入力が行われ、単語認識の結果、「メール3に」という認識結果を得ており、次の入力音声としてObjectを予測していたとする。このときステップS805において「メール」と単語認識した場合、ステップS806の処理結果の分析において「メール3にメール」という入力の意味解析の結果、次の入力音声に対する予測生成ステップS3903が困難になる。
【０１０９】
ここで、ステップS3902において、修正が必要と判断し、ステップS3906においてこれまでの予測を振り返り、概念解析を再度行った結果、「メール3」ではなく、「芽衣さん」という送信相手が入力されることが適切であると判断し、これまでの認識結果を「芽衣さんにメール」と修正して、ステップS3903において予測を生成し、ステップS3905において。予測を更新する。
【０１１０】
このようにして「芽衣さんにメールを送信して」という音声入力を受け付け、その指示を適切に実行することが可能となる。このように、言語情報は辞書として与えられており、概念解析は言語に依存しないため、日本語、英語などの言語相違は概念解析を用いた音声認識には影響を与えることはない。
【０１１１】
＜実施形態４＞
音声情報として電話音が入力・認識され、概念解析を用いた解析により対応する適切な処理が実行される例を説明する。
【０１１２】
この場合、ステップS1101において音声情報が処理され、ステップS1102においてその音声のタイプが非言語情報であると判断される。ステップS1107において非言語情報に対する認識が行われる。具体的には図13に示すような処理が行われる。図13は非言語情報の認識における処理の流れを示すフローチャートである。
【０１１３】
非言語音声としては電話音、警報音、笑い声などが考えられる。電話音の場合には、周りに人がいない時、または電話音が一定時間以上なり続けている時にはシステム装置が代わりに電話に出て伝言を受け取るという、電話応答処理を行う。警報音を認識した場合には、緊急処理として、システムを正常に終了するといった処理が考えられる。また、笑い声や第三者の声などを認識した場合には、雑音として処理し、システムに影響を与えないようにすることが考えられる。
【０１１４】
この例では、入力音は電話音声であるので、ステップS1301において、非言語情報の種類は電話の音と判断され、ステップS1302の電話応答処理に進む。具体的な処理は図14に示される。ここで、電話が鳴っているので、現在合成音が生成されている場合には、ステップS1401において、ユーザが電話が鳴っていることに気づけるように、合成音声を中止または音量を小さくする。それでもステップS1402において、ユーザが電話に応答していない場合には、ステップS1403に進み、電話が鳴っていることを表示などによりユーザに通知する。ステップS1404において、それでもなお応答がない場合は、ユーザが不在であると判断し、ステップS1405において、ユーザの代わりにシステムが応答するべきだと判断される。
【０１１５】
また、入力音が電話音声であったことに基づいて、システムは、電話に対するユーザの行動の知識等から、例えば、誰かに連絡を取る、スケジュールを変更するといったユーザの次の行動を予測し、それに伴うユーザからの新たな入力、例えば、アドレス帳やスケジュールの表示要求などを予測するようにしてもよい。
【０１１６】
更に、電話によりユーザからの入力が中断された場合には、中断された入力の中止や変更を予測してもよいし、その後電話が終ったことを認識して、再開を予測してもよい。
【０１１７】
＜実施形態５＞
音声情報として警報器の音が入力・認識され、概念解析を用いた解析により対応する適切な処理が実行される例を説明する。
【０１１８】
この場合、図11のステップS1101において、音声情報が処理され、ステップS1102において、その音声のタイプが非言語情報であると判断される。そして、ステップS1107において、非言語情報に対する認識が行われる。ステップS1301において非言語情報の種類は警報器の音であり、ステップS1303の緊急処理に進む。
【０１１９】
具体的には、図15に示されるような処理が行われる。ステップS1501において緊急時の通知をユーザに対して行い、ステップS1502においてユーザがシャットダウンを実行した場合には処理はそこで終了する。それでもシャットダウンしない場合には、緊急にシステムの保護、シャットダウンを行う必要があると判断される。ステップS1503においてシャットダウンすることをユーザに通知し、ステップS1504においてユーザが新たな処理を実行した場合には、ステップS1505においてユーザの処理を待って、ステップS1506においてユーザがシャットダウンした場合には、そのまま終了する。それでもシャットダウンしない場合、またはステップS1504において新たにユーザが処理を行わないと判定された場合には、ステップS1507において装置自身が正常終了する。
【０１２０】
また、上述の場合も、入力音が警報器の音声であったことに基づいて、システムは、ユーザからの次の入力を、例えば、シャットダウンやデータのセーブなどに関連すると予測しながら処理するようにしてもよい。
【０１２１】
なお、上述した電話や警報器に限らず、非言語情報がチャイムやブザー、メロディーなどの場合にも、それぞれの種類に対応した処理を実行するようにしてもよい。
【０１２２】
＜実施形態６＞
音声情報として笑い声が入力・認識され、概念解析を用いた解析により対応する適切な処理が実行される例を説明する。
【０１２３】
この場合、ステップS1101において音声情報が処理され、ステップS1102においてその音声のタイプが非言語情報であると判断される。ステップS1107において非言語情報に対する認識が行われる。ステップS1301において非言語情報の種類は笑い声であり、ステップS1304雑音処理に進む。
【０１２４】
ステップS1601においてユーザBの発声のレベルを確認し、そのレベルが大きい場合には、ステップS1602において応答方法を調整する。この結果、ステップS1603において、調整した応答方法が音声合成と判断される場合には、ステップS1604において、合成音を大きくして出力し直す必要性があると考えられる。また、応答方法が音声合成でない場合には、ステップS1603において、最適な方法で再応答するべきであると考えられる。ステップS1603の判定において再応答が必要であるとされた場合には、ステップS1605において、再度最適な方法でユーザに応答する。再応答が必要でないとされていない場合には、何もしない。
【０１２５】
＜実施形態７＞
図46における予測においては、次の入力として、出現する可能性の高い情報だけでなく、出現する可能性がほとんどない情報も予測を行う。
【０１２６】
例えば、入力情報として、全く同じ情報は続けて出現しないという事実などを予測として使用することによって、情報の認識の性能が上がる。。
【０１２７】
尚、本発明は、単一の機器からなる装置に適用しても、複数の機器から構成されるシステムに適用してもよい。また、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、装置あるいはシステムに供給し、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって達成してもよい。
【０１２８】
更に、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって、上述した実施形態の機能を直接実現するばかりでなく、そのプログラムコードの指示に基づいて、コンピュータ上で稼動しているＯＳなどの処理により、上述の機能を実現される場合も含まれる。
【０１２９】
これらの場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１３０】
【発明の効果】
以上説明したように、本発明によれば、音声認識対象を予測して認識するようにしたので、認識の精度を高めることができるという効果がある。
【図面の簡単な説明】
【図１】自然言語処理装置の1実施形態のハードウェア構成を示す図である。
【図２】システムアーキテクチャを示す図である。
【図３】音声認識における実装の形態を示す図である。
【図４】発声された音声に対する人間の理解を示す図である。
【図５】入力処理を示す図である。
【図６】システムの構成を示す図である。
【図７】システムの処理の概要を示す図である。
【図８】全体の処理の流れを示すフローチャートである。
【図９】処理結果の分析の流れ概要を示すフローチャートである。
【図１０】認識処理に予測情報を反映させる処理手順を示すフローチャートである。
【図１１】音声認識における処理の流れを示すフローチャートである。
【図１２】入力音声の音声タイプ判断処理の流れを示すフローチャートである。
【図１３】非言語情報の認識における処理の流れを示すフローチャートである。
【図１４】電話音声応答処理の流れを示すフローチャートである。
【図１５】警報機音声応答処理の流れを示すフローチャートである。
【図１６】雑音処理の流れを示すフローチャートである。
【図１７】単語認識処理の処理の流れを示すフローチャートである。
【図１８】音節認識処理の処理の流れを示すフローチャートである。
【図１９】音節単位の認識結果とシステムの単語とのマッチング処理の流れを示すフローチャートである。
【図２０】音節単位の類似度を調べる処理の流れを示すフローチャートである。
【図２１】音節単位の類似度を調べる処理の流れを示すフローチャートである。
【図２２】音節単位の類似度と時刻を用いて対象辞書単語の類似度を計算する処理の流れを示すフローチャートである。
【図２３】各種表示処理の流れを示すフローチャートである。
【図２４】各種パラメータ設定・結果表示画面を示す図である。
【図２５】音節辞書の例(English) を示す図である。
【図２６】単語辞書の例(English) を示す図である。
【図２７】音節辞書の例(Japanese) を示す図である。
【図２８】単語辞書の例(Japanese) を示す図である。
【図２９】言語辞書の例を示す図である。
【図３０】概念辞書の例を示す図である。
【図３１】ルールの例を示す図である。
【図３２】単語辞書の例（配列記号の例）を示す図である。
【図３３】音節認識結果の例（配列記号の例）を示す図である。
【図３４】  DPマッチングアルゴリズムを説明する図である。
【図３５】単語辞書の例を示す図である。
【図３６】音節認識結果の例を示す図である。
【図３７】認識結果決定処理と認識結果採用判定の処理の流れを示すフローチャートである。
【図３８】結果分析処理の流れを示すフローチャートである。
【図３９】概念解析と概念解析の結果判定の処理の流れを示すフローチャートである。
【図４０】結果の修正処理の流れを示すフローチャートである。
【図４１】以前の認識結果の再判定処理の流れを示すフローチャートである。
【図４２】ユーザへの応答生成処理の流れを示すフローチャートである。
【図４３】次入力予測のためのコンテキストの状態遷移図である。
【図４４】単語のカテゴリ分けを示す図である。
【図４５】単語のカテゴリ分けを示す図である。
【図４６】二つの予測の方法を示す図である。
【図４７】従来の入力処理を示す図である。
【図４８】予測設定処理の流れを示すフローチャートである。
【図１】
0004438028.tif 000002
【図２】
0004438028.tif 000003
【図３】
0004438028.tif 000004
【図４】
0004438028.tif 000005
【図５】
0004438028.tif 000006
【図６】
0004438028.tif 000007
【図７】
0004438028.tif 000008
【図８】
0004438028.tif 000009
【図９】
0004438028.tif 000010
【図１０】
0004438028.tif 000011
【図１１】
0004438028.tif 000012
【図１２】
0004438028.tif 000013
【図１３】
0004438028.tif 000014
【図１４】
0004438028.tif 000015
【図１５】
0004438028.tif 000016
【図１６】
0004438028.tif 000017
【図１７】
0004438028.tif 000018
【図１８】
0004438028.tif 000019
【図１９】
0004438028.tif 000020
【図２０】
0004438028.tif 000021
【図２１】
0004438028.tif 000022
【図２２】
0004438028.tif 000023
【図２３】
0004438028.tif 000024
【図２４】
0004438028.tif 000025
【図２５】
0004438028.tif 000026
【図２６】
0004438028.tif 000027
【図２７】
0004438028.tif 000028
【図２８】
0004438028.tif 000029
【図２９】
0004438028.tif 000030
【図３０】
0004438028.tif 000031
【図３１】
0004438028.tif 000032
【図３２】
0004438028.tif 000033
【図３３】
0004438028.tif 000034
【図３４】
0004438028.tif 000035
【図３５】
0004438028.tif 000036
【図３６】
0004438028.tif 000037
【図３７】
0004438028.tif 000038
【図３８】
0004438028.tif 000039
【図３９】
0004438028.tif 000040
【図４０】
0004438028.tif 000041
【図４１】
0004438028.tif 000042
【図４２】
0004438028.tif 000043
【図４３】
0004438028.tif 000044
【図４４】
0004438028.tif 000045
【図４５】
0004438028.tif 000046
【図４６】
0004438028.tif 000047
【図４７】
0004438028.tif 000048
【図４８】
0004438028.tif 000049