(57)【要約】【課題】CTCによる音響モデルを用いた音声認識の精度を向上する。【解決手段】音響モデル記憶部２０は、音響特徴ベクトルを入力として、事後確率ベクトルと空シンボル確率とを出力するニューラルネットワークを用いた音響モデルを記憶する。事後確率計算部１２は、学習音声から抽出した音響特徴ベクトルをニューラルネットワークに入力して事後確率ベクトルと空シンボル確率とを得る。文脈保存ベクトル計算部１３は、空シンボル確率に基づいてニューラルネットワークが以前の時刻に出力した事後確率ベクトルもしくはニューラルネットワークが現在の時刻に出力した事後確率ベクトルを選択して保持する文脈保存ベクトルを計算する。文脈保存ベクトル連結部１４は、文脈保存ベクトルが計算されるたびに文脈保存ベクトルをニューラルネットワークに連結する。【選択図】図１
2018081294.tif 000002
【特許請求の範囲】
【請求項１】
音響特徴ベクトルを入力として、上記音響特徴ベクトルに対応する出力シンボルに対する事後確率ベクトルと、上記出力シンボルが空シンボルである確率を表す空シンボル確率と、を出力するニューラルネットワークを用いた音響モデルを記憶する音響モデル記憶部と、
学習音声から抽出した音響特徴ベクトルを上記ニューラルネットワークに入力して上記事後確率ベクトルと上記空シンボル確率とを得る事後確率計算部と、
上記空シンボル確率に基づいて上記ニューラルネットワークが以前の時刻に出力した事後確率ベクトルもしくは上記ニューラルネットワークが現在の時刻に出力した事後確率ベクトルを選択して保持する文脈保存ベクトルを計算する文脈保存ベクトル計算部と、
上記文脈保存ベクトルが計算されるたびに上記文脈保存ベクトルを上記ニューラルネットワークの入力層もしくは隠れ層に連結する文脈保存ベクトル連結部と、
を含む音響モデル学習装置。
【請求項２】
請求項１に記載の音響モデル学習装置であって、
Ktを時刻tの上記文脈保存ベクトルとし、Ct+1を時刻t+1の上記事後確率ベクトルとし、φt+1を時刻t+1の上記空シンボル確率とし、
上記文脈保存ベクトル計算部は、上記空シンボル確率φt+1を二値化し、次式により時刻t+1の上記文脈保存ベクトルKt+1を計算するものである、
【数７】
2018081294.tif 000009
音響モデル学習装置。
【請求項３】
請求項１に記載の音響モデル学習装置であって、
Ktを時刻tの上記文脈保存ベクトルとし、Ct+1を時刻t+1の上記事後確率ベクトルとし、φt+1を時刻t+1の上記空シンボル確率とし、Φt+1を上記空シンボル確率φt+1を縦に並べたベクトルとし、[1, …, 1]Tを1を縦に並べたベクトルとし、
【数８】
2018081294.tif 000010
を要素毎の積とし、
上記文脈保存ベクトル計算部は、次式により時刻t+1の上記文脈保存ベクトルKt+1を計算するものである、
【数９】
2018081294.tif 000011
音響モデル学習装置。
【請求項４】
請求項２または３に記載の音響モデル学習装置であって、
上記文脈保存ベクトル計算部は、N≧2とし、i=1, …, N-1とし、次式により計算した時刻t+1の事後確率ベクトルK(1)t+1, …, K(N-1)t+1を上記文脈保存ベクトルKt+1に連結したものを時刻t+1の文脈保存ベクトルKt+1とする、
【数１０】
2018081294.tif 000012
音響モデル学習装置。
【請求項５】
請求項１から４のいずれかに記載の音響モデル学習装置であって、
上記文脈保存ベクトル計算部は、以前の時刻に計算した上記文脈保存ベクトルと上記ニューラルネットワークが現在の時刻に出力した事後確率ベクトルとの類似度を計算し、その類似度を上記空シンボル確率と統合した保持値を用いて上記文脈保存ベクトルを計算する、
音響モデル学習装置。
【請求項６】
請求項１から５のいずれかに記載の音響モデル学習装置により学習した音響モデルを記憶する音響モデル記憶部と、
上記音響モデルを用いて入力音声の音声認識を行う音声認識部と、
を含む音声認識装置。
【請求項７】
音響モデル記憶部に、音響特徴ベクトルを入力として、上記音響特徴ベクトルに対応する出力シンボルに対する事後確率ベクトルと、上記出力シンボルが空シンボルである確率を表す空シンボル確率と、を出力するニューラルネットワークを用いた音響モデルが記憶されており、
事後確率計算部が、学習音声から抽出した音響特徴ベクトルを上記ニューラルネットワークに入力して上記事後確率ベクトルと上記空シンボル確率とを得、
文脈保存ベクトル計算部が、上記空シンボル確率に基づいて上記ニューラルネットワークが以前の時刻に出力した事後確率ベクトルもしくは上記ニューラルネットワークが現在の時刻に出力した事後確率ベクトルを選択して保持する文脈保存ベクトルを計算し、
文脈保存ベクトル連結部が、上記文脈保存ベクトルが計算されるたびに上記文脈保存ベクトルを上記ニューラルネットワークの入力層もしくは隠れ層に連結する、
音響モデル学習方法。
【請求項８】
音響モデル記憶部に、請求項７に記載の音響モデル学習方法により学習した音響モデルが記憶されており、
音声認識部が、上記音響モデルを用いて入力音声の音声認識を行う、
音声認識方法。
【請求項９】
請求項１から５のいずれかに記載の音響モデル学習装置もしくは請求項６に記載の音声認識装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、音声認識に用いる音響モデルを学習する技術に関する。
【背景技術】
【０００２】
主に音声認識に用いられるConnectionist Temporal Classification（以下、CTC）は、ニューラルネットワーク（NN: Neural Network）を用いた機械学習による系列変換モデルの一種であり、隠れマルコフモデル（HMM: Hidden Markov Model）相当の機能をニューラルネットワークに行わせることができる枠組みである。音声認識において現在一般的に使われているNN-HMMハイブリッド方式では、音をシンボルに変換する音響モデルにおいて、入力系列と出力系列の長さが一対一である制約がある。一方、CTCでは通常の出力シンボルに加えて、空白を表現する空シンボルを導入することにより、系列長の短くなる変換をNN音響モデルに行わせることができるようになっている。そのため、音声認識であれば、単位時間（以下、フレームとも言う。）毎の音響特徴ベクトルの入力に対し、音素や文字、単語等を直接出力系列として、音響モデルや音声認識器を学習することができる（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Yajie Miao, Mohammad Gowayyed, and Florian Metze, "EESEN: End-to-End Speech Recognition using Deep RNN Models and WFST-based Decoding", 2015 IEEE Workshop on Automatic Speech Recognition and Understanding (ASRU), IEEE, 2015.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、CTCを用いた音声認識において出力されるものは、各出力シンボルと空文字の事後確率系列である。しかしながら、この事後確率系列はフレームごとに出力されるため、現在の音に対して様々な表記の可能性が足し合わされて出力される。例えば、英語において文字単位でCTCを学習すると、xという表記に対して/ks/という音が発音されている場合、/k/のフレームに対してはc, g, k, q, x等の確率が高くなり、/s/のフレームに対してはsの確率が高くなることが起きる。このような場合に、正解であるxに対してxsを出力してしまうといったことが起きる。通常、CTCにおいてはリカレント構造を持つニューラルネットワークを用いるため、この現象は時系列構造の暗黙的な学習によりある程度緩和することが可能であるが、それだけでは不十分な場合が多い。また、空シンボル数が長くなるに連れて記憶が困難になることも考えられる。これに対して、明示的に出力シンボルが空シンボルかどうかを区別して情報を記憶するメカニズムを導入することにより、CTCを用いた機械学習タスクにおける精度向上が期待できる。
【０００５】
この発明の目的は、上述のような点に鑑みて、CTCによる音響モデルを用いた音声認識の精度を向上することである。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、この発明の第一の態様の音響モデル学習装置は、音響特徴ベクトルを入力として、音響特徴ベクトルに対応する出力シンボルに対する事後確率ベクトルと、出力シンボルが空シンボルである確率を表す空シンボル確率と、を出力するニューラルネットワークを用いた音響モデルを記憶する音響モデル記憶部と、学習音声から抽出した音響特徴ベクトルをニューラルネットワークに入力して事後確率ベクトルと空シンボル確率とを得る事後確率計算部と、空シンボル確率に基づいてニューラルネットワークが以前の時刻に出力した事後確率ベクトルもしくはニューラルネットワークが現在の時刻に出力した事後確率ベクトルを選択して保持する文脈保存ベクトルを計算する文脈保存ベクトル計算部と、文脈保存ベクトルが計算されるたびに文脈保存ベクトルをニューラルネットワークの入力層もしくは隠れ層に連結する文脈保存ベクトル連結部と、を含む。
【０００７】
この発明の第二の態様の音声認識装置は、第一の態様の音響モデル学習装置により学習した音響モデルを記憶する音響モデル記憶部と、音響モデルを用いて入力音声の音声認識を行う音声認識部と、を含む。
【発明の効果】
【０００８】
この発明では、CTCを用いた音声認識の音響モデル学習において、CTCが出力したシンボルが空シンボルである可能性が低いときには、出力シンボルに関する情報を記憶し、空シンボルである可能性が高いときには、CTCが最後に出力した空シンボル以外のシンボルに関する情報を記憶する文脈保存ベクトルを導入する。これにより、特に時間的に間隔を置いた複数の入力特徴ベクトルが１つの出力結果になるようなケースにおいて、複数のシンボルを出力する誤りを減らすことができる。したがって、CTCによる音響モデルを用いた音声認識の精度が向上する。
【図面の簡単な説明】
【０００９】
【図１】図１は、音響モデル学習装置の機能構成を例示する図である。
【図２】図２は、音声認識装置の機能構成を例示する図である。
【図３】図３は、文脈保存ベクトルの計算方法を例示する図である。
【図４】図４は、マルコフ性を表す行列の獲得方法を例示する図である。
【図５】図５は、保持値ベクトルの計算方法を例示する図である。
【発明を実施するための形態】
【００１０】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１１】
実施形態の音声認識システムは、例えば、音響モデル学習装置と音声認識装置とを含む。音響モデル学習装置は、学習音声と各学習音声に関するテキスト情報（例えば、文字、音素、HMM状態等、音声の変換先のシンボル情報）とを含む学習データを用いて、学習音声から生成された音響特徴ベクトルとともに音響特徴ベクトルの変換先の正解系列としてテキスト情報を入力し、このペアを用いてCTCによる音響モデルを学習する。音声認識装置は、音響モデル学習装置により学習した音響モデルを用いて、入力音声の音声認識を行う。音響モデル学習装置は、図１に示すように、学習データ記憶部１０、文脈保存ベクトル生成部１１、事後確率計算部１２、文脈保存ベクトル計算部１３、文脈保存ベクトル連結部１４、および音響モデル記憶部２０を含む。この音響モデル学習装置が後述の各ステップの処理を行うことにより実施形態の音響モデル学習方法が実現される。音声認識装置は、図２に示すように、音響モデル記憶部２０、言語モデル記憶部２１、および音声認識部２２を含む。この音声認識装置が後述の各ステップの処理を行うことにより実施形態の音声認識方法が実現される。
【００１２】
音響モデル学習装置および音声認識装置は、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知または専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。音響モデル学習装置および音声認識装置は、例えば、中央演算処理装置の制御のもとで各処理を実行する。音響モデル学習装置および音声認識装置に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。また、音響モデル学習装置および音声認識装置の各処理部の少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。音響モデル学習装置および音声認識装置が備える各記憶部は、例えば、RAM（Random Access Memory）などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ（Flash Memory）のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。音響モデル学習装置および音声認識装置が備える各記憶部は、それぞれ論理的に分割されていればよく、一つの物理的な記憶装置に記憶されていてもよい。
【００１３】
音響モデル学習装置の学習データ記憶部１０には、音響モデルの学習に用いる学習データが記憶されている。学習データは、学習音声と各学習音声の内容に関するテキスト情報（例えば、HMM状態、音素、文字、単語等）とを含む。学習データは手動で収集してもよいし、公知の学習データ生成技術を用いて自動的に生成してもよい。学習データは予め十分な量を用意して学習データ記憶部１０に記憶しておく。
【００１４】
以下、実施形態の音響モデル学習装置が実行する音響モデル学習方法を説明する。
【００１５】
音響モデル学習装置の音響モデル記憶部２０には、CTCによる音響モデルが記憶されている。初期状態では従来技術のCTCによる音響モデルを用意して記憶しておけばよい。
【００１６】
音響モデル学習装置の文脈保存ベクトル生成部１１は、文脈保存ベクトルK0=[k0,1, k0,2, k0,3, k0,4, …]Tを生成する。ここで、[…]Tはベクトルの転置を表す。文脈保存ベクトルK0の各次元は任意の値（例えば、0や1）に初期化する。文脈保存ベクトル生成部１１は入力なしに動作することができるが、初期化に用いる値（例えば、0や1）を入力としてもよい。生成した文脈保存ベクトルK0は、音響モデル記憶部２０に記憶されている音響モデルにおけるCTCニューラルネットワークの入力層もしくは隠れ層の任意の位置に連結する。連結とは、文脈保存ベクトルの情報を用いてCTCニューラルネットワークのパラメータに影響を与えるようにすることである。例えば、元々のCTCニューラルネットワークの隠れ層の前または後ろに文脈保存ベクトルを繋げ、隠れ層のベクトルの長さと文脈保存ベクトルの長さの和の長さであるベクトルを新規に生成する。または、個々の文脈保存ベクトルを隠れ層や出力層の大きさに変換する行列を別に用意し、行列による変換の結果を元々のCTCニューラルネットワークの出力層のベクトルと加算する。
【００１７】
音響モデル学習装置の事後確率計算部１２は、学習データ記憶部１０に記憶されている学習音声から抽出した時刻t+1（t≧0）における音響特徴ベクトルXt+1=[xt+1,1, xt+1,2, xt+1,3, xt+1,4, …]Tと、前の時刻tにおける文脈保存ベクトルKtとを、音響モデル記憶部２０に記憶されている音響モデルのCTCニューラルネットワークへ入力し、出力シンボルに対する事後確率ベクトルCt+1=[ct+1,1, ct+1,2, ct+1,3, ct+1,4, …]T（以下、出力事後確率ベクトルと呼ぶ。）と、出力シンボルが空シンボルである確率を表す空シンボル確率φt+1とを得る。出力事後確率ベクトルCt+1と正解系列とは、CTCニューラルネットワークの誤差関数へ入力され、CTCニューラルネットワークのパラメータの更新に使用される。出力事後確率ベクトルCt+1および空シンボル確率φt+1は文脈保存ベクトル計算部１３へ送られる。
【００１８】
音響モデル学習装置の文脈保存ベクトル計算部１３は、事後確率計算部１２から出力事後確率ベクトルCt+1および空シンボル確率φt+1を受け取り、空シンボル確率φt+1に基づいて一つ前の時刻tにおける文脈保存ベクトルKt=[kt,1, kt,2, kt,3, kt,4, …]Tを更新して、現在の時刻t+1における文脈保存ベクトルKt+1=[kt+1,1, kt+1,2, kt+1,3, kt+1,4, …]Tを生成する。文脈保存ベクトル計算部１３は、例えば、空シンボル確率φt+1が空シンボルであることを示す場合には、CTCニューラルネットワークが最後に空シンボル以外のシンボルを出力した際の出力事後確率ベクトルを保持し、空シンボル確率φt+1が空シンボルでないことを示す場合には、CTCニューラルネットワークが今回出力した出力事後確率ベクトルCt+1を記録するように、文脈保存ベクトルKt+1を計算する。計算した文脈保存ベクトルKt+1は文脈保存ベクトル連結部１４へ送られる。
【００１９】
文脈保存ベクトルの計算には、例えば、電子回路におけるフリップフロップ回路に類似した更新則を用いる。CTCニューラルネットワークが出力する空シンボル確率φt+1は0から1までの値を取り、1に近いほど空シンボルである可能性が高いことを表す。簡単のため、その両端の場合を考えると、
【００２０】
【数１】
2018081294.tif 000003
【００２１】
のように、空シンボルではない場合（φt+1=0）には現在の時刻t+1における出力事後確率ベクトルCt+1の内容を記録し、空シンボルの場合（φt+1=1）には一つ前の時刻tにおける文脈保存ベクトルKtの内容を保持する。具体的には、出力された空シンボル確率φt+1が所定の閾値以上であればφt+1=1とし、空シンボル確率φt+1が所定の閾値未満であればφt+1=0とする等の手段により空シンボル確率φt+1を二値化し、式（１）のような更新則を用いればよい。また、両端が含まれるように自然に連続的に拡張した更新則として、式（２）を定義して計算してもよい。
【００２２】
【数２】
2018081294.tif 000004
ただし、
【数３】
2018081294.tif 000005
【００２３】
は要素毎の積を表す。[1, …, 1]Tは1を縦に並べたベクトルを表す。Φt+1は空シンボル確率φt+1を出力事後確率ベクトルCt+1の次元数分並べた縦ベクトル、すなわち、Φt+1=[φt+1, …, φt+1]Tである。
【００２４】
式（２）は式（３）のように書き下すことも可能である。
【００２５】
【数４】
2018081294.tif 000006
【００２６】
文脈保存ベクトル計算部１３は、出力シンボルに対する事後確率ベクトルCt+1の代わりに、図３に示す入力層、第一隠れ層、最終隠れ層等の、ニューラルネットワークの隠れ層等の他の内部パラメータや、入力された音響特徴ベクトルXt+1を用いてもよい。また、文脈保存ベクトル計算部１３は、公知の次元削減手段を用いて文脈保存ベクトルKt+1を低次元化して出力してもよいし、平均化や正規化、離散化等の予め固定された関数による変換を行った後に出力してもよい。
【００２７】
音響モデル学習装置の文脈保存ベクトル連結部１４は、文脈保存ベクトル計算部１３から文脈保存ベクトルKt+1を受け取り、音響モデル記憶部２０に記憶されているCTCニューラルネットワークの入力層または隠れ層の任意の位置に対して文脈保存ベクトルKt+1を連結する。文脈保存ベクトルの連結は、各時刻に更新された文脈保存ベクトルを受け取るたびに行う。連結する位置は、文脈保存ベクトル生成部１１が初期状態の文脈保存ベクトルK0を連結した位置でもよいし、その他の任意の位置でもよい。一般的には、各時刻に文脈保存ベクトルを連結する位置は同一とする。すなわち、CTCニューラルネットワークに追加した文脈保存ベクトルK0を、文脈保存ベクトルKt+1を計算するたびに更新する。
【００２８】
以下、実施形態の音声認識装置が実行する音声認識方法を説明する。
【００２９】
音声認識装置の音響モデル記憶部２０には、音響モデル学習装置により学習したCTCによる音響モデルが記憶されている。
【００３０】
音声認識装置の言語モデル記憶部２１には、音声認識に用いる言語モデルが記憶されている。言語モデルの種類は、音声認識部２２が音声認識を行う際に利用可能なものであればどのようなものであってもよい。
【００３１】
音声認識装置の音声認識部２２は、音響モデル記憶部２０に記憶された音響モデルと言語モデル記憶部２１に記憶された言語モデルとを用いて、入力音声を音声認識し、その音声認識結果を出力する。音声認識部２２は、CTCによる音響モデル単体を用いて音声認識を行う音声認識器でもよいし、CTCによる音響モデルを重み付き有限状態トランスデューサ（WFST: Weighted Finite-State Transducer）と組み合わせた音声認識器であってもよい。
【００３２】
上述の実施形態では、音響モデル学習装置と音声認識装置とを別々の装置として構成した音声認識システムを説明したが、音響モデル学習装置と音声認識装置とが備える機能をすべて備えた一台の音声認識装置として構成してもよい。すなわち、学習データ記憶部１０、文脈保存ベクトル生成部１１、事後確率計算部１２、文脈保存ベクトル計算部１３、文脈保存ベクトル連結部１４、音響モデル記憶部２０、言語モデル記憶部２１、および音声認識部２２を含む音声認識装置を構成することも可能である。
【００３３】
［変形例］
文脈保存ベクトルの計算では、過去の１シンボルの分布についての情報だけを保存する更新則を用いる例を説明したが、複数シンボルの分布についての情報を保存するように構成することも可能である。例えば、３シンボルの分布についての情報を保存する場合であれば、文脈保存ベクトル計算部１３は、式（４）の計算により、文脈保存ベクトルKt=[kt,1, kt,2, kt,3, kt,4, …]Tと同様の事後確率ベクトルLt+1=[lt+1,1, lt+1,2, lt+1,3, lt+1,4, …]T, Mt+1=[mt+1,1, mt+1,2, mt+1,3, mt+1,4, …]Tを生成し、文脈保存ベクトルKt+1に事後確率ベクトルLt+1, Mt+1を連結したベクトルを文脈保存ベクトルKt+1として扱う。
【数５】
2018081294.tif 000007
４シンボル以上の分布についての情報を保持する場合は、同様にしてシンボル数分の事後確率ベクトルを生成し、文脈保存ベクトルKt+1に連結すればよい。例えば、Nシンボルの分布についての情報を保存する場合、i=1, …, N-1について式（５）を計算して事後確率ベクトルK(1)t+1, …, K(N-1)t+1を生成し、文脈保存ベクトルKt+1に連結する。
【数６】
2018081294.tif 000008
【００３４】
文脈保存ベクトルを連結する際には、図４に示すように、出力シンボル系列のマルコフ性を表す行列を用いた線形変換を適用した後、直接出力層に加算等で統合するようなCTCニューラルネットワークを作成してもよい。出力シンボル系列のマルコフ性を表す行列は、例えば誤差逆伝播法等の一般的なニューラルネットワーク学習法により、学習データから自動的に獲得することができる。
【００３５】
上記のように、行列による線形変換を適用する場合、文脈保存ベクトルが入力される行列を、外部の言語資源等からの情報を反映したような出力シンボル系列のマルコフ性を表す行列としてもよい。この行列は、外部の言語資源等を集計することにより算出したシンボル遷移確率を用いて、外部から行列の値に影響を与える任意の操作（例えば、初期化、上書き、線形補間等）により、外部の言語資源等からの情報を反映するように構成されるものである。
【００３６】
CTCニューラルネットワークでは、出力した複数の同一シンボルを１つにまとめることによって、系列長が短くなる変換を実現している。その際、正解として同じシンボルが２つ以上連続するものがある場合に、それらの間に挟むことのできる無意味なシンボルを追加し、同じシンボルを連続して出力できるようにすることを主目的として空シンボルが導入されている。したがって、学習の途中では、空シンボル以外のシンボルを連続して出力しても、それは１つのシンボルとして扱うことが正しい。例えば、空シンボルを「_」とし、CTCニューラルネットワークが事後確率系列の最大値を取るシンボルとして、「aabbbccccd」を出力した場合は「abcd」が、「aabb_bccccd」を出力した場合は「abbcd」が出力結果ということになる。このような状況下で、「aabb_bcccc」までの出力結果から最後のシンボルを決める状況において、aとbとcとに対応するベクトル情報を覚えることにより、過去の履歴を反映した推論を行えることが期待できる。しかしながら、空シンボルによる制御のみでは、空シンボルが出力されているとき以外の、「aabbbcccc」に関するベクトルの全ての情報を覚えておく必要があるため、無駄が多い。そこで、出力したシンボルに対応するベクトルが、記憶している最後のベクトルと類似しているかどうかによって情報の維持を制御する機構を追加してもよい。
【００３７】
具体的には、図５に示すように、文脈保存ベクトル計算部１３が、文脈保存ベクトルKtと、新たに記憶しようとするベクトル（例えば、現在の出力事後確率ベクトルCt+1）との間のベクトル間類似度st+1を、コサイン距離やKLダイバージェンス等のベクトル間類似度計算手法により計算し、必要に応じて正規化等を行う。その類似度st+1の値と空シンボル確率φt+1を、最大値関数や平均化等の処理で統合し、保持値gt+1とする。その保持値gt+1を出力事後確率ベクトルCt+1の次元数分縦に並べた保持値ベクトルGt+1=[gt+1, …, gt+1]Tを元々の空シンボル確率ベクトルΦt+1の代わりとして用い、文脈保存ベクトルKt+1の計算を行う。上述のように、複数シンボルの分布についての情報を保存する場合には、最後の情報を記憶している文脈保存ベクトルKtに対してベクトル間類似度を計算してもよいし、それ以外のより過去の文脈保存ベクトルを対象としてベクトル間類似度を計算してもよい。
【００３８】
文脈保存ベクトルKt+1として、出力事後確率ベクトルCt+1に加え、空シンボル確率φt+1や入力特徴量ベクトルXt+1等の入出力ベクトルや、その他のニューラルネットワークパラメータ等のモデルパラメータを組み合わせて連結したベクトルを用いてもよい。
【００３９】
出力層から文脈保存ベクトルを計算する処理および文脈保存ベクトルを連結する処理を行列演算等の微分可能な方法で表現し、ニューラルネットワーク学習を適用する際に、その処理に関わる行列に関しても学習を行い、値を変更してもよい。行列の初期値は任意でよく、例えば、上述の実施形態と等価な計算を実現する行列を初期値としてもよいし、乱数を並べた行列としてもよい。また、ベクトル間類似度の計算を行う場合には、その演算についても微分可能な方法で表現し、それに対して同様の学習を実施してもよい。
【００４０】
ベクトルの連結操作として、２つ以上のベクトルを、その次の層の大きさのベクトルに変換する任意の手法を用いてもよい。２つのベクトルを連結する場合での例として、２つのベクトルを並べて、２つのベクトルの長さの和の長さを持つベクトルを作った後、そのベクトルが入力される先の行列の列数をその長さまで拡張した行列との積を取る方法で行ってもよい。また、各々のベクトルに対し、個別に行列を用意し、行列積を実施した後、その結果を加算等で統合してもよい。３つ以上の場合についても同様である。
【００４１】
文脈保存ベクトルを連結する際には、文脈保存ベクトルを直接連結するのではなく、関数による任意の変換を通してから連結してもよい。例えば、文脈保存ベクトルを一度別のニューラルネットワークに入力し、そこから得られる値（例えば、出力値）を連結に用いる等、学習可能なパラメータを持った関数を用いてもよい。また、最大値関数を用いて離散化する等、固定の関数での変換結果を連結してもよい。また、それらの変換結果を文脈保存ベクトルとして保持してもよい。
【００４２】
この発明の音声認識技術では、CTCによる音響モデルに対して、以前の時刻に出力した空シンボル以外のシンボルに関する情報を記憶するための文脈保存ベクトルを用意し、空シンボルである可能性が高いときには文脈保存ベクトルに記憶している情報を保持し、空シンボルでない可能性が高いときには文脈保存ベクトルの情報を更新する機構を追加した。これにより、特に時間的に間隔を置いた複数の入力音響特徴ベクトルが１つの出力結果となるようなケースにおいて複数のシンボルを出力する誤りを減らすことができる。したがって、上述のように構成することにより、この発明の音声認識技術によれば、CTCによる音響モデルを用いた音声認識の精度を向上することができる。
【００４３】
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００４４】
［プログラム、記録媒体］
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００４５】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００４６】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００４７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００４８】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００４９】
１０  学習データ記憶部
１１  文脈保存ベクトル生成部
１２  事後確率計算部
１３  文脈保存ベクトル計算部
１４  文脈保存ベクトル連結部
２０  音響モデル記憶部
２１  言語モデル記憶部
２２  音声認識部
【図１】
2018081294.tif 000013
【図２】
2018081294.tif 000014
【図３】
2018081294.tif 000015
【図４】
2018081294.tif 000016
【図５】
2018081294.tif 000017