(57)【要約】【課題】音声認識の精度の低下を防ぎながら、処理をより高速化する。【解決手段】  単語予備選択部５６において、音声認識結果の候補となる単語列の、既に求まっている単語に続く、１以上の単語が選択され、単語候補クラスタリング部５７において、候補となる単語が同音語ごとに分類され、マッチング部５８において、その分類された単語候補セットのうち、スコアの初期値が１番高い単語候補について、音響スコアが計算されて、その音響スコアにより、同一の単語候補セットに含まれている他の単語候補の音響スコアが代用される。その後、再評価部５９において、音声認識結果の候補となる単語列の単語どうしの単語接続関係が、逐次修正される。本発明は、例えば、音声対話システムに適用することができる。【選択図】図５
2005134442.tif 000002
【特許請求の範囲】
【請求項１】
入力された音声に対応する単語列を決定する音声認識装置において、
前記単語列のうち、既に求められている単語に続く１以上の単語の候補を、同一の属性を有する前記単語毎に分類した単語群毎に、処理の一部を共有化してマッチング処理するマッチング処理実行手段と、
前記マッチング処理実行手段によるマッチング処理の結果に基づいて生成された、音声認識結果の候補となる前記単語列の単語どうしの接続関係を示す単語接続関係情報を修正する修正手段と
を備えることを特徴とする音声認識装置。
【請求項２】
前記単語列のうち、既に求められている前記単語に続く１以上の前記単語の候補を、同一の前記属性を有する前記単語毎に前記単語群として分類する分類手段をさらに備え、
前記マッチング処理実行手段は、前記分類手段により分類された前記単語群毎に、前記処理の一部を共有化する
ことを特徴とする請求項１に記載の音声認識装置。
【請求項３】
前記単語列のうち、既に求められている前記単語に続く１以上の前記単語の候補を選択する選択手段をさらに備え、
前記分類手段は、前記選択手段により選択された１以上の前記単語の候補を、同一の前記属性を有する前記単語毎に前記単語群として分類する
ことを特徴とする請求項２に記載の音声認識装置。
【請求項４】
既に求められている前記単語に続く１以上の前記単語の候補は、同一の発音を有する前記単語毎に、前記単語群に分類される
ことを特徴とする請求項１に記載の音声認識装置。
【請求項５】
既に求められている前記単語に続く１以上の前記単語の候補は、音響的に類似した前記単語毎に、前記単語群に分類される
ことを特徴とする請求項１に記載の音声認識装置。
【請求項６】
前記マッチング処理実行手段による前記マッチング処理の結果に基づいて生成された前記単語接続関係情報を記憶する記憶手段をさらに備え、
前記修正手段は、前記記憶手段により記憶された前記単語接続関係情報を修正する
ことを特徴とする請求項１に記載の音声認識装置。
【請求項７】
前記修正手段により、前記単語接続関係情報を修正するために、部分的な単語列の音響的なスコアを計算するための状態遷移モデルが構築された場合、構築された前記状態遷移モデルを記憶する記憶手段をさらに備え、
前記修正手段は、同一の前記部分的な単語列の前記音響的なスコアを再度計算する場合、前記記憶手段により記憶された前記状態遷移モデルを利用する
ことを特徴とする請求項１に記載の音声認識装置。
【請求項８】
前記マッチング処理実行手段により、単語の音響的なスコアを計算するための状態遷移モデルが構築された場合、構築された前記状態遷移モデルを記憶する記憶手段をさらに備え、
前記マッチング処理実行手段は、同一の前記単語の前記音響的なスコアを再度計算する場合、前記記憶手段により記憶された前記状態遷移モデルを利用する
ことを特徴とする請求項１に記載の音声認識装置。
【請求項９】
前記マッチング処理実行手段により算出された、前記マッチング処理の途中経過としての値を記憶する記憶手段をさらに備え、
前記マッチング処理実行手段は、前記記憶手段により記憶された前記途中経過としての値を利用して、前記音声認識結果の候補となる複数の前記単語列の前記マッチング処理を交互に実行する
ことを特徴とする請求項１に記載の音声認識装置。
【請求項１０】
入力された音声に対応する単語列を決定する音声認識装置の音声認識方法において、
前記単語列のうち、既に求められている単語に続く１以上の単語の候補を、同一の属性を有する前記単語毎に分類した単語群毎に、処理の一部を共有化してマッチング処理するマッチング処理実行ステップと、
前記マッチング処理実行ステップの処理によるマッチング処理の結果に基づいて生成された、音声認識結果の候補となる単語列の単語どうしの接続関係を示す単語接続関係情報を修正する修正ステップと
を含むことを特徴とする音声認識方法。
【請求項１１】
入力された音声に対応する単語列を決定する音声認識装置用のプログラムであって、
前記単語列のうち、既に求められている単語に続く１以上の単語の候補を、同一の属性を有する前記単語毎に分類した単語群毎に、処理の一部を共有化してマッチング処理するマッチング処理実行ステップと、
前記マッチング処理実行ステップの処理によるマッチング処理の結果に基づいて生成された、音声認識結果の候補となる前記単語列の単語どうしの接続関係を示す単語接続関係情報を修正する修正ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１２】
入力された音声に対応する単語列を決定する処理を制御するコンピュータに、
前記単語列のうち、既に求められている単語に続く１以上の単語の候補を、同一の属性を有する前記単語毎に分類した単語群毎に、処理の一部を共有化してマッチング処理するマッチング処理実行ステップと、
前記マッチング処理実行ステップの処理によるマッチング処理の結果に基づいて生成された、音声認識結果の候補となる前記単語列の単語どうしの接続関係を示す単語接続関係情報を修正する修正ステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声認識装置および方法、記録媒体、並びにプログラムに関し、特に、音声認識の精度の低下を防ぎつつ、処理を高速化することができるようにした音声認識装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
近年、音声認識を応用した製品やサービスの実用化が盛んに行なわれるようになってきた。
【０００３】
音声認識とは、入力音声信号に対応した単語の系列を自動的に決定する技術のことであり、この技術とアプリケーションを組み合わせることで、様々な製品やサービスが可能となる。
【０００４】
音声認識装置の基本構成例を図１に示す。図１において、ユーザによって発声された音声は、マイク（マイクロフォン）１により取り込まれ、AD（Analog to Digital）変換部２によりサンプリングされ、デジタルデータに変換される。特徴抽出部３は、AD変換部２から出力されたデジタルデータに対して、適当な時間間隔で周波数分析等の処理を施し、スペクトルや、その他の音声の音響的特徴を表すパラメータに変換する。この結果、音声の特徴量の時系列が得られることになる。このパラメータは、特徴抽出部３からマッチング部４に送信される。マッチング部４は、音響モデルデータベース（DB）５、辞書データベース（DB）６、および文法データベース（DB）７に保持されている各データを利用して、特徴抽出部３から供給された特徴量系列とのマッチングを行ない、音声認識結果を出力する。
【０００５】
音響モデルデータベース５は、対象となる言語において用いられる個々の音素や音節などの音響的な特徴を保持するモデルで、隠れマルコフモデル（HMM）などが用いられる。辞書データベース６は、認識対象となる個々の単語の発音に関する情報を保持するものであり、これにより、単語と上述の音響モデルが関連付けられる。その結果、辞書データベース６に含まれる各単語に対応する音響的な標準パターンが得られることになる。文法データベース７は、辞書データベース６に記述されている個々の単語がどのように連鎖し得るかを記述するもので、正規文法や文脈自由文法に基づく記述や、統計的な単語連鎖確率を含む文法(N-gram)などが用いられる。
【０００６】
マッチング部４では、これらの音響モデルデータベース５、辞書データベース６、および文法データベース７を用いて、特徴抽出部３から入力された特徴量系列と最も適合する単語系列の決定がなされる。例えば音響モデルとして隠れマルコフモデル（HMM）が用いられる場合には、各特徴量の出現確率を特徴量系列に従って累積した値が音響的な評価値（以下、音響スコアと称する）として用いられる。音響スコアは、上述の標準パターンを用いることで、各単語に対応して求められる。
【０００７】
また、例えば文法としてバイグラムが用いられる場合には、直前の単語との連鎖確率に基づく各単語の言語的な確からしさが数値化され、その値が言語的評価値（以下、言語スコアと称する）として与えられる。
【０００８】
そして、音響スコアと言語スコアを総合して評価することにより、入力音声信号に最も適合する単語系列が決定されることになる。
【０００９】
例として、ユーザが、「今日はいい天気ですね。」と発声した場合を考える。この場合、例えば、「今日」、「は」、「いい」、「天気」、「ですね」のような単語の系列が認識結果として得られることになる。この際、各単語に対して、音響スコアおよび言語スコアが与えられることになる。
【００１０】
このような音声認識の処理を行なう様々な方法が提案されているが、一般的に、音声認識処理は、多くの計算量と記憶容量を必要とし、音声認識処理を高速化するためには、より高速な計算処理能力と容量の大きなメモリ（記憶手段）を備える装置が要求される。そこで、音声認識処理に要する計算量や記憶容量を低く抑えつつ、音声認識処理を高速化する技術が提案されている。
【００１１】
例えば、本出願人は、音声認識結果として既に求まっている単語に続く次の単語の候補を、予備選択を行うことにより絞り込み、単語予備選択により絞り込まれた単語候補についてマッチング処理を実行して、音声認識結果の候補となる単語列を特定し、その後、音声認識結果の候補となる単語列の単語どうしの単語接続関係を修正し、修正後の単語接続関係に基づいて、音声認識結果となる単語列を確定することにより、入力音声に対応する単語列仮説を逐次的に決定する方式を提案している（例えば、特許文献１参照）。この方式により、より効率的に音声認識処理を実行することができる。
【００１２】
また、音声認識の処理を高速化する方法の１つとして、バンドルサーチ法が提案されている（例えば、非特許文献１参照）。図２を参照して、非特許文献1に提案されているバンドルサーチ法の概略を説明する。図２において、Ａ、Ｂ、およびＣは単語候補を表している。なお、図２において、○印はノードを表し、○印どうしを結ぶ線分はアークを表している。また、図２においては、左から右方向が、時間の経過を表している。
【００１３】
また、単語Ａまでの累積スコアをスコアＳ１とし、単語Ｂまでの累積スコアをスコアＳ２とする。
【００１４】
図２の例の場合、同一の単語Ｃが文法上の異なる位置に出現している。すなわち、単語Ｃは、単語Ａの次の位置にも出現し、単語Ｂの次の位置にも出現している。また、ノード２およびノード４は、同一の時刻ｔ１に位置している。
【００１５】
バンドルサーチ法を用いない従来の音声認識処理においては、単語Ａに続く単語Ｃのスコア、および単語Ｂに続く単語Ｃのスコアを、それぞれ独立に算出していた。それに対して、バンドルサーチ法を用いた音声認識処理においては、例えば、スコアＳ１を初期値としてマッチング処理を行なうことにより単語Ａに続く単語ＣのスコアＳ２を算出した場合、スコアの差（△＝Ｓ２−Ｓ１）を用いて、単語Ｂに続く単語ＣのスコアＴ２を、Ｔ２＝Ｔ１＋△として推定することにより、同一の単語候補Ｃに対するマッチング処理を１回で済ましている。これにより、単語Ｂに続く単語Ｃの本来のスコア計算を省略することができ、結果的に、音声認識処理の高速化を図っている。
【００１６】
このように、バンドルサーチ法においては、フレーム同期型のマッチング処理に基づく音声認識処理を対象とし、文法上において異なる位置にある単語とのマッチング処理が別々に行なわれるという問題に対して、同じ単語に対するマッチング処理を１回とする対策をとっている。
【特許文献１】特開２００１−２４２８８４号公報
【非特許文献１】「バンドルサーチ法を用いた連続音声認識の高速化」電子情報通信学会論文誌、1992年11月発行、 D-22, Vol.J75-D-II,No.11, pp.1761-1769
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、音声認識処理に要する計算量や記憶容量を低く抑えつつ、音声認識処理を高速化しようとする従来の技術では、音声認識の精度を低下させずに、処理速度を高速化するのが困難であるという課題があった。
【００１８】
例えば、特許文献１に記載の方式においては、単語予備選択によって決定されるすべての単語候補に対して後続するマッチング処理が施されるため、マッチングの処理量が比較的大きなものになるという課題があった。また、マッチング処理で決定される音響スコアや言語スコアが直前の単語などに依存する場合、厳密にマッチング処理を行なうためには、同じ時刻を開始点とするマッチング処理に関して、直前の単語の種類の数だけマッチングの処理を行なう必要があり、これもマッチングの処理量を大きくする要因となっていた。
【００１９】
例えば、「窓を開ける」という音声を認識する場合の単語接続関係情報の例を図３および図４に示す。なお、図３および図４において、○印はノードを表し、○印どうしを結ぶ線分はアークを表している。また、図３および図４においては、左から右方向が、時間の経過を表している。図３において、入力音声に対するマッチング処理が時刻t１まで進み、ノード１、ノード２、およびノード３を介する単語列部分仮説「窓を」、並びにノード１およびノード４を介する単語列部分仮説「ドア」が求まっているものとする。ここで、単語予備選択の処理により、時刻t１を開始点とする４つの単語候補「開ける」、「空ける」、「明ける」、および「閉める」が求まったとする。図４は、このときの単語接続関係情報を示している。図４に示されるように、単語候補「開ける」、「空ける」、「明ける」、および「閉める」の各単語に対するマッチング処理が行われることになり４回のマッチング処理が必要となる。
【００２０】
すなわち、図４において、単語列部分仮説「窓を」の終端のノード３から、ノード５乃至ノード８のそれぞれに対してアークが延ばされている。ノード３からノード５に延びたアークは単語候補「開ける」に対応し、ノード３からノード６に延びたアークは単語候補「明ける」に対応し、ノード３からノード７に延びたアークは単語候補「空ける」に対応し、ノード３からノード８に延びたアークは単語候補「閉める」に対応している。この４つの単語候補に対して、それぞれマッチング処理が実行され、それぞれのスコアが求められる。
【００２１】
また、前に接続する単語に依存する音響モデル（例：クロスワードトライフォン）や言語モデル（バイグラム）を適用する場合、前に接続する２つの単語列部分仮説「窓を」と「ドア」のそれぞれに対して、マッチング処理を行なう必要がある。従って、図４に示されるように、単語列部分仮説「窓を」に対するマッチング処理とは別に、単語列部分仮説「ドア」においても、同一の単語候補に対してマッチング処理を実行する必要がある。
【００２２】
すなわち、図４において、単語列部分仮説「ドア」の終端のノード４から、ノード９乃至ノード１２のそれぞれに対してアークが延ばされている。ノード４からノード９に延びたアークは単語候補「開ける」に対応し、ノード４からノード１０に延びたアークは単語候補「明ける」に対応し、ノード４からノード１１に延びたアークは単語候補「空ける」に対応し、ノード４からノード１２に延びたアークは単語候補「閉める」に対応している。この４つの単語候補に対して、それぞれマッチング処理が実行され、それぞれのスコアが求められる。
【００２３】
結果的に、単語候補数（図４の場合、「開ける」、「空ける」、「明ける」、および「閉める」の４つ）に、直前の単語列部分仮説数（図４の場合、「窓を」および「ドア」の２つ）を掛け算した回数（図４の場合、４×２＝８回）だけ、マッチング処理を実行する必要があり、計算量が増大する。
【００２４】
一方、非特許文献１に記載のバンドルサーチ法においては、マッチング処理が厳密な動的計画法に基づく処理とならないという課題があった。すなわち、例えば図２において、着目する同じ単語Ｃに関するマッチング処理を、動的計画法に基づいてクロスワードトライフォンを用いて行なった場合、同じ単語であっても、文法上において前に接続する単語（単語Ａ、および単語Ｂ）に応じ、着目する単語Ｃの音響モデルが変化する。すなわち、図２において単語Ａに続く場合の単語Ｃの音響モデルと、単語Ｂに続く場合の単語Ｃの音響モデルは異なるものとなる。
【００２５】
しかし、バンドルサーチ法による上述したスコアの推定方法を適用すると、単語Ｂに続く単語Ｃの音響モデルは、実質的に、単語Ａに続く単語Ｃの音響モデルで代用することになる。従って、正確な音響スコアを求めることができない。さらに、着目する同じ単語Ｃに関するマッチング処理を動的計画法に基づいて行なった場合、着目する単語Ｃへの遷移時刻が変化するが、バンドルサーチ法によるスコアの推定方法を適用すると、着目する単語Ｃへの遷移時刻ｔ１は、同じ単語どうしで固定されることになってしまうという問題がある。
【００２６】
バンドルサーチ法においては、結果的に、スコアの推定値Ｔ２＝Ｔ１＋△は、厳密なスコア値とは異なったものとなる場合が生じる。これは、認識精度の劣化を引き起こす原因となる。
【課題を解決するための手段】
【００２７】
本発明の音声認識装置は、単語列のうち、既に求められている単語に続く１以上の単語の候補を、同一の属性を有する単語毎に分類した単語群毎に、処理の一部を共有化してマッチング処理するマッチング処理実行手段と、マッチング処理実行手段によるマッチング処理の結果に基づいて生成された、音声認識結果の候補となる単語列の単語どうしの接続関係を示す単語接続関係情報を修正する修正手段とを備えることを特徴とする。
【００２８】
前記単語列のうち、既に求められている前記単語に続く１以上の前記単語の候補を、同一の前記属性を有する前記単語毎に前記単語群として分類する分類手段をさらに設けるようにし、前記マッチング処理実行手段には、分類手段により分類された前記単語群毎に、前記処理の一部を共有化するようにさせることができる。
【００２９】
前記単語列のうち、既に求められている前記単語に続く１以上の前記単語の候補を選択する選択手段をさらに設けるようにし、前記分類手段には、選択手段により選択された１以上の前記単語の候補を、同一の前記属性を有する前記単語毎に前記単語群として分類するようにさせることができる。
【００３０】
既に求められている前記単語に続く１以上の前記単語の候補は、同一の発音を有する前記単語毎に、前記単語群に分類されるようにすることができる。
【００３１】
既に求められている前記単語に続く１以上の前記単語の候補は、音響的に類似した前記単語毎に、前記単語群に分類されるようにすることができる。
【００３２】
前記マッチング処理実行手段による前記マッチング処理の結果に基づいて生成された前記単語接続関係情報を記憶する記憶手段をさらに設けるようにし、前記修正手段には、記憶手段により記憶された前記単語接続関係情報を修正するようにさせることができる。
【００３３】
前記修正手段により、前記単語接続関係情報を修正するために、部分的な単語列の音響的なスコアを計算するための状態遷移モデルが構築された場合、構築された状態遷移モデルを記憶する記憶手段をさらに設けるようにし、前記修正手段には、同一の部分的な単語列の音響的なスコアを再度計算する場合、記憶手段により記憶された状態遷移モデルを利用するようにさせることができる。
【００３４】
前記マッチング処理実行手段により、単語の音響的なスコアを計算するための状態遷移モデルが構築された場合、構築された前記状態遷移モデルを記憶する記憶手段をさらに設けるようにし、前記マッチング処理実行手段には、同一の前記単語の音響的なスコアを再度計算する場合、記憶手段により記憶された状態遷移モデルを利用するようにさせることができる。
【００３５】
前記マッチング処理実行手段により算出された、前記マッチング処理の途中経過としての値を記憶する記憶手段をさらに設けるようにし、前記マッチング処理実行手段には、記憶手段により記憶された途中経過としての値を利用して、前記音声認識結果の候補となる複数の前記単語列の前記マッチング処理を交互に実行するようにさせることができる。
【００３６】
本発明の音声認識方法は、単語列のうち、既に求められている単語に続く１以上の単語の候補を、同一の属性を有する単語毎に分類した単語群毎に、処理の一部を共有化してマッチング処理するマッチング処理実行ステップと、マッチング処理実行ステップの処理によるマッチング処理の結果に基づいて生成された、音声認識結果の候補となる単語列の単語どうしの接続関係を示す単語接続関係情報を修正する修正ステップとを含むことを特徴とする。
【００３７】
本発明の記録媒体のプログラムは、単語列のうち、既に求められている単語に続く１以上の単語の候補を、同一の属性を有する単語毎に分類した単語群毎に、処理の一部を共有化してマッチング処理するマッチング処理実行ステップと、マッチング処理実行ステップの処理によるマッチング処理の結果に基づいて生成された、音声認識結果の候補となる単語列の単語どうしの接続関係を示す単語接続関係情報を修正する修正ステップとを含むことを特徴とする。
【００３８】
本発明のプログラムは、入力された音声に対応する単語列を決定する処理を制御するコンピュータに、単語列のうち、既に求められている単語に続く１以上の単語の候補を、同一の属性を有する単語毎に分類した単語群毎に、処理の一部を共有化してマッチング処理するマッチング処理実行ステップと、マッチング処理実行ステップの処理によるマッチング処理の結果に基づいて生成された、音声認識結果の候補となる単語列の単語どうしの接続関係を示す単語接続関係情報を修正する修正ステップとを実行させることを特徴とする。
【００３９】
本発明の音声認識装置および方法、記録媒体、並びにプログラムにおいては、単語列のうち、既に求められている単語に続く１以上の単語の候補が、同一の属性を有する単語毎に分類した単語群毎に、処理の一部を共有化してマッチング処理され、マッチング処理の結果に基づいて生成された、音声認識結果の候補となる単語列の単語どうしの接続関係を示す単語接続関係情報が修正される。
【００４０】
本発明は、例えば、音声によってデータベースの検索を行なう場合や、各種の機器の操作を行なう場合、各機器へのデータ入力を行なう場合、音声対話システム等に適用可能である。より具体的には、例えば、音声による地名の問合せに対して、対応する地図情報を表示するデータベース検索装置や、音声による命令に対して、荷物の仕分けを行なう産業用ロボット、キーボードの代わりに音声入力によりテキスト作成を行なうディクテーションシステム、ユーザとの会話を行なうロボットにおける対話システム等に適用可能である。
【発明の効果】
【００４１】
本発明によれば、音声認識処理を実行することができる。特に、処理に要する計算量や記憶容量の増大を抑え、かつ、音声認識の精度を保ちながら、音声認識処理を高速化することが可能となる。
【発明を実施するための最良の形態】
【００４２】
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００４３】
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加されたりする発明の存在を否定するものではない。
【００４４】
本発明によれば、音声認識装置が提供される。この音声認識装置は、単語列のうち、既に求められている単語に続く１以上の単語の候補（例えば、「開ける」、「明ける」、「空ける」、および「閉める」）を、同一の属性（例えば、同音語）を有する単語毎に分類した単語群（例えば、「あける」および「しめる」）毎に、処理の一部（例えば、音響スコアの計算）を共有化してマッチング処理するマッチング処理実行手段（例えば、図５のマッチング部５８）と、マッチング処理実行手段によるマッチング処理の結果に基づいて生成された、音声認識結果の候補となる単語列の単語どうしの接続関係を示す単語接続関係情報を修正する修正手段（例えば、図５の再評価部５９）とを備える。
【００４５】
本発明によれば、音声認識装置が提供される。この音声認識装置では、前記単語列のうち、既に求められている前記単語に続く１以上の前記単語の候補を、同一の前記属性を有する前記単語毎に前記単語群として分類する分類手段（例えば、図５の単語候補クラスタリング部５７）をさらに設けるようにし、前記マッチング処理実行手段には、分類手段により分類された前記単語群毎に、前記処理の一部を共有化するようにさせることができる。
【００４６】
本発明によれば、音声認識装置が提供される。この音声認識装置では、前記単語列のうち、既に求められている前記単語に続く１以上の前記単語の候補を選択する選択手段（例えば、図５の単語予備選択部５６）をさらに設けるようにし、前記分類手段には、選択手段により選択された１以上の前記単語の候補を、同一の前記属性を有する前記単語毎に前記単語群として分類するようにさせることができる。
【００４７】
本発明によれば、音声認識装置が提供される。この音声認識装置では、既に求められている前記単語に続く１以上の前記単語の候補は、同一の発音を有する前記単語毎に、前記単語群に分類されるようにすることができる。
【００４８】
本発明によれば、音声認識装置が提供される。この音声認識装置では、既に求められている前記単語に続く１以上の前記単語の候補は、音響的に類似した前記単語毎に、前記単語群に分類されるようにすることができる。
【００４９】
本発明によれば、音声認識装置が提供される。この音声認識装置では、前記マッチング処理実行手段による前記マッチング処理の結果に基づいて生成された前記単語接続関係情報を記憶する記憶手段（例えば、図５の単語接続関係記憶部６０）をさらに設けるようにし、前記修正手段には、記憶手段により記憶された前記単語接続関係情報を修正するようにさせることができる。
【００５０】
本発明によれば、音声認識装置が提供される。この音声認識装置では、前記修正手段により、前記単語接続関係情報を修正するために、部分的な単語列の音響的なスコアを計算するための状態遷移モデルが構築された場合、構築された状態遷移モデルを記憶する記憶手段（例えば、図２２の再評価処理過程記憶部２０１）をさらに設けるようにし、前記修正手段には、同一の部分的な単語列の音響的なスコアを再度計算する場合、記憶手段により記憶された状態遷移モデルを利用するようにさせることができる。
【００５１】
本発明によれば、音声認識装置が提供される。この音声認識装置では、前記マッチング処理実行手段により、単語の音響的なスコアを計算するための状態遷移モデルが構築された場合、構築された前記状態遷移モデルを記憶する記憶手段（例えば、図２５の単語モデル記憶部３０１）をさらに設けるようにし、前記マッチング処理実行手段には、同一の前記単語の音響的なスコアを再度計算する場合、記憶手段により記憶された状態遷移モデルを利用するようにさせることができる。
【００５２】
本発明によれば、音声認識装置が提供される。この音声認識装置では、前記マッチング処理実行手段により算出された、前記マッチング処理の途中経過としての値を記憶する記憶手段（例えば、図２８のマッチング処理過程記憶部４０１）をさらに設けるようにし、前記マッチング処理実行手段には、記憶手段により記憶された途中経過としての値を利用して、前記音声認識結果の候補となる複数の前記単語列の前記マッチング処理を交互に実行するようにさせることができる。
【００５３】
本発明によれば、音声認識方法が提供される。この音声認識方法は、単語列のうち、既に求められている単語に続く１以上の単語の候補（例えば、「開ける」、「明ける」、「空ける」、および「閉める」）を、同一の属性（例えば、同音語）を有する単語毎に分類された単語群（例えば、「あける」および「しめる」）毎に、処理の一部（例えば、音響スコアの計算）を共有化してマッチング処理するマッチング処理実行ステップ（例えば、図７のステップＳ７）と、マッチング処理実行ステップの処理によるマッチング処理の結果に基づいて生成された、音声認識結果の候補となる単語列の単語どうしの接続関係を示す単語接続関係情報を修正する修正ステップ（例えば、図７のステップＳ４）とを含む。
【００５４】
本発明によれば、音声認識方法と同様のプログラムが提供される。
【００５５】
以下、図を参照して、本発明の実施の形態について説明する。
【００５６】
図５は、本発明を適用した音声認識装置の構成例を示している。
【００５７】
ユーザが発した音声は、図５のマイク（マイクロフォン）５１に入力され、マイク５１では、その入力音声が、電気信号としての音声信号に変換される。この音声信号は、ＡＤ変換部５２に供給される。ＡＤ変換部５２では、マイク５１からのアナログ信号である音声信号がサンプリング、量子化され、デジタル信号である音声データに変換される。この音声データは、特徴抽出部５３に供給される。
【００５８】
特徴抽出部５３は、ＡＤ変換部５２からの音声データについて、適当なフレームごとに音響処理を施し、これにより、例えば、ＭＦＣＣ(Mel Frequency Cepstrum Coefficient)等の特徴量を抽出し、制御部５４に供給する。なお、特徴抽出部５３では、その他、例えば、スペクトルや、線形予測係数、ケプストラム係数、線スペクトル対等の特徴量を抽出することが可能である。なお、特徴抽出部５３が出力する、ユーザが発した音声の特徴量の系列は、フレーム単位で、制御部５４に供給されるようになっており、制御部５４は、特徴抽出部５３からの特徴量を、特徴量記憶部５５に供給する。
【００５９】
制御部５４は、単語接続関係記憶部６０に記憶された単語接続関係情報を参照し、マッチング部５８や再評価部５９を制御する。さらに、制御部５４は、マッチング部５８がマッチング処理を行なうことにより得られるマッチング処理結果としての音響スコアや言語スコア等に基づいて、単語接続関係情報を生成し、その単語接続関係情報によって、単語接続関係記憶部６０の記憶内容を更新する。また、制御部５４は、再評価部５９の出力に基づいて、単語接続関係記憶部６０の記憶内容を修正する。さらに、制御部５４は、単語接続関係記憶部６０に記憶された単語接続関係情報に基づいて、最終的な音声認識結果を確定して出力する。
【００６０】
ここで、単語接続関係情報は、最終的な音声認識結果の候補となる単語列を構成する単語どうしの接続（連鎖または連接）関係を表すもので、各単語の音響スコアおよび言語スコア、並びに各単語に対応する発話の開始時刻および終了時刻を含んでいる。
【００６１】
なお、本明細書においては、「音響スコアおよび言語スコアは、その値の大きいものほど良好であることを意味する」と仮定して説明することとする。ただし逆に、「音響スコアおよび言語スコアは、その値の小さいものほど良好であることを意味する」と仮定した場合にも、音響スコアおよび言語スコアの符号を反転するなどにすれば、本発明を適用することができる。
【００６２】
図６は、単語接続関係記憶部６０に記憶される単語接続関係情報の例を、グラフ構造を用いて表したものである。図６において、単語接続関係情報としてのグラフ構造は、単語を表すアーク（図６において、○印どうしを結ぶ線分で示す部分）と、単語どうしの境界を表すノード（図６において○印で示す部分）とから構成されている。なお、後述する図８乃至図１１、図１４、図１６、図１７、図１９乃至図２１、図２４、および図２６においても、同様とする。
【００６３】
ノードは、時刻情報を有しており、この時刻情報は、そのノードに対応する特徴量の抽出時刻を表す。後述するように、抽出時刻は、音声区間の開始時刻を０とする、特徴抽出部５３が出力する特徴量が得られた時刻である。従って、図６において、音声区間の開始、すなわち、最初の単語の先頭に対応するノード１が有する時刻情報は０となる。ノードは、アークの始端および終端となるが、始端のノード（始端ノード）、または終端のノード（終端ノード）が有する時刻情報は、それぞれ、そのノードに対応する単語の発話の開始時刻、または終了時刻となる。
【００６４】
なお、図６では、左から右方向が、時間の経過を表しており、従って、あるアークの左右にあるノードのうち、左側のノードが始端ノードとなり、右側のノードが終端ノードとなる。なお、後述する図８乃至図１１、図１４、図１６、図１７、図１９乃至図２１、図２４、および図２６においても、同様とする。
【００６５】
アークは、そのアークに対応する単語、並びに単語の音響スコアおよび言語スコアを有しており、このアークが、終端ノードとなっているノードを始端ノードとして、順次接続されていくことにより、音声認識結果の候補となる単語の系列が構成されていく。図６において、各アークの直近に括弧書きで、各アークに対応する単語、音響スコア、および言語スコアが示されている。すなわち、図６の例の場合、アーク１に対応する単語は「部屋」であり、音響スコアはＡ１であり、言語スコアはＬ１である。また、アーク２に対応する単語は「を」であり、音響スコアはＡ２であり、言語スコアはＬ２である。また、アーク３に対応する単語は「空ける」であり、音響スコアはＡ３であり、言語スコアはＬ３である。また、アーク４に対応する単語は「窓」であり、音響スコアはＡ４であり、言語スコアはＬ４である。また、アーク５に対応する単語は「を」であり、音響スコアはＡ５であり、言語スコアはＬ５である。
【００６６】
制御部５４においては、まず最初に、音声区間の開始を表すノード１に対して、音声認識結果として確からしい単語に対応するアークが接続される。図６の例では、「部屋」に対応するアーク１、および「窓」に対応するアーク４が接続されている。なお、音声認識結果として確からしい単語か否かは、マッチング部５８において求められる音響スコアおよび言語スコアに基づいて決定される。
【００６７】
そして、以下、同様にして、「部屋」に対応するアーク１の終端である終端ノード２、「を」に対応するアーク２の終端である終端ノード３、「窓」に対応するアーク４の終端である終端ノード５それぞれに対して、同様に、確からしい単語に対応するアークが接続されていく。
【００６８】
以上のようにしてアークが接続されていくことで、音声区間の開始を始点として、左から右方向に、アークとノードで構成される１以上のパスが構成されて行くが、例えば、そのパスのすべてが、音声区間の最後（図６の実施の形態では、時刻Ｔ）に到達すると、制御部５４において、音声区間の開始から最後までに形成された各パスについて、そのパスを構成するアークが有している音響スコアおよび言語スコアが累積され、最終スコアが求められる。そして、例えば、その最終スコアが最も高いパスを構成するアークに対応する単語列が、音声認識結果として確定されて出力される。
【００６９】
なお、上述の場合には、音声区間内にあるノードについて、必ずアークを接続して、音声区間の開始から最後にまで延びるパスを構成するようにしたが、このようなパスを構成する過程において、それまでに構成されたパスについてのスコアから、音声認識結果として不適当であることが明らかであるパスに関しては、その時点で、パスの構成を打ち切る（その後に、アークを接続しない）ようにすることが可能である。
【００７０】
また、上述のようなパスの構成ルールに従えば、１つのアークの終端が、次に接続される１以上のアークの始端ノードなり、基本的には、枝葉が拡がるように、パスが構成されて行くが、例外的に、１つのアークの終端が、他のアークの終端に一致する場合、つまり、あるアークの終端ノードと、他のアークの終端ノードとが同一のノードに共通化される場合がある。
【００７１】
すなわち、文法規則としてバイグラムを用いた場合には、別のノードから延びる２つのアークが、同一の単語に対応するものであり、さらに、その単語の発話の終了時刻も同一であるときには、その２つのアークの終端は一致する。
【００７２】
なお、ノードの共通化は行なわないようにすることも可能であるが、メモリ容量の効率化の観点からは、行なうのが好ましい。
【００７３】
また、単語接続関係記憶部６０に記憶されている単語接続関係情報は、単語予備選択部５６、マッチング部５８、および再評価部５９において、必要に応じて参照することができるようになっている。
【００７４】
図５において、特徴量記憶部５５は、制御部５４から供給される特徴量の系列を記憶する。特徴量記憶部５５は、供給された特徴量の時系列を、時間を遡って利用できるように、全て記憶する。なお、制御部５４は、音声区間の開始時刻を基準（例えば０）とする、特徴抽出部５３が出力する特徴量が得られた時刻（以下、適宜、抽出時刻という）を、その特徴量とともに、特徴量記憶部５５に供給するようになっており、特徴量記憶部５５は、特徴量を、その抽出時刻とともに記憶する。特徴量記憶部５５に記憶された特徴量およびその抽出時刻は、単語予備選択部５６、マッチング部５８、および再評価部５９が、必要に応じて参照できるようになっている。
【００７５】
単語予備選択部５６は、マッチング部５８から、指定されたノードが有する時刻を開始時刻として、単語予備選択を行なうよう指令された場合、単語接続関係記憶部６０、音響モデルデータベース（DB）６１、辞書データベース（DB）６２、および文法データベース（DB）６３を必要に応じて参照しながら、マッチング部５８でマッチング処理の対象とする１以上の単語を選択する単語予備選択処理を、特徴量記憶部５５に記憶された特徴量を用いて行なう。単語予備選択部５６は、単語予備選択処理の結果選択された１以上の単語を単語候補クラスタリング部５７に送信する。単語予備選択部５６は、例えば、単語予備選択の処理により、図６の時刻t１を開始点とする４つの単語候補「開ける」、「空ける」、「明ける」、および「閉める」を選択した場合、この４つの単語候補を単語候補クラスタリング部５７に送信する。
【００７６】
単語候補クラスタリング部５７は、単語予備選択部５６から供給された単語候補に関して、それぞれの発音を調べ、同じ発音を持つ単語候補（同音語）どうしをクラスタリングする。これにより、１以上の単語候補セットが生成される。例えば、単語予備選択部５６から単語候補「開ける」、「空ける」、「明ける」、および「閉める」が供給された場合、単語候補クラスタリング部５７は、「開ける」「空ける」「明ける」を同じ発音をもつ単語候補（同音語）としてクラスタリングし、１つの単語候補セットとしてまとめ、「閉める」を、それだけを要素とするもう１つの単語候補セットとする。単語候補クラスタリング部５７は、単語予備選択部５６から供給された単語候補のクラスタリング処理が終了した後、各単語候補に、その単語候補が属する単語候補セットを識別するための分類情報を付与して、マッチング部５８に送信する。
【００７７】
マッチング部５８は、制御部５４からの制御に基づき、単語予備選択部５６に対して、指定されたノードが有する時刻を開始時刻として、単語予備選択を行なうように指令する。また、マッチング部５８は、単語接続関係記憶部６０、音響モデルデータベース６１、辞書データベース６２、および文法データベース６３を必要に応じて参照しながら、単語候補クラスタリング部５７からのクラスタリング処理の結果得られる単語候補を対象としたマッチング処理を、特徴量記憶部５５に記憶された特徴量を用いて行ない、単語候補毎の音響スコア、言語スコア、および終了時刻を決定する。
【００７８】
すなわち、音響モデルデータベース６１は、音声認識する音声の言語における個々の音素や音節などの音響的な特徴を表す音響モデルを記憶している。ここでは、連続分布HMM法に基づいて音声認識を行なうので、音響モデルとしては、例えば、HMM(Hidden Markov Model)が用いられる。辞書データベース６２は、認識対象の各単語（語彙）について、その発音に関する情報（音韻情報）が記述された単語辞書を記憶している。文法データベース６３は、辞書データベース６２の単語辞書に登録されている各単語が、どのように連鎖しているか（つながっているか）を記述した文法規則（言語モデル）を記憶している。ここで、文法規則としては、例えば、文脈自由文法（CFG）や、統計的な単語連鎖確率（N-gram）などに基づく規則を用いることができる。
【００７９】
マッチング部５８は、単語候補クラスタリング部５７からのクラスタリング処理の結果得られる単語候補セットに含まれる単語候補毎に、スコアの初期値を算出し、初期値が１番大きい単語について、辞書データベース６２の単語辞書を参照することにより、音響モデルデータベース６１に記憶されている音響モデルを接続することで、単語の音響モデル（単語モデル）を構成し、単語モデルを用いて、特徴量に基づき、単語候補セット毎の音響スコアおよび終了時刻を決定する。マッチング部５８はまた、文法データベース６３を参照して、単語候補セットに含まれる単語候補の言語スコアを決定する。
【００８０】
マッチング部５８は、マッチング処理の結果得られた単語候補セット毎の音響スコア、および終了時刻、並びに単語候補毎の言語スコアを制御部５４に供給する。
【００８１】
再評価部５９は、制御部５４からの制御に基づき、音響モデルデータベース６１、辞書データベース６２、および文法データベース６３を必要に応じて参照しながら、単語接続関係記憶部６０に記憶された単語接続関係情報の再評価を、特徴量記憶部５５に記憶された特徴量を用いて行ない、その再評価結果を、制御部５４に供給する。
【００８２】
すなわち、再評価部５９は、単語接続関係記憶部６０に記憶される単語接続関係情報において、マッチング処理を継続すべきノードに対して、マッチング処理を行なう前に、そのノードから時間的に遡った部分的な単語系列に対する再評価を、音響モデルデータベース６１、辞書データベース６２、および文法データベース６３を用いて行なう。このとき、後述するように、部分的な単語列に対しては、その単語境界を固定することなく評価が行なえるので、動的計画法に基づく単語境界の決定が行われることになる。そして、再評価を行った結果に基づき、単語接続関係記憶部６０に記憶される単語接続関係情報が修正される。この処理は、マッチング部５８に、次のマッチング処理の実行指令を出す直前に行なわれる。例えば、図６の「窓を」と「ドア」という２つの単語列仮説に着目し、それぞれの再評価が行なわれ、その後、単語予備選択部５６、単語候補クラスタリング部５７、およびマッチング部５８の処理が行なわれる。同様に、新たに延びた単語列仮説「窓を開ける」と「ドア開ける」が単語接続関係記憶部６０に記憶された場合、その単語列仮説に対する再評価も後に行なわれることになる。その結果、同じ「開ける」という単語であっても、直前の単語列仮説「窓を」と「ドア」に依存して音響モデルを用いた正しいマッチング処理がそれぞれ行なわれ、単語境界の補正と音響スコアの補正が行なわれることになる。
【００８３】
単語接続関係記憶部６０は、上述したように、制御部５４から供給される単語接続関係情報を、ユーザの音声の認識結果が得られるまで記憶する。
【００８４】
以上のように、単語候補クラスタリング部５７において、同じ発音の単語候補をクラスタリングすることでマッチング処理の回数を削減し、その結果を一旦単語接続関係記憶部６０に記憶した後、記憶された単語列仮説に対する再評価を再評価部５９において行なうようにすることで、マッチング処理の際には使われない直前の単語列仮説に依存した音響モデルが適用され、その結果、正しい単語境界および音響スコアに修正することが可能となる。
【００８５】
次に、図７のフローチャートを参照して、図５の音声認識装置による音声認識処理について説明する。
【００８６】
ユーザが発話を行なうと、その発話としての音声は、マイク５１およびＡＤ変換部５２を介することにより、デジタルの音声データとされ、特徴抽出部５３に供給される。特徴抽出部５３は、そこに供給される音声データから、音声の特徴量を、フレームごとに順次抽出し、制御部５４に供給する。
【００８７】
制御部５４は、何らかの手法で音声区間を認識するようになっており、音声区間においては、特徴抽出部５３から供給される特徴量の系列を、各特徴量の抽出時刻と対応付けて、特徴量記憶部５５に供給して記憶させる。
【００８８】
さらに、制御部５４は、音声区間の開始後、ステップＳ１において、音声区間の開始を表すノード（以下、適宜、初期ノードと称する）を生成し、単語接続関係記憶部６０に供給して記憶させる。すなわち、制御部５４は、ステップＳ１において、例えば図６におけるノード１を、単語接続関係記憶部６０に記憶させる。
【００８９】
そして、ステップＳ２に進み、制御部５４は、単語接続関係記憶部６０の単語接続関係情報を参照することで、途中ノードが存在するか否かを判定する。
【００９０】
すなわち、上述したように、例えば図６に示した単語接続関係情報においては、終端ノードに、アークが接続されていくことにより、音声区間の開始から最後にまで延びるパスが形成されて行くが、ステップＳ２では、終端ノードのうち、まだアークが接続されておらず、かつ、音声区間の最終時刻Ｔにまで到達していないものが、途中ノード（例えば、図６におけるノード６）として検索され、そのような途中ノードが存在するか否かが判定される。
【００９１】
なお、上述したように、音声区間は何らかの手法で認識され、さらに、終端ノードに対応する時刻は、その終端ノードが有する時刻情報を参照することで認識することができるから、アークが接続されていない終端ノードが、音声区間の最後に到達していない途中ノードであるか否かは、音声区間の最後の時刻と、終端ノードが有する時刻情報とを比較することで判定することができる。
【００９２】
ステップＳ２において、途中ノードが存在すると判定された場合、処理はステップＳ３に進み、制御部５４は、単語接続関係情報の中に存在する途中ノードのうちの１つを、それに接続するアークとしての単語を決定するノード（以下、適宜、注目ノードという）として選択する。
【００９３】
すなわち、制御部５４は、単語接続関係情報の中に１つの途中ノードしか存在しない場合には、その途中ノードを、注目ノードとして選択する。また、制御部５４は、単語接続関係情報の中に複数の途中ノードが存在する場合には、その複数の途中ノードのうちの１つを注目ノードとして選択する。具体的には、制御部５４は、例えば、複数の途中ノードそれぞれが有する時刻情報を参照し、その時刻情報が表す時刻が最も古いもの（音声区間の開始側のもの）を、注目ノードとして選択する。なお、同一の時刻に、時刻が最も古い途中ノードが複数存在した場合（例えば、後述する図１７に示される例の場合）、制御部５４は、時刻が最も古い複数の途中ノードを全て注目ノードとして選択する。
【００９４】
その後、制御部５４は、注目ノードが有する時刻情報を開始時刻としてマッチング処理を行なう旨の指令（以下、適宜、マッチング処理指令という）を、マッチング部５８および再評価部５９に出力する。
【００９５】
再評価部５９は、制御部５４からマッチング処理指令を受信すると、ステップＳ４に進み、単語接続関係記憶部６０を参照することにより、初期ノードから注目ノードに至るまでのパス（以下、適宜、部分パスという）を構成するアークによって表される単語列（以下、適宜、部分単語列という）を認識し、その部分単語列の再評価を行なう。すなわち、部分単語列は、後述するようにして、単語予備選択部５６が予備選択した単語を対象に、マッチング部５８がマッチング処理を行なうことにより得られた音声認識結果の候補とする単語列の途中結果であるが、再評価部５９では、その途中結果が、再度、評価される。
【００９６】
具体的には、再評価部５９は、部分単語列について、言語スコアおよび音響スコアを再計算するため、部分単語列に対応する特徴量の系列を、特徴量記憶部５５から読み出す。すなわち、再評価部５９は、例えば、部分パスの先頭のノードである初期ノードが有する時刻情報が表す時刻から、注目ノードが有する時刻情報が表す時刻までに対応付けられている特徴量の系列（特徴量系列）を、特徴量記憶部５５から読み出す。さらに、再評価部５９は、音響モデルデータベース６１、辞書データベース６２、および文法データベース６３を参照し、特徴量記憶部５５から読み出した特徴量系列を用いて、部分単語列について、言語スコアおよび音響スコアを再計算する。なお、この再計算は、部分単語列を構成する各単語の単語境界を固定せずに行われる。従って、再評価部５９では、部分単語列の言語スコアおよび音響スコアを再計算することにより、部分単語列について、それを構成する各単語の単語境界の決定が、動的計画法に基づいて行われることになる。
【００９７】
再評価部５９は、以上のようにして、部分単語列の各単語の言語スコアおよび音響スコア、並びに単語境界を新たに得ると、その新たな言語スコアおよび音響スコアによって、単語接続関係記憶部６０の部分単語列に対応する部分パスを構成するアークが有する言語スコアおよび音響スコアを修正するとともに、新たな単語境界によって、単語接続関係記憶部６０の部分単語列に対応する部分パスを構成するノードが有する時刻情報を修正する。なお、本実施の形態では、再評価部５９による単語接続関係情報の修正は、制御部５４を介して行われるようになっている。
【００９８】
以上に説明した再評価部５９の処理の例を、図８乃至図１１を参照して説明する。図８は、単語接続関係記憶部６０に記憶された単語列仮説の１つを抜き出して、グラフ化して示したものである。図８において、時刻０のノード１から時刻ａのノード２までを結ぶアーク１は、単語候補「窓」に対応し、単語候補「窓」の音響スコアはＡ１であり、言語スコアはＬ１である。また、時刻ａのノード２から時刻ｔのノード３までを結ぶアーク２は、単語候補「を」に対応し、単語候補「を」の音響スコアはＡ２であり、言語スコアはＬ２である。
【００９９】
今、制御部５４より、ノード３が有する時刻情報を開始時刻としてマッチング処理を行なう旨の指令が通知された場合、再評価部５９は、ノード１乃至ノード３に対応する単語列仮説「窓を」の単語列に対する再評価を行なう。その結果、図９に示されるように、「窓」と「を」の単語境界となるノード２の時刻ａが時刻ｂに修正され、アーク１に付与された音響スコアＡ１が、Ａ１ｂに修正され、アーク２に付与された音響スコアＡ２が、Ａ２ｂに修正される。その後、マッチング部５８により、時刻tを開始点として、「開ける」という単語に対するマッチング処理が行なわれたとする。この結果、図１０に示されるように、時刻uのノード４を終端ノードとして、単語候補「開ける」に対応するアーク３が追加される。図１０において、単語候補「開ける」の音響スコアはＡ３であり、言語スコアはＬ３である。
【０１００】
その後、さらに制御部５４より、ノード４が有する時刻情報を開始時刻としてマッチング処理を行なう旨の指令が通知された場合、再評価部５９は、ノード２乃至ノード４に対応する「を開ける」の単語列に対する再評価を行なう。その結果、図１１に示されるように、「を」と「開ける」の単語境界となるノード３の時刻tが時刻sに修正され、アーク２に付与された音響スコアＡ２ｂがＡ２ｃに修正され、アーク３に付与された音響スコアＡ３が、Ａ３ｂに修正される。
【０１０１】
再評価部５９は、単語接続関係記憶部６０の単語接続関係情報の修正を終了すると、その旨を、制御部５４を介して、マッチング部５８に供給する。
【０１０２】
マッチング部５８は、上述したように、制御部５４からマッチング処理指令を受信した後、再評価部５９から、制御部５４を介して、単語接続関係情報の修正が終了した旨を受信すると、注目ノード、およびそれが有する時刻情報を、単語予備選択部５６に供給し、それぞれに、単語予備選択処理を要求して、ステップＳ５に進む。
【０１０３】
単語予備選択部５６は、マッチング部５８から、単語予備選択処理の要求を受信すると、ステップＳ５において、注目ノードに接続されるアークとなる単語の候補を選択する単語予備選択処理を、辞書データベース６２の単語辞書に登録された単語を対象として行なう。
【０１０４】
すなわち、単語予備選択部５６は、言語スコアおよび音響スコアを計算するのに用いる特徴量の系列の開始時刻を、注目ノードが有する時刻情報から認識し、その開始時刻以降の、必要な特徴量の系列を特徴量記憶部５５から読み出す。さらに、単語予備選択部５６は、辞書データベース６２の単語辞書に登録された各単語の単語モデルを、音響モデルデータベース６１の音響モデルを接続することで構成し、その単語モデルに基づき、特徴量記憶部５５から読み出した特徴量の系列を用いて、音響スコアを計算する。
【０１０５】
また、単語予備選択部５６は、各単語モデルに対応する単語の言語スコアを、文法データベース６３に記憶された文法規則に基づいて計算する。
【０１０６】
なお、単語予備選択部５６においては、単語接続関係情報を参照することにより、各単語の音響スコアの計算を、その単語の直前の単語（注目ノードが終端となっているアークに対応する単語）に依存するクロスワードモデルを用いて行なうことが可能である。
【０１０７】
また、単語予備選択部５６においては、単語接続関係情報を参照することにより、各単語の言語スコアの計算を、その単語が、その直前の単語と連鎖する確率を規定するバイグラムに基づいて行なうことが可能である。
【０１０８】
単語予備選択部５６は、以上のようにして、各単語について音響スコアおよび言語スコアを求めると、その音響スコアおよび言語スコアを総合評価したスコアを、以下、適宜、単語スコアと称する）を求め、その上位Ｌ個を、マッチング処理の対象とする単語候補として、単語候補クラスタリング部５７に供給する。
【０１０９】
なお、ここでは、単語予備選択部５６において、各単語の音響スコアおよび言語スコアを総合評価した単語スコアに基づいて、単語を選択するようにしたが、単語予備選択部５６では、その他、例えば、音響スコアだけや、言語スコアだけに基づいて、単語を選択するようにすることが可能である。
【０１１０】
また、単語予備選択部５６では、特徴量記憶部５５から読み出した特徴量の系列の最初の部分だけを用いて、音響モデルデータベース６１の音響モデルに基づき、対応する単語の最初の部分の幾つかの音韻を求め、最初の部分が、その音韻に一致する単語を選択するようにすることも可能である。
【０１１１】
さらに、単語予備選択部５６では、単語接続関係情報を参照して、直前の単語（注目ノードが終端ノードとなっているアークに対応する単語）の品詞を認識し、その品詞に続く単語の品詞として可能性の高い品詞の単語を選択するようにすることも可能である。
【０１１２】
すなわち、単語予備選択部５６における単語の選択方法は、どのような方法を用いても良く、究極的には、単語を、ランダムに選択しても良い。
【０１１３】
単語候補クラスタリング部５７は、単語予備選択部５６から、マッチング処理に用いるＬ個の単語候補を受信すると、ステップＳ６において、その単語候補を対象として、クラスタリング処理を行なう。
【０１１４】
すなわち、単語候補クラスタリング部５７はＬ個の単語候補を発音が同一の語（同音語）毎に分類して、これらを単語候補セットとする。従って、例えば、単語予備選択部５６から、単語候補「開ける」、「明ける」、「空ける」、および「閉める」が供給された場合、単語候補クラスタリング部５７は、同音語である単語候補「開ける」、「明ける」、および「空ける」を１つの単語候補セット「あける」に分類し、単語候補「閉める」を１つの単語候補セット「閉める」に分類する。単語候補クラスタリング部５７は、単語候補を単語候補セットに分類した後、単語候補がどの単語候補セットに分類されているかを示す分類情報を各単語候補に付与して、単語候補をマッチング部５８に供給する。
【０１１５】
マッチング部５８は、単語候補クラスタリング部５７から、分類情報が付与されたＬ個の単語候補を受信すると、ステップＳ７において、その単語候補を対象として、マッチング処理を行なう。ここで、図１２のフローチャートを参照して、図７のステップＳ７のマッチング処理について詳細に説明する。なお、以下の説明においては、例として、図６のノード６が注目ノードとして選択され（図７のステップＳ３）、単語予備選択部５６により単語候補「開ける」、「明ける」、「空ける」、および「閉める」が選択され（図７のステップＳ５）、単語候補クラスタリング部５７により、単語候補「開ける」、「明ける」、および「空ける」を含む単語候補セット「あける」、並びに単語候補「閉める」を含む単語候補セット「しめる」にクラスタリングされた（図７のステップＳ６）場合について説明する。
【０１１６】
図１２のステップＳ１０１において、マッチング部５８は、単語接続関係記憶部６０に記憶された単語接続関係情報を参照することにより、単語候補を接続する直前の単語列仮説を特定し、単語列仮説に対するスコアを算出する。
【０１１７】
単語列仮説に対応するスコアは、音響スコアと言語スコアの累積値で与えられる。例えば、単語列仮説「窓を」に対応するスコアをＳ（窓を）とすると、図６に示される、アーク４およびアーク５により構成される単語列仮説「窓を」に対応するスコアは以下の式で与えられる。
【０１１８】
Ｓ（窓を）＝ (A4 + L4) + (A5 + L5)
【０１１９】
すなわち、単語列仮説に対応するスコアは、その単語列仮説に含まれている各単語の音響スコアと言語スコアを足し算した総合のスコアを、単語列仮説に含まれている全ての単語分足し算して算出される。
【０１２０】
ステップＳ１０２において、マッチング部５８は、単語候補クラスタリング部５７から供給された単語候補セットの中から、ステップＳ１０３乃至ステップＳ１０７の処理を行なうべき単語候補セットを１つ選択する。例えば、単語候補クラスタリング部５７により、単語候補「開ける」、「明ける」、および「空ける」を含む単語候補セット「あける」、並びに単語候補「閉める」を含む単語候補セット「しめる」にクラスタリングされた場合、マッチング部５８は、単語候補セット「あける」および「しめる」のうち、いずれか１つを選択する。
【０１２１】
次に、ステップＳ１０３において、マッチング部５８は、例えばバイグラムに基づく確率から、ステップＳ１０２で選択された単語候補セットに含まれている全ての単語候補の言語スコアを求める。例えば、ステップＳ１０２で、単語候補セット「あける」が選択された場合、ステップＳ１０３において、マッチング部５８は、「窓を」に「開ける」が後続する場合の言語スコア、「窓を」に「明ける」が後続する場合の言語スコア、および「窓を」に「空ける」が後続する場合の言語スコアをそれぞれ求める。
【０１２２】
ステップＳ１０４において、マッチング部５８は、ステップＳ１０１で算出された、単語候補を接続する直前の単語までの累積スコア、およびステップＳ１０３で算出された、単語候補の言語スコアに基づいて、スコアの初期値を算出する。
【０１２３】
スコアの初期値は、前に接続する単語列仮説に応じて異なったものとなる。例えば、単語列仮説「窓を」に対して「開ける」が後続する場合、その初期値Ｕ１は、以下の式で与えられる。
【０１２４】
Ｕ１＝Ｓ（窓を）＋Ｌ（開ける|窓を）
・・・（１）
【０１２５】
上記の式（１）において、Ｌ（開ける|窓を）は、「窓を」に「開ける」が後続する場合の言語スコアを表す。バイグラムを用いる場合には、この言語スコアは、（を、開ける）という２単語の連鎖確率で与えられることになる。
【０１２６】
同様にして、単語列仮説「窓を」に対して「明ける」が後続する場合、その初期値Ｕ２は、以下の式で与えられる。なお、Ｌ（明ける|窓を）は、「窓を」に「明ける」が後続する場合の言語スコアを表す。
【０１２７】
Ｕ２＝Ｓ（窓を）＋Ｌ（明ける|窓を）
・・・（２）
【０１２８】
同様にして、単語列仮説「窓を」に対して「空ける」が後続する場合、その初期値Ｕ３は、以下の式で与えられる。なお、Ｌ（空ける|窓を）は、「窓を」に「空ける」が後続する場合の言語スコアを表す。
【０１２９】
Ｕ３＝Ｓ（窓を）＋Ｌ（空ける|窓を）
・・・（３）
【０１３０】
このようにして、新たな単語候補セットを接続するノード（例えば、図６のノード６）に至る単語列仮説（例えば、図６の「窓を」）のスコアに、単語候補セットに含まれている各単語（例えば、「開ける」、「明ける」、または「空ける」）を接続した場合の言語スコアを足し算することにより、各単語候補に対応するスコアの初期値を算出することができる。上記の例の場合、１つの単語列仮説と３つの単語候補に対して、３つのスコアの初期値Ｕ１乃至Ｕ３が求まることになる。
【０１３１】
図１３は、単語列仮説と単語候補の組み合わせと、それぞれのスコアの初期値Ｕ１乃至Ｕ３が与えられた例を示している。すなわち、図１３において、Ｕ１は単語列仮説「窓を」に対して「開ける」が後続する場合の初期値を表し、Ｕ２は単語列仮説「窓を」に対して「明ける」が後続する場合の初期値を表し、Ｕ３は単語列仮説「窓を」に対して「空ける」が後続する場合の初期値を表している。
【０１３２】
次に、マッチング部５８は、ステップＳ１０５において、算出したスコアの初期値が１番大きな値の単語候補を、その単語候補を含む単語候補セットを代表する単語（以下、代表単語とも称する）として決定し、ステップＳ１０６において、ステップＳ１０５で決定された代表単語の音響スコアを算出する。例えば、図１３の(窓を、開ける)の組み合わせの初期値Ｕ１が最も高い場合、マッチング部５８は、「開ける」に対するマッチング処理を実行する。ここで、「開ける」に対応する音響モデルは、直前の単語列仮説「窓を」に依存したものが用いられる。具体的には、マッチング部５８は、音響スコアを計算するのに用いる特徴量の系列の開始時刻を、注目ノード（図６の例の場合、ノード６）が有する時刻情報から認識し、その開始時刻以降の、必要な特徴量の系列を特徴量記憶部５５から読み出す。さらに、マッチング部５８は、辞書データベース６２を参照することで、代表単語「開ける」の音韻情報を認識し、その音韻情報に対応する音響モデルを、音響モデルデータベース６１から読み出して接続することで、単語モデルを構成する。
【０１３３】
そして、マッチング部５８は、上述のようにして構成した単語モデルに基づき、特徴量記憶部５５から読み出した特徴量系列を用いて、代表単語の音響スコアを計算する。なお、マッチング部５８においては、単語接続関係情報を参照することにより、単語の音響スコアの計算を、クロスワードモデルに基づいて行なうようにすることが可能である。
【０１３４】
ステップＳ１０７において、マッチング部５８は、ステップＳ１０６で求められた代表単語の音響スコアを、同一の単語候補セットに含まれている他の単語候補の音響スコアとして決定する。その結果、例えばステップＳ１０６で、図６の時刻t１を開始点とし、ある時刻を終了点とする音響スコアが代表単語「開ける」に対して求まっていた場合、この音響スコアを、残りの単語列仮説と単語候補の組み合わせに対しても近似値としてそのまま利用し、残りの２つの単語候補に対するマッチング処理は行なわない。すなわち、例えば、（窓を、明ける）の組み合わせおよび（窓を、空ける）の組み合わせについては、音響スコアの算出を省略し、（窓を、開ける）の組み合わせで算出された音響スコアで代用する。
【０１３５】
ステップＳ１０８において、マッチング部５８は、未選択の単語候補セットが存在するか否かを判定し、未選択の単語候補セットが存在する場合、処理はステップＳ１０２に戻り、上述したステップＳ１０２以降の処理を繰り返す。例えば、上述したように、単語候補セット「あける」および「しめる」のうち、単語候補セット「あける」についてステップＳ１０２乃至ステップＳ１０７の処理が実行された後、ステップＳ１０８において、マッチング部５８は、未選択の単語候補セット「しめる」が存在すると判定し、処理はステップＳ１０２に戻る。その後、単語候補セット「しめる」についてもステップＳ１０２乃至ステップＳ１０７の処理が実行される。なお、単語候補セット「しめる」のように、単語候補セットに単語候補が１つしか含まれていない場合、ステップＳ１０７の処理はスキップされる。
【０１３６】
ステップＳ１０８において、マッチング部５８が、未選択の単語候補セットは存在しないと判定した場合、図１２のマッチング処理５８は終了し、処理は図７のステップＳ８に進む。
【０１３７】
マッチング部５８は、以上のようにして、単語候補クラスタリング部５７からの単語候補セットすべてについて、その音響スコアおよび言語スコアを求め、ステップＳ８に進む。
【０１３８】
ステップＳ８では、単語候補それぞれについて、その音響スコアおよび言語スコアを総合評価した単語スコアが求められ、その単語スコアに基づいて、単語接続関係記憶部６０に記憶された単語接続関係情報が更新される。
【０１３９】
すなわち、ステップＳ８では、マッチング部５８は、単語候補について単語スコアを求め、例えば、その単語スコアを所定の閾値と比較すること等によって、注目ノードに接続するアークとしての単語を、単語候補の中から絞り込む。そして、マッチング部５８は、その絞り込みの結果残った単語を、その音響スコア、言語スコア、およびその単語の終了時刻とともに、制御部５４に供給する。
【０１４０】
なお、マッチング部５８において、単語の終了時刻は、音響スコアを計算するのに用いた特徴量の抽出時刻から認識される。また、ある単語について、その終了時刻としての蓋然性の高い抽出時刻が複数得られた場合には、その単語については、各終了時刻と、対応する音響スコアおよび言語スコアとのセットが、制御部５４に供給される。
【０１４１】
制御部５４は、上述のようにしてマッチング部５８から供給される単語の音響スコア、言語スコア、および終了時刻を受信すると、マッチング部５８からの各単語について、単語接続関係記憶部６０に記憶された単語接続関係情報における注目ノードを始端ノードとして、アークを延ばし、そのアークを、終了時刻の位置に対応する終端ノードに接続する。さらに、制御部５４は、各アークに対して、対応する単語、並びにその音響スコアおよび言語スコアを付与するとともに、各アークの終端ノードに対して、対応する終了時刻を時刻情報として与える。そして、ステップＳ２に戻り、以下、同様の処理が繰り返される。
【０１４２】
その結果、例えば、図１４に示されるような単語接続関係情報が、単語接続関係記憶部６０に記憶される。図１４は図６のノード６に対して、単語候補セット「あける」に含まれている単語候補「開ける」、「明ける」、および「空ける」、並びに単語候補セット「しめる」に含まれている単語候補「閉める」が接続された場合の例を示している。アーク６は、単語候補「開ける」に対応しており、この音響スコアＡ６および言語スコアＬ６は、従来通り計算される。アーク７は、単語候補「明ける」に対応しており、この言語スコアＬ７は、従来通り計算されているが、音響スコアは、単語候補「開ける」の音響スコアＡ６で代用している。すなわち、単語候補「明ける」の音響スコアは計算されない。また、アーク８は、単語候補「空ける」に対応しており、この言語スコアＬ８は、従来通り計算されているが、音響スコアは、単語候補「開ける」の音響スコアＡ６で代用している。すなわち、単語候補「空ける」の音響スコアは計算されない。
【０１４３】
また、アーク９は、単語候補「閉める」に対応しており、この音響スコアＡ９および言語スコアＬ９は、従来通り計算される。
【０１４４】
以上の処理により、音声認識処理の計算量を削減することが可能となる。上記の例の場合、従来は、（窓を、開ける）、（窓を、明ける）、および（窓を、空ける）の３つの組み合わせそれぞれに対して、音響スコアを求めていたのに対して、マッチング部５８は、図１２のステップＳ１０６で、最も初期値の高い（窓を、開ける）の組み合わせでしか音響スコアを求める必要が無いので、音響スコアの計算回数を３分の１に削減することができる。
【０１４５】
従来の場合、単語候補「開ける」、「明ける」、「空ける」、および「閉める」に対してそれぞれ音響スコアを計算しなければならなかったので、合計４回音響スコアを計算することになる。それに対して、マッチング部５８は、単語候補「開ける」、「明ける」、および「空ける」を含む単語候補セット「あける」に対して１回、単語候補「閉める」を含む単語候補セット「しめる」に対して１回の、合計２回計算するだけで済む。従って、従来の計算回数４回から、図８の場合の計算回数２回を差し引いた２回分だけ計算回数を削減することができる。
【０１４６】
なお、図１４の例では、各単語候補の終了点（終端ノードの時刻）はＴの１つだけであるが、各単語候補の終了点（終端ノードの時刻）の候補が複数存在する場合がある。
【０１４７】
ここで、図１２のステップＳ１０６で終了点を求める原理について説明する。今、図６のノード６を開始時刻として、単語候補「開ける」に対してマッチング処理を行なう場合を考える。この場合、前述したように、開始時刻をt１、スコアの初期値をＵ１として、単語候補「開ける」に対するマッチング処理を行なうことになる。マッチング部５８は、音響モデルデータベース６１と辞書データベース６２に保持された発音の情報から、単語候補「開ける」に対応する音響的な標準パターンを取得する。
【０１４８】
音響モデルとして隠れマルコフモデル(HMM)を用いる場合、標準パターンは、図１５に示されるような状態遷移モデルとなり、各状態間の遷移には遷移確率が与えられ、各状態において出力確率密度関数が与えられる。この時、初期値Ｕ１が初期状態１０１に与えられ、図６の時刻t１を開始点とする特徴量時系列を用いて、音響スコアの計算が行なわれる。スコアの計算には、Viterbi Searchと呼ばれるスコアの累積方法が適用される。その結果、最終状態１０２における累積スコアが、毎時刻求まることになる。そして、各時刻において求まる最終状態１０２における累積スコアが、「開ける」に対して求まる音響スコアとなる。
【０１４９】
ここで、ある時刻に着目した場合、初期状態１０１から最終状態１０２の間のある状態における累積スコアと他の状態における累積スコアは比較可能であり、相対的に累積スコアの良い状態だけを有効にしながら、Viterbi Searchを行なう方法を適用する。これは、ビームサーチと呼ばれる手法であり、マッチング処理の効率化のために広く利用されている技術である。図１５の最終状態１０２においても、累積スコアが相対的に良くなる時刻だけを有効なものと判断することが可能である。そこで、最終状態１０２が有効になる時刻をマッチング部５８の処理の終了点と判断する。
【０１５０】
通常、最終状態１０２が有効になる時刻は必ずしも一意に決まるわけではないので、複数の時刻において有効となる場合が発生する。図１６は、２つの時刻ｔ２とＴにおいて、最終状態１０２が有効になった場合に単語接続関係記憶部６０に記憶された単語接続関係情報の例を示している。
【０１５１】
なお、図１６は、図６のノード６に対して、単語候補セット「あける」に含まれている単語候補「開ける」、「明ける」、および「空ける」、並びに単語候補セット「しめる」に含まれている単語候補「閉める」が接続された場合の例を示している。
【０１５２】
図１６において、アーク６は、単語候補「開ける」に対応しており、終端ノードの時刻は音声区間の終了時刻Ｔである。この単語候補「開ける」の音響スコアＡ６および言語スコアＬ６は、従来通り計算される。アーク７は、単語候補「開ける」に対応しており、終端ノードの時刻は音声区間の終了時刻Ｔより前の時刻ｔ２である。なお、この単語候補「開ける」の音響スコアＡ７は、単語候補「開ける」に対するスコアの計算過程の時刻ｔ２に算出され、その後、時刻Ｔに音響スコアＡ６が算出される。また、この単語候補「開ける」は、アーク６と同一の単語候補なので、言語スコアはアーク６と同一の値Ｌ６となる。
【０１５３】
また、アーク８は、単語候補「明ける」に対応しており、終端ノードの時刻は、アーク６の単語候補「開ける」と同様、音声区間の終了時刻Ｔである。この単語候補「明ける」の言語スコアＬ８は、従来通り計算されるが、音響スコアは、終了点が同一である単語候補「開ける」（アーク６に対応する単語候補）の音響スコアＡ６で代用している。すなわち、アーク８に対応する単語候補「明ける」の音響スコアは計算されない。アーク９は、単語候補「明ける」に対応しており、終端ノードの時刻は、アーク７の単語候補「開ける」と同様、時刻ｔ２である。この単語候補「明ける」の音響スコアは、終了点が同一である単語候補「開ける」（アーク７に対応する単語候補）の音響スコアＡ７で代用している。すなわち、アーク９に対応する単語候補「明ける」の音響スコアは計算されない。また、この単語候補「明ける」（アーク９に対応する単語候補）は、アーク８と同一の単語候補なので、言語スコアはアーク８と同一の値Ｌ８となる。
【０１５４】
また、アーク１０は、単語候補「空ける」に対応しており、終端ノードの時刻は、アーク６の単語候補「開ける」と同様、音声区間の終了時刻Ｔである。この単語候補「空ける」の言語スコアＬ１０は、従来通り計算されるが、音響スコアは、終了点が同一である単語候補「開ける」（アーク６に対応する単語候補）の音響スコアＡ６で代用している。すなわち、アーク１０に対応する単語候補「空ける」の音響スコアは計算されない。アーク１１は、単語候補「空ける」に対応しており、終端ノードの時刻は、アーク７の単語候補「開ける」と同様、時刻ｔ２である。この単語候補「空ける」の音響スコアは、終了点が同一である単語候補「開ける」（アーク７に対応する単語候補）の音響スコアＡ７で代用している。すなわち、アーク１１に対応する単語候補「明ける」の音響スコアは計算されない。また、この単語候補「空ける」（アーク１１に対応する単語候補）は、アーク１０と同一の単語候補なので、言語スコアはアーク１０と同一の値Ｌ１０となる。
【０１５５】
アーク１２は、単語候補「閉める」に対応しており、終端ノードの時刻は音声区間の終了時刻Ｔである。この単語候補「閉める」の音響スコアＡ１２および言語スコアＬ１２は、従来通り計算される。アーク１３は、単語候補「閉める」に対応しており、終端ノードの時刻は音声区間の終了時刻Ｔより前の時刻ｔ２である。この単語候補「閉める」の音響スコアＡ１３は、従来通り計算される。また、この単語候補「閉める」は、アーク１２と同一の単語候補なので、言語スコアはアーク１２と同一の値Ｌ１２となる。
【０１５６】
図１６の例においては、図１２のステップＳ１０６の処理において、各単語候補毎に、２つの終了点（終端ノードの時刻）の候補が求められている。この場合、同一の単語候補セットに含まれている単語候補については、各時間候補（Ｔおよびｔ２）毎に音響スコアの計算を１回で済ますことができる。従来も、同一の単語候補については、スコア計算を１回で済ませることが可能であったが、異なる単語候補それぞれの音響スコアを求めていたので、アーク６乃至アーク１４について、合計４回、音響スコアを求めることになる。それに対して、マッチング部５８は、同一の単語候補セットに含まれる単語候補については、終了点の候補毎に、１回だけ音響スコアを計算するだけで済む。すなわち、図１６において、音響スコアの計算回数は２回で済む。
【０１５７】
従って、従来の計算回数４回から、図１６の場合の計算回数２回を差し引いた２回分だけ、計算回数を削減することができる。これは、図１４に示した、終了点が１つの場合と計算回数の削減効果は同じである。終了点の候補が３以上であっても、同様の計算回数の削減効果を得ることができる。
【０１５８】
なお、図１４および図１６の例では、単語候補セットを接続する単語列仮説は、「窓を」の１つだけ（すなわち、単語候補セットを接続するノードはノード６の１つだけ）であるが、同一の時刻に、単語候補セットを接続する単語列仮説が複数存在する場合がある。すなわち、図７のステップＳ３において、同一の時刻に複数の途中ノードが存在した場合、複数の途中ノードが選択される。同一の時刻に、単語候補セットを接続する単語列仮説が複数存在する場合の単語接続関係情報の例を図１７に示す。
【０１５９】
図１７に示されたグラフは、図６に示されたグラフに、さらにアーク６が追加されたものである。すなわち、図１７においては、ノード１に対して、単語候補「ドア」に対応するアーク６がさらに接続されている。ノード７は、アーク６の終端ノードであり、ノード７が保有する時刻情報は、ノード６が保有する時刻情報と同一となっている。
【０１６０】
図１７に示されるように、同一の時刻ｔ１に、単語候補セットを接続する単語列仮説が複数（「窓を」と「ドア」の２つ）存在する場合がある。
【０１６１】
この場合、図１２のステップＳ１０１において、それぞれの単語列仮説に対応するスコアが、音響スコアと言語スコアの累積値で与えられる。例えば、単語列仮説「窓を」と「ドア」に対応するスコアを、それぞれS(窓を)、およびS(ドア)とすると、図１７に示される単語列仮説「窓を」と「ドア」に対応するスコアは、それぞれ、以下の式で与えられる。
【０１６２】
Ｓ（窓を）＝ (A4 + L4) + (A5 + L5)
Ｓ（ドア）＝ A6 + L6
【０１６３】
そして、図１２のステップＳ１０３において、単語候補毎に言語スコアが求められ、ステップＳ１０４において、スコアの初期値が求められる。同音語である３つの単語候補「開ける」、「空ける」、および「明ける」のマッチング処理を行なう際に必要となるスコアの初期値は、前に接続する単語列仮説に応じて異なったものとなる。単語列仮説「窓を」に対して「開ける」、「明ける」、および「空ける」が後続する場合の初期値は、上述した式（１）、式（２）、および式（３）により、それぞれ、Ｕ１、Ｕ２、およびＵ３として与えられる。
【０１６４】
また、単語列仮説「ドア」に対して「開ける」が後続する場合の初期値Ｕ４、単語列仮説「ドア」に対して「明ける」が後続する場合の初期値Ｕ５、および単語列仮説「ドア」に対して「空ける」が後続する場合の初期値Ｕ６は、それぞれ以下の式で与えられる。なお、Ｌ（開ける|ドア）は、「ドア」に「開ける」が後続する場合の言語スコアを表し、Ｌ（明ける|ドア）は、「ドア」に「明ける」が後続する場合の言語スコアを表し、Ｌ（空ける|ドア）は、「ドア」に「空ける」が後続する場合の言語スコアを表す。
【０１６５】
Ｕ４＝Ｓ（ドア）＋Ｌ（開ける|ドア）
・・・（４）
【０１６６】
Ｕ５＝Ｓ（ドア）＋Ｌ（明ける|ドア）
・・・（５）
【０１６７】
Ｕ６＝Ｓ（ドア）＋Ｌ（空ける|ドア）
・・・（６）
【０１６８】
なお、以上の式において、Ｌ（開ける|ドア）は、「ドア」に「開ける」が後続する場合の言語スコアを表し、Ｌ（明ける|ドア）は、「ドア」に「明ける」が後続する場合の言語スコアを表し、Ｌ（空ける|ドア）は、「ドア」に「空ける」が後続する場合の言語スコアを表す。これらの言語スコアは、図１２のステップＳ１０３で求められる。
【０１６９】
このようにして、２つの単語列仮説「窓を」と「ドア」、および３つの単語候補「開ける」、「明ける」、および「空ける」に対して、６つのスコアの初期値が求まることになる。図１８は、単語列仮説と単語候補の組み合わせと、それぞれの初期値スコアＵ１乃至Ｕ６が与えられた例を示している。すなわち、図１８において、Ｕ１は単語列仮説「窓を」に対して「開ける」が後続する場合の初期値を表し、Ｕ２は単語列仮説「窓を」に対して「明ける」が後続する場合の初期値を表し、Ｕ３は単語列仮説「窓を」に対して「空ける」が後続する場合の初期値を表し、Ｕ４は単語列仮説「ドア」に対して「開ける」が後続する場合の初期値を表し、Ｕ５は単語列仮説「ドア」に対して「明ける」が後続する場合の初期値を表し、Ｕ６は単語列仮説「ドア」に対して「空ける」が後続する場合の初期値を表している。
【０１７０】
マッチング部５８は、図１２のステップＳ１０５において、図１８に示された組み合わせの中で、初期値が最も良いものを１つ選択し、その組み合わせに基づいて、対応する単語候補に対するマッチング処理を施す。例えば、初期値Ｕ１が最も良く、(窓を、開ける)の組み合わせが選択された場合、マッチング部５８は、図１２のステップＳ１０６において、単語候補「開ける」に対するマッチング処理を行なう。ここで、単語候補「開ける」に対応する音響モデルは、直前の単語列仮説「窓を」に依存したものが用いられる。その結果、図１７の時刻t１を開始点とし、ある時刻を終了点とする音響スコアが「開ける」に対して求まることになる。
【０１７１】
マッチング部５８は、ステップＳ１０７において、ステップＳ１０６で求められた音響スコアを、残りの単語列仮説と単語候補の組み合わせに対しても近似値としてそのまま利用し、残りの５つの単語候補に対するマッチング処理は行なわない。すなわち、例えば、（窓を、明ける）の組み合わせ、（窓を、空ける）の組み合わせ、（ドア、開ける）の組み合わせ、（ドア、明ける）の組み合わせ、および（ドア、空ける）の組み合わせについては、図１９に示すように、音響スコアの算出を省略し、（窓を、開ける）の組み合わせで算出された音響スコアで代用する。
【０１７２】
すなわち、図１９は図１７のノード６およびノード７に対して、それぞれ単語候補セット「あける」に含まれている単語候補「開ける」、「明ける」、および「空ける」、並びに単語候補セット「しめる」に含まれている単語候補「閉める」が接続された場合の単語接続関係情報の例を示している。
【０１７３】
図１９において、ノード６に接続されたアーク７は、単語候補「開ける」に対応しており、この音響スコアＡ７および言語スコアＬ７は、従来通り計算される。ノード６に接続されたアーク８は、単語候補「明ける」に対応しており、この言語スコアＬ８は、従来通り計算されるが、音響スコアは、単語候補「開ける」の音響スコアＡ７で代用している。すなわち、アーク８に対応する単語候補「明ける」の音響スコアは計算されない。また、ノード６に接続されたアーク９は、単語候補「空ける」に対応しており、この言語スコアＬ９は、従来通り計算されるが、音響スコアは、単語候補「開ける」の音響スコアＡ７で代用している。すなわち、アーク９に対応する単語候補「空ける」の音響スコアは計算されない。また、ノード６に接続されたアーク１０は、単語候補「閉める」に対応しており、この音響スコアＡ１０および言語スコアＬ１０は、従来通り計算される。
【０１７４】
ノード７に接続されたアーク１１は、単語候補「開ける」に対応しており、この言語スコアＬ１１は、従来通り計算されるが、音響スコアは、アーク７に対応する単語候補「開ける」の音響スコアＡ７で代用している。すなわち、アーク１１に対応する単語候補「開ける」の音響スコアは計算されない。ノード７に接続されたアーク１２は、単語候補「明ける」に対応しており、この言語スコアＬ１２は、従来通り計算されるが、音響スコアは、アーク７に対応する単語候補「開ける」の音響スコアＡ７で代用している。すなわち、アーク１２に対応する単語候補「明ける」の音響スコアは計算されない。また、ノード７に接続されたアーク１３は、単語候補「空ける」に対応しており、この言語スコアＬ１３は、従来通り計算されるが、音響スコアは、アーク７に対応する単語候補「開ける」の音響スコアＡ７で代用している。すなわち、アーク１３に対応する単語候補「空ける」の音響スコアは計算されない。また、アーク１４は、単語候補「閉める」に対応しており、この言語スコアＬ１４は、従来通り計算されるが、音響スコアは、アーク１０に対応する単語候補「閉める」の音響スコアＡ１０で代用している。すなわち、アーク１４に対応する単語候補「閉める」の音響スコアは計算されない。
【０１７５】
以上の処理により、音声認識処理の計算量を削減することが可能となる。上記の例の場合、従来は、（窓を、開ける）、（窓を、明ける）、（窓を、空ける）、（ドア、開ける）、（ドア、明ける）、および（ドア、空ける）の６つの組み合わせそれぞれに対して、音響スコアを求めていたのに対して、マッチング部５８は、最も初期値の高い（窓を、開ける）の組み合わせでしか音響スコアを求める必要が無いので、音響スコアの計算回数を６分の１に削減することができる。
【０１７６】
従来の場合、単語列仮説「窓を」および「ドア」、並びに単語候補「開ける」、「明ける」、「空ける」、および「閉める」の全ての組み合わせに対して、それぞれ音響スコアを計算しなければならなかったので、合計８回音響スコアを計算することになる。それに対して、マッチング部５８は、単語候補「開ける」、「明ける」、および「空ける」を含む単語候補セット「あける」に対して１回、単語候補「閉める」を含む単語候補セット「しめる」に対して１回の、合計２回計算するだけで済む。従って、従来の計算回数８回から、図１９の場合の計算回数２回を差し引いた６回分だけ計算回数を削減することができる。
【０１７７】
図１４に示した、単語候補セットを接続する同一時刻の単語列仮説が１つの場合、上述したように２回分だけ計算回数を削減できたが、図１９に示した、単語候補セットを接続する同一時刻の単語列仮説が２つの場合、６回分、計算回数を削減することができる。例えば、単語候補セットを接続する同一時刻の単語列仮説が３つ以上であれば、従来と比較した、計算回数の削減数は、さらに大きなものとなる。すなわち、単語候補セットを接続する同一時刻の単語列仮説が増えた場合、計算回数をより削減することができる。結果的に、音声認識処理の計算量を大幅に削減することが可能となる。さらに、例えば図７のステップＳ３において、同一時刻の単語列仮説が複数選択され、かつ、図１２のステップＳ１０６の処理において、単語候補セットの代表となる単語の終了点の候補が複数特定された場合、音声認識処理の計算量をさらに大幅に削減することが可能となる。
【０１７８】
図７に戻り、上述した処理により、単語接続関係情報は、マッチング部５８の処理結果に基づいて逐次更新され、さらに、再評価部５９において逐次修正されるので、単語予備選択部５６およびマッチング部５８は、常時、単語接続関係情報を利用して処理を行なうことが可能となる。
【０１７９】
なお、制御部５４は、単語接続関係情報を更新する際に、可能であれば、上述したような終端ノードの共通化を行なう。
【０１８０】
図７のステップＳ２において、途中ノードが存在しないと判定された場合、ステップＳ９に進み、制御部５４は、単語接続関係情報を参照することで、その単語接続関係情報として構成された各パスについて、単語スコアを累積することで、最終スコアを求め、例えば、その最終スコアが最も大きいパスを構成するアークに対応する単語列を、ユーザの発話に対する音声認識結果として出力して、処理を終了する。
【０１８１】
以上のようにして、単語予備選択部５６において、音声認識結果の候補となる単語列の、既に求まっている単語に続く、１以上の単語が選択され、単語候補クラスタリング部５７において、同音語どうしを１つのセットに分類し、マッチング部５８において、その分類された単語候補セットの代表の単語候補について、音響スコアが計算されて、その音響スコアで、同一の単語候補セットに含まれる他の単語候補の音響スコアが代用され、音声認識結果の候補となる単語列が構成される。そして、再評価部５９において、音声認識結果の候補となる単語列の単語どうしの単語接続関係が修正され、制御部５４において、その修正後の単語接続関係に基づいて、音声認識結果となる単語列が確定される。従って、処理に要するリソースの増大を抑えながら、精度の高い音声認識を行なうことができる。
【０１８２】
すなわち、単語予備選択部５６で選択された全ての単語候補の音響スコアをマッチング部５８において計算せず、同音語を１セットにして、その代表の単語の音響スコアを計算するようにしたので、計算量を減少させることができる。また、再評価部５９において単語接続情報の単語境界が修正されるため、注目ノードが有する時刻情報が、単語境界を表している精度が高くなり、単語予備選択部５６やマッチング部５８では、そのような精度の高い時刻情報が表す時刻以降の特徴量系列を用いて処理が行われる。従って、単語予備選択部５６において選択する単語の判断基準や、マッチング部５８において単語を絞り込むときの判断基準を強化しても、音声認識結果として正しい単語が除外されてしまう可能性を極めて低くすることができる。
【０１８３】
そして、単語予備選択部５６において選択する単語の判断基準を強化した場合には、マッチング部５８においてマッチング処理の対象となる単語数が少なくなり、その結果、マッチング部５８の処理に要する演算量およびメモリ容量も少なくすることができる。
【０１８４】
また、マッチング部５８では、単語候補セットの代表の単語の音響スコアを、同一の単語候補セットに含まれる他の単語候補に流用していたため、直前の単語との関係は考慮されず、音響スコアは必ずしも正確ではないが、再評価部５９において単語接続情報の単語境界が修正されるため、最終的な音響スコアをより正確な値に修正することができる。
【０１８５】
さらに、仮に、単語予備選択部５６において、正しい音声認識結果としての単語列を構成する単語のうち、ある時刻から開始する単語が、その時刻に選択されなかったとしても、その時刻からずれた、誤った時刻において選択されれば、再評価部５９において、その誤った時刻が修正され、正しい音声認識結果としての単語列を得ることができる。すなわち、単語予備選択部５６で、正しい音声認識結果としての単語列を構成する単語の選択漏れがあったとしても、再評価部５９において、その選択漏れを是正して、正しい音声認識結果としての単語列を得ることができる。
【０１８６】
従って、再評価部５９では、マッチング部５８における終了時刻の検出の誤りの他、単語予備選択部５６における単語の選択の誤りも是正することができる。
【０１８７】
ところで、上記のような手法で音声認識の処理を行なった場合に、再評価部５９における処理の中に同じような処理が何度も繰り返されることがある。例えば、単語接続関係記憶部６０に、図２０に示されるグラフ構造に対応する単語接続関係情報が記憶されていたとする。図２０においては、ノード１、ノード２、ノード３、およびノード４を結ぶアーク１、アーク２、およびアーク３により、単語列仮説「ドアを開ける」が形成されている。また、ノード１、ノード５、およびノード６を結ぶアーク４およびアーク５により、単語列仮説「窓を」が形成されている。図２０において、ノード６が、途中ノードである。図２１は、マッチング処理により、図２０のノード６に、後続の単語候補「開ける」を接続する場合の例を示している。図２１の例においては、ノード６から、２つの異なる終了時刻ｔ１およびｔ２を有するノード７およびノード８に対して、同一の単語候補「開ける」に対応するアーク６およびアーク７が延びている。
【０１８８】
図２１の例に示されるように、同一の単語候補に対応して、異なる終了時刻を有するノードが複数求まった場合の、ノード５からノード７までの単語列に対する再評価処理と、ノード５からノード８までの単語列に対する再評価について考える。この２つの再評価の処理に着目すると、いずれも再評価の開始時刻は同じであり、再評価すべき単語列「を」「開ける」も同じである。違いは、終了時刻だけである。つまり、この例の場合、同じ単語列に対して同じ開始時刻から再評価が行なわれることになる。特に、前述したように、マッチング部５８におけるマッチング処理では終了時刻が固定されないため、また、複数の時刻を終了時刻とする単語仮説が生成されるため、同じ単語列に対して同じ開始時刻から再評価が行なわれる状況が頻繁に発生することになる。
【０１８９】
そこで、図２２の音声認識装置では、同じ単語列に対する同じ開始時刻からの再評価処理をより効率的に行なうようにしている。図２２は、図５の音声認識装置の再評価部５９に、再評価処理過程記憶部２０１を追加した構成になっており、図５の音声認識装置と同一の部位には同一の符号を付している。
【０１９０】
図２１を参照して、図２２の音声認識装置の再評価部５９および再評価処理過程記憶部２０１について詳細に説明する。今、図２２のノード７を始点とするマッチング処理を行なう場合、その前に、ノード７から時間的に遡った部分的な単語系列に対する再評価が行なわれる。ここでは、２単語分だけ遡り、再評価を行なう場合について説明する。この例では、「を」「開ける」という単語列に対する再評価が行なわれることになる。ここで、開始時刻はノード５に対応する時刻ｔ０、終了時刻はノード７に対応する時刻ｔ１である。再評価を行なうために、まず、音響モデルデータベース６１と辞書データベース６２に基づき、単語列「を」「開ける」に対応する状態遷移モデルが構成される。図２３は、この状態遷移モデルについて示したものである。音響モデルデータベース６１としては、３状態のleft-to-right音素HMMを用いるものとする。この時、辞書データベース６２の発音に基づき、単語列「を」「開ける」に対応する音素HMM「o 」「a」「 k」「 e」「 r」「 u」が連結され、初期ノード２５１と終了ノード２５３、および単語境界ノード２５２を有し、それぞれのノード間を遷移する状態遷移モデルが構成される。状態遷移モデルのノードは○印によって示されており、各ノードを左から右に遷移するアークと、各ノードにおいて自己遷移するアークがノード間をつなぐ実線で示されている。各音素に対応する３つのノードには出力確率密度関数が与えられ、また、ノード間を遷移するアークには遷移確率が与えられる。さらに、単語へ遷移するノード、すなわち初期ノード２５１と単語境界ノード２５２において、言語スコアが与えられる。このような状態遷移モデルを利用し、開始時刻ｔ０から終了時刻ｔ１までの特徴量系列に基づく再評価処理が行なわれることになる。
【０１９１】
再評価処理は、まず、初期ノード２５１に初期値スコアが与えられ、その後、特徴量系列を時間順に使いながら、各ノードにおけるスコア値が更新される。スコア値の更新は、動的計画法に基づく音響スコアと言語スコアの累積の処理である。終了時刻ｔ１までのスコア値の更新が終了すると、初期ノード２５１から終了ノード２５３までの状態遷移系列として最適な経路が探索され、その探索結果に基づき、単語境界ノード２５２を通過する時刻ｔ´（図示略）、および初期ノード２５１と単語境界ノード２５２間の「を」に与えられる音響スコア、単語境界ノード２５２と終了ノード２５３間の「開ける」に与えられる音響スコアが確定される。以上のような、状態遷移モデルの構築、その状態遷移モデル上でのスコア値の更新、最適経路の探索、単語境界時刻ｔ´と「を」および「開ける」の音響スコアの確定という処理が、再評価の処理となる。そして、単語境界時刻ｔ´、「を」に与えられる音響スコアＡ５´（図示略）、および「開ける」に与えられる音響スコアＡ６´（図示略）が制御部５４に送信され、単語接続関係記憶部６０に記憶された再評価の対象となった単語列に対応するノードとアークの修正が行なわれることになる。
【０１９２】
次に、図２１におけるノード８を開始点とするマッチング処理を行なう場合には、ノード７の場合と同様に、ノード８から時間的に遡った部分的な単語系列に対する再評価の処理が行なわれるわけであるが、その際に構築される状態遷移モデルはノード７に対応する前述のものと同じであり、その状態遷移モデル上でのスコア値の更新については、開始時刻がｔ０である点も同じである。従って、前述の図２３の状態遷移モデルを用いたスコア値の更新を、時刻ｔ１以降も継続し時刻ｔ２まで行ない、最適経路の探索を行なうことによって、図２１におけるノード５とノード８間の単語列に対する再評価の処理が完了し、対応する単語境界時刻と各単語の音響スコアを確定することが可能となる。
【０１９３】
そこで、図２２の再評価部５９は、ノード５とノード７間の単語列に対する再評価の処理が終了した時点で、構築された状態遷移モデルと時刻ｔ１での各ノードのスコア値、および、最適経路の探索に必要となるスコア値の更新履歴を再評価処理過程データとして、再評価処理過程記憶部２０１に記憶させる。そして、図２１におけるノード５とノード８間の単語列に対する再評価処理を行なう際には、再評価処理過程記憶部２０１に記憶された時刻ｔ１までの再評価処理過程データを利用し、時刻ｔ１から再評価処理を再開し、時刻ｔ２までのスコア値の更新を継続する。これにより、状態遷移モデルを構築する処理、および開始時刻ｔ０から時刻ｔ１までのスコア値の更新に伴う処理が共有されることになる。
【０１９４】
例えば、図２４に示されるように、同じノード２から展開された同じ単語Ｗ２に対する仮説で、ノード３乃至ノード６のような終了時刻が異なる仮説が多数生成された場合、従来は、ノード１を開始点とする再評価処理を、アーク２乃至アーク５のそれぞれの単語列に対して行なう必要があったが、図２２の音声認識装置においては、これらの再評価の処理が共有化され、結果的に、ノード１を開始点とし終了時刻の最も遅いノード６までの単語列に対する再評価の処理を1回行なうのと同等の計算量で済むことになる。つまり、ノード１とノード６間の単語列に対する再評価の処理の途中において、他の終了時刻に対する再評価の処理結果が得られるものと考えることができる。つまり、ノード１とノード６間の単語列に対する再評価の処理を途中で停止し、再評価処理過程記憶部２０１に記憶しておき、必要に応じて処理の継続が可能なようになされている。
【０１９５】
なお、再評価処理過程記憶部２０１に記憶しながら、処理の継続が行なえるようになされているので、必要がなければ処理を省略することも可能となる。例えば、スコア値が良くない単語列仮説に関して仮説を棄却する、いわゆる、仮説の枝がりと呼ばれる処理が施される場合、すべての単語列仮説が再評価されるわけではないので、必要な時だけ再評価の処理が行なえるようになっていることは重要である。
【０１９６】
また、再評価処理過程記憶部２０１に記憶された再評価処理過程データを参照するために、対応する単語列や時刻情報、あるいは、単語接続関係記憶部６０に記憶されたノードやアークの情報を利用するということは容易に実現できる。また、単語接続関係記憶部６０に記憶されたノードの中のマッチング処理を継続すべきノードに関して、ノードが保持する時刻の早い順にマッチング処理の継続を行なう場合には、再評価部５９における再評価処理もそのような時刻の早い順に行なわれることになる。
【０１９７】
従って、例えば図２１において、ノード５とノード７の間の単語列に対する再評価の処理が最初に行なわれた場合、その処理が終了した時点で、再評価部５９は、単語接続関係記憶部６０に記憶されたノードを調べ、再評価処理過程データを次に利用するノードを検索するようにする。図２１の例では、終了時刻だけが異なるノード８がこれにあたる。そして、もし、そのようなノードが見つかれば、再評価部５９は、再評価処理過程データを再評価処理過程記憶部２０１に記憶させると同時に、検索されたノードからリンクを張っておく。もし、ノードが見つからなければ、再評価の処理の共有化は行なわれないので、再評価部５９は、再評価処理過程記憶部２０１への再評価処理過程データの記憶を行なわないようにする。このようにすることで、再評価処理過程記憶部２０１における記憶容量を削減できるだけでなく、リンクを利用することで、再評価処理過程記憶部２０１に記憶された再評価処理過程データの参照を容易に行なうことができるようになる。つまり、リンクがあれば、そのリンクの張られた再評価処理過程データを利用して処理を継続し、リンクがなければ、再評価の処理を最初のノードの時刻から行なう。
【０１９８】
以上のようにすることにより、さらに音声認識処理に要する計算量を削減することが可能となる。
【０１９９】
ところで、従来の音声認識装置においては、マッチング部５８において、異なる時刻を開始時刻として、同じ単語に対するマッチング処理が何度も繰り返されることがある。例えば、図２０において、ノード３に対応する時刻を開始時刻とする単語候補「開ける」が、単語予備選択部５６により決定されたとする。一方、ノード６に対応する時刻を開始時刻とする単語候補「開ける」が、単語予備選択部５６により決定されたとする。このような場合、ノード３およびノード６に対応する、異なる２つの時刻を開始時刻として、同じ単語候補「開ける」を含む単語候補セット「あける」に対するマッチング処理が行なわれることになる。そのため、マッチング処理を行なう際に、スコア計算を行なうための計算で必要となる状態遷移モデルを動的に構築する場合に、何度も同じモデルが構築され、処理量の増大を招いている。
【０２００】
図２５は、上記のような処理の重複を防ぐことができる音声認識装置の構成例を示している。図２５の音声認識装置は、図５の音声認識装置のマッチング部５８に、単語モデル記憶部３０１が追加された構成となっており、図５の音声認識装置と同一の部位については、同一の符号を付してある。
【０２０１】
図２５の音声認識装置の動作について、図２６および図２７を参照して説明する。
【０２０２】
図２６は、単語接続関係記憶部６０に記憶された単語接続関係情報のグラフ構造の例を示している。図２６において、ノード３を開始点とするマッチング処理を行なう場合を考える。まず、ノード３に対応する時刻ｔａを開始時刻として、単語候補クラスタリング部５７から単語候補「開ける」に対応する単語候補セット「あける」が与えられたとする。この時、単語候補「開ける」のスコアの初期値が１番高い場合、この単語候補に対応する状態遷移モデル（以下、単語モデルとも称する）が、音響モデルデータベース６１と辞書データベース６２に基づいて構成される。図２７は、この単語モデルについて示したものである。音響モデルデータベース６１として、３状態のleft-to-right音素HMMを用いるものとすると、辞書データベース６２の発音に基づき、単語候補「開ける」に対応する音素HMM「a」「 k」「 e」「 r」「 u」が連結され、初期ノード３５１と終了ノード３５２を保持し、それぞれのノード間を遷移する状態遷移モデルが構成される。状態遷移モデルのノードとアークの説明は、図２３に対する説明と同じであるため、省略する。
【０２０３】
このような単語モデルを利用し、時刻ｔａを開始時刻として、スコア計算が行なわれる。スコア計算では、スコアの初期値がノード３５１に与えられ、時刻ｔａ以降の特徴量系列を時間順に使いながら、各ノードにおけるスコア値が更新される。スコア値の更新は、動的計画法に基づく音響スコアの累積の処理である。終了時刻は固定されていないため、終了ノード３５２のスコア値を各時刻ごとに調べ、そのスコア値が良い場合、すなわち、例えば、ある閾値よりスコアが高い場合に、初期ノード３５１から終了ノード３５２まで累積されたスコアを音響スコアとする単語仮説が生成される。同じ単語候補に対して、複数の終了時刻に対応する単語仮説が生成される場合もある。生成された単語仮説は、制御部５４に送信され、単語接続関係記憶部６０に記憶される。また、図２５のマッチング部５８は、スコア計算用に構築された単語候補「開ける」に対応する単語モデル（状態遷移モデル）を、単語モデル記憶部３０１に記憶させる。
【０２０４】
続いて、図２６のノード５を開始点とするマッチング処理を行なう場合に、単語候補クラスタリング部５７から単語候補「開ける」を含む単語候補セット「あける」が与えられ、単語候補「開ける」のスコアの初期値が１番高いとする。この場合、従来の音声認識装置は、再度、スコア計算用に単語候補「開ける」に対応する単語モデルを構築する必要があった。それに対して、図２５の音声認識装置においては、マッチング部５８は、単語モデル記憶部３０１に記憶された単語候補「開ける」に対応する単語モデルを読み出して、利用する。このようにすることにより、単語モデルを構築する処理が不要となり、スコアの計算だけを行なえばよいことになる。
【０２０５】
以上のように、マッチング処理において行なわれる単語モデルの構築に関して、構築されたモデルを単語モデル記憶部３０１に記憶させ、記憶された単語モデルを、後のマッチング処理で再利用するようにすることで、同じ単語に対応する単語モデルが何度も構築されることによる処理量の増大を防ぐことが可能になる。特に、開始時刻が異なる同じ単語に対するマッチング処理が頻繁に発生する場合には、その効率化は大きなものとなる。
【０２０６】
なお、上記のような単語モデルに関して、辞書データベース６２に含まれる全ての単語に対して、あらかじめ対応する単語モデルを作成しておくことによっても、マッチング処理から単語モデルの構築処理を取り除くことが可能である。しかしながら、この場合には、全ての単語に対する単語モデルを記憶しておく必要が生じ、記憶容量の大きな記憶手段を設ける必要がある。これに対して、図２５の音声認識装置においては、必要になった場合に、単語モデルが構築されるようになされているため、記憶容量は小さなものとなる。特に、直前の単語に依存した音響モデルなどを利用した場合、直前の単語に依存した単語モデルが構築されることになるため、その記憶容量の差は大きなものとなる。
【０２０７】
ところで、単語モデル記憶部３０１に記憶される単語モデルに関して、構築された単語モデルを記憶するだけでは、単語モデル記憶部３０１の記憶容量が増大しつづけることになる。そこで、例えば、発話単位で音声認識の処理が完了した際に、単語モデル記憶部３０１に記憶された単語モデルを単語モデル記憶部３０１から消去するようにしたり、記憶された単語モデルの個数が一定数以上になると、単語モデル記憶部３０１に記憶された単語モデルを単語モデル記憶部３０１から消去したりすることにより、記憶容量が増大し過ぎないようにすることができる。
【０２０８】
ところで、マッチング部５８において、ある時刻を開始時刻とする単語候補に対するマッチング処理が完了してから、別の時刻を開始時刻とする単語候補に対するマッチング処理を行なう場合、リアルタイムに入力された音声信号を処理しようとすると、片方のマッチング処理を完了するために必要となる時刻までの音声信号が入力されないと、もう一方のマッチング処理を開始できないという問題が発生する。
【０２０９】
例えば、図２０において、ノード３を開始点として「開ける」に対するマッチング処理を行ない、時刻Tまで処理を行なう場合を考える。入力音声をリアルタイムに処理することを考えると、時刻Tまでの音声の入力が完了しない限り、ノード３を開始点とするマッチング処理は完了しない。一方、ノード６を開始点とするマッチング処理に着目すると、時刻Tまでの音声入力が完了しなくても、時刻t以降の音声が入力された段階で、マッチング処理を開始することが可能である。従って、ノード３を開始点とするマッチング処理が完了しなくてもノード６を開始点とするマッチング処理を開始できることが望ましい。
【０２１０】
図２８は、入力音声をリアルタイムに処理できるようにした音声認識装置の構成例を示している。図２８は、図５の音声認識装置のマッチング部５８に、マッチング処理過程記憶部４０１が追加された構成となっており、図５の音声認識装置と同一の部位には同一の符号を付してある。
【０２１１】
図２８の音声認識装置の動作について、図２６を参照して説明する。図２６において、ノード３を開始点とするマッチング処理を行なう場合を考える。ここで、ノード３に対応する時刻ｔａを開始時刻として、単語候補クラスタリング部５７からマッチング部５８に単語候補セットが与えられたとする。この時、マッチング処理として、単語モデルの構築、その単語モデル上でのスコア値の更新、単語仮説の生成という処理が行なわれることについては、図５の音声認識装置と同様である。
【０２１２】
ところで、入力音声をリアルタイムに処理する場合、時刻ｔａを開始時刻とするマッチング処理を行なおうとしても、時刻ｔａ以降の音声が完全に利用できるとは限らない。例えば、時刻Tまでマッチング処理が必要な場合に、時刻ｔｃまでの音声しか入力されていない状況では、マッチング処理を完了することができない。そこで、図２８のマッチング部５８は、時刻ｔｃまでの特徴量系列だけを用いて、単語モデル上でのスコア値の更新を行なうようにし、構築された単語モデルと、そのモデル上の各状態のスコア値、および、スコア値の更新履歴をマッチング処理過程データとして、マッチング処理過程記憶部４０１に記憶させる。
【０２１３】
続いて、マッチング部５８は、図２６のノード５を開始点とするマッチング処理を行なう。ここで、ノード５に対応する時刻ｔｂを開始時刻として、単語候補クラスタリング部５７から単語候補セットが与えられる。その単語候補セットのうち１番スコアの初期値が高い単語候補に対して、単語モデルの構築、その単語モデル上でのスコア値の更新、単語仮説の生成という処理が行なわれることについては、図２６のノード３の場合と同じである。
【０２１４】
この処理中にも音声が入力されているため、入力音声の終端時刻は、図中、ｔｃより右方向（より新しい時刻）へとシフトしていく。今、入力音声の終端時刻が時刻ｔｄにシフトしたとする。ノード５に接続する単語のマッチング処理においても、時刻Tまでのマッチング処理が必要だとすると、時刻ｔｄでは、マッチング処理を完了させることができないので、マッチング部５８は、構築された単語モデルと、そのモデル上の各状態のスコア値、および、スコア値の更新履歴をマッチング処理過程データとして、マッチング処理過程記憶部４０１に記憶させる。ここで、ノード３を開始点とするマッチング処理に関しては、時刻ｔｃまでしかマッチング処理を行なっていないので、時刻ｔｄまで処理を進めることができることになる。そこで、マッチング部５８は、マッチング処理過程記憶部４０１に記憶されたマッチング処理過程データを用いて、ノード３を開始点とするマッチング処理を時刻ｔｃから再開する。以上のようにして、ノード３以降の部分とノード５以降の部分についてのマッチング処理を、入力音声に応じて、交互に進めるようにする。
【０２１５】
以上のように、音声の入力に応じて、マッチング処理を進められる範囲で進めた後、一時的に処理を停止して記憶し、必要に応じて、マッチング処理を継続できるようにすることで、入力音声に対してリアルタイムに処理を行なう場合の処理の高速化が実現されることになる。
【０２１６】
なお、以上の説明においては、図２２、図２５、および図２８の音声認識装置をそれぞれ独立して説明したが、音声認識装置が、図２２、図２５、および図２８にそれぞれ示された再評価処理過程記憶部２０１、単語モデル記憶部３０１、およびマッチング処理過程記憶部４０１のうち、いずれか２つ、あるいは３つ全てを有するようにすることも可能である。
【０２１７】
また、再評価処理で利用される状態遷移モデルと、マッチング処理で利用される単語モデル(状態遷移モデル)に関して、ある単語に着目した場合、その状態遷移モデルは同じとなる場合がある。このような場合、その状態遷移モデルそのものは時刻には依存しないものなので、共通に利用するようにしてもよい。すなわち、図２５の単語モデル記憶部３０１に記憶された単語モデルを、再評価部５９で利用できるようにしてもよい。これにより、再評価部５９における状態遷移モデルを構築する処理を効率化することが可能となる。
【０２１８】
以上のように、単語候補クラスタリング部５７において、単語予備選択部５６で決定される単語候補がクラスタリングされ、得られた単語候補セット毎にマッチング処理が1回だけ行なわれるので、マッチング処理に要する計算量を大幅に削減することができる。そのマッチング処理は、直前の単語列仮説の数に依存することもない。また、再評価部５９において、直前の単語列仮説に依存した音響モデルが適用され、マッチング処理で決定される単語境界や音響スコアが正しく補正されるため、マッチング処理の削減に伴う認識精度の劣化もほとんど発生することはない。つまり、音声認識の精度を落とすことなく、処理の高速化が可能となる。
【０２１９】
実際に、本実施の形態の手法を、語彙数６万語の大語彙連続音声認識に適用した結果、マッチング処理に要する処理量が１０分の１以下に削減されることが確認された。この実験では、各時刻において着目すべき部分的な単語列仮説を約３０に制限し、それぞれ単語列仮説から展開すべき単語候補として、単語予備選択によって抽出される候補数が約１０００語程度になる場合について、本実施の形態の手法を適用した場合としない場合で比較を行なった。
【０２２０】
従来は、ある時刻に着目したとき、単語候補数が１０００語、部分的な単語列仮説が約３０と仮定すれば、マッチング処理が３００００回行なわれることになるのが、本実施の形態の手法を適用した場合、単語列仮説の個数に依存しなくなることから、少なくとも１０００回に抑えられることになる。さらに、同じ発音に対してのマッチング処理も削減されることになり、同音異義語の多い日本語の場合、さらに数パーセントから１０パーセント程度の処理の削減が見込まれることになる。つまり、３０分の１以下になることが期待される。しかしながら、マッチング処理の過程において、いわゆるビームサーチと呼ばれる仮説の枝刈りの処理を施していたことで、それぞれのマッチングの処理量が、もともとある程度抑えられていたため、この実験では、１０分の１以下の削減になったものと思われる。
【０２２１】
また、図２２の音声認識装置のように、開始時刻が同じで終了時刻が異なるだけの同じ単語列に対する再評価の処理に関して、再評価の処理を共有化する手段を備える、すなわち、再評価の処理過程を一時的に停止し記憶する手段と、その記憶された再評価の処理過程を用いて処理を継続する手段を備えることで、再評価に要する処理の効率化を可能となる。
【０２２２】
また、図２５の音声認識装置のように、マッチング処理においてスコア計算を行なうために構築されるスコア計算用の単語モデルを記憶する手段を備え、同じ単語に対するスコア計算が必要になった場合に、記憶された単語モデルを利用することで、単語モデル構築に要する処理の共有化(効率化)が実現される。
【０２２３】
さらにまた、図２８の音声認識装置のように、マッチング処理を一時的に停止し記憶する手段と、その記憶されたマッチングの処理過程を用いて処理を続行する手段を備えることで、リアルタイムに入力される音声信号に対して、マッチング処理を処理可能なところから進めることが出来るようになるため、計算資源の有効活用が可能となる。
【０２２４】
結果的に、音声認識処理の高速化が実現される。
【０２２５】
なお、ここでは、音響モデルデータベース６１、辞書データベース６２、および文法データベース６３に関しては、単語予備選択部５６、マッチング部５８、および再評価部５９で共通のものを用いるものとして説明したが、それぞれで異なる音響モデルデータベース、辞書データベース、および文法データベースを用いることも可能である。例えば、文法としては、単語予備選択部５６ではユニグラムを用い、マッチング部５８ではバイグラムを用い、再評価部５９ではトライグラムを用いることが可能である。
【０２２６】
また、以上の説明においては、単語候補クラスタリング部５７において、発音が同じ単語候補（同音語）をクラスタリングする（「同一の発音を有する単語」という属性に基づいて、分類する）場合を例にして説明したが、発音が完全に同じでなくても、単語と単語の音響的な類似性を示すような距離尺度を定義し、その距離尺度が設定された閾値より小さいもの、つまり音響的な類似度が高い単語候補をクラスタリングする（「音響的に類似した単語」という属性に基づいて、分類する）ことで、マッチングの処理量をさらに削減することも可能である。
【０２２７】
なお、本発明は、例えば、家庭用あるいは業務用のゲーム機、携帯電話機、携帯端末装置、その他、あらゆる電化機器に適用することが可能である。
【０２２８】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体等からインストールされる。
【０２２９】
図２９は、このような処理を実行するパーソナルコンピュータ５００の内部構成例を示す図である。パーソナルコンピュータのCPU（Central Processing Unit）５０１は、ROM（Read Only Memory）５０２に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）５０３には、CPU５０１が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース５０５には、マウス、キーボード、マイクロフォン、AD変換器などから構成される入力部５０６が接続され、入力部５０６に入力された信号をCPU５０１に出力する。また、入出力インタフェース５０５は、ディスプレイ、スピーカ、およびDA変換器などから構成される出力部５０７も接続されている。
【０２３０】
さらに、入出力インタフェース５０５には、ハードディスクなどから構成される記憶部５０８、および、インターネットなどのネットワークを介して他の装置とデータの通信を行なう通信部５０９も接続されている。ドライブ５１０は、磁気ディスク５２１、光ディスク５２２、光磁気ディスク５２３、半導体メモリ５３４などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
【０２３１】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図２９に示すように、磁気ディスク５２１（フレキシブルディスクを含む）、光ディスク５２２（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク５２３（ＭＤ（Mini-Disk）を含む）、もしくは半導体メモリ５２４などよりなるパッケージメディア、または、プログラムが一時的もしくは永続的に格納されるROM５０２や、記憶部５０８を構成するハードディスクなどにより構成される。プログラム格納媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０２３２】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２３３】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２３４】
【図１】従来の音声認識装置の構成例を示すブロック図である。
【図２】バンドルサーチ法を説明する図である。
【図３】グラフ構造による単語接続関係情報の例を示す図である。
【図４】グラフ構造による単語接続関係情報の例を示す図である。
【図５】本発明を適用した音声認識装置の構成例を示すブロック図である。
【図６】単語接続関係記憶部に記憶された単語接続関係情報の例を示す図である。
【図７】図５の音声認識装置の音声認識処理を説明するフローチャートである。
【図８】再評価処理を説明する図である。
【図９】再評価処理を説明する図８に続く図である。
【図１０】再評価処理を説明する図９に続く図である。
【図１１】再評価処理を説明する図１０に続く図である。
【図１２】図７のステップＳ７の処理を詳細に説明するフローチャートである。
【図１３】スコアの初期値の組み合わせの例を説明する図である。
【図１４】単語接続関係記憶部に記憶された単語接続関係情報の例を示す図である。
【図１５】単語モデル（状態遷移モデル）の例を示す図である。
【図１６】単語接続関係記憶部に記憶された単語接続関係情報の例を示す図である。
【図１７】単語接続関係記憶部に記憶された単語接続関係情報の例を示す図である。
【図１８】スコアの初期値の組み合わせの例を説明する図である。
【図１９】単語接続関係記憶部に記憶された単語接続関係情報の例を示す図である。
【図２０】単語接続関係記憶部に記憶された単語接続関係情報の例を示す図である。
【図２１】単語接続関係記憶部に記憶された単語接続関係情報の例を示す図である。
【図２２】本発明を適用した音声認識装置の他の構成例を示すブロック図である。
【図２３】単語モデル（状態遷移モデル）の例を示す図である。
【図２４】単語接続関係記憶部に記憶された単語接続関係情報の例を示す図である。
【図２５】本発明を適用した音声認識装置の他の構成例を示すブロック図である。
【図２６】単語接続関係記憶部に記憶された単語接続関係情報の例を示す図である。
【図２７】単語モデル（状態遷移モデル）の例を示す図である。
【図２８】本発明を適用した音声認識装置の他の構成例を示すブロック図である。
【図２９】本発明を適用したパーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【０２３５】
５１  マイク，  ５２  AD変換部，  ５３  特徴抽出部，  ５４  制御部，  ５５  特徴量記憶部，  ５６  単語予備選択部，  ５７  単語候補クラスタリング部，  ５８  マッチング部，  ５９  再評価部，  ６０  単語接続関係記憶部，  ６１  音響モデルデータベース（DB），  ６２  辞書データベース（DB），  ６３  文法データベース（DB），  ２０１  再評価処理過程記憶部，  ３０１  単語モデル記憶部，  ４０１  マッチング処理過程記憶部
【図１】
2005134442.tif 000003
【図２】
2005134442.tif 000004
【図３】
2005134442.tif 000005
【図４】
2005134442.tif 000006
【図５】
2005134442.tif 000007
【図６】
2005134442.tif 000008
【図７】
2005134442.tif 000009
【図８】
2005134442.tif 000010
【図９】
2005134442.tif 000011
【図１０】
2005134442.tif 000012
【図１１】
2005134442.tif 000013
【図１２】
2005134442.tif 000014
【図１３】
2005134442.tif 000015
【図１４】
2005134442.tif 000016
【図１５】
2005134442.tif 000017
【図１６】
2005134442.tif 000018
【図１７】
2005134442.tif 000019
【図１８】
2005134442.tif 000020
【図１９】
2005134442.tif 000021
【図２０】
2005134442.tif 000022
【図２１】
2005134442.tif 000023
【図２２】
2005134442.tif 000024
【図２３】
2005134442.tif 000025
【図２４】
2005134442.tif 000026
【図２５】
2005134442.tif 000027
【図２６】
2005134442.tif 000028
【図２７】
2005134442.tif 000029
【図２８】
2005134442.tif 000030
【図２９】
2005134442.tif 000031