(57)【特許請求の範囲】
【請求項１】
入力音声を分析し音響特徴量に変換する音響特徴量変換部と、
音響尤度計算の並列実行手順を登録する音響尤度並列実行手順登録部と、
入力音声の音響特徴量と音響モデルの状態を保持する音響特徴量保持部と、
前記音響尤度並列実行手順登録部によって登録された音響尤度並列実行手順に従い、入力音声の音響特徴量と音響モデルの状態を用いて尤度計算を実行する音響尤度並列計算部と、
前記音響尤度並列計算部から尤度計算結果を出力させる音響尤度並列計算制御部と、
前記音響尤度並列計算部から音響尤度計算結果を取得する音響尤度計算結果取得部と、
を具備し、
前記音響尤度並列計算部には、一般的にはグラフィック処理を行うＧＰＧＰＵ（General Purpose Graphic Processing Unit）を使用し、該ＧＰＧＰＵのピクセルシェーダの並列演算をカスケード接続することで音響尤度計算を実行させ、
前記ピクセルシェーダは、データ記憶領域に確保されたｎ次元（ｎは１より大きい正の整数）の各々のμ、χに対し、下記の演算式（２）の第二項の（χ−μ）の演算を一括実行してｎ次元の結果ｚを算出させ、続けて、ｚ、σに対し、演算式（２）の第二項（ｚ×ｚ）／（σ×σ）の演算を一括実行し、ｎ次元の結果Ｐ'を算出させることを特徴とする音響尤度並列計算装置。
【数２】
0004854032.tif 000006
ここに、μは平均、σは分散、χは互いに独立するｎ次元（ｎ個）のパラメータである。
【請求項２】
請求項１に記載の音響尤度並列計算装置において、
前記ピクセルシェーダの同時ベクトル演算数を（ｎ次元×Ｍ）（Ｍは１より大きい正の整数）にし、複数（Ｍ個）の音響モデルに対する演算の処理を同時に実行することで速度向上を実現したことを特徴とする音響尤度並列計算装置。
【請求項３】
請求項１または２に記載の音響尤度並列計算装置において、
各次元の計算処理結果を足し算する処理（Σ演算）については、ＣＰＵにて実行することを特徴とする音響尤度並列計算装置。
【請求項４】
請求項１ないし３のいずれかに記載の音響尤度並列計算装置において、
前記ｎ次元は、３８次元であることを特徴とする音響尤度並列計算装置。
【請求項５】
ＧＰＧＰＵのピクセルシェーダの並列演算をカスケード接続することで音響尤度計算を実行させる音響尤度並列計算のプログラムであって、
コンピュータに、
データ記憶領域に確保されたｎ次元（ｎは１より大きい正の整数）の各々のμ、χに対し、下記の演算式（２）の第二項の（χ−μ）の演算を一括実行してｎ次元の結果ｚを算出させる機能と、
ｚ、σに対し、演算式（２）の第二項（ｚ×ｚ）／（σ×σ）の演算を一括実行し、ｎ次元の結果Ｐ'を算出させる機能とを、前記ピクセルシェーダで実現させるためのプログラム。
【数２】
0004854032.tif 000007
ここに、μは平均、σは分散、χは互いに独立するｎ次元（ｎ個）のパラメータである。
【請求項６】
請求項５に記載の音響尤度並列計算のプログラムにおいて、
前記ｎ次元は、３８次元であることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は音声認識における音響尤度並列計算装置及びそのプログラムに関し、特に音声認識における音響特徴量の積和演算部分を並列演算化することで尤度計算の処理時間を短縮可能にする音響尤度計算装置及びそのプログラムに関する。 
【背景技術】
【０００２】
音声認識では、マイクからデジタル・サンプリングされた音声は時系列の音響特徴量に変換され、母音や子音といった認識単位毎の音響モデルとパターン・マッチングが行われる。一方、隠れマルコフモデル（Hidden Markov Model: HMM）で表現される音響モデルは、数百の状態（State）で構成され、それぞれの状態は音響特徴量（38次元）の入力に対して尤度（対数化した確率）を出力する多次元正規分布を持つ。
【０００３】
この多次元正規分布は次の演算式（１）で表される。
【０００４】
【数１】
0004854032.tif 000002
【０００５】
ここに、μは平均、σは分散、χは互いに独立する３８次元（３８個）のパラメータである。
【０００６】
前記（１）式を対数化して尤度にすると、次の演算式（２）の通り、２次関数の和で表される。
【０００７】
【数２】
0004854032.tif 000003
【０００８】
ここに、演算式（２）の括弧{ }内の第１項は定数項であり、予め計算しておけるため、演算式（２）は括弧{ }内の第二項の３８回の積和演算となる。この音響特徴量の積和演算を音響尤度計算と呼ぶ。
【０００９】
さて、下記の特許公報１には、前記尤度計算演算式（演算式（２））を単純な積和演算式へ分解し、個々の積和演算の計算コストを下げることで高速実行する方法が開示されている。また、下記の特許文献２には、音響特徴量の変化量に閾値を設け、音響尤度計算の実行回数の絞込みを行うことで高速実行する方法が開示されている。さらに、下記の特許文献３には、公知の尤度計算演算式の定数部をテーブル化し、計算量を削減することで高速実行する方法が開示されている。
【００１０】
一方、下記の非特許文献１には、音響モデルの状態を予備選択することで、無駄な音響尤度計算を減らし、また、非選択の音響モデルの状態に対しても、事前に他音響モデルから算出した近似値を適用することで高速実行する方法が開示されている。
【特許文献１】特開2005-031151号公報
【特許文献２】特開2000-250580号公報
【特許文献３】特開2000-322081号公報
【非特許文献１】情報処理学会  論文誌  IPSJ-JNL4307023、李晃伸他２名、「音素環境独立HMMを用いた混合ガウス分布選択による音響尤度計算量の削減」
【発明の開示】
【発明が解決しようとする課題】
【００１１】
音響尤度計算を高速実行するために、前記した特許文献１〜３、非特許文献１に記されている従来技術を適用しようとすると、以下のような課題が存在する。
【００１２】
(a)特許文献１に記載の方法では、音響モデルの状態数や音響特徴量の次元数が増大すると、分解された個々の積和演算の累積度が増大するため、並列化が困難である。
【００１３】
(b)特許文献２あるいは特許文献３に記載の方法では、音響モデルの状態数や音響特徴量の次元数が増大すると、音響特徴量や定数を記憶するデータ記憶領域が増大するため、データ記憶領域の限られた機器では、実装が困難である。
【００１４】
(c)非特許文献１に記載の方法では、音響モデルの状態数や音響特徴量の次元数が増大すると、非選択の音響モデルの状態から算出した近似値を記憶するデータ記憶領域が増大するため、データ記憶領域の限られた機器では、実装が困難である。
【００１５】
本発明は、前記した従来技術の課題に鑑みてなされたものであり、その目的は、音響尤度計算の処理時間を短縮できる音声認識における音響尤度並列計算装置及びそのプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
前記した目的を達成するために、本発明は、入力音声を分析し音響特徴量に変換する音響特徴量変換部と、音響尤度計算の並列実行手順を登録する音響尤度並列実行手順登録部と、入力音声の音響特徴量と音響モデルの状態を保持する音響特徴量保持部と、前記音響尤度並列実行手順登録部によって登録された音響尤度並列実行手順に従い、入力音声の音響特徴量と音響モデルの状態を用いて尤度計算を実行する音響尤度並列計算部と、前記音響尤度並列計算部から尤度計算結果を出力させる音響尤度並列計算制御部と、前記音響尤度並列計算部から音響尤度計算結果を取得する音響尤度計算結果取得部とを具備し、前記音響尤度並列計算部には、一般的にはグラフィック処理を行うＧＰＧＰＵ（General Purpose Graphic Processing Unit）を使用し、該ＧＰＧＰＵのピクセルシェーダの並列演算をカスケード接続することで音響尤度計算を実行させ、前記ピクセルシェーダは、データ記憶領域に確保されたｎ次元（ｎは１より大きい正の整数）の各々のμ、χに対し、下記の演算式（２）の第二項の（χ−μ）の演算を一括実行してｎ次元の結果ｚを算出させ、続けて、ｚ、σに対し、演算式（２）の第二項（ｚ×ｚ）／（σ×σ）の演算を一括実行し、ｎ次元の結果Ｐ'を算出させるようにした点に特徴がある。
【数２】
0004854032.tif 000004
ここに、μは平均、σは分散、χは互いに独立するｎ次元（ｎ個）のパラメータである。
【００１７】
また、前記音響尤度並列計算部には、一般的にはグラフィック処理を行うＧＰＧＰＵ（General Purpose Graphic Processing Unit）を使用し、該ＧＰＧＰＵのピクセルシェーダのそれぞれの並列演算をカスケード接続することで音響尤度計算を実行させるようにした点に他の特徴がある。
【００１８】
また、ＧＰＧＰＵのピクセルシェーダの並列演算をカスケード接続することで音響尤度計算を実行させる音響尤度並列計算のプログラムであって、コンピュータに、データ記憶領域に確保されたｎ次元（ｎは１より大きい正の整数）の各々のμ、χに対し、下記の演算式（２）の第二項の（χ−μ）の演算を一括実行してｎ次元の結果ｚを算出させる機能と、ｚ、σに対し、演算式（２）の第二項（ｚ×ｚ）／（σ×σ）の演算を一括実行し、ｎ次元の結果Ｐ'を算出させる機能とを、前記ピクセルシェーダで実現させるためのプログラムを提供する点に、さらに他の特徴がある。
【数２】
0004854032.tif 000005
ここに、μは平均、σは分散、χは互いに独立するｎ次元（ｎ個）のパラメータである。
【発明の効果】
【００１９】
本発明による音響尤度並列計算装置によれば、音響モデルの状態数や音響特徴量の次元数に依存しない可変のデータ記憶領域を利用することで、従来の尤度計算方法をそのまま並列実行出来る。これにより、前記演算式（２）を、短時間で実行することが可能となる。
【００２０】
また、可変のデータ記憶領域に、音響モデルの状態数や音響特徴量の次元数を保持することで、音響尤度並列計算前後のデータ記憶領域の使用頻度とデータ記憶総量を低く抑えることができるようになる。
【発明を実施するための最良の形態】
【００２１】
まず、本発明の原理を説明する。一般的なPCや携帯電話端末では、CPUの演算処理能力は限定されるため、音声認識処理において処理量の特に多い音響尤度計算を、通常グラフィック処理を行っているGPGPU（General Purpose Graphic Processing Unit）を転用して行うことで、膨大な演算処理を高効率かつ高精度で行え、大語彙辞書での音声認識処理をリアルタイムで実行するようにする。具体的には、３Ｄグラフィック処理等で用いられる頂点処理（バーテックスシェーダ）やテクスチャ処理（ピクセルシェーダ）のマトリックス並列演算をベクトル処理と見做して複数並列処理のカスケード接続の処理形態を構成し、音響尤度計算における並列・順次処理を効率的にマッピングすることで、高速化を図るものである。この発明によれば、また、これまでＣＰＵ側で必要としていた膨大なメモリもＧＰＧＰＵ側で吸収することができる。
【００２２】
以下に、図面を参照して、本発明を詳細に説明する。図１は音響尤度並列計算装置のハード構成を示すブロック図である。
【００２３】
図示されているように、該音響尤度並列計算装置は、ハード構成としては、ＣＰＵ１、メモリ２，ＧＰＧＰＵ（General Purpose Graphic Processing Unit）３，ディスプレイ４およびこれらを接続するバス５から構成される。また、ＧＰＧＰＵ３は、ＧＰＵ３１と可変のデータ記憶領域を有するＧＰＵメモリ３２とからなる。図から分かるように、ＧＰＵメモリ３２はＧＰＵ３１から直接アクセスされてデータの読み書きをすることができるが、ＣＰＵ１からは直接にアクセスされることはできない。このため、ＣＰＵ１は、ＧＰＵ３１を介してＧＰＵメモリ３２にアクセスするようにする。
【００２４】
図２は、該音響尤度並列計算装置の機能ブロック図であり、入力音声を分析し、音響特徴量に変換する音響特徴量変換部１１と、音響尤度計算の並列実行手順を登録する音響尤度並列実行手順登録部１２と、入力音声の音響特徴量と音響モデルの状態を保持する音響特徴量保持部１４と、該音響特徴量保持部１４で保持された入力音声の音響特徴量と音響モデルの状態と音響尤度並列実行手順登録部１２に予め登録されている音響尤度並列実行手順に従い、尤度計算を実行する音響尤度並列計算部１５と、該音響尤度並列計算部１５から尤度計算結果を出力させる音響尤度並列計算制御部１３とからなる。
【００２５】
ここに、前記音響特徴量変換部１１、音響尤度並列計算制御部１３は、図１のＣＰＵ１が行う機能であり、前記音響尤度並列実行手順登録部１２はメモリ２に相当する。また、前記音響特徴量保持部１４はＧＰＵメモリ３２に相当し、前記音響尤度並列計算部１５はＧＰＵ３１が行う機能である。
【００２６】
次に、該音響尤度並列計算装置の動作を説明する。ＧＰＧＰＵ３は元々グラフイックの処理、例えば画像のピクセルを回転させたり、その色を変化させたりする処理を高速に行うためのものであるので、これをＣＰＵの演算用のアクセラレータとして用いる場合には、予め、演算のためのデータ領域のサイズとか、演算の変数の定義、演算の処理手順（プログラム）とかを、ＣＰＵ１側からＧＰＵ３１に設定またはロードすることが必要になる。
【００２７】
そこで、図３(a)に示すように、ＣＰＵ１はＧＰＵ３１を介してＧＰＵメモリ３２に、ｎ個の独立するパラメータχ、音声特徴量の分散σ、平均μのための記憶領域（テクスチャ）を用意し、各記憶領域のサイズを、例えば５１２×５１２（ピクセル）とする。また、ＣＰＵ１はＧＰＵ３１に、演算の変数の定義や、図３(b)のような演算の処理手順をロードする。
【００２８】
つまり、図２においては、音響尤度並列実行手順登録部１２が音響尤度並列計算部１５に対して、初期設定フェーズとして、以下の初期設定を行う。
〈初期設定フェーズ〉
【００２９】
・音声特徴量をｎ次元（ｎ個）とする。
【００３０】
・音響モデルの状態数をｍ個とする。
【００３１】
・ｎの平均をμ、ｎの分散をσ、ｎ個の独立するパラメータをχとする。
【００３２】
・μ、σ、χから求めた尤度計算結果（音響モデルの状態各々の尤度確率）をｐとする。
【００３３】
・μ、σ、χ、ｐを、各々保持するためのデータ記憶領域のサイズをｌ＝ｍ×ｎとし、データ記憶領域を確保する。
【００３４】
前記初期設定フェーズが終わると、次は並列演算フェーズに移る。該並列演算フェーズでは、前記演算式（２）の右辺第二項の演算、すなわち３８回の積和演算を行う。具体的には、図２の音響特徴量変換部１１は、入力音声を時系列の３８個の音響特徴量（デジタル）に変換し、該３８個の音響特徴量は音響尤度並列計算部１５を介して音響特徴量保持部１４に格納される。なお、好ましくは、音声の２５ｍ秒を１フレームとした場合、音響特徴量３８個×音響モデルの状態数５４６個×音響モデルの状態の任意の組み合わせ数×１フレーム分、例えば３８個×５４６個×音響モデルの状態の任意の組み合わせ数分の音響特徴量を一括して音響特徴量保持部１４に格納すると、処理速度をさらに向上することができる。
【００３５】
該音響特徴量として、前記した３８次元（一般的に、ｎ次元）の音声特徴量平均μｎ、分散σｎ、独立するパラメータχｎが求められているので、音響尤度並列計算部１５はこれらの特徴量を用いて、下記の並列演算フェーズの処理を行う。
〈並列演算処理フェーズ〉
【００３６】
・前記データ記憶領域（音響特徴量保持部１４）に確保された各々のμｎ、χｎに対し、演算式（２）第二項（χｎ−μｎ）の演算を一括実行し、結果をｚｎとする。
【００３７】
・続いて、ｚｎ、σｎに対し、演算式（２）第二項（ｚｎ×ｚｎ）／（σｎ×σｎ）の演算を一括実行し、演算結果をＰｎとし、該Ｐｎを保持するためのデータ記憶領域Ｐ’（音響特徴量保持部１４）に設定する。
【００３８】
図４は、該並列演算処理フェーズの概念図である。このフェーズは、前記ＧＰＧＰＵのピクセルシェーダのそれぞれの並列演算をカスケード接続することにより行われる。前記ＧＰＧＰＵのピクセルシェーダでは、データ記憶領域に確保された３８次元の各々のμ、χに対し、演算式（２）第二項（χ−μ）の演算を一括実行して３８次元の結果ｚを算出させ、該ピクセルシェーダにおいて、続けて、ｚ、σに対し、演算式（２）第二項（ｚ×ｚ）／（σ×σ）の演算を一括実行し、３８次元の結果Ｐ’を算出させる。
【００３９】
前記並列演算処理フェーズが終わると、次は終了フェーズに移る。該終了フェーズでは、音響尤度並列計算制御部１３は、音響尤度並列計算部１５を介して音響特徴量保持部１４にアクセスし、ｎ個のｐを読み出し、以下の終了フェーズの処理を行う。
〈終了フェーズ〉
【００４０】
・データ記憶領域（音響特徴量保持部１４）上のｎ次元（ｎ個）分のＰ’ｎに対してシグマ演算を実行し、音響特徴量の合計尤度を算出する。
【００４１】
つまり、音響尤度並列計算制御部１３は、Ｐ’の記憶領域からＰ’の値を３８個読み出して、図５に示されている式の演算（音響尤度計算）を行う。ここに、Ｃは定数部分である。
【００４２】
以上のように、本実施形態によれば、入力音声のｎ個又はｎ×１フレームの特徴量をＧＰＵメモリ３２に一括して格納し、前記並列演算処理フェーズで説明した並列演算処理を行うようにしたので、演算式（２）第二項（ｚｎ×ｚｎ）／（σｎ×σｎ）の演算を一括して実行できるようになる。このため、従来の尤度計算方法をそのまま並列実行でき、前記演算式（２）を短時間で実行することが可能となる。
【００４３】
なお、本発明は前記した実施形態に限定されず、前記ピクセルシェーダの同時ベクトル演算数を上げ、複数の音響モデルに対する演算（音響特徴量３８個×音響モデルの状態数５４６個×音響モデルの状態の任意の重ね合わせ数×Ｍ）（Ｍは１より大きい正の整数）の処理を同時に実行することにより、速度向上を図ることができる。例えば、音声を１フレームずつ並列処理する場合には、例えばＭは、その実施形態における音声フレームの最大並列処理実行数となる。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施形態のハード構成を示すブロック図である。
【図２】本発明の一実施形態の機能を示すブロック図である。
【図３】初期設定フェーズの概念を説明する図である。
【図４】並列処理フェーズの概念を説明する図である。
【図５】終了フェーズの概念を説明する図である。
【符号の説明】
【００４５】
１・・・ＣＰＵ、２・・・メモリ、３・・・ＧＰＧＰＵ、４・・・ディスプレイ、５・・・バス、３１・・・ＧＰＵ、３２・・・ＧＰＵメモリ、１１・・・音響特徴量変換部、１２・・・音響尤度並列実行手順登録部、１３・・・音響尤度並列計算制御部、１４・・・音響特徴量保持部、１５・・・音響尤度並列計算部。
【図１】
0004854032.tif 000008
【図２】
0004854032.tif 000009
【図３】
0004854032.tif 000010
【図４】
0004854032.tif 000011
【図５】
0004854032.tif 000012