(57)【特許請求の範囲】
【請求項１】
特徴ベクトルに対してＨＭＭ音声認識を行なうためにデータプロセッサが中間テーブル及び数値テーブルを参照して混合多次元ガウス分布によって表現される出力確率を演算可能なデータ処理システムであって、
前記数値テーブルは、複数種類の１次元ガウス分布を基にした夫々の分布の数値を格納する領域を有し、
前記中間テーブルは、混合多次元ガウス分布を構成する１次元ガウス分布毎に定義され、夫々入力特徴ベクトルのスカラー量子化値毎に対応する値として、当該１次元ガウス分布の平均に対応する位置から第１の所定範囲内では距離情報を算出するために必要な値が格納された領域を示すアドレス値、当該１次元ガウス分布の平均に対応する位置から第１の所定範囲外且つ第２の所定範囲内では距離データ、当該１次元ガウス分布の平均に対応する位置から第２の所定範囲外では固定値の夫々を格納する領域を有し、
前記データプロセッサは、入力特徴ベクトルに対し混合多次元ガウス分布を構成する多次元ガウス分布毎に出力確率を求め、その総和を入力特徴ベクトルに対する混合多次元ガウス分布の出力確率とする演算において、上記多次元ガウス分布毎の出力確率を、入力特徴ベクトルの特徴成分毎に求められる多次元ガウス分布を構成する一次元ガウス分布との距離情報の総乗値として求めるとき、特徴成分毎に参照した中間テーブルの値がアドレス値であればそのアドレスが示す数値テーブルの領域の値を利用して距離情報を算出し、特徴成分毎に参照した中間テーブルの値が距離データであればその値を距離情報とし距離情報の累計値が所定値を超えていれば当該多次元ガウス分布の出力確率演算を中止し、特徴成分毎に参照した中間テーブルの値が固定値であれば当該多次元ガウス分布の出力確率演算を中止することを特徴とするデータ処理システム。
【請求項２】
第１の方向には分散に基づき、第２の方向には平均に基づき、２次元配列としてアクセス可能なグローバルテーブルを有し、
前記グローバルテーブルには、１次元ガウス分布の分散の値毎に定義された中間テーブルが第２の方向に複数配置され、夫々の中間テーブルは１次元ガウス分布の平均に対応する第１の方向の位置が同一にされて配置され、
前記データプロセッサは１次元ガウス分布の分散及び平均に基づいて当該１次元ガウス分布に対応する中間テーブルを検索する請求項１記載のデータ処理システム。
【請求項３】
混合多次元ガウス分布の多次元ガウス分布毎に特徴成分毎の分散及び平均の値が配置されたアクセスポインタテーブルを形成する領域有し、データプロセッサは、前記アクセスポインタテーブルのアクセスポインタを用いて中間テーブルの検索を行なうものであることを特徴とする請求の範囲第２項に記載のデータ処理システム。
【請求項４】
前記データプロセッサは、適応によって混合多次元ガウス分布の平均と分散の双方又は一方が変更されるとき、これに応じて前記アクセスポインタテーブルのアクセスポインタ値を変更するものであることを特徴とする請求の範囲第３項に記載のデータ処理システム。
【請求項５】
前記アクセスポインタテーブルを複数セット形成可能な領域を有し、前記データプロセッサは、話者を識別し、その識別結果に応じたアクセスポインタテーブルを用いるものであることを特徴とする請求の範囲第３項に記載のデータ処理システム。
【請求項６】
前記アクセスポインタテーブルと話者とを対応付ける管理テーブルの形成領域を有し、前記データプロセッサは、話者の特徴を示す予め登録した識別用特徴情報と実際の音声特徴分析結果との比較結果に基づいて前記話者の識別を行ない、この識別された話者が、前記管理テーブルに登録されている話者であるときは、当該登録話者のアクセスポインタテーブルを参照するものであることを特徴とする請求の範囲第５項に記載のデータ処理システム。
【請求項７】
前記データプロセッサは、前記管理テーブルに登録可能な話者の人数を一定に限定すると共に、登録話者毎の使用頻度の情報を前記管理テーブルに追加し、音声特徴分析結果が登録話者であるとき、分析結果に一致する登録話者の使用頻度をインクリメントし、分析結果に不一致の登録話者の使用頻度をデクリメントし、音声特徴分析結果が登録話者以外であるときは、最低使用頻度の登録話者を前記管理テーブルから削除し、これに代えて当該登録話者以外の話者を管理テーブルに追加するものであることを特徴とする請求項６に記載のデータ処理システム。
【請求項８】
複数の音声入力系を持ち、個々の音声入力系毎に、前記アクセスポインタテーブルの形成領域を有し、前記データプロセッサは、前記複数の音声入力系に対して、独立にアクセスポインタテーブルを用いて、並列的な音声認識を可能にするものであることを特徴とする請求の範囲第３項に記載のデータ処理システム。
【請求項９】
特徴ベクトルに対してＨＭＭ音声認識を行なうために中間テーブル及び数値テーブルを参照して混合多次元ガウス分布によって表現される出力確率を演算するデータ処理を含む出力確率演算法方であって、
前記数値テーブルは、複数種類の１次元ガウス分布を基にした夫々の分布の数値を格納する領域を有し、
前記中間テーブルは、混合多次元ガウス分布を構成する１次元ガウス分布毎に定義され、夫々入力特徴ベクトルのスカラー量子化値毎に対応する値として、当該１次元ガウス分布の平均に対応する位置から第１の所定範囲内では距離情報を算出するために必要な値が格納された領域を示すアドレス値、当該１次元ガウス分布の平均に対応する位置から第１の所定範囲外且つ第２の所定範囲内では距離データ、当該１次元ガウス分布の平均に対応する位置から第２の所定範囲外では固定値の夫々を格納する領域を有し、
前記データ処理は、入力特徴ベクトルに対し混合多次元ガウス分布を構成する多次元ガウス分布毎に出力確率を求め、その総和を入力特徴ベクトルに対する混合多次元ガウス分布の出力確率とする演算において、上記多次元ガウス分布毎の出力確率を、入力特徴ベクトルの特徴成分毎に求められる多次元ガウス分布を構成する一次元ガウス分布との距離情報の総乗値として求めるとき、特徴成分毎に参照した中間テーブルの値がアドレス値であればそのアドレスが示す数値テーブルの領域の値を利用して距離情報を算出し、特徴成分毎に参照した中間テーブルの値が距離データであればその値を距離情報とし距離情報の累計値が所定値を超えていれば当該多次元ガウス分布の出力確率演算を中止し、特徴成分毎に参照した中間テーブルの値が固定値であれば当該多次元ガウス分布の出力確率演算を中止する処理であることを特徴とする出力確率演算法方。
【請求項１０】
第１の方向には分散に基づき、第２の方向には平均に基づき、２次元配列としてアクセス可能なグローバルテーブルを更に利用し、
前記グローバルテーブルには、１次元ガウス分布の分散の値毎に定義された中間テーブルが第２の方向に複数配置され、夫々の中間テーブルは１次元ガウス分布の平均に対応する第１の方向の位置が同一にされて配置され、
前記データ処理は、１次元ガウス分布の分散及び平均に基づいて当該１次元ガウス分布に対応する中間テーブルを検索する処理を含む請求項９記載の出力確率演算法方。
【発明の詳細な説明】
技術分野
本発明は、混合ガウス分布を用いた連続分布型隠れマルコフモデル（Ｃｏｎｔｉｎｕｏｕｓ  Ｍｉｘｔｕｒｅ  Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌｓ：ＨＭＭ）を用いた音声認識技術、更にはそのための出力確率の演算技術に関し、例えば、音声認識のための演算処理を行うデータプロセッサを有し電池駆動される携帯情報端末装置に適用して有効な技術に関するものである。
背景技術
隠れマルコフモデルは、マルコフ過程（時点ｔ＋１の状態が時点ｎの状態によってのみ与えられる確率過程）で表現される状態遷移モデルである。この隠れマルコフモデルを音声認識技術に適用することができる。この音声認識技術の概要を解かりやすく説明する。認識対象音声を例えば１０ｍｓのうような部分区間（フレーム）に分割し、フレーム毎に周波数スペクトルのような特徴ベクトルを抽出する。このとき、認識すべき音の連鎖をフレーム毎の状態の連鎖とみなす。個々の状態に対して特徴ベクトルに近似した音源を割当てられるように各状態を決定できれば、音声認識が実現されることになる。そのために、個々の状態が種々の音源に対して特徴ベクトルに匹敵する尤度（もっともらしさ）を確率的に表す出力確率と、現在の状態が隣の状態に変化する確率を示す状態遷移確率とを採用し、前記状態毎の出力確率と状態遷移確率との積の各状態の総和が最も大きくなる状態の連鎖を以って、音声認識結果とすることができる。前記特徴ベクトル列から想定されるパターン毎に、フレーム単位で状態遷移確率と出力確率とを積算するための演算量は膨大である。特に、出力確率は混合多次元ガウス分布によって与えられる。混合多次元ガウス分布は、例えば、「あ」という音素に対して年齢、性別などの個々の要素毎の確率的な分布を有することになり、各々の確率的な分布は特徴ベクトルの次数に応ずる多次元ガウス分布から成り、夫々の多次元ガウス分布は１次元のガウス分布を複合した確率分布とされる。したがって、混合多次元ガウス分布における混合数や次数が多いほど出力確率の演算に時間を要することになる。本発明者の試算に依れば、出力確率の計算負荷は音声認識処理全体の５０〜８０％のように膨大になることがある。
この出力確率の演算を高速化するには、混合多次元ガウス分布に対して、計算する分布の範囲を削減することが有効である。例えば、特徴ベクトルを幾つかの標準的なパターンに対応させ（ベクトル量子化）、そのパターン毎に出力確率を定義する方法が可能である。この処理の場合、特徴空間を部分領域に分割して、その部分領域と計算する分布とを対応付けることになるが、このような特徴ベクトルと部分領域との対応には、ベクトル量子化を用いることができる。ベクトル量子化とは、特徴空間上の有限個の代表ベクトルを考え、特徴空間上の任意の点を、その点に最も近い代表ベクトルで近似表現する方法である。このようなベクトル量子化には、効率的な方法が幾つか提案されているが、基本的に、距離が最小となる代表ベクトルを選択するもので、混合分布を計算するのに比べて計算量は僅少ではあるが、それでも計算負荷が小さいとはいえない。
また、出力確率の演算の一部をテーブル化して演算速度を高速化することも可能である。この場合にも、そのテーブルをベクトル量子化によって構成することができる。しかし、ベクトル量子化して出力確率を対応させると、量子化誤差が大きくなり、認識性能が劣化する。
そこで、計算を各特徴次元における計算に分解して、各特徴次元を標準的なガウス分布のパターンに分割し、各々の計算結果をテーブル化することが考えられる。このような手法にスカラ量子化を採用する。スカラ量子化として、例えば、単一ガウス分布をテーブル化する手法がある。この場合、ベクトル量子化とは異なり、量子化誤差は僅少になる。
スカラ量子化として、非線形スカラ量子化を採用することができる。即ち、特徴ベクトルの特徴次数は数十次元におよび、混合多次元ガウス分布の各次元毎に、全ての単一ガウス分布をテーブル化することは効率的でないから、データテーブルの種類を少なくしようとするものである。混合ガウス分布のスカラ量子化において、各次元毎の関数は、単一の１次元正規分布（単一ガウス分布）であり、これを用いれば、出力確率の計算を簡略化することができる。特徴次数や混合毎に相異されるであろう１次元正規分布の相関は、夫々の分布の平均と分散が分かれば規定できる。その相関を決めるために、特徴次数毎にパラメータを演算し、演算したパラメータと特徴ベクトルの特徴成分とを用いて、代表的に設けられている１次元正規分布の数値テーブルをアクセスする。このような非線形スカラ量子化を用いて数値テーブルをアクセスして、混合ＨＭＭの演算量を減らそうとする技術については、例えば、“ＯＮ  ＴＨＥ  ＵＳＥ  ＯＦ  ＳＣＡＬＡＲ  ＱＵＡＮＴＩＺＡＴＩＯＮ  ＦＯＲ  ＦＡＳＴ  ＨＭＭ  ＣＯＭＰＵＴＡＴＩＯＮ”，ＩＣＡＳＳＰ  ９５，ｐｐ．２１３−２１６がある。
しかしながら、その手法は、テーブルアクセスのために必ず各特徴成分毎のパラメータ演算を行わなければならず、また、テーブルの参照においても、そのように演算されたパラメータを用いるアクセスは、テーブルに対して連続した配列のアクセスになるとは限らないので、テーブルを参照するためのアドレス演算も毎回乗算と加算が必要になる。
このような手間のかかるパラメータ演算を行わずに数値テーブルを参照できるようにするには、例えば、一般的な線形量子化を適用した線形スカラ量子化を行うようにすればよい。即ち、特徴を等間隔に量子化するようにする。例えば、量子化し易いように、単一ガウス分布のデータテーブルを２のＮ乗個に分割すれば、特徴成分の上位Ｎビットを抽出することによって、簡単に量子化することができる。線形スカラ量子化では、代表点は固定であるから、混合多次元ガウス分布に対して、線形スカラ量子化処理は、各フレーム毎に１回行えばよい。換言すれば、特徴次元毎に１回行なえばよい。また、代表点はそのままインデックスに相当するから、数値テーブルにおける先頭アドレスと所望アドレスとの差（以下、オフセット）は、インデックス×データ長であり、これも全ての分布に共通であるから、そのような演算は１フレームにただ１回実行すれば良い。そして、必要な数値テーブルへのアクセスは、各数値テーブルのアドレスと、全ての特徴成分に共通したオフセットの和で計算できるから、結局、１回の加算と、２回のロード（先頭アドレスと数値データ）で実行される。
混合ガウス型ＨＭＭの出力確率の計算では、単一ガウス分布（含む対数系）に対する計算量の低減が重要になる。各特徴成分毎の単一ガウス分布の計算は、出力確率の計算において最も計算負荷の大きい部分であり、計算数は、全モデル数×混合数×特徴次元の数で表現されるため、些細な計算コストの増大が、全体の計算量の増大に直結する。この部分で、線形スカラ量子化は、テーブルのアクセス以外、全く計算が発生しないため、計算効率の観点からは非常に優れている。
しかしながら、線形スカラ量子化は、計算効率の観点から非常に高速であるが、固定された代表点に対して、各分布毎に数値テーブルが必要になる。従って、数値テーブルの数若しくはデータ量が膨大になるという大きな問題が有る。また、話者適応処理や雑音適応処理のために、混合ガウス分布のパラメータ（平均・分散）を修正すると、それに伴う計算量も膨大になり、数値テーブルを修正するにも多大の処理が必要になる。
上述のように非線形スカラ量子化を採用した場合には数値テーブルの参照に多大の演算処理を要し、線型形スカラ量子化を採用した場合には数値テーブルの参照は効率化されるが膨大な数値テーブルが必要になり、それ故に適応処理には多大な演算時間を要し、何れにおいても、携帯情報端末装置や、電池駆動されるデータ処理システムのように、演算処理能力が比較的低いデータ処理システム、更には低コストの要請が厳しいデータ処理システムでは、実用に耐えることができない。
本発明の目的は、ＨＭＭの出力確率を高速に計算できると共に、話者適応や環境適応等のモデルの修正に柔軟に対応できるデータ処理システム、そして混合ガウスＨＭＭ出力確率演算方法を提供することにある。
本発明の別の目的は、携帯情報端末装置や、電池駆動されるデータ処理システムのように、演算処理能力が比較的低いデータ処理システム、更には低コストの要請が厳しいデータ処理システムであっても、出力確率演算の高速化と、適応による多次元ガウス分布の変更に対する処理の高速化とを実現できるデータ処理システムを提供することにある。
本発明の上記並びにその他の目的と新規な特徴は本明細書の以下の記述と添付図面から明らかにされるであろう。
発明の開示
《中間テーブルによる可変マッピング》
混合ガウスＨＭＭでは、出力確率は、混合多次元ガウス分布（式２）のような関数で与えられる。例えば、混合多次元ガウス分布は、多次元ガウス分布の和になり、多次元ガウス分布は特徴成分毎の１次元ガウス分布の積になる。特徴成分は認識対象音声の観測系である特徴ベクトルの成分である。特徴成分毎の１次元ガウス分布の分散及び平均は特徴成分毎に固有である。種々の１次元ガウス分布の数値をテーブル化するとき、特徴成分毎に個々の１次元ガウス分布の数値テーブルを用意することはしない。中間テーブル（３０１，４０１）を設ける。即ち、数値テーブル（１０５２）には代表的な分散及び平均を持つ複数種類の１次元ガウス分布を基にした夫々の分布の数値が格納されている。特徴成分に対しては線形スカラ量子化を採用し、その量子化値をインデックスとして中間テーブル上の情報を参照する。中間テーブルを特徴成分毎に設ける場合、個々の中間テーブルは、所要の分散及び平均に応ずる１次元ガウス分布に関する数値テーブル上の数値の所在を示すアドレス情報が格納されている。適応によって１次元ガウス分布の分散や平均を変更する場合、当該変更された分散や平均に応ずる１次元ガウス分布の数値データの所在に従って中間テーブルの内容を書き換える。
各特徴成分に共通のグローバルテーブル（４００）を形成し、このグローバルテーブルから中間テーブルを抽出して用いるようにすることも可能である。グローバルテーブルは、第１７図に例示されるように、Ｘ−Ｙ方向にマトリクス状に記憶領域を有し、個々のＸ方向の配列は数値テーブル上の対応する１次元ガウス分布の数値の所在を示すアドレス情報の配列とされ、夫々のＸ方向の配列に関する１次元ガウス分布の分散は相互に相異され、その平均は、例えば分布の中央に統一されている。グローバルテーブルに対するＹ方法の選択には１次元ガウス分布の分散の値を考慮し、Ｘ方向の先頭位置の選択には１次元ガウス分布の平均の値を考慮する。平均が大きいほどＸ方向の先頭位置をＸ方向寄りにシフトすればよい。グローバルテーブルのＹ方向位置とＸ方向先頭位置とによって当該Ｘ方向先頭位置から始まる中間テーブルを抽出できる。抽出された中間テーブルに対するアクセスは、前述と同様に、特徴成分の量子化値を当該先頭位置からのオフセットとして用いる。適応によって１次元ガウス分布の分散だけを変更する場合、中間テーブルを抽出するときのＹ方向位置を変えればよい。適応によって１次元ガウス分布の平均だけを変更する場合、中間テーブルを抽出するときのＸ方向先頭位置を変更すればよい。特徴成分毎に抽出すべき中間テーブルの先頭アドレスはアクセスポインタ（Ｐ０〜Ｐｎ）によって指示すればよい。アクセスポインタの値は、分散（σ）や平均（μ）に応じて予め演算しておくことができる。適応に際しては、分散や平均の修正に応じてそのアクセスポインタの値を修正しておくことができる。特徴成分毎のアクセスポインタは、多次元ガウス分布毎にアクセスポインタテーブル（４２０）に予め纏めておくことができる。
以上のように、各特徴成分毎に数値テーブル参照のための複雑なパラメータ演算を回避しつつ、平均や分散の修正に対応するために、線形スカラ量子化を採用し、また、線形量子化された特徴成分に応じた数値テーブルのアクセスのパターンを制御するために、中間テーブルを採用した。線形量子化された特徴成分と数値テーブルとの間に、マッピング関係を可変とするインデックス変換を目的とした中間テーブルを挿入することで、適応による分散や平均の修正に対して容易に対応できる。即ち、そのような適応による分散や平均の修正に対して、前記グローバルテーブルを用いる構成ではアクセスポインタを修正するだけで対応することができる。見方を変えれば、線形スカラ量子化とインデックス変換を目的とした中間テーブルを組み合わせることで、線形スカラ量子化による数値テーブル参照の高速化を保証しつつ、非線形スカラ量子化と同じようにテーブルのデータ量削減を実現することができる。
《インデックス変換の類型化と共通化による効率化》
上記の構成を単純に実現すると、数値テーブルの書き換えは発生しないが、その代りに中間テーブルの書き換え等が発生する。この問題に対処するために、第１に、（ａ）インデックス変換の類型化による中間変換パターンを事前に計算しておく構成を採用する。即ち、話者適応化あるいは環境適応化において、適応化はガウス分布の平均および分散の修正変更によって行われる。この平均および分散のパターンを類型化し、これを事前に保有することで、テーブル変更のコストを最小にする。第２に、（ｂ）中間テーブルの共通化による簡略化を行なう、即ち、上記の方法においては、各々のＨＭＭ毎に、各々の混合分布で中間テーブルを有することを想定していたが、これは、全ての変換パターンを網羅したテーブルが一つあれば、そのテーブル上の（各ＨＭＭの各混合分布の）アクセス位置を保有することで、中間テーブルの機能が実現できる。この場合、話者適応および環境適応化は、上記のアクセス位置の修正のみで十分である。
《中間テーブルによる計算分布の選択》
混合ガウス分布の計算で、計算分布の削減は計算高速化の有効な方法である。本発明では、この中間テーブルに、分布選択機能を具備することで、計算の簡略化を図る。一般に、多次元ガウス分布は、各特徴次元における一次元ガウス分布の積で表現されるが、この各々の一次元ガウス分布に対する評価を中間テーブル中に挿入することで、数値テーブルの無用な参照を減らして、分布の削減機能を実現できる。
《データ処理システム》
本発明の一つの態様であるデータ処理システムは、特徴ベクトルに対してＨＭＭ音声認識を行なうためにデータプロセッサ（１０３）が中間テーブル（３０１，３０２）及び数値テーブル（１０５２）を参照して混合多次元ガウス分布によって表現される出力確率を演算可能であって、前記数値テーブル（１０５２）は、複数種類の１次元ガウス分布を基にした夫々の分布の数値を格納する領域（１０５２Ｅ）を有し、前記中間テーブル（３０１，３０２）は、前記特徴ベクトルの特徴成分の値に対する線形量子化値に基づいて選択される領域にその量子化値に対応する前記数値テーブルの値の所在を示すためのアドレス情報を格納する領域（３０１Ｅ，３０２Ｅ）を有する。そして、前記データプロセッサは、前記特徴成分の値を線形量子化すると共に、特徴成分毎のアクセスポインタ（３１０のＰ０〜Ｐｎ）により中間テーブルを選択し、前記線形量子化された値を基に前記選択した中間テーブルよりアドレス情報を取得し、取得したアドレス情報を用いて数値テーブルを参照する処理を行い、数値テーブルから参照した値に基づいて前記出力確率を演算する。
上記データ処理システムにおいて、混合多次元ガウス分布の多次元ガウス分布毎に特徴成分毎の前記アクセスポインタが配置されるアクセスポインタテーブル（３１０）の形成領域を有し、データプロセッサは、前記アクセスポインタテーブルのアクセスポインタを用いて中間テーブルの選択を行なうように構成することができる。
前記量子化に関しては、前記１次元ガウス分布を基にした夫々の前記分布全体を２のＮ乗個の数値によって表現すると、前記特徴成分の量子化値はその値の上位Ｎビットになる。これは、単なる特徴成分のシフト動作だけで量子化できることを意味する。
前記データプロセッサは、前記数値テーブルを参照する処理を特徴成分毎に繰り返して多次元ガウス分布の値を演算し、この多次元ガウス分布の値を演算する処理を所定回数繰り返して混合多次元ガウス分布によって表現される出力確率を演算することができる。
中間テーブルに分布削減のための距離情報を入れておくことができる。前記中間テーブルは、前記数値テーブルの基準になる１次元ガウス分布の平均位置を起点に分散の複数倍の範囲に対して前記アドレス情報を格納する領域（Ｅ１）を有し、その外側には、前記平均からの距離情報を格納する領域（Ｅ２）を有し、前記データプロセッサは、多次元ガウス分布の値を演算するために前記数値テーブルを参照する処理を特徴成分毎に繰り返していくとき、中間テーブルから参照した情報が前記距離情報であるときこれを累積し、その累積値が所定値を越えたとき、当該多次元ガウス分布のための演算を中止するようにすることができる。
別の分布削減情報として、前記中間テーブルには、前記距離情報の外側に固定値（例えば値“０”）を格納する領域（Ｅ３）を設け、前記データプロセッサは、前記中間テーブルから前記固定値を参照したとき、現在処理中の当該多次元ガウス分布のための演算を中止するようにすることができる。
データ処理システムは例えばバッテリー（１２１）を動作電源とする携帯情報端末装置（１２０）等として構成することができる。バッテリー駆動される装置は低消費電力の要請が厳しく、前述の出力確率の演算負荷を低減できることから、前記データプロセッサは消費電力が１Ｗ以下のものであても、実用に耐える高速で音声認識処理を行うことができる。
《グローバルテーブルを用いるデータ処理システム》
グローバルテーブルを用いることに特化したデータ処理システムは、特徴ベクトルに対してＨＭＭ音声認識を行なうためにデータプロセッサ（１０３）がグローバルテーブル（４００）及び数値テーブル（１０５２）を参照して混合多次元ガウス分布によって表現される出力確率を演算可能であって、前記数値テーブル（１０５２）は、相互に平均が同一であって分散の異なる複数種類の１次元ガウス分布を基にした夫々の分布の数値を格納する領域（１０５２Ｅ）を有し、前記グローバルテーブル（４００）は、前記数値テーブルにおける分布毎のＸ方向の配列をＹ方向に複数組格納する領域（４００Ｅ）を有し、前記Ｘ方向の配列は、前記特徴ベクトルの特徴成分の値に対する線形量子化値に基づいて選択される位置にその量子化値に対応する前記数値テーブルの値の所在を示すためのアドレス情報を格納する。前記データプロセッサは、前記特徴成分の値を線形量子化すると共に、複数組のＸ方向の配列に対するＹ方向の選択に分散が考慮されＸ方向の配列に対する先頭位置の決定に平均が考慮された特徴成分毎のアクセスポインタ（第３８図のＰ０〜Ｐｎ）の値に従って前記グローバルテーブルから中間テーブル（４０１，４０２）を抽出し、前記抽出した中間テーブルの先頭位置を起点に、前記線形量子化値に基づいて前記アドレス情報を取得し、取得したアドレス情報を用いて数値テーブルを参照する処理を行い、数値テーブルから参照した値に基づいて前記出力確率を演算可能である。
データプロセッサは、アクセスポインタテーブル（４２０）のアクセスポインタ（Ｐ０〜Ｐｎ）を用いて中間テーブルの抽出を行なうことができる。アクセスポインタテーブルは、混合多次元ガウス分布の多次元ガウス分布毎に特徴成分毎の前記アクセスポインタが配置されたテーブルである。
前記データプロセッサは、適応によって混合多次元ガウス分布の平均と分散の双方又は一方が変更されるとき、これに応じて前記アクセスポインタテーブルのアクセスポインタ値を変更すればよい。グローバルテーブルそれ自体の内容を修正するに及ばない。
前記アクセスポインタテーブルを複数セット形成しておけば、前記データプロセッサは、話者を識別し、その識別結果に応じたアクセスポインタテーブルを用いることができる。
前記話者の識別を話者を明示するスイッチ（１３０２ＳＷ）の状態に基づいて行なうことができる。例えば、トランシーバのように片方向通話を行なうデータ処理システムにおいて送話と受話毎の切換えに連動して話者識別を行なうことができる。
前記アクセスポインタテーブルと話者とを対応付ける管理テーブル（５００）を採用することができる。このとき、前記データプロセッサは、話者の特徴を示す予め登録した識別用特徴情報と実際の音声特徴分析結果との比較結果に基づいて前記話者の識別を行ない、この識別された話者が、前記管理テーブルに登録されている話者であるときは、当該登録話者のアクセスポインタテーブルを参照する。
前記データプロセッサは、前記管理テーブルに登録可能な話者の人数を一定に限定すると共に、登録話者毎の使用頻度の情報を前記管理テーブルに追加し、音声特徴分析結果が登録話者であるとき、分析結果に一致する登録話者の使用頻度をインクリメントし、分析結果に不一致の登録話者の使用頻度をデクリメントし、音声特徴分析結果が登録話者以外であるときは、最低使用頻度の登録話者を前記管理テーブルから削除し、これに代えて当該登録話者以外の話者を管理テーブルに追加するように構成することも可能である。
複数の音声入力系を持ち、個々の音声入力系毎に、前記アクセスポインタテーブルを有し、前記データプロセッサが、前記複数の音声入力系に対して、独立にアクセスポインタテーブルを用いて、並列的な音声認識を行うことも可能である。
前記データプロセッサは、特徴ベクトルの全ての特徴成分に対して、線形量子化を行なうと共に、前記量子化値と前記Ｘ方向の配列の単一配列要素のアドレス量との積に基づいて、抽出される中間テーブルの先頭位置からの特長オフセットを算出し、その後、多次元混合ガウス分布毎に、前記アクセスポインタと特徴オフセットとにより中間テーブルの参照を行って数値テーブルの参照を行うことができる。これにより、混合多次元ガウス分布毎に特徴オフセットの演算をやり直す必要はない。
前記データ処理システムで実行される音声認識のための出力確率の演算制御プログラムは、コンピュータ読み取り可能な記録媒体を介して、データ処理システムに提供することはできる。
発明を実施するための最良の形態
《混合ガウスＨＭＭを用いた音声認識の概要》
先ず、混合ガウスＨＭＭを用いた音声認識技術の基本的な内容について説明する。
第５図にはＨＭＭの一例を示してある。これにより、ＨＭＭは、マルコフ過程（時点ｔ＋１の状態が、時点ｎの状態によってのみ与えられる確率過程）で表現される状態遷移モデルであることが理解されるであろう。
音声認識では、この状態を一種の確率的な「音源」と看做している。ここで、確率的という意味は、この状態に存在する場合、常にある決まった音が生成されるとは限らず、色々な音が生成される確率が与えられている。これを、一般に出力確率と呼ぶ。
音声認識では、言葉と音とを、この状態を半順序関係を与えて接続したモデルで表現する。具体的には、第６図のようなｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型のＨＭＭが用いられることが多い。
例えば、「あい」という単語をｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型のＨＭＭで表現することを考える。これを仮に「Ｗｏｒｄ１」とする。そして、状態Ｓ１には「あ」、状態Ｓ２には「い」を表現させる。
この時、例えば、必ず「あ」が１フレーム（例えば１０ｍｓ）、「い」が１フレーム（例えば１０ｍｓ）であれば、Ｓ１⇒Ｓ２の状態遷移で表現できることになる。しかし、実際は、様々な長さの「あ」の後に、様々な長さの「い」が続くことになる。
このような時間的な「ばらつき」を表現するため、自分に対する状態遷移と隣に対する状態遷移を確率的に表現する。こうすると、「あ」がｎフレーム継続した後に、「い」がｍフレーム継続して終了する発声パターンが、確率的に（各パターンの生成確率という形で）表現できる。この確率が遷移確率（状態遷移確率）であり、第６図のＷｏｒｄ１においてａ１（１，１）は状態Ｓ１が次に同じ状態Ｓ１を採る状態遷移確率であり、ａ１（１，２）は状態Ｓ１が次に隣の状態Ｓ２を採る状態遷移確率である。
また、「あ」という発声についても、老若男女によって、その音響的性質は大きく異なる。そこで、それらの統計的な出現パターンから、「あ」という発声を表現する状態Ｓ１における特徴ベクトルの出力パターンを確率的に表現することで、様々な人の発声パターンをモデル化することができる。この確率的な表現が出力確率である。第６図においてＷｏｒｄ１の状態Ｓ１における出力確率はｂ１１（ｙ）で表現され、Ｗｏｒｄ１の状態Ｓ２における出力確率はｂ１２（ｙ）で表現されている。
以上のように、ＨＭＭは「様々な人の言葉の時間的あるいは音響的なばらつきを表現」するため、人の発声過程を確率的にモデル化したものであり、当然その評価も確率的にならざるを得ない。すなわち、ある観測系列（入力音声の分析結果）が与えられた場合、各単語を表現するモデルにおいて、当該観測系列が得られる確率（尤度）を評価し、最も尤度の高いモデル（若しくはそれが意味する単語）を、認識候補として出力する。
前述のように、ＨＭＭ音声認識では、最も尤度の高いモデルを認識候補として出力する。このためには、各々のモデル毎に尤度を計算する必要があり、それには、状態毎に、状態遷移確率と出力確率との積を演算する必要が有り、全体として膨大な計算負荷が予想される。そこで、そのような演算には、例えば、ビタビ（Ｖｉｔｅｒｂｉ）の方法と呼ばれる、一種の動的計画法を用いた処理が行なわれる。
ビタビの方法は、複数経路存在する状態遷移経路（パス）のうち、最も尤度の高いパス（最適パス）を選択し、その尤度によって評価する。
この計算は、式１のように効率的に実行できる。
0003796121.tif 000002
式１においてａｊ，ｉは状態ｊから状態ｉへの状態遷移確率である。ｂｉ（ｙｔ）は状態ｉにおいて状態ｙｔを出力する出力確率であり、ｙｔは特徴ベクトルの対応する特徴次数の値である。αｔ（ｉ）は時刻ｔ、状態ｉにおける前向き確率である。
このように、ＨＭＭ音声認識では、各フレーム毎に状態遷移経路の全ての状態の出力確率の値が必要になる。多くの場合、この出力確率は、混合多次元ガウス分布によって与えられる。これを本明細書では、混合ガウスＨＭＭと呼ぶ。
混合ガウスＨＭＭでは、出力確率は、式２の混合多次元ガウス分布のような関数で与えられる。
0003796121.tif 000003
混合多次元ガウス分布を表す式２において、例えば３混合２次元の混合多次元ガウス分布は、第７図のように表すことができる。第７図の３混合２次元ガウス分布は、式３のように表現される。
0003796121.tif 000004
式３で表現される前記３混合２次元ガウス分布を例えば２次元の特徴空間ｙ１、ｙ２に対して表現した図が第７図である。ここで、＊Ａの山は式３の第１項目、＊Ｂの山は式３の第２項目、＊Ｃの山は式３の第３項目によって表現される。この２次元の特徴空間を第７図の断面１で切断し、横から見た様子が第８図に示される。前記式２において、ｋは混合数、ωｋは山の高さ、各次元毎の関数
0003796121.tif 000005
おいてｙｉは特徴ベクトルの次元毎の特徴成分である。式２において、複数の山が有るのは、同じ語でも老若男女によって音響的な特徴が相異されることに基づく。
式２や式３等に示されるような混合ガウス分布の演算の高速化には、計算する分布を大きく限定する方法と計算の一部をテーブル化する方法とが有効である。また、効率化のため、混合多次元ガウス分布を対数評価することも多いが、整数処理で行う場合も原理的には全く同じである。例えば式３の演算の高速化手法につて説明する。
計算を高速にするという観点からは、前述のように、特徴ベクトルを幾つかの標準的なパターンに対応させ（ベクトル量子化）、そのパターン毎に出力確率を定義する方法が可能である。
いま、第７図の混合ガウス分布を例を説明する。この例では、例えば、領域１に存在する特徴ベクトルに対しては、式３で定義される値は、その第１項目の値と殆等しい（すなわち、第２項目及び第３項目のスコアは殆０）と看做せる。従って、特徴が領域１に存在することさえわかれば、式３の出力確率は、その第１項目の計算（すなわち分布＊Ａの計算）だけで取得することができる。
上記の処理の場合、特徴空間を部分領域に分割して、その部分領域と計算する分布を対応付けることになるが、特徴ベクトルと部分領域との対応には、ベクトル量子化が用いられることが多い。ベクトル量子化とは、特徴空間上の有限個の代表ベクトルを考え、特徴空間上の任意の点を、その点と最も近い代表ベクトルで近似表現する方法である。例えば、第７図に示されるの特徴空間をａ，ｂ，ｃの３点で代表すると、領域１の特徴ベクトルはａに対応することになる。
このようなベクトル量子化には、効率的な方法が幾つか提案されているが、基本的に、距離が最小となる代表ベクトルを選択する。例えば、ａ、ｂ、ｃのような代表点から各特徴次数の値までの距離計算を行って、距離が最小となる代表ベクトルを選択すればよい。このベクトル量子化は、混合多次元ガウス分布をそのまま計算するに比べれば演算量は僅少になるが、それでも計算負荷は小さいとはいえない。
また、出力確率の演算の一部をテーブル化して演算速度を高速化することも可能である。この場合も、そのテーブルをベクトル量子化によって構成することができる。しかし、ベクトル量子化して出力確率を対応させると、量子化誤差が大きくなり、認識性能が劣化する。
そこで、計算を各々特徴次元における計算に分解して、各特徴次元を標準的なパターンに分割し、各々の計算結果をテーブル化する、スカラ量子化の手法を採用することができる。例えば、式４
0003796121.tif 000006
で示される単一ガウス分布をテーブル化する。即ち、ｙｉの値とこの値に応ずる式４の値とを対応させた数値テーブルを設ける。これは、対数系か否かで表現する関数も異なるが、基本的な原理は共通である。この場合、ベクトル量子化とは異なり、量子化誤差は僅少になる。
スカラ量子化には前述の通り非線形スカラ量子化、線形スカラ量子化がある。混合ガウス分布のスカラ量子化において、各次元毎の関数は、単一の１次元正規分布であり、その分布の特徴は平均と分散が分かれば規定できる。
非線形スカラ量子化では、数値テーブルの数を減らすために、代表的な平均と分散の１次元ガウス分布に関する数値テーブルを設け、種々の平均と分散に対しては、パラメータ演算を行い、パラメータと特徴成分とから数値テーブルを参照する。しかしながら、この手法は、テーブルアクセスのために必ず各特長成分毎のパラメータ演算を行わなければならず、また、テーブルの参照においても、そのように演算されたパラメータを用いるアクセスは、テーブルに対して連続した配列のアクセスになるとは限らないので、テーブルを参照するためのアドレス演算も毎回乗算と加算が必要になる。この技術は前記文献“ＯＮ  ＴＨＥ  ＵＳＥ  ＯＦ  ＳＣＡＬＡＲＱＵＡＮＴＩＺＡＴＩＯＮ  ＦＯＲ  ＦＡＳＴ  ＨＭＭ  ＣＯＭＰＵＴＡＴＩＯＮ”，ＩＣＡＳＳＰ  ９５，ｐｐ．２１３−２１６に記載があり、各特徴成分毎乗算、減算、型変換あるいはシフト演算を要するパラメータ演算を伴うことになり、また、テーブルの参照においても、そのパラメータをインデックスとする配列をアクセスすることになる。この場合、連続した配列のアクセスではないので、機械語（アセンブラ）レベルでは、配列のアドレスの計算に乗算と加算（インデックス×データ長＋先頭アドレス）の計算も必要になる。従って、命令レベルでは、乗算が２回、加減算が２回、と型変換あるいはシフトが１回、データのロードが２回必要（先頭アドレスと数値データ）になる。
この計算を行わずに、数値テーブルの値を得るには、例えば、一般的な線形量子化を行えば可能である。本明細書では、これを線形スカラ量子化と呼ぶ。
第９図には線形スカラ量子化を行う場合の数値テーブルと１次元正規分布との関係が示されている。線形スカラ量子化の場合、特徴を等間隔に量子化する。量子化し易いように、分布全体を２のＮ乗個に分割すれば、線形スカラ量子化は、特徴成分の上位Ｎビットを抽出ことと同義である。第１０図にはこの線形スカラ量子化の内容が示されている。
線形スカラ量子化では、量子化の代表点は固定であるから、量子化処理は、各フレーム毎に、換言すれば特徴成分毎に、１回行えば良い。また、代表点はそのままインデックスに相当するから、数値テーブルにおける先頭アドレスと所望アドレスとの差（以下、オフセット）は、インデックス×データ長になり、その演算も全ての分布で同じであり、１フレーム毎に１回実行すればよい。そして、必要な数値テーブルへのアクセスは、各数値テーブルの先頭アドレスと、オフセットの和で計算できるから、結局、１回の加算と、２回のロード（先頭アドレスと数値データ）で実行される。
混合ガウス型ＨＭＭの出力確率の計算（式３）では、単一ガウス分布（含む対数系）に相当する計算量を低減することが重要である。このような各特徴成分毎の計算は、出力確率の計算において最も計算負荷の大きい部分であり、計算数は、全モデル数（認識要素数×ｌｅｆｔ  ｔｏ  ｒｉｇｈｔで接続された状態数であり、第６図の例では２Ｎ個）×混合数×特徴次元の数で表現されるため、些細な計算コストの増大が、全体の計算量の増大に直結する。この部分で、線形スカラ量子化は、テーブルのアクセス以外、全く計算が発生しないため、計算効率の観点からは非常に優れている。
しかしながら、線形スカラ量子化では、固定された代表点に対して、各分布毎に数値テーブルが必要になるので、前述の通り、数値テーブルの数若しくはデータ量が膨大になり、また、話者適応処理や雑音適応処理のために、混合ガウス分布のパラメータ（平均・分散）を修正すると、それに伴う計算量も膨大になり、数値テーブルを修正するにも多大の処理が必要になってしまう。
以下詳細に説明する本発明の実施例では、混合ガウス分布を用いる出力確率演算において、その一部を１次元正規分布のデータテーブルのアクセスに置き換えて演算速度の高速化を図るものであり、このとき、中間テーブル若しくはグローバルテーブルを採用し、出力確率を高速に計算できる線形スカラ量子化の特徴を備えつつ、テーブルのデータ量を少なくでき、また、話者適応、環境（雑音）適応等に柔軟に対応できるようにするものである。
《音声認識システムの概要》
第１図には本発明の一実施例に係る音声認識システムのブロック図が示される。第１図に示される音声認識システムは、特に制限されないが、音声認識ボード１０１、マイクロフォン１０７及びモニタ（ディスプレイ）１０８によって構成されている。前記音声認識ボード１０１は、１チップのＬＳＩ上に全て実現することも可能である。また、モニタ２０３は、例えば、音声入力装置などに用いる場合、必ずしも必要ではない。
前記音声認識ボード１０１は、Ａ／Ｄ変換器１０２、マイクロプロセッサ（ＭＰＵ）１０３、ＲＯＭ（リード・オンリ・メモリ）１０５、ＲＡＭ（ランダム・アクセス・メモリ）１０６によって構成される。前記モニタ１０８が付加される場合、さらにビデオインターフェース（ＶＩＦ）１０４が必要である。
前記Ａ／Ｄ変換器１０２は、マイクロフォン１０７より入力されたアナログ音声信号を、デジタル信号に変換する。前記ＲＯＭ１０５は読みだし専用メモリで、本音声認識システムのプログラムや必要なデータ（例えば、辞書やＨＭＭパラメータ）が格納されている。前記ＲＡＭ１０６は、読み書き可能メモリであり、マイクロプロセッサ１０３のワーク領域若しくはテンポラリ領域等に利用される。
第２図には第１図に示されたＭＰＵの詳細な一例が示される。ＭＰＵ１０３は、バスインターフェース１１８を介して、前記ＲＯＭ１０５、ＲＡＭ１０６、Ａ／Ｄ１０２及びＶＩＦ１０４に接続される。ＭＰＵ１０３の動作プログラムは、命令キャッシュ１１０を介して命令制御ユニット１１２へ送られてデコードされる。ＭＰＵ１０３はそのデコード結果に基づいて演算制御動作を行う。必要なデータは、データキャッシュ１１７を介して、ロードユニット１１４からレジスタファイル１１１へ、或いはレジスタファイル１１１からストアユニット１１５を介してデータキャッシュメモリ１１７に送られる。レジスタファイル１１１に格納されたデータは、必要に応じて、整数演算であれば整数ユニット１１６で処理され、浮動小数点数であれば浮動小数ユニット１１７で処理され、その処理結果は再びレジスタファイル１１１に戻され、前記ストアユニット１１５を介してメモリに書き込まれる。データアクセスにおいてデータキャッシュ１１７がキャッシュヒットであれば外部メモリのアクセスは行なわれず、データキャッシュ１１７からのリード、或いはデータキャッシュに対するキャッシュフィルが行なわれる。キャッシュミスの場合には外部データメモリのアクセスが行なわれ、更に、必要なエントリが外部データメモリからデータキャッシュ１１７に追加される。命令アクセスにおいて命令キャッシュ１１０がキャッシュヒットであれば外部メモリアクセスは行なわれず、命令キャッシュ１１０から命令がフェッチされる。キャッシュミスの場合には外部命令メモリのアクセスが行なわれ、更に、必要なエントリが外部命令メモリから命令キャッシュ１１０に追加される。
第３図には、第１図で示した音声認識装置を用いて実行される処理の手順として、電源をオンにしてシステムを立ち上げてから、電源をオフにしてシステムを停止するまでの処理の概要が全体的に示されている。
第３図においてステップ２０１は処理の開始を示す。これは、具体的には動作電源の投入（電源オン）などによって指示される当該システムの動作開始に相当する。当該システムの動作を開始すると、ステップ２０２によって、必要なデータ２５０をＲＯＭ１０５から読み込み、それをＲＡＭ１０６若しくはデータキャッシュ１１７に展開する。この場合、滅多にアクセスしないデータや、書き換えないデータで高速な不揮発メモリを用いている場合、ＲＡＭ１０６等にあえて展開しなくとも、必要な時に直接ＲＯＭ１０５をアクセスしてデータを取得すればよい。
ステップ２０３〜２０５は、ここでは、一種の無限ループであり、それは例えば終了命令を実行するまで繰り返される。ステップ２０５で終了が判定されると、システム動作が終了される（ステップ２０６）。この間、適応処理（ステップ２０３）と認識処理（ステップ２０４）は必要に応じて実行される。
適応処理とは、必要に応じてＨＭＭなどの諸パラメータを修正する処理を意味する。例えば、環境適応を例に採れば、使用する雑音環境における雑音をサンプルし、それに応じてＨＭＭの出力確率を修正する。出力確率が前記式２で表わされる混合ガウスＨＭＭでは、各混合ガウス分布の平均と分散の修正を意味する。データ２５２は適応のためのデータ、データ２５３は認識のためのデータである。
認識処理（ステップ２０４）は、必要に応じて上記の適応処理（ステップ２０３）されたＨＭＭパラメータ（データ２５１）を用いて実行される。ここでは、マイク１０７からの入力音声データ２５３に対して音声認識を行い、認識された結果２５４（例えばテキストデータ）を出力する。
第４図には前記認識処理（ステップ２０４）の概要が示されている。ステップ２１１によって認識処理が開始されると、先ず、ステップ２１２で、サンプル音声２５３の特徴が分析される（特徴分析）。
特徴分析は、音声波形を、一定間隔（例えば１０ｍｓ毎）で一定区間取りだし（この部分音声区間のことをフレームと呼ぶ）、このフレームにおいて、音の性質が変化しないのものして（定常性のあるものとして）、音の性質を分析する。音の性質は、例えば周波数スペクトル（ＦＦＴによって計算できる）やＬＰＧ係数（Ｌｅｖｉｎｓｏｎ−Ｄｕｒｂｉｎの再帰式によって計算できる）により分析できる。これらは、一般に複数のパラメータ群によって表現されるため、特徴ベクトルと呼ばれる。この特徴分析により、音声信号２５３は、フレーム毎の特徴ベクトル２５５に置き換えられる。尚、ｎ次元の特徴ベクトルはｎ種類の周波数成分を有する。この特徴ベクトル列を観測ベクトル列と呼ぶ。
次のステップ２１２によって、出力確率の計算が行われる。第５図に基づいて説明したように、ＨＭＭにおいて、出力確率とは、各々の状態が「ある特徴」の音を出力する確率を意味する。従って、出力確率は、前記式２で説明したように、「ある特徴」を示す特徴ベクトルの関数として表現される。
ＨＭＭ音声認識には、特徴ベクトルをベクトル量子化し、その量子化ベクトルの関数として出力確率を与える方法（離散型ＨＭＭ）と、特徴ベクトルの確率関数として与える方法（連続型ＨＭＭ）があるが、本実施例では、後者のうち、出力確率を混合ガウス分布で定義した方法を対象としている。
混合ガウス型ＨＭＭの場合、出力確率は、特徴ベクトルの関数として、各ＨＭＭの状態毎に、前記式２で与えられている。
この出力確率計算は、ステップ２１４の認識照合時（ビタビサーチ）に並行して行うことも可能であるが、計算負荷が大きいことから、重複した計算を避けるため、照合（サーチ）２１４に先だって、必要な出力確率を計算している（ステップ２１３）。
ステップ２１４では、ステップ２１２によって得られた観測ベクトル列とステップ２１３によって計算された出力確率２５６から、各モデルのスコアを計算する。ここで、スコアとは、例えば第６図に示したモデルが、与えられた特徴ベクトル列のパターンを生成する（対数）確率で定義することができる。認識候補は、スコアの最大となるモデルとする。各モデルにおいて最も確率が高くなる状態遷移系列のスコア（以下、ビタビスコア）を当該モデルのスコアと看做して、ビタビサーチが行なわれる。
《中間テーブルを用いた出力確率の計算》
第１８図には本実施例における出力確率の演算処理（ステップ２１３）の更に詳細が示される。
本発明では、単一ガウス分布の（対数）確率計算を、特徴成分を均等に部分領域分割し（線形スカラ量子化）これに対応した計算結果を、予め数値テーブル化し、計算負荷を低減している。線形スカラ量子化を行う利点は、各特徴に対して、全ての混合分布について同一の点に量子化される。すなわち、量子化処理が各分布全てに共有されるため、１フレームに１度で済む。また、数値テーブルのインデックスが、各特徴成分で共通化されると、数値テーブルのオフセット（アクセスすべきテーブルの先頭アドレスと該当配列要素のアドレスの差＝一般にインデックスとデータ長の積で計算される）も同一となるため、数値テーブルのオフセットを求める処理も１フレームに１度で済む。これによって、（非線形スカラ量子化と異なり）単一ガウス分布の計算に必要な処理が、加算（配列の先頭アドレスとオフセットの和）とロードストアだけで可能になり、非線形量子化に比べて著しく短い計算時間で計算できる。
しかし、このようなアプローチでは、適応などの処理によって分散、平均が修正されると、（特徴の対応関係は固定であるから）数値テーブルの変更が必要になる。この変更を避けるため、数値テーブルへのアクセスアドレスが設定された中間的なテーブル（中間テーブル）を用いて、アクセスパターンを制御する。また、この中間テーブルに分布の選択、削減のための情報を持たせて、計算を簡略化する。以下、その内容を詳述する。
ステップ１０００は出力確率計算の前記ステップ２１３の開始を意味する。ステップ１００１では、ステップ２１２で分析された特徴ベクトル（整数型・浮動小数型いずれでも可能）に対し、線形スカラ量子化を行い、その値（インデックス）対して、オフセット（以下、特徴オフセット若しくはテーブルオフセットと称する）を計算する。この計算は簡単な計算で行うことができ、例えば整数系の場合、線形スカラ量子化された値を全体の量子化数で割り、それにデータ長（一つの配列全体のデータ長）を掛ける処理によって、特徴オフセットを計算できる。線形量子化は第１０図で説明したように、量子化範囲を２のＮ乗個に分割すれば特徴成分の上位Ｎビットを得ることによって量子化できるのであるから、量子化数／データ長の値を２のＮ乗の形式にすれば、１回の右シフト）で実行できる。式で示せば、浮動小数系の場合、特徴成分にある定数（定義域長／量子化数×データ長）を掛けて整数型に変換する。
これ以降、第１８図の処理では、前記特徴オフセットを使用し、特徴ベクトルは計算には用いない。この特徴オフセットは、データ１０５０で表現する。
ステップ１００２では、ステップ１００１で求めた特徴オフセットから、各状態の各分布毎にアクセスすべき中間テーブルのアクセスアドレスを求める。中間テーブルのアクセスアドレスは、各分布ごとに定義した中間テーブルの先頭アドレス（当然、各分布ごとに全て異なる）と特徴オフセット（同じ特徴次元に対して、全て共通）を加えて求められる。
中間テーブルは、第１１図及び第１２図に例示される３０１、３０１、３０２の１次元ガウス分布に１対１対応で配置される形態、或いは、第１７図に例示される４０１，４０２のように複数の特徴成分に兼用可能なグローバルテーブル４００から抽出する形態の何によっても構成することができる。後者において、グローバルテーブル４００は多数の中間テーブルの集合として位置付けることができる。第１１図及び第１２図において３０１，３０２で示されるものが中間テーブルの一例である。第１７図において４００がグローバルテーブルの一例を示す。第１７図において４０１、４０２はグローバルテーブル４００から抽出された中間テーブルの一例である。
例えば第１７図に示したグローバルテーブル形式において、中間テーブル４０１，４０２の先頭アドレスは、グローバルテーブル４００から中間テーブルとして抽出すべきデータ領域の先頭位置、例えばＰ１、Ｐ２を示している。この先頭位置の決定手法について詳細は後述するが、第３８図に例示されるように、特徴成分毎の平均及び分散の値が格納されたテーブル４１０の値を用いて演算し、或いはその演算結果を予め蓄えたアクセスポインタテーブル４２０を用いることができる。アクセスポインタテーブル４２０のポインタＰ０〜Ｐｎが特徴成分毎に抽出すべき中間テーブル４０１，４０２の先頭位置を指している。
一方、第１１図及び第１２図に例示した中間テーブル３０１，３０２の形式では、中間テーブル３０１，３０２の先頭アドレスは個々の中間テーブル３０１，３０２の先頭アドレスを意味する。特徴成分毎に定義されるべき中間テーブルの先頭アドレスは、例えば、
第３９図に例示されるように、特徴成分毎に、アクセスポインタＰ０〜Ｐｎとしてアクセスポインタテーブル３１０に定義することができる。
前記アクセスポインタテーブル３１０，４２０などは第１８図においてインデックステーブル１０５１と称されている。尚、第１８図においてテーブルアドレス１０５５はステップ１００２で演算された中間テーブル先頭アドレスに前記特徴オフセットを加算した値である。
この例では、中間テーブル３０１，４０１には、数値テーブルのアドレス（オフセット）及び分布削減情報が格納されている。正規分布の場合、第１３図に例示されるように、分布の平均（中央値）から一定以上離れると、数値的には０（対数系で−∞）となる。無相関多次元分布は、一次元正規分布の積で表現されるから、一つの分布でも、中央から非常に離れてしまうと、数値的に計算する意味がない。従って、そのような数値データ不要領域では、中間テーブルのそれに対応する領域には数値テーブルのアドレスを格納せず、例えば、式６
0003796121.tif 000007
で定義される距離データを格納しておく。式６の距離データは、常に負の値になる。更にその外側には値“０”を格納しておく。特徴成分に対する量子化数が少ない場合には、第１４図に例示されるように値“０”を格納しない態様を採用することも可能である。
上記距離データと値“０”が分布削減情報の一例になる。第１５図には単一ガウス分布に対する前記分布削減情報の配置の一例が示されている。第１５図において領域Ｅ１は数値テーブルのデータのマッピングアドレスが格納された領域、Ｅ２は前記距離情報が格納された領域、Ｅ３は前記値“０”が格納された領域である。平均や分散の値に応じた１次元ガウス分布の分布状態によってはＥ２，Ｅ３の領域が無い場合もあるのは当然である。
第１６図に示されるように、分布削減情報に対しては分布削減条件１，２が判定される。前記中間テーブル３０１，４０１からアクセスされた中間テーブルの値を判定し、“０”場合、当該多次元ガウス分布の値を“０”とみなし、当該多次元ガウス分布に関する出力確率演算を中断して次の多次元ガウス分布に関する処理に移る。即ち、中間テーブル３０１，４０１の値に対して“０”か否かの判定が分布削減条件１の判定になる。アクセスされた中間テーブル３０１，４０１の値が負数であるときは、その中間テーブル３０１，４０１の値を距離情報とみなし、当該多次元分布中の他の成分の距離情報と積算し、これが一定値を越えていれば、当該多次元ガウス分布に関する出力確率演算を中断して次の多次元ガウス分布に関する処理に移る。この距離情報の累積値が一定値を越えるか否かの判定が分布削減条件２の判定である。中間テーブル３０１，４０１の値が正数であるときに始めて中間テーブル３０１，４０１の値を数値テーブルのアドレスとみなし、そのアドレスのデータをフェッチする。
第１８図において分布削減条件１の判定（ステップ１００３）では、アクセスされた中間テーブル３０１，４０１の値が判定され、“０”であると判断されたときは、処理中の当該多次元ガウス分布に関する出力確率演算を中断して次の多次元ガウス分布に関する処理に移る（ステップ１０１１）。アクセスされた中間テーブル３０１，４０１の値が負数であるときは、その中間テーブル３０１，４０１の値を距離情報とみなし、当該多次元分布中の他の成分の距離情報に累計する（ステップ１００４）。１０５６は累計されたメモリ上のデータを意味する。また、アクセスされた中間テーブル３０１，４０１の値が正数の場合、また、ステップ１００４の累計計算が終了された後、分布削減条件２の判定として、距離の累計値が所定値ａを越えているか否かの判定が行われる（１００５）。これが、一定値を越えていれば、当該多次元ガウス分布に関する出力確率演算を中断して次の多次元ガウス分布に関する処理に移る（１０１１）。
中間テーブル３０１，４０１の値が正数であるときに始めて中間テーブル３０１，４０１の値を数値テーブルのアドレスとみなした処理が行なわれる。例えば、ステップ１００６では、第２図に示されるようにデータキャッシュ１１７のようなキャッシュメモリが備えられている場合に、当該アドレスのデータがキャッシュに存在しない場合、ＲＡＭ１０６のような外部メモリ上の数値テーブル１０５２から前記中間テーブル３０１，４０１の値で指定されるデータをキャッシュメモリ１１７に先読み（プリフェッチ）させる。このようなデータプリフェッチはデータバスが空いているとき、適宜行なわれる。これにより、後で、数値テーブルの値を用いて数値累積するとき、必要なデータ１０５３は全て若しくは殆どデータキャッシュメモリ１１７に格納されていることになる。ステップ１００７では、処理中の多次元ガウス分布に関する残りの単一ガウス成分が有るかを判定し、ある場合には、その単一ガウス分布に関する中間テーブルのアクセスアドレス計算（加算演算）に戻って（ステップ１００２）同様の処理を行う。このとき、テーブルオフセットの計算はやり直す必要ない。前述の通り、特徴ベクトルの特徴成分は既に線形スカラ量子化されているからである。
第１８図の処理では、第１のループ（ステップ１００２〜ステップ１００７）で、全ての特徴に対して中間テーブル３０１，４０１をアクセスする。こうすると、分布削減時に無駄となる計算が少なくでき、かつプリフェッチ（中間テーブルの値を用いた数値テーブルのデータプリフェッチ）による遅れも生じない。例えば、一つの多次元ガウス分布に関する処理を行っているとき、分布削減条件１の判定で、数値“０”を判定したとき、当該一つの多次元ガウス分布に関する処理を中断できるから、そのような状況に至る場合であっても、無駄に成る処理は最小限に抑えられている。
ステップ１００７の分岐処理を行わず、ステップ１００６の後に、すぐにステップ１００８を行うことも原理的には可能である。しかし、この場合、プリフェッチが有効に機能しない（一般に、メモリからキャッシュにデータ転送するには多少時間がかかる）。また、分布の削減時にも数値テーブルへのアクセスが発生し、好ましくない。
従って、本実施例では、ステップ１００８で、計算が必要な分布に限り、数値テーブルへアクセスして単一ガウスの（対数）値を求める。このとき、数値データは、常にキャッシュメモリに存在し、キャッシュミスミスペナルティは生じない。
多次元ガウスの（対数）値は、この単一ガウスの（対数）値からを計算する。この計算は、全ての単一ガウス分布の値の積（対数値の場合は和）で計算される。従って、ステップ１００８では、単にテーブル値を得るだけでなく、これを、既に累積されている値（データ１０５７）に掛け合わせる（対数系では足し合わせる）処理を行う。この場合、最初の成分を計算する時には、累積の初期値として１（対数系では０）が初期値として必要になる。その累積値は１０５７として図示されている。
第２のループ（ステップ１００８〜ステップ１００９）で、全ての成分に対してステップ１００８の処理が実行されると、その累積結果は、多次元ガウス分布の値となる。したがって、ステップ１０１０では、原理的には、レジスタに格納されている累積値をメモリにセーブする処理となる。更に未処理の多次元ガウス分布が有れば（ステップ１０１１）上記処理１００２に戻る。上述と同様に、テーブルオフセットの計算は新たに行う必要はない。
もっとも、この多次元ガウスの値は、複数の分布の値を混合しなければならない。混合は全ての値の和（対数系ではＡＤＤＬＯＧ→ａｄｄｌｏｇ（ａ，ｂ）＝ｌｏｇ｛ｅｘｐ（ａ），ｅｘｐ（ｂ）｝）によって混合されるので、同演算を累積値と実行し、それを新しい累積値としてレジスタに格納する（ステップ１０１０）。
この累積値１０５８を先の累積値１０５７と区別するため、これ以降、データ１０５７の累積値を多次元累積データ、データ１０５８の累積値を混合累積データと呼ぶ。全ての単一多次元ガウス分布について混合累積データ１０５８が計算されると、ステップ１０１２によって、出力確率２５６が計算される。基本的には、この混合累積が出力確率２５６となるが、数式処理の仕方によっては、必要な定数データ１０５４を付加することもある（対数系の処理でパラメータを分離するなどして数値テーブルを少なくするなど）。この場合、定数テーブル１０５４から必要なデータを取りだし、値を整えることもある。そして最終的に出力確率２５６が計算される。
この第１８図に示した処理によって、一つの混合ガウスの計算が処理されたことになる。この処理は、計算すべき混合分布の全てに実行される（一般的なＣＭＨＭＭの場合、全てのＨＭＭの状態に対して、出力確率が定義されており、その場合、これら全てに値を求めなくてはいけない）。したがって、第１８図による計算の簡略化の効果は、これら全ての確率計算に及ぶことになる。
第１９図及び第２０図には、第３図のステップ２０３の適応処理の一例が示される。第１９図では、いわゆる環境適応と呼ばれる適応処理において、ＨＭＭパラメーター、具体的には混合ガウス分布の平均と分散を修正する例が示してある。第２０図には、修正したガウス分布の分散と平均から、各１次元ガウス分布毎の中間テーブルのポインタを決定し、更新する処理手順が示されている。
第１９図に示される処理を詳細に説明する。ステップ１１０１によって処理が開始されると、ステップ１１０２で雑音データの特徴を分析する。これは、例えば、周波数スペクトルを用いるのであれば、ＦＦＴ（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ：高速フーリエ変換）などで実行できる。ステップ１１０３では、この分析データを基準に適応の可否を判定する。これは、パラメータを決めた（修正した）時の雑音の性質と現在の雑音の性質との比較によって評価する。
比較の基準は、例えば、特徴ベクトルの位相を比較の基準にするとか、周波数スペクトルの相互相関性を評価するとか、様々なアプローチが考えられる。相互相関性を用いた場合、現在の雑音スペクトル（データ１１５０）とパラメータ決定時のスペクトル（データ１１５１）の相互相関を求め、評価値１１５２とする。この相互相関は式７として例示することができる。
0003796121.tif 000008
関性を評価するための学習データの数である。
第１９図では、雑音の特性変動に着目した例を示したが、一定間隔で強制的に適応する方法もある。この場合、ステップ１１０２は不要で、評価値１１５２には、時間情報（更新してからの時間）を格納し、一定時間以上経過で適応処理実行と判定すればよい。
いずれの場合でも、適応の判断は、評価値１１５２によって判断する。
適応が必要と判断されると、ステップ１１０５〜１１０７の処理が行われる。例えば、τ＝１，２，３，…とするとき、雑音の特徴ベクトルを、
ｎ（τ）＝｛ｎ１（τ），ｎ２（τ），…｝とすると、ステップ１１０５によって、雑音データから、例えば式８で示されるように平均を修正する。
0003796121.tif 000009
タである。
同様に、ステップ１１０６によって、例えば式９で示されるように分散を修正する。
0003796121.tif 000010
また、ステップ１１０７によって、例えば式１０で示されるように混合重みを修正する。
0003796121.tif 000011
ステップ１１０２で用いる分析は、必ずしも音声認識で用いる特徴分析法である必要はない。しかし、ステップ１１０５〜１１０７での特徴は、音声認識で用いる特徴分析パラメータであることは当然である。従って、仮にステップ１１０２で音声認識で用いる特徴分析でなければ（例えば、音声認識がＬＰＣケプストラムでステップ１１０２が周波数スペクトルなどの場合）、ステップ１１０５〜ステップ１１０７に先だって必要な処理を実行する。
ステップ１１０５〜ステップ１１０７の処理は、全ての混合分布について行われる（ステップ１１０８）。そして、全ての混合分布について修正した後、本雑音の分析データ１１５０を、想定特性１１５１に格納し（ステップ１１０９）、ステップ１１１０で終了する。
《グローバル中間テーブル》
第１９図の処理によって、混合分布を構成する１次元のガウス分布の平均・分散は修正される。この様子は、例えば第１１図及び第１２図に例示される。このように１次元のガウス分布の平均・分散が修正される時、第９図及び第１０図に示されるような線形スカラ量子化を行ったまま、数値テーブルを書き換えることなく、数値テーブルを適切にアクセスできるように、第１１図及び第１２図に例示されるような中間テーブル３０１，３０２のアクセスの仕方が変更される。
前記中間テーブル３０１を挿入することで、テーブルアクセスが余分に発生するが、第１８図の処理で説明したように、中間テーブル３０１に数値テーブルのアドレスを格納し、ループ分割・プリフェッチを行えば、数値テーブルの前に中間テーブル３０１が挿入されても、中間テーブル３０１のアクセスによる処理増加は僅少に抑制できる。このことは、第１８図に基づいて先に示した通りである。
ここで着目すべきは、第１９図の処理によって分散や平均が修正されたとき、それを中間テーブルにどのように反映するかである。例えば、中間テーブルに格納される数値テーブルのアドレスを書きかえるならば、分散及び平均の変化に応じて、第１１図から第１２図のアクセスができるように該当中間テーブル３０１の内容を中間テーブル３０２の内容に書き換えることができる。第１１図から第１２図の書換えを行うということは、第１１図及び第１２図に示した中間テーブル３０１は、原理的には、全ての１次元ガウス分布に対して定義されなければならないということである。しかし、各１次元ガウス分布毎に中間テーブル３０１を保有すれば、それだけで膨大なデータ量になってしまうし、平均・分散の修正に伴うテーブル更新コストも同様に膨大になる。
ここでは、そのような問題を避けるため、第１７図に示すグローバルテーブル（グローバル中間テーブルとも称する）４００を一つだけ保有する。同図にはグローバル中間テーブル４００の基本構造を示す。第１７図において、白い配列要素は数値テーブルのアドレス（正の値）、黒い配列要素は距離情報（負の値）が格納され、その他は値“０”が格納されている。Ｘ方向の配列のデータ領域の数は特徴成分の量子化数よりも大きくされている。これは、１次元ガウス分布の平均の値に応じて中間テーブルの先頭位置がＸ方向にずらされるため、Ｘ方向にはデータ領域を余計に採る必要があるからである。
このグローバル中間テーブル４００は、平均（μ）が標準テーブルの平均（μ０）の場合、様々な分散における数値テーブルのアドレス（オフセット）と前記距離情報が格納されている。第１７図の例は、左側の列が分散が最も大きい場合のパターンであり、右にいくほど分散は小さくなる。
このようなグローバル中間テーブル４００を作成すると、与えられた平均、分散に対応した中間テーブルのパターンを、グローバルテーブル４００上に必ず出現させることができる。即ち、グローバル中間テーブル４００の横方向（Ｙ方向）の位置は目的とする１次元ガウス分布の分散（σ）によって決定する。この分散によって選択されたカラムの配列は、中央が平均（μ）とされる一次元ガウス分布を実現する数値データをアクセスするためのアドレスデータの配列になっている。所望の平均（μ）に対しては、分散（σ）によって決定されたカラムの配列データに対するアクセス開始位置を平均に応じて縦方向（Ｘ方向）にシフトさせて対応する。換言すれば、分散（σ）によって決定されたカラムの配列データを縦方向にシフトさせる。
例えば第１７図において、分布１に対応する中間テーブル４０１のパターンは、分散がσ、平均がμ０の場合、第１７図においてＰ１を先頭アドレスとする配列要素で表現される。同様に、分散がσ‘、平均がμ‘の分布２は、第１７図においてＰ２を先頭アドレスとする配列要素から成る中間テーブル４０２で表現される。分布に応じた中間テーブル４０１，４０２の先頭アドレス（以下単にアクセスポインタとも称する）Ｐ１，Ｐ２は、第３８図に例示されたポインタテーブル４２０として予めテーブル化されていてもよい。前記ポインタテーブル４２０はＨＭＭデータの一部を構成する。第１８図の処理において、特徴成分に対するアドレス計算１００２では、処理する特徴成分の順番は予め決定しておくことができるので、その順番に従って必要な１次ガウス分布を特定できるように中間テーブル先頭アドレスを予めテーブル化して用意しておけばよい。このテーブルは例えば第３８図のポインタテーブル４２０である。第１８図のステップ１００１で演算された特徴オフセットに加算する前記中間テーブル先頭アドレスを、そのテーブル４２０から取り出すことにより、必要な中間テーブルをグローバルテーブル４００から抽出することができる。
ポインタテーブル４２０を用いることにより、グローバル中間テーブル４００を、参照専用のテーブル（テーブルの内容を一切書き換えない）とすることができるため、グローバル中間テーブル４００を他のガウス分布の処理と重複して利用しうても（共有化しても）、全く問題を生じない。そして、ポインタテーブル４２０上で定義されたアクセスポインタ（分布１ではＰ１，分布２ではＰ２）を中間テーブルの先頭アドレスと看做すことで、あたかも実体として中間テーブルが存在するがごとく処理できる。グローバル中間テーブル４００を用いても第１８図の処理は全く変わらない。
第１９図の平均、分散の修正に対応するには、中間テーブルそれ自体の書き換えなど全く必要ではなく、単に、平均、分散に対応するアクセスポインタを計算し、これをアクセスポインタテーブル４２０に反映するだけで十分である。すなわち、適応処理によって分散と平均が変化された場合には、元の中間テーブル先頭アドレス（アクセスポインタの値）を、分散と平均の変化に応じて変更することにより、中間テーブルの書き換えを行わずに対処できる。例えば、適応前に相当する分布１に対応する中間テーブルのパターンが、第１７図においてＰ１を先頭アドレスとする配列要素で表現されているとする。このとき、適応後に相当する分布１に対応する中間テーブルのパターンが、第１７図においてＰ２を先頭アドレスとする配列要素に変更されるべき場合には、その分布１の中間テーブルの先頭アドレスポインタ（アクセスポインタ）をＰ１からＰ２に変化させるだけでよい。その処理は第３８図に例示されるようなポインタテーブル４２０に対して行えばよい。
そのための処理を概説すれば、まず、修正された分散と最も近い分散の列（分散カラム）を選択し、そして、平均の修正に対しては、標準ガウス分布の平均と修正された平均との差から、列の先頭位置を上下方向に移動する。
抽出すべき中間テーブルの先頭アドレスの修正について更に詳しく説明する。先ず、標準テーブルを用いて、様々な分散、平均を持つ１次元ガウス分布をアクセスできるようにすることを目的とする処理を考える。
ｆ０（ｘ０）＝ｅｘｐ｛−（ｘ０−μ０）／σ０｝とするとき、ｘ０⇒ｆ０（ｘ０）の標準テーブルを用いて任意の平均、分散を持つｆ（ｘ）＝ｅｘｐ｛−（ｘ−μ）／σ｝の値を計算する場合について考える。このとき、ｆ０（ｘ０）＝ｆ（ｘ）の関係を満たすｘ０をｘを用いて表現する。
ｆ０（ｘ０）＝ｆ（ｘ）より、
ｌｏｇ｛ｆ０（ｘ０）｝＝ｌｏｇ｛ｆ（ｘ）｝
ｌｏｇ｛ｅｘｐ｛−（ｘ０−μ０）／σ０｝｝＝ｌｏｇ｛ｅｘｐ｛−（ｘ−μ）／σ｝｝
（ｘ０−μ０）／σ０＝（ｘ−μ）／σ
∴ｘ０＝（σ０／σ）（ｘ−μ）＋μ０
と式の変形を行うことができる。この式は、平均の位置を原点とするときのｘ０の位置の値（ｘ０−μ）が、同じく平均の位置を原点とするときのｘの位置の値（ｘ−μ）と値σ０／σとによって決まる値に等しいことを意味する。上式を更に変形すると、
ｘ０＝（σ０／σ）（ｘ−μ＋μ０σ／σ０）
となる。ここで、α＝σ０／σ、β＝μ−μ０σ／σ０と置と、
ｘ０＝α（ｘ−β）と表現できる。
そこで、次に、Ｃ（ｘ）＝α（ｘ−β）とするとき（α、βは前述と同じ）、任意の平均及び分散を持つＣ（ｘ）の値を簡単なテーブルを用いて得ることを考える。Ｃ（ｘ）は本来３次元テーブル（ｘ，α，β）として把握すべきであるが、第３７図に例示されるように、ｘ０＝α・ｘを定義した２次元テーブルを想定し、アクセス時にｘ方向に−βずらしてＣ（ｘ）を得るようにする。適応後の中間テーブルの先頭アドレスは、−βずらされて最終的に得られるテーブルの先頭位置に基づいて決定される。第１７図に従えば、その先頭アドレスは、分布２のＰ２、即ち、対応される中間テーブルポインタの修正された値になる。
第２０図には第１９図の適応処理で修正されたガウス分布の分散と平均に対して前記対応するアクセスポインタの値を決定する処理手順の一例が全体的に示されている。処理が開始されると、標準の平均及び分散値１２５１と、適応によって得られた新たな平均値１１５３及び分散値１１５４とを用いて、前記α値及びβ値を計算する（ステップ１２０２）。そして、前述の通り、α値に基づいてグローバル中間テーブル４００のテーブルライン（カラム）を決定する（ステップ１２０３）。更に、β値を用いてテーブル先頭位置を決定する（ステップ１２０４）。決定されたテーブルライン及びテーブル先頭値からアドレス計算を行う（ステップ１２０５）。この計算ではテーブル構造を示すデータ（インデックステーブルのヘッダ）１２５３が参照される。例えば２次元配列のアドレス計算は、テーブルラインの位置をＴ、先頭位置をＳ、１ラインのテーブル要素数をＥ、１要素のデータ長を４バイト、グローバル中間テーブルの先頭アドレスをＡ０、アドレスをバイトアドレスとすると、
Ａ＝Ａ０＋４・｛（Ｔ−１）・Ｅ＋Ｓ−１｝
によって演算される。Ａが、適応後のアクセスポインタの値になる。
前記ステップ１２０２〜ステップ１２０５までの処理は、全ての分布に対して繰り返えされる。これによって、第１８図の処理で用いる中間テーブルの先頭アドレスは、第１７図のグローバル中間テーブル４００上のアドレスとして対応付けられる。
前述の説明から明らかなように、前記グローバル中間テーブル４００は平均（μ）と分散（σ）の値に基づいて参照できるが、上記説明では、抽出すべき中間テーブルの先頭アドレスのポインタ（アクセスポインタ）を格納したポインタテーブル４２０用いる説明としている。その場合には第３８図に例示されるように、特徴成分毎にそのアクセスポインタＰ０〜Ｐｎを備えることになる。アクセスポインタの値は前述の説明より明らかなように、分散と平均に基づいて算出することができる。したがって、そのアクセスポインタはそれに対応する分布の分散と平均に一意に対応付けすることができる。したがって、第３８図に例示されるように特徴成分毎に分散と平均を備えたテーブル４１０を用意し、これに基づいてその都度、アクセスポインタＰ０〜Ｐｎの値を演算して求めてもよい。但し、前記テーブル４１０を用いる場合には、適応時の処理は少なくなるが、中間テーブル４００を参照するための演算処理が増える。逆に、アクセスポインタテーブル４２０を用いる構成では、中間テーブルを参照するための演算処理とデータ量を少なくすることができるが、適応時の処理は増える。前記特徴成分毎の平均及び分散、又は特徴成分毎のアクセスポインタは、混合ＨＭＭのための演算に必要な状態遷移確率などと共にＨＭＭデータ（第３図の２５１）としてシステムに保持されている。
第４２図乃至第４４図には１次元ガウス分布の数値テーブルの例が示される。第４２図は、前記式４に示される値、即ち第４２図の矩形Ｒ１で囲まれた式の値を、所要の分散毎に備えている。数値テーブルが保有すす値は、−４σ〜４σの範囲とされる。これは、分布削減のための第１３図の中間テーブルの構成に対応させたものである。この数値テーブルのデータ構造は中間テーブルと共通性が有り、中間テーブルが想定する分散に関する数値データを持つことになる。このような数値データを採用する場合、数値テーブルから参照したデータを積算しなければならないから、演算桁数若しくは演算精度と言う観点から、混合ＨＭＭの演算を行うマイクロプロセッサ１０３は第２図に例示されるように浮動小数点ユニットを備えていることが望ましい。
第４３図に示される数値テーブルは、そのデータを整数演算でも利用可能なように、対数を採った値で数値テーブル化している。この場合には、矩形Ｒ２で囲まれた式の値が、第４２図の数値テーブルに格納されることになる。更に、矩形Ｒ３で囲まれた混合重みの対数値もテーブルに保持しなければならない。第４２図との大きな相違点は、整数演算でも対応できると言う点である。
第４０図及び第４１図には以上説明した多次元ガウス分布を用いた確率演算のためのテーブルアクセス手法が纏めて図示されている。
第４０図において、ＨＭＭデータには、例えば特徴成分毎にアクセスポインタの値がポインタテーブル４２０として格納されている。例えばある特徴成分のアクセスポインタの値はＰ１である。適応によってこれがＰ２に変更されている。このときの演算では、Ｐ１から一意に決定される分散及び平均と適応によって変更された分散及び平均とに基づいてアクセスポインタの値Ｐ２が決定される。特徴抽出によって特徴成分毎に特徴オフセットが演算され、更にこれに加算されるべきアクセスポインタの値Ｐ２が読み込まれて、中間テーブルの参照アドレスが演算される。この参照アドレスで中間テーブル４００がリードされると、リードされたアドレスによって、その特徴成分に関する所定の分散及び平均に係る１次ガウス分布の値が数値テーブルから読み出される。
前述の説明から明らかなように、音声認識時の混合ＨＭＭ演算において特徴成分に応じた１次ガウス分布の取得は、複雑なパラメータ演算などを要せず、アクセスポインタの参照と、特徴オフセットとアクセスポインタとの加算という簡単な処理によって行うことができる。また、適応時は、アクセスポインタを修正すれば良く、グローバル中間テーブル４００及び数値テーブル１０５２の値を修正する必要は全くない。
第４１図において、出力確率を演算する前に、特徴ベクトルの各特徴成分に対して予め特徴オフセットを求めておく。そして、特徴成分毎にアクセスポインタの値と特徴オフセットによってグローバル中間テーブル４００をアクセスして、１次ガウス分布の数値データのアドレスを取得していく。そして、一つの多次元ガウス分布に含まれる１次元ガウス分布の数値データのアドレスを全て取得したところで、そのアドレスによって数値データをアクセスする。このとき、それまでの間に、その数値データアクセス用のアドレスに対するデータプリフェッチを行っていれば、数値テーブルに対するアクセス時にキャッシュミスを殆ど生じない。プリフェッチはＭＰＵ１０３がデータアクセスを行っていないタイミングで適宜行うことができる。したがって、数値テーブルのアクセス前にグローバル中間テーブル４００のアクセスを行っても、数値データの取得が遅れることはない。また、グローバル中間テーブル４００をマイクロプロセッサ１０３内蔵の高速ＲＡＭ１０６等に格納してあれば、グローバル中間テーブル４００のアクセス時間を実質的に無視し得るほど少なくすることも可能である。適応によって分散及び平均を修正する場合には前述の通り、抽出される中間テーブルの先頭を指すアクセスポインタの値を修正すればよい。
《携帯情報端末装置》
第２１図には前記音声認識のためのシステムを適用した携帯情報端末装置１２０の外観の一例が示される。第２２図には携帯情報端末装置１２０のブロック図が示される。同図に示される携帯情報端末装置１２０は、特に制限されないが、前記音声認識機能と共に、小型コンピュータ装置の機能を有し、更に携帯電話機能を備えている。ケーシングの中央部部にはディスプレイ１０８とキーボード１２３が配置され、その端にはマイク（マイクロフォン）１０７、１３０１と、スピーカ１３０７，１３０８が設けられている。
第２２図において、ＭＰＵ１０３、ＲＯＭ１０５、ＲＡＭ１０６、ＶＩＦ１０４、ディスプレイ１０８は第１図で説明した音声認識装置に備えられている回路と同じであり、それらは、前記音声認識機能、小型コンピュータ装置の機能、及び携帯電話機能に共通利用される。
第２２図において１３０３で示されるものは、携帯電話ユニット（ＰＨＳ）である。携帯電話ユニット１３０３はアンテナ１３０９を介してたその他の携帯電話や一般の有線電話と通話することができる。スピーカ１３０７，１３０８はＤ／Ａ変換器１３０５，１３０６を介してＭＰＵ１０３などに接続される。周辺回路１３０２は赤外線インタフェース回路や、フラッシュメモリーカードインタフェース等を実現している。
携帯情報端末装置１２０は、特に制限されないが、２系統のマイク入力を想定している。マイク１３０１はＡ／Ｄ変換器１２０４を介してＭＰＵ１０３又はＰＨＳ１３０３に接続可能にされる。前記マイク１０７はＡ／Ｄ変換器１０２を介してＭＰＵ１０３に接続可能にされる。双方のマイク１０７，１３０１は音声認識や電話に利用されるが、その利用形態の詳細については後説明する。
携帯情報端末装置１２０は、携帯性重視の観点から動作電源としてバッテリ１２１を用いる。バッテリ１２１による装置の動作時間を延ばせるようにするために、商用電源を常時動作電源として用いるシステムに比べて低消費電力が厳しく要請される。これに答えるため、ＭＰＵ１０３には、動作速度（動作クロック周波数）や、ＭＩＰＳ（Ｍｉｌｌｉｏｎ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｐｅｒ  Ｓｅｃｏｎｄ）値、或いは消費電力が比較的小さなものが採用される傾向にある。例えば、消費電力が１Ｗ程度、動作クロック周波数が２００ＭＨｚ程度、データ処理能力が３００ＭＩＰＳ程度のＭＰＵ１０３を採用することができる。
このとき、ＭＰＵ１０３を用いて前記音声認識処理を行う場合、混合多次元ガウス分布の計算に、線形量子化の手法とグローバル中間テーブルの手法を採用しているので、音声認識処理における演算処理の高速化、そして適応時におけるパラメータ変更の高速化が実現されており、そのようなデータ処理能力の比較的低いＭＰＵ１０３であっても、音声認識のリアルタイム性若しくは迅速性を阻害することなく、実用に耐え得る程度の速度で音声認識を行うことができる。
混合多次元ガウス分布の計算に、線形量子化の手法とグローバル中間テーブルの手法を採用した音声認識処理プログラムは、例えばＲＯＭ１０５に格納されている。このＲＯＭは、コンピュータであるＭＰＵ１０３によってによって読み取り可能な記録媒体である。前記ＲＯＭ１０５がフラッシュメモリなどの電気的に書き換え可能な不揮発性メモリである場合に、前記音声認識処理プログラムを外部から当該ＲＯＭにロードして実行することも可能である。例えば、周辺回路１３０２にインタフェースされる図示を省略するＣＤ−ＲＯＭドライブ装置から必要な音声認識プログラムをＲＯＭに転送することができる。このとき、前記ＣＤ−ＲＯＭは、前記音声認識処理プログラムを格納した、コンピュータ読み取り可能な記録媒体の一例とされる。
《２マイク型雑音適応》
認識すべき音声から雑音成分をキャンセルするために２個のマイクを用いる公知の技術（例えばＡＮＣ：Ａｄａｐｔｉｖｅ  Ｎｏｉｓｅ  Ｃａｎｃｅｌｌｅｒ）が有る。この技術が採用されているとき、２個のマイクを用いて雑音適応を行う場合について説明する。前記マイク１０７は主マイクとされ、雑音と共に音声を拾うことができる。これに対して他方のマイク１３０１は信号成分に比べて相対的にノイズ性分を大きく拾うようにされた雑音専用の副マイクである。例えばこれは、双方のマイク１０７，１３０１の指向性や配置を選ぶことによって実現されている。
第３４図には２マイク型雑音適応の原理が示される。音声区間では雑音と音声が重畳され、これが主マイク（１０７）によってサンプルされる。副マイク（１３０１）は専ら雑音をサンプルし、そのサンプル信号には音声信号成分は殆ど含まれない。主マイク（１０７）で得た信号に含まれる雑音の特徴と副マイク（１３０１）で得た雑音の特徴とは当然相異される。そこで、無声音区間において主マイク（１０７）と副マイク（１３０１）の特性が評価されている。例えば、主マイク（１０７）の特性をｆｍ（ω）、副マイク（１３０１）の特性をｆｓ（ω）とすると、乗法性の歪を考えれば、ｆｍ（ω）＝α（ω）・ｆｓ（ω）と表現することができる。無声音区間では、主マイク（１０７）と副マイク（１３０１）とからの信号に基づいて上記α（ω）を決定することができる。主マイク（１０７）からの入力が所定の閾値を越えた音声区間では、副マイク（１３０１）からの入力に対して雑音分析を行い、ｆｓ（ω）の計算を行う。そして、α（ω）・ｆｓ（ω）によってｆｍ（ω）の特性補正を行う。その後に、前記第１９図に示される平均、分散、混合重みの修正を行い、更に第２０図で説明したようにポインタテーブル４２０のアクセスポインタの値を修正する。
第２３図には、前記携帯情報端末装置１２０において２個のマイクを用いて雑音適応を行う場合の処理手順の一例が詳細に示される。
ステップ２０２のシステム立ち上げでＲＯＭ２５０からシステムデータを読み込と、ステップ１４０１で主マイクとして利用されるマイク１０７に音声が入力されたか否かを判断する。ステップ１４０２で、音声が入力されていないと判断すると、ステップ１４０３を経由し、再びステップ１４０１の処理に戻る。これは、一種の無限ループを構成し、主マイクに音声が入力されるまで、繰り返される。
ステップ１４０３では、主マイクに利用されるマイク１０７と副マイクとして利用されるマイク１３０１の特性を比較し評価する。これは、音声区間で主マイクから雑音の特性を副マイクの雑音から推定するため、予め主マイクと副マイクの特性の違いを補正するためである。
ステップ１４０２で主マイクに音声が入力されたと判断されると、ステップ１４０４において、副マイク音声データ（データ１４５１）を副マイク雑音分析により特徴分析する（ステップ１４０４）。そして、ステップ１４０３で評価した主副マイク特性（１４５２）を用いて、前記ステップ１４０４で得られた分析結果を補正する（ステップ１４０５）。そして、前記ステップ１４０４による分析の結果に基づいて、ステップ１４０６で適応を行うか否かを判定する。適応を行う場合には、前記ステップ１４０５で補正された結果を用いて、雑音適応を行う（ステップ１４０７）。ステップ１４０７の処理は、例えば、第１９図の手法とほぼ同じ手法（第１９図において相違点は適応可否の判定に係る処理を行わなくてもよいと言う点である）により実現できる。ここで、修正されたＨＭＭパラメータ（混合ガウス分布の平均・分散）のデータ（１４５３）から、中間テーブルの先頭アドレスを指すアクセスポインタのテーブル４２０を更新する処理が行われる（ステップ１４０８）。この処理は、例えば第２０図の手法で更新することができる。ここで更新されたポインタテーブル４２０は、その後の、出力確率計算２１２やビタビサーチ２１４に利用される。
尚、２マイク型の音声認識では前述のＡＮＣの手法の他に、１対のステレオマイクを用いて得られる音声情報を信号成分偏重の情報とノイズ成分偏重の情報に分離してから、前記ＡＮＣの手法を採用する公知の技術（例えばビームフォーマ）を適用することも可能である。
《トランシーバ型通話における音声認識》
第２１図及び第２２図に例示される携帯情報端末装置１２０において音声認識対象は携帯電話ユニット１３０３による通話先からの音声（通話先音声）と、端末装置１２０のマイク１０７からの入力音声（端末側音声）との２種類ある。前記通話先音声に対する音声認識（通話系音声認識）と端末音声に対する音声認識（端末系音声認識）には、第１に、トランシーバ型通話における音声認識が考えられる。即ち第３５図に例示されるように、音声を通話先音声と端末音声との何れか一方に切換え可能にして、双方の音声を排他的に認識可能にする。そのような切換え操作は、端末系からの音声入力と通話系での受話とを切りかえるスイッチ１３０２ＳＷで行うことができる。第２２図においてこのスイッチ１３０２ＳＷは便宜上周辺回路１３０２に含まれる回路として図示されている。双方の音声の特徴は相当異なることが予想される。このとき、ＨＭＭの数値テーブルを通話先音声用と端末音声用に別々に持つならば、そのデータが膨大になり過ぎ、また、ＨＭＭの数値テーブルを共通化する場合には、通話先音声と端末音声とを切換える毎に適応のための膨大な処理が必要になって、リアルタイム処理が全く不可能になることも予想される。そこで、通話先音声と端末音声とでＨＭＭの数値テーブルと、前記グローバル中間テーブルとを共通化し、前記ポインタテーブル４２０を通話系音声認識と端末系音声認識とに別々に用意する。そして、別々に用意されたポインタテーブルを入力系毎に使い分ける。通話系音声認識の場合にはそれに割当てられたポインタテーブルを用いてグローバル中間テーブルをアクセスし、端末系音声認識の場合にはそれに割当てられたポインタテーブルを用いてグローバル中間テーブルをアクセスする。尚、第４０図において４２０−２は通話系のポインタテーブル、４２０−１は端末系のポインタテーブルを意味する。
第２４図には携帯情報端末装置１２０を用いたトランシーバ型通話における音声認識の処理手順の一例が示される。
ステップ２０１で処理が開始されると、ステップ２０２でＲＯＭ２５０からシステムデータを読み込み、処理が開始される。この例では、端末系からの音声と通話系からの音声とを各々独立に入力できる特徴を生かし、ステップ１５０１で、当該音声が、通話系からの音声か端末系からの音声かを判定する。例えば、通話系からの受話と端末系からの送話を切換えるスイッチ１３０２ＳＷの状態によって判定する。端末系からの送話入力であることが判定されると、ステップ１５０３より端末音声データが音声認識対象に取り込まれる。通話系からの受話入力と判定されると、ステップ１５０４より携帯電話ユニット１３０１からの通話系受話音声データが音声認識対象として取り込まれる。ステップ１５０５では、個々の入力から、無音区間を抽出し、雑音の性質を分析する。ステップ１４０６では、ここで入力された音声の無音区間のデータを用いて適応するか否かを判定する。適応する場合、適応処理のステップ１４０７で、分散や平均などのＨＭＭパラメータを修正し、それに応じて、ステップ１４０８でポインタテーブル４２０のポインタ値を更新する。これ以降は、第２３図と全く同じように処理されるので、その詳細な説明は省略する。
《セパレート型通話における音声認識》
第２１図及び第２２図に例示される携帯情報端末装置１２０を用いた通話系と端末系の夫々の音声認識の手法として、第２に、セパレート型通話における音声認識が考えられる。即ち第３６図に例示されるように、通話先音声（受話音声）と端末音声（送話音声）とを混在させて音声認識可能にするものである。この例においては、前記スイッチ１３０２ＳＷは不要である。この場合も事情は上記同様であり、通話先音声と端末音声とでＨＭＭの数値テーブル及び前記グローバル中間テーブルを共通化し、中間テーブルのポインタテーブルを通話系音声認識と端末系音声認識との夫々に用意する。但し、端末系と通話系の音声区間を別々に検出しなければならない。これによって、通話系と端末系の会話が重なっても対応できるようになる。尚、グローバル中間テーブルを用いず、特徴成分毎に中間テーブルを割当てる場合には、中間テーブルは通話系と端末系とで夫々別々に持たなければならない。
第２５図には携帯情報端末装置１２０を用いたセパレート型通話における音声認識の処理手順の一例が示される。この例では、通話系と端末系各々の系に適応させ調整したパラメータセットを２個保有するシステムを構成することになる。この場合、数値テーブル１０５２やグローバルテーブル４００は通話系と端末系で同一であり、中間テーブルのアクセスポインタを保有するポインタテーブル４２０を２組持てばよいことになる。
第２５図において、ステップ２０１で処理が開始されると、まず最初に、ステップ２０２において、システムの立ち上げを行う。本システムでは、端末系音声入力と通話系音声入力が別になっていることを利用し、各々の系統毎に処理を行う。ステップ１５０３では、端末系から音声を入力する。ここで、適応の必要があれば、ステップ１５０５−１で無音声区間を検出し、ステップ１４０７−１で雑音適応を行う。そして、この適応に応じて、ステップ１４０８で中間テーブルのポインタテーブル４２０−１を更新する。
これと同様の処理は、通話系でも行われる。本装置のように携帯電話ユニット１３０３と一体になった装置であれば、ステップ１５０４により通話系から認識すべき音声信号を入力する。その後は、前記と同様のステップ１５０５−２、ステップ１４０７−２、ステップ１４０８−２を行う。
ここで注意すべきは、音声入力系と中間テーブルのポインタテーブルとは夫々２系統持つ必要があるが、音声認識処理プログラム並びにグローバル中間テーブル等は単一の（同じもの）で足りる。端末系と通話系各々に別々の認識処理をしているわけではないが、各々に別々の認識処理をするのと同等の性能及び機能を得ることができる。
ステップ１６０１では、重なり調整を行う。これは、端末系と通話系の音声が重なった（例えば、一緒に話した）場合に、調整するものである。これは、簡単な例として、各々の入力音声毎に音声区間検出を行い。先に区間を検出した方の終了を待って、後に区間を検出した方の処理を行うことでも実現できる。
このようにして、音声区間の信号（ただし、端末系か通話系かの区別をするための属性データあるいはフラグを有する）が得られたら、ステップ２１２で特徴分析、ステップ２１３で出力確率の計算、ステップ２１４でビタビサーチを行うことで、系統属性付の認識結果（データ２５４−２）が得られる。ここで、系統属性とは、端末系か通信系かを区別する属性データを意味する。
上記処理では、複数系統のデータセットが必要となる処理も、中間テーブルのポインタテーブル４２０だけ系統毎に保有すれば済む。すなわち、この中間テーブルのポインタテーブルだけを２系統持ち、グローバル中間テーブル４００や数値テーブル１０５２などは端末系と通話系で全て共通でよい。
《話者適応をサポートする音声認識》
第２６図には話者適応及び雑音適応を行う音声認識システムにおける音声認識処理の手順の一例が示される。ここでは、時間情報１７５２に基づいて一定時間間隔で適応処理が行われるものとする。
先の例と同様に、ステップ２０１で処理が開始されると、先ず最初に、ステップ２０２において、システムの立ち上げを行う。システムが立ち上がると、ステップ１７０１により、音声データの取り込みが行われる。そして、ステップ１７０２において時間情報１７５２をインクリメントする。ここで、時間情報は、クロック単位でも良いし、フレーム単位でも良い。適応を行うべきかの判断（ステップ１７０３−１，１７０３−２）では、時間情報１７５２が一定値以上であるかを判別し、一定値以上の場合に適応を実行する。適応しない場合、ステップ２１２へ移行し、音声認識を開始する。
雑音適応を行う場合、先ず、ステップ１７０４−１で雑音データを入力し、それに応じてステップ１７０５−１でパラメータを修正する。例えば、２マイク系では、第２３図の方法（ステップ１４０４〜ステップ１４０７）と同じでもよい。そして、ステップ１７０６−１において、修正された分散、平均１４５３に応じてグローバル中間テーブルのアクセスポインターテーブル４２０を修正し、時間情報１７５２をリセット（例えば、０を設定）する。そして、音声認識処理（ステップ２１２〜ステップ２１４）を行う。
話者適応する場合も同様である。雑音適応の場合と同様に、ステップ１７０３−２の適応判断では、前記時間情報１７５２が、一定以上になった場合に適応を実行する。ただし、雑音適応の時間間隔と必ずしも同一でなくとも良い。ステップ１７０４−２では、雑音適応の場合と異なり、音声区間を抽出する。ステップ１７０５−２では、所謂教師なしの話者適応を行う。この修正に基づいてい、前記ポインタテーブル４２０を更新する。前記教師なしの話者適応とは、予め、適応のための事前学習を行わない話者適応方式である。
上記雑音適応及び話者適応は、一定間隔で、いわば割り込みのごとく発生する。適応を行わない場合には、直接にステップ２１２へ飛び、音声認識を行う。ここから、ステップ２１４までは、先に示した例と同様である。
第２７図には教師なし話者適応を実行する音声認識システムの別の例を示す。ここでは、特に頻繁に使用するユーザを登録し、当該話者の音声では、当該話者向けのポインタテーブルに切り替えるシステムの例である。登録話者以外の場合には一般向けのポインタテーブルに切り替える。
先の例と同様に、ステップ２０１で処理が開始されると、先ず最初に、ステップ２０２において、システムの立ち上げを行う。システムが立ち上がると、ステップ１７０１により、音声データの取り入れが行われる。ステップ１８０１では、話者識別のための特徴分析（例えば、高周波の成分の分析）を行う。これによって話者識別様の特徴データ１８５１が取得される。
ステップ１８０２では、前記話者識別用特徴データ１８５１と識別情報１８５２とを用いて話者識別が行なわれる。例えば、予め話者特徴を識別情報１８５２として登録しておいて、話者特徴データ１８５１に最も近い登録パターンが有るかを識別して話者を判定することができる。この話者識別（ステップ１８０２）処理で判定可能な話者に対しては夫々の処理系が設けられている。各々の処理系は、処理（プログラム）は同一であるが、話者毎並びに一般話者に対して、夫々固有のアクセスポインタテーブルなどのパラメータが設けられている。もっとも、適応可否の判断は、各々の話者に応じて（パラメータに応じて）異なることから、第２７図では、適応処理は話者毎に分離して表現されている。
ここでは、登録話者の分とデフォルト（一般話者向け標準パターン）の分とのパラメータセットを用いる。例えば、２人登録していれば、３系統のパラメータセットが必要になる。各パラメータセットには、少なくとも、ポインタテーブルが含まれている。
ステップ２１２以降は、先に示した例と同様の認識処理が行われる。ただし、使用されるグローバル中間テーブル４００のポインタテーブル４２０は各々の話者毎に与えられている。グローバル中間テーブル４００は全ての話者に共通とされる。このようにすれば、各種テーブルを形成するメモリ容量を抑制することができる。尚、グローバル中間テーブルを話者毎に別々に設けることも可能であるが、その場合には、グローバル中間テーブルによるメモリ使用量が膨大になる。
第２８図には教師なし話者適応を実行する音声認識システムの更に別の例を示す。第２７図と同様に、特に頻繁に使用するユーザを登録し、当該話者の音声では、当該話者向けのパラメータセットに切り替えるシステムの例であるが、特にこの例では、全体の登録話者数を一定数に限定して、使用頻度を考慮するシステムとしている。
先の例と同様に、ステップ２０１で処理が開始されると、先ず最初に、ステップ２０２において、システムの立ち上げを行う。システムが立ち上がると、ステップ１７０１により、音声データの取り入れが行われる。ステップ１８０１では、話者識別のための特徴分析（例えば、高周波の成分の分析）を行う。分析された話者識別用特徴データ１８５１より、ステップ１８０２で話者識別が行なわれる。これには、識別情報１８５２を用いる。例えば、予め話者特徴を登録しておいて、最も近い登録パターンを選択するなどにより実現できる。この話者識別１８０２において、処理系が選択される。これら各々の処理系では、処理プログラムは同一であるが、使用するポインタテーブルが異なる。もっとも、適応可否の判断は、各々の話者の特徴に応じて異なることから、第２８図では、話者毎に分離して表現している。以上の点は、第２７図の場合と全く同じである。
特に第２８図の例では、ステップ１９０１において、識別情報の修正を行う。ここでは、第２７図で用いた情報の他に、各登録話者の使用頻度を管理情報としたテーブル（話者管理テーブル）を使用し、登録者数を一定数に限定する。この処理を行った後は、第２７図で説明した手順と全く同じ処理が行われる。
前記識別情報修正処理（ステップ１９０１）の詳細を第２９図及び第３０図を用いて説明する。第２９図では、識別情報１８５２の内、話者管理に関する管理テーブル（単に話者管理テーブルとも称する）５００の構造を示す。ここでは、登録話者の欄５０１に対して、使用頻度の欄５０２と、ポインタテーブル４２０へのポインタ（データポインタ）の欄５０３とを有し、これらの欄のデータは、登録話者毎に使用頻度順にソート可能にされている。このような話者管理テーブル５００は、１系統のデータセットでは不要であるが、複数系統の場合、必要になる。ただし、第２５図や第２７図の例のように構造が固定の場合（ソート不要の場合）には、あえてテーブル化しなくても、単なる参照データとしてデータポインタなどの情報を備えていればよい。
第２８図の識別情報修正のステップ１９０１では、例では、頻度情報によってテーブル構造の修正及び変更を行わなければならない。これについて簡単に説明する。この処理手順は第３０図に示される。ステップ２００１が開始されると、先ず、ステップ２００２において、識別された話者に該当する話者がリスト（話者管理テーブル５００）に存在するか否かを判定する。もし、リストに無い場合、ステップ２００３において、最下位の登録話者と今回の話者とを入れ替える。ステップ２００３のリストの入れ替えでは、最下位のデータを消去し、新しい登録話者のＩＤ（これは、話者認識における登録ＩＤ）を登録話者の欄に書き込み、頻度情報を１より大きな値（例えば、５）に設定する。データポインタは前者に割当てられているものを引き継ぐが、該当するグローバル中間テーブル４００のポインタテーブル４２０は、標準パターンに相当するものに設定（初期化）する。
ステップ２００４では、頻度情報を更新する。これは、話者識別によって選ばれた話者が登録話者である場合に当該登録話者の頻度情報をインクリメントし、該当しない登録話者の頻度情報をデクリメントする。このようにすれば、初期化してからあまり使用されな話者の頻度情報は、初期化頻度値（本例では、５）より小さくなり、初期化した話者より下位になる。すなわち、初期化し登録されたばかりの話者がすぐにリストから削除されないようにすることができる。
ステップ２００５では、上記操作に伴う順位の変更に対して、使用頻度でソートを行う。ソートの方法は色々あるが、例えば、ディクリメントされたグループの順序関係は保たれているから、第３３図に基づいて後で説明するようなバブルソートで効率的に実行できる。すなわち、初期化されたリストとインクリメントされたリストのみをバブルソートで処理すれば良い。この様子を第３１図乃至第３３図に示す。
第３１図は、初期化で新しく入れ替えられたリストに対する操作の例を示す。この場合、最下位から順にバブルソートする。第３２図は、既に存在するリストに対する操作の例である。この場合、リストが存在する位置からバブルソートする。着目したリスト以外のリストの頻度情報は１づつ減少するため、着目リストの順位は、必ず上昇する方向に動く。従って、着目リスト以外のリストの操作は必要ない。
この手順をフローにしたものが、第３３図である。ここでは、ソートの処理を示す。ステップ２１０１で処理が開始されると、ステップ２１０２でソートリストが選択される。これは、着目している話者のリストである。ステップ２１０３では、直上の頻度情報と比較する。順序関係が正しい場合、ステップ２１０５で終了する。順序関係が正しくない場合、直上のリストとリストを入れ替え、ステップ２１０３に戻る。この処理は、順序関係が正常になるまで（直上のリストの頻度情報より小さくなるか、最上位に到達するまで）繰り返され、ステップ２１０５で処理を終了する。
上記実施例によれば以下の作用効果を得ることができる。
上記出力確率の演算では、全ての混合多次元ガウス分布の計算において、特徴成分を同一スケールで線形量子化しているから、特徴ベクトル（浮動小数あるいは固定小数に相当する整数値）をスカラ量子化する処理は、各特徴毎に１フレーム当り１回で良い。さらに、参照すべきデータとそのデータが属する中間テーブルの先頭アドレスとの差（特徴オフセット若しくはテーブルオフセット）も、特徴成分毎に共通である。したがって、単一ガウス分布の計算は、中間テーブルの先頭アドレスのロード、中間テーブルの先頭アドレスと特徴オフセットの加算、中間テーブルのアクセス、数値テーブルのアクセス、で実行できる。これにより、出力確率の演算速度を増強することができる。
適応においては数値テーブルそれ自体の書換えが不要である。ポインタテーブルを用いる場合には中間テーブルの書換えも必要ない。適応による分散や平均の変化に応じてポインタテーブル上のアクセスポインタの値だけを修正すれば済む。これにより、適応処理も高速化することができる。
数値テーブルは、外部メモリに格納することが一般的であるが、中間テーブルのアクセスによって数値テーブル上のデータアドレスを一つ得た後に、すぐに数値テーブルのアクセスを行うのではなく、多次元ガウス分布毎に全てのデータアドレスを予め求めてから、数値テーブルのアクセスを行うから、数値テーブルのアクセスを開始するまでの間に、データアドレスのデータをキャッシュメモリ１１７にプリフェッチすることができる。したがって、数値テーブルのアクセスではキャッシュヒットとなり、数値テーブルのアクセスにおけるキャッシュミスを回避することができる。
以上のことから、音声認識のために出力確率を演算するとき、テーブル参照のための一連のメモリアクセスにおいて、キャッシュミスの発生なしに、３回のデータロードと（アドレス計算のための）１回の加算でガウス分布の数値が得ることができる。中間テーブルのアクセス動作が増えても、出力確率の演算を著しく高速化することができる。
また、１次元ガウス分布の分散と平均に一意に対応させて中間テーブル４０１，４０２を抽出できるグローバル中間テーブル４００を採用し、グローバル中間テーブル４００から抽出される中間テーブル４０１，４０２の先頭アドレスは、ポインタテーブル４２０上のアクセスポインタで指定し、抽出された中間テーブルに対するアクセス位置は特徴成分を線形量子化して得られる特徴オフセットによって指定する。したがって、適応により、分散や平均が変更されても、中間テーブルの書き換えは発生せず、単に、変更に係るアクセスポインタの値をポインタテーブル上で書き換えて対応でき、適応処理の高層化も実現することができる。
また、アクセスポインタの値は分散や平均と相関が有るから、適応によって分散や平均が変わるとき、それに応じてアクセスポインタの値を変更する処理は簡単になる。
アクセスポインタテーブルを複数セット設けておき、話者適応などによってアクセスポインタテーブルを切換えて使用することにより、話者適応の高速化を図ることができる。
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
例えば、データ処理システムは携帯情報端末装置に限定されない。携帯電話機能は省略してもよい。パーソナルコンピュータシステムで実行させることも可能である。
データプロセッサの構成は第２図に限定されない。データプロセッサは、マイクロプロセッサやマイクロコンピュータと称されるものを総称する。データプロセッサは命令をフェッチし、フェッチした命令を解読して演算制御処理を行う回路であり、ＣＰＵ（中央処理装置）を備えていればよい。データキャッシュメモリ或いは高速ＲＡＭを内蔵していれば更に好ましい。高速内蔵ＲＡＭにはグローバル中間テーブルやポインタテーブルなどを常駐させる。
また、ＨＭＭ音声認識のための出力確率演算のためのプログラムが格納されるコンピュータ読み取り可能な媒体は、フロッピーディスク、磁気テープ、ハードディスク等の磁気記憶媒体、ＣＤ−ＲＯＭやＭＯ等の光学的記憶媒体、メモリカード等の半導体製記録媒体、或いはそれ以外のどのような媒体であってもよい。産業上の利用可能性
本発明は、ＨＭＭを用いた音声認識技術に広く適用することができ、例えば、マイクロコンピュータで制御され若しくは電池駆動される携帯情報端末装置等に実現される音声認識に適用して有効な技術に関するものである。また、本発明に係る音声認識のための出力確率の演算処理プログラムは、これをコンピュータ読み取り可能な記録媒体や通信回線などを介して、パーソナルコンピュータなどのコンピュータにロードして利用することも可能である。
【図面の簡単な説明】
第１図はマイクロコンピュータを用いた音声認識システムの一例を示すブロック図である。
第２図はマイクロコンピュータの一例を示すブロック図である。
第３図は第１図で示された音声認識装置を用いて実行される処理の概要を全体的に示したフローチャートである。
第４図は認識処理の概要を示すフローチャートである。
第５図はＨＭＭの一例を示す説明図である。
第６図はｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型のＨＭＭのモデルの一例を示す説明図である。
第７図は混合多次元ガウス分布の一例として３混合２次元の混合多次元ガウス分布の様子を示す説明図である。
第８図は２次元の特徴空間を第７図の断面１で切断し横から見た様子を示す説明図である。
第９図は線形スカラ量子化を行う場合の数値テーブルと１次元正規分布との関係を示す説明図である。
第１０図は線形スカラ量子化原理を例示した説明図である。
第１１図は１次元のガウス分布の平均、分散の一例を示す説明図である。
第１２図は第１１図に対して平均、分散が相異された１次元のガウス分布を示す説明図である。
第１３図は分布削減のため中間テーブルのデータの構成を概略的に示した説明図である。
第１４図は中間テーブルにおける分布削減様の距離情報の例を示す説明図である。
第１５図は単一ガウス分布に対する中間テーブルの分布削減情報の配置の一例を示す説明図である。
第１６図は中間テーブルの値に応じた処理の分岐について例示的に示したフローチャートである。
第１７図はグローバル中間テーブルの一例を示す説明図である。
第１８図は出力確率の演算処理の詳細な一例を示すフローチャートである。
第１９図は適応処理において混合ガウス分布の平均と分散を修正する処理の一例を示すフローチャートである。
第２０図は第１９図の適応処理で修正されたガウス分布の分散と平均に対して対応する中間テーブルポインタの値を決定する処理手順の一例を全体的に示すフローチャートである。
第２１図は音声認識のためのシステムを適用した携帯情報端末装置の外観の一例を示す説明図である。
第２２図は第２１図に示される携帯情報端末装置の一例を示すブロック図である。
第２３図は携帯情報端末装置において２個のマイクを用いて雑音適応を行う場合の処理手順の一例を詳細に示したフローチャートである。
第２４図は携帯情報端末装置を用いたトランシーバ型通話における音声認識の処理手順の一例を示すフローチャートである。
第２５図は携帯情報端末装置を用いたセパレート型通話における音声認識の処理手順の一例を示すフローチャートである。
第２６図は話者適応及び雑音適応を行う音声認識システムにおける音声認識処理の手順の一例を示すフローチャートである。
第２７図は教師なし話者適応を実行し使用頻度によって登録話者を決める音声認識処理手順の一例を示すフローチャートである。
第２８図は教師なし話者適応を実行し使用頻度によって登録話者を一定人数に保つようにした音声認識処理手順の一例を示すフローチャートである。
第２９図は話者適応のための識別情報のうち話者管理に関する話者管理テーブルの構造の一例を示す説明図である。
第３０図は頻度情報によって話者管理テーブルの構造を修正及び変更する処理の一例を示すフローチャートである。
第３１図は初期化によって話者管理テーブルに新しく入れ替えられたリストに対する操作の一例を示す説明図である。
第３２図は話者管理テーブルに既に存在するリストに対する操作の一例を示す説明図である。
第３３図は第３１図及び第３２図の処理の手順を示したフローチャートである。
第３４図は２マイク型雑音適応の原理を示す説明図である。
第３５図はトランシーバ型通話における音声認識の原理を示した説明図である。
第３６図はセパレート型通話における音声認識の原理を示した説明図である。
第３７図は雑音適応に応じてテーブル先頭アドレスポインタの値を修正する操作を原理的に示した説明図である。
第３８図はＨＭＭパラメータセットに含まれるグローバルテーブルのためのアクセスポインタテーブルの構造の一例を示す説明図である。
第３９図はＨＭＭパラメータセットに含まれる中間テーブルのためのアクセスポインタテーブルの構造の一例を示す説明図である。
第４０図は多次元ガウス分布を用いた確率演算のためのテーブルアクセス手法を纏めて示した説明図である。
第４１図は中間テーブルのアクセスと数値テーブルのアクセスとの関係を時系列的に示した説明図である。
第４２図は浮動小数点演算をサポートするマイクロプロセッサを用いる場合に好適な１次元ガウス分布の数値テーブルの一例を示す説明図である。
第４３図は整数演算で対応可能な１次元ガウス分布の数値テーブルの一例を示す説明図である。
【図１】
0003796121.tif 000012
【図２】
0003796121.tif 000013
【図３】
0003796121.tif 000014
【図４】
0003796121.tif 000015
【図５】
0003796121.tif 000016
【図６】
0003796121.tif 000017
【図７】
0003796121.tif 000018
【図８】
0003796121.tif 000019
【図９】
0003796121.tif 000020
【図１０】
0003796121.tif 000021
【図１１】
0003796121.tif 000022
【図１２】
0003796121.tif 000023
【図１３】
0003796121.tif 000024
【図１４】
0003796121.tif 000025
【図１５】
0003796121.tif 000026
【図１６】
0003796121.tif 000027
【図１７】
0003796121.tif 000028
【図１８】
0003796121.tif 000029
【図１９】
0003796121.tif 000030
【図２０】
0003796121.tif 000031
【図２１】
0003796121.tif 000032
【図２２】
0003796121.tif 000033
【図２３】
0003796121.tif 000034
【図２４】
0003796121.tif 000035
【図２５】
0003796121.tif 000036
【図２６】
0003796121.tif 000037
【図２７】
0003796121.tif 000038
【図２８】
0003796121.tif 000039
【図２９】
0003796121.tif 000040
【図３０】
0003796121.tif 000041
【図３１】
0003796121.tif 000042
【図３２】
0003796121.tif 000043
【図３３】
0003796121.tif 000044
【図３４】
0003796121.tif 000045
【図３５】
0003796121.tif 000046
【図３６】
0003796121.tif 000047
【図３７】
0003796121.tif 000048
【図３８】
0003796121.tif 000049
【図３９】
0003796121.tif 000050
【図４０】
0003796121.tif 000051
【図４１】
0003796121.tif 000052
【図４２】
0003796121.tif 000053
【図４３】
0003796121.tif 000054