トップ :: G 物理学 :: G10 楽器;音響




【発明の名称】 単語列探索装置、音声認識装置及び単語列探索方法並びに記録媒体
【発明者】 【氏名】阿部 芳春

【氏名】丸田 裕三

【氏名】伍井 啓恭

【要約】 【課題】単語列探索に膨大な処理量を要するという課題があった。

【解決手段】入力音声に対応する単語列の探索途中の部分列を表す仮説を格納する複数の仮説格納手段と、これら複数の仮説格納手段に格納される全ての仮説の中から上記入力音声に対する尤度が最大の部分列を表す仮説を選択して、この仮説を基に単語列の探索を行う単語列探索手段とを備えた。
【特許請求の範囲】
【請求項1】 入力音声に対応する単語列の探索途中の部分列を表す仮説を格納する複数の仮説格納手段と、これら複数の仮説格納手段に格納される全ての仮説の中から上記入力音声に対する尤度が最大の部分列を表す仮説を選択して、この仮説を基に単語列の探索を行う単語列探索手段とを備えた単語列探索装置。
【請求項2】 仮説格納手段は、入力音声に対応する複数の基本音節列の個数分設けられ、上記基本音節列に対応する単語列の探索における仮説を格納することを特徴とする請求項1記載の単語列探索装置。
【請求項3】 仮説格納手段は、単語列探索に使用する単語が登録された単語辞書を含んでなる複数の言語モデルの個数分設けられ、上記各言語モデルをそれぞれ使用した単語列探索における仮説を格納することを特徴とする請求項1記載の単語列探索装置。
【請求項4】 仮説格納手段は、標準音節列及びその入力音声に対応する基本音節列に対する尤度からなる複数の差分モデルの個数分設けられ、上記各差分モデルをそれぞれ使用した単語列探索における仮説を格納することを特徴とする請求項1記載の単語列探索装置。
【請求項5】 入力音声に対応する基本音節列、単語列探索に使用する単語が登録された単語辞書を含んでなる言語モデル、及び標準音節列及びその基本音節列に対する尤度からなる差分モデルのうちのいずれかを複数組み有し、仮説格納手段を上記複数組分設けて、上記基本音節列、上記言語モデル及び上記差分モデルの各組み合わせに基づいた単語列探索における仮説を格納することを特徴とする請求項1記載の単語列探索装置。
【請求項6】 仮説格納手段は、仮説の格納・取り出しが自在のスタックとして機能することを特徴とする請求項1から請求項5のうちのいずれか1項記載の単語列探索装置。
【請求項7】 認識対象の音声を入力する音声入力手段と、入力音声に対応する基本音節列を取得する音節列取得手段と、この音節列取得手段が取得した基本音節列に基づいて上記入力音声に対応する単語列を探索する請求項1から請求項6のうちのいずれか1項記載の単語列探索装置とを備えた音声認識装置。
【請求項8】 入力音声に対応する単語列の探索途中の部分列を表す仮説を複数の仮説格納手段にそれぞれ格納する仮説格納ステップと、これら複数の仮説格納手段に格納される全ての仮説の中から上記入力音声に対する尤度が最大の部分列を表す仮説を選択して、この仮説を基に単語列の探索を行う単語列探索ステップとを備えた単語列探索方法。
【請求項9】 入力音声に対応する基本音節列を取得する基本音節列取得ステップを備え、仮説格納ステップにて、上記基本音節列の個数分設けた仮説格納手段に上記基本音節列に対応する単語列の探索における仮説を格納することを特徴とする請求項8記載の単語列探索方法。
【請求項10】 仮説格納ステップにて、仮説格納手段を単語列探索に使用する単語が登録された単語辞書を含んでなる複数の言語モデルの個数分設けて、上記各言語モデルをそれぞれ使用した単語列探索における仮説を格納することを特徴とする請求項8記載の単語列探索方法。
【請求項11】 仮説格納ステップにて、仮説格納手段を標準音節列及びその入力音声に対応する基本音節列に対する尤度からなる複数の差分モデルの個数分設けて、上記各差分モデルをそれぞれ使用した単語列探索における仮説を格納することを特徴とする請求項8記載の単語列探索方法。
【請求項12】 入力音声に対応する基本音節列を取得する基本音節列取得ステップを備え、仮説格納ステップにて、上記基本音節列、単語列探索に使用する単語が登録された単語辞書を含んでなる言語モデル、及び標準音節列及びその基本音節列に対する尤度からなる差分モデルのうちのいずれかを複数組み有し、仮説格納手段を上記複数組分設けて、上記基本音節列、上記言語モデル及び上記差分モデルの各組み合わせに基づいた単語列探索における仮説を格納することを特徴とする請求項8記載の単語列探索方法。
【請求項13】 仮説格納手段は、仮説の格納・取り出しが自在のスタックとして機能することを特徴とする請求項8から請求項12のうちのいずれか1項記載の単語列探索方法。
【請求項14】 入力音声に対応する単語列の探索途中の部分列を表す仮説を複数の仮説格納手段にそれぞれ格納する仮説格納ステップと、これら複数の仮説格納手段に格納される全ての仮説の中から上記入力音声に対する尤度が最大の部分列を表す仮説を選択して、この仮説を基に単語列の探索を行う単語列探索ステップとを実現させるための単語列探索プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】【0001】
【発明の属する技術分野】この発明は連続音声認識に用いる単語列探索装置に係り、特にそれぞれ異なる音節列、言語モデル、及び差分モデルに対してスタックを用意して最大の評価値の仮説を展開することで、これらの探索を効率的に行うことができる単語列探索装置、音声認識装置及び単語列探索方法並びに記録媒体に関するものである。
【0002】
【従来の技術】連続音声認識は音声の書き起しやディクテーションなどに用いられる。従来の連続音声認識方法として、基本単位の認識の誤り傾向を考慮した二段階の探索法がある。具体的に説明すると、一段目は音素HMM(Hidden Markov Model)を連結して基本単位の認識を行い、最適な基本単位の列を求める。二段目は最適な基本単位の列を入力として基本単位の認識の誤り傾向を表す差分モデルと、単語の連鎖しやすさを表す言語モデルを用いて単語列を探索し、尤度が最大となる単語列を認識結果として出力するものである。上記基本単位としては、音素、音節、サブワードが用いられる。以下、音節を基本単位として説明する。
【0003】上記二段階の探索法における認識性能を改善する一つの方法として、基本単位としての音節認識の曖昧さを残す方法がある。これは一段目において複数の音節列の候補を求め、二段目において各音節列候補について単語列探索を行って尤度が最大となる単語列をそれぞれ求め、これら各音節列候補から探索された単語列の中でさらに尤度が最大の単語列を求めて、認識結果の単語列として出力する。この方法では、単語列探索を行う音節列の数分だけ1つのスタックを複数回使用して、各音節列の尤度を計算する。
【0004】また、認識性能を向上させる別の方法として、一段目で最適な音節列を1つ求める一方、二段目ではトピックの異なる複数の言語モデルを適用して各言語モデルについて単語列をそれぞれ探索し、それぞれの尤度を比較して複数の言語モデルにわたって尤度が最大となる単語列を認識結果とするものである。この方法においても、単語列探索を言語モデルの数分だけ1つのスタックを複数回使用して、各言語モデルについての尤度を計算する。
【0005】さらに、認識性能を向上させる上記の他の方法として、一段目で最適な音節列を1つ求める一方、二段目で話者クラスタの異る複数の差分モデルを適用して各差分モデルについて単語列をそれぞれ探索し、それぞれの尤度を比較して複数の差分モデルにわたって尤度が最大となる単語列を認識結果とするものである。この方法も上記と同様に、単語列探索を差分モデルの数分だけ1つのスタックを複数回使用して、各差分モデルについての尤度を計算する。
【0006】図23は、例えば特開2000−99089号公報に開示された従来の音声認識装置の構成(従来例1)を示す図である。図において、20は音節ネットワーク30に従ってオートマトン制御1パスDPアルゴリズムに基づいて特徴ベクトル時系列103に対応する音節列の中で尤度の大きい上位N個の音節列401〜40Nを得る音節列取得手段、30は音節ネットワークであって、基本単位としての音節の接続をネットワーク表現したものであり、各音節間を接続するためのノードと音節を表すアークから構成される。また、この音節のアークは基本隠れマルコフモデル(HMM)の連鎖によって表される。基本HMMとしては、音節内あるいは音節間の調音結合の影響を考慮するため、音素環境依存のHMMを用いている。52は単語列801〜80Nの中から尤度が最大となる単語列を選択して認識結果の単語列80として出力する選択手段である。60は標準音節列と対応する入力音節列及び標準音節列が入力音節列に変換される尤度が記述されている差分モデルで、上記尤度は標準音節列が入力音節列に対応づけられる確率の対数値として求められる。70は単語の文字表記と発音を含む単語辞書及び単語辞書に存在する単語連鎖についての尤度が記憶されている言語モデルである。80は認識結果の単語列、101は認識対象の入力音声、102は入力音声101を分析して特徴ベクトル時系列103に変換する音声分析手段、401〜40Nは音節ネットワーク30に従って特徴ベクトル時系列103から取得される音節列で、501〜50Nは音節列401〜40Nをそれぞれ入力し差分モデル60と言語モデル70とを参照して単語列801〜80Nをそれぞれ探索する単語列探索装置である。
【0007】次に動作について説明する。先ず、音声分析手段102は入力音声101を分析して特徴ベクトル時系列103に変換する。音節列取得手段20はオートマトン制御1パスDPアルゴリズムに基づいて、音声分析手段102に変換された特徴ベクトル時系列103を入力し音節ネットワーク30に従う経路の中で、尤度の高い上位N個の最適な音節列401〜40Nを出力する。
【0008】図24は図23中の単語列探索装置による単語列探索動作を示すフロー図であり、以下の説明はこのフローに沿って行う。単語列探索装置501は音節列取得手段20から音節列401を入力すると、差分モデル60と言語モデル70とを参照して音節列401について尤度が最大となる単語列の探索を行い(ステップST100)、最大の尤度を有する単語列801をその尤度とともに選択手段52に出力する(ステップST101)。
【0009】単語列探索装置502は音節列取得手段20から音節列402を入力すると、差分モデル60と言語モデル70とを参照して音節列402について尤度が最大となる単語列の探索を行い(ステップST102)、最大の尤度を有する単語列802をその尤度とともに選択手段52に出力する(ステップST103)。
【0010】上記の動作を順次行ってゆき、最後に、単語列探索装置50Nが音節列取得手段20から音節列40Nを入力すると、差分モデル60と言語モデル70とを参照して音節列40Nについて尤度が最大となる単語列の探索を行い(ステップST104)、最大の尤度を有する単語列80Nをその尤度とともに選択手段52に出力する(ステップST105)。
【0011】選択手段52は上記各ステップで取得した単語列801〜80Nの尤度を比較して、最大の尤度を有する単語列80を認識結果として出力する(ステップST106)。
【0012】また、上述した単語列探索装置501〜50Nにおける単語列の探索は、スタックデコーダに基づいて行われる。このスタックデコーダのアルゴリズムは、空の単語列を初期仮説として評価値が最大となる仮説をスタックから取り出して、仮説の展開を進めるアルゴリズムである。ここで、評価値とは仮説の単語列の尤度とその単語列に対応する音節列の尤度、及び探索を制御するヒューリスティクス関数から計算される。さらに、単語列の尤度は言語モデルに基づいて計算される。加えて、音節列の尤度とは単語列の標準的発音に対応する標準的な音節列が入力の音節列に認識される尤度であり、差分モデルから計算される。上記ヒューリスティクス関数としては入力音節列の終端時刻で0となる関数が用いられる。
【0013】ここで、単語列探索装置501〜50Nについて詳細に説明する。図25は図23中の単語列探索装置の内部構成を示す図である。図において、25aは入力した音節列401〜40Nを一時記憶する制御手段500が実行する単語列探索プログラムにおける音節列一時記憶機能で、制御手段500内の不図示のメモリを使用して実現される。25bは単語列探索プログラムにおけるスタックK25の内容を初期化する制御手段500が実行する単語列探索プログラムのスタック初期化機能で、25cは制御手段500が実行する単語列探索プログラムの初期仮説を生成する初期仮説生成機能である。ここで、仮説とは入力音節列401〜40Nの始端から途中までをカバーする単語列候補をいい、属性として音節列401〜40Nの始端から途中までにおける単語列、終端時刻、及び評価値を有するものとする。また、空の単語列からなるものを初期の仮説とする。さらに、終端時刻とは、その仮説がカバーしている音節列の長さであり、入力音節列の長さをTとすると、終端時刻は0〜Tの範囲の整数値である。以降では、説明の簡単のために入力音節列401〜40Nの長さを全てTとする。25dは制御手段500が実行する単語列探索プログラムにおけるスタックK25に格納された仮説のうち評価値が最大の仮説を選択して取り出す仮説選択機能で、25eは制御手段500が実行する単語列探索プログラムによる単語列探索を終了させる終了処理機能である。
【0014】25fは制御手段500が実行する単語列探索プログラムにおける仮説展開機能で、スコア計算機能25gで算出した評価値や言語モデル70から取り出した単語Wなどを用いて、仮説選択機能25dで取り出した仮説に対して新たな仮説を展開する。25gは言語モデル70から取り出した仮説の単語列に後続する単語の尤度や入力音節列が後続する単語の標準音節列として認識される尤度を算出し、これらから上記仮説の単語列とこれに後続する単語からなる単語列の評価値を算出するスコア計算機能、25hは仮説展開機能25fで求めた新たな仮説をスタックK25に格納する仮説格納機能で、25iは認識結果の単語列801〜80Nを一時記憶する単語列一時記憶機能であり、制御手段500内の不図示のメモリを使用して実現される。25jは差分モデル60を一時記憶する差分モデル一時記憶機能で、制御手段500内の不図示のメモリを使用して実現される。25kは言語モデル70を一時記憶する言語モデル一時記憶機能で、制御手段500内の不図示のメモリを使用して実現される。K25は制御手段500が実行する単語列探索プログラムにおけるスタックで、不図示のメモリから構成され、N個の入力音節列401〜40Nの各単語列探索における仮説が出し入れされる。500は単語列探索装置501〜50N内の制御手段で、この制御手段500が実行する単語列探索プログラムによって単語列探索が制御される。また、制御手段500としては単語列探索プログラムを実行するコンピュータ装置などが考えられる。なお、図23と同一構成要素には同一符号を付して重複する説明を省略する。
【0015】次に動作について説明する。図26は図23中の単語列探索装置による単語列探索動作を示すフロー図であり、このフロー図に沿って動作の説明を行う。なお、ここでは音節列401を単語列探索装置501が入力した場合について説明する。先ず、単語列探索装置501が音節列401を入力すると、音節列一時記憶機能25aにより不図示のメモリに一時記憶される。制御手段500は音節列401が音節列一時記憶機能25aによって一時記憶されると、スタック初期化機能25bによりスタックK25の内容を初期化する(ステップST26−1)。
【0016】スタックK25が初期化されると、初期仮説生成機能25cによって空の単語列からなる初期仮説が作成される。初期仮説が生成されると、仮説格納機能25hによって初期仮説がスタックK25に格納される(ステップST26−2)。
【0017】次に、仮説選択機能25dによってスタックK25から最大の評価値の仮説が取り出される(ステップST26−3)。ここでは、ステップST26−2で生成された初期仮説は単語列がなく評価値の選択の余地がないので、直ちに選択されてスタックK25から取り出される。
【0018】ステップST26−3で取り出された仮説は、仮説展開機能25fによって仮説の終端時刻Thと音節列401の終端時刻Tとの比較が行われる(ステップST26−4)。ここで、仮説展開機能25fによって、仮説の終端時刻Thが入力音節列の終端時刻Tに到達していると判断されると、ステップST26−10に進み、展開した仮説の単語列は入力音節列401の認識結果の単語列として単語列一時記憶機能25iによって不図示のメモリに記憶される。この単語列一時記憶機能25iによって認識結果の単語列が記憶されると、終了処理機能25eにより認識処理が終了する。
【0019】一方、仮説展開機能25fによって仮説の終端時刻Thが音節列401の終端時刻Tに到達していないと判断されると、ステップST26−5に進む。ステップST26−5では、仮説展開機能25fによって上記仮説の単語列Whに後続する単語が言語モデル70の単語辞書から1つ取り出される。ここでは、上記後続する単語をWとする。以下、ステップST26−6〜ステップST26−9の処理を言語モデル70の単語辞書の任意の単語Wについて行う。
【0020】ステップST26−5で言語モデル70の単語辞書から単語Wが取り出されると、言語モデル一時記憶機能25kによって不図示のメモリに一時記憶する。この言語モデル一時記憶機能25kで一時記憶された内容を適宜取り出して、スコア計算機能25gによって仮説の単語列Whと取り出した単語Wとの間で言語モデルの尤度logP(W|Wh)が計算される(ステップST26−6)。
【0021】続いて、スコア計算機能25gによって時刻Th+1からTまでの終端時刻T1について時刻をカウントし(ステップST26−7)、ステップST26−8からステップST26−9までの処理が実行される。具体的には、ステップST26−8において、差分モデル60から単語Wに対応する標準音節列を取り出し、差分モデル一時記憶機能25jによって不図示のメモリに一時記憶する。この差分モデル一時記憶機能25jで記憶された内容を適宜取り出して、スコア計算機能25gによって以下に示す演算が行われる。先ず、入力音節列401の時刻Th+1から時刻T1までの音節の列を下記式で表す。
X=[X(Th+1),X(Th+2),・・・,X(T1)]・・・(1)
但し、T1はTh+1〜Tの範囲の整数である。また、X(t)は、入力音節列の第t番目の音節である。また、単語Wの標準音節列を下記式で表す。
Y=[Y(1),Y(2),・・・,Y(J(W))] ・・・(2)
但し、Y(t)は標準音節列の第t番目の音節であり、J(W)は単語Wの標準音節列長である。
【0022】これら式(1)、式(2)を用いて、スコア計算機能25gによって差分モデル60が参照され、標準音節列Yが音節列Xとして認識される差分モデル60の尤度logP(X|Y)が計算される。ここで、上述した差分モデル60の尤度の計算はDPマッチングに基づいて行われる。
【0023】ステップST26−8にて差分モデル60の尤度が算出されると、仮説展開機能25fによって、単語列Whと単語Wとが連結した単語列、終端時刻をT1、及び、差分モデルの尤度と言語モデルの尤度とから求めた評価値g(T1)=logP(X|Y)+logP(W|Wh)+f(T1)を有する新たな仮説が生成される。この新たな仮説は、仮説格納機能25hによってスタックK25に格納される(ステップST26−9)。ここで、f(t)はヒューリスティクス関数であり、具体的にはf(t)=−(T−t)である。
【0024】ステップST26−8からステップST26−9までの処理は、ステップST26−4にて仮説の終端時刻Thが入力音節列401の終端時刻Tに到達したと仮説展開機能25fによって判断され、ステップST26−10にて単語列801が出力されるまで繰り返される。
【0025】次に上記以外の従来の音声認識装置を示す。図27は従来の音声認識装置の他構成(従来例2)を示す図である。図において、20aは音節列取得手段であって、音節ネットワーク30に従ってオートマトン制御1パスDPアルゴリズムに基づいて特徴ベクトル時系列103に対応する音節列の中で尤度の最も大きい音節列40を得る。40は音節列取得手段20aが取得した特徴ベクトル時系列103に対応する音節列の中で最も尤度の大きい音節列で、各単語列探索装置501〜50Nにそれぞれ入力されて単語列探索が行われる。701〜70Nは単語の文字表記と発音を含む単語辞書及び単語辞書に存在する単語連鎖についての尤度が記憶されている言語モデルで、各単語列探索装置501〜50Nによる単語列探索の際にそれぞれにトピックの異なる言語モデルを出力する。なお、図23と同一構成要素には同一符号を付して重複する説明を省略する。
【0026】次に動作について説明する。先ず、音声分析手段102は入力音声101を分析して特徴ベクトル時系列103に変換する。音節列取得手段20aは音声分析手段102によって入力音声101から変換された特徴ベクトル時系列103を入力し音節ネットワーク30に従う経路の中で、オートマトン制御1パスDPアルゴリズムに基づいて、尤度の最も大きい最適な音節列40を出力する。
【0027】図28は図27中の単語列探索装置による単語列探索動作を示すフロー図であり、以下の説明はこのフローに沿って行う。単語列探索装置501は音節列取得手段20aから音節列40を入力すると、差分モデル60の差分モデルと言語モデル701の言語モデルとを参照して音節列40について尤度が最大となる単語列の探索を行い(ステップST200)、最大の尤度を有する単語列801をその尤度とともに選択手段52に出力する(ステップST201)。
【0028】単語列探索装置502は音節列取得手段20aから音節列40を入力すると、差分モデル60の差分モデルと言語モデル702の言語モデル701とはトピックの異なる言語モデルとを参照して音節列40について尤度が最大となる単語列の探索を行い(ステップST202)、最大の尤度を有する単語列802をその尤度とともに選択手段52に出力する(ステップST203)。
【0029】上記の動作を順次行ってゆき、単語列探索装置50Nが音節列取得手段20aから音節列40を入力すると、差分モデル60の差分モデルと言語モデル70Nの言語モデル701,702,・・・とはトピックの異なる言語モデルとを参照して音節列40について尤度が最大となる単語列の探索を行い(ステップST204)、最大の尤度を有する単語列80Nをその尤度とともに選択手段52に出力する(ステップST205)。
【0030】選択手段52は上記各ステップで取得した単語列801〜80Nの尤度を比較して、最大の尤度を有する単語列80を認識結果として出力する(ステップST206)。
【0031】さらに、上記以外の従来の音声認識装置を示す。図29は従来の音声認識装置の他構成(従来例3)を示す図である。図において、601〜60Nは標準音節列と対応する入力音節列及び標準音節列が入力音節列に変換される尤度が記述されている差分モデルで、各単語列探索装置501〜50Nによる単語列探索の際に話者クラスタが異なる差分モデルをそれぞれに出力する。なお、図23及び図27と同一構成要素には同一符号を付して重複する説明を省略する。
【0032】次に動作について説明する。先ず、音声分析手段102は入力音声101を分析して特徴ベクトル時系列103に変換する。音節列取得手段20aは音声分析手段102によって入力音声101から変換された特徴ベクトル時系列103を入力し音節ネットワーク30に従う経路の中で、オートマトン制御1パスDPアルゴリズムに基づいて、尤度の最も大きい最適な音節列40を出力する。ここまでは上記構成と同様である。
【0033】図30は図29中の単語列探索装置による単語列探索動作を示すフロー図であり、以下の説明はこのフローに沿って行う。単語列探索装置501は音節列取得手段20aから音節列40を入力すると、差分モデル601の差分モデルと言語モデル70の言語モデルとを参照して音節列40について尤度が最大となる単語列の探索を行い(ステップST300)、最大の尤度を有する単語列801をその尤度とともに選択手段52に出力する(ステップST301)。
【0034】単語列探索装置502は音節列取得手段20aから音節列40を入力すると、差分モデル602の差分モデル601とは話者クラスタが異なる差分モデルと言語モデル70の言語モデルとを参照して音節列40について尤度が最大となる単語列の探索を行い(ステップST302)、最大の尤度を有する単語列802をその尤度とともに選択手段52に出力する(ステップST303)。
【0035】上記の動作を順次行ってゆき、単語列探索装置50Nが音節列取得手段20aから音節列40を入力すると、差分モデル60Nの差分モデル601,602,・・・とは話者クラスタが異なる差分モデルと言語モデル70の言語モデルとを参照して音節列40について尤度が最大となる単語列の探索を行い(ステップST304)、最大の尤度を有する単語列80Nをその尤度とともに選択手段52に出力する(ステップST305)。
【0036】選択手段52は上記各ステップで取得した単語列801〜80Nの尤度を比較して、最大の尤度を有する単語列80を認識結果として出力する(ステップST306)。
【0037】
【発明が解決しようとする課題】従来の単語列探索装置、音声認識装置及び単語列探索方法は以上のように構成されているので、単語列探索に膨大な処理量を要するという課題があった。
【0038】上記課題を具体的に説明すると、上述した従来例1では、複数の基本単位列(音節列401〜40N)のそれぞれに対して単語列探索を行うため、基本単位列数倍の処理量を要する。
【0039】また、従来例2では、1つの基本単位列(音節列40)に対して言語モデル701〜70Nからの複数の言語モデルによる単語列探索を行うため、言語モデル数倍の処理量を要していた。
【0040】さらに、従来例3においても、同様に1つの基本単位列(音節列40)に対して差分モデル601〜60Nからの複数の差分モデルによる単語列探索を行うため、差分モデル数倍の処理量を要していた。
【0041】加えて、単語列探索の入力の基本単位列、あるいは、単語列探索で参照する言語モデル、差分モデルの少なくともいずれかが複数存在するときに、これらの組合わせ数倍の処理量を要していた。
【0042】この発明は上記のような課題を解決するためになされたもので、それぞれ異なる音節列、言語モデル、及び差分モデルに対して、スタックを用意して最大の評価値の仮説を展開することで、単語列探索を効率的に行うことができる単語列探索装置を得ることを目的とする。
【0043】また、この発明は上記単語列探索装置を用いることで、単語列探索を効率的に行い、効率的に入力音声の認識をすることができる音声認識装置を得ることを目的とする。
【0044】さらに、この発明はそれぞれ異なる音節列、言語モデル、及び差分モデルに対して、スタックを用意して最大の評価値の仮説を展開することで、処理量を低減することができる単語列探索法を得ることを目的とする。
【0045】
【課題を解決するための手段】この発明に係る単語列探索装置は、入力音声に対応する単語列の探索途中の部分列を表す仮説を格納する複数の仮説格納手段と、これら複数の仮説格納手段に格納される全ての仮説の中から上記入力音声に対する尤度が最大の部分列を表す仮説を選択して、この仮説を基に単語列の探索を行う単語列探索手段とを備えるものである。
【0046】この発明に係る単語列探索装置は、仮説格納手段が入力音声に対応する複数の基本音節列の個数分設けられ、基本音節列に対応する単語列の探索における仮説を格納するものである。
【0047】この発明に係る単語列探索装置は、仮説格納手段が単語列探索に使用する単語が登録された単語辞書を含んでなる複数の言語モデルの個数分設けられ、各言語モデルをそれぞれ使用した単語列探索における仮説を格納するものである。
【0048】この発明に係る単語列探索装置は、仮説格納手段が標準音節列及びその入力音声に対応する基本音節列に対する尤度からなる複数の差分モデルの個数分設けられ、各差分モデルをそれぞれ使用した単語列探索における仮説を格納するものである。
【0049】この発明に係る単語列探索装置は、入力音声に対応する基本音節列、単語列探索に使用する単語が登録された単語辞書を含んでなる言語モデル、及び標準音節列及びその基本音節列に対する尤度からなる差分モデルのうちのいずれかを複数組み有し、仮説格納手段を上記複数組分設けて、基本音節列、言語モデル及び差分モデルの各組み合わせに基づいた単語列探索における仮説を格納するものである。
【0050】この発明に係る単語列探索装置は、仮説格納手段が、仮説の格納・取り出しが自在のスタックとして機能するものである。
【0051】この発明に係る音声認識装置は、認識対象の音声を入力する音声入力手段と、入力音声に対応する基本音節列を取得する音節列取得手段と、この音節列取得手段が取得した基本音節列に基づいて入力音声に対応する単語列を探索する上記単語列探索装置とを備えるものである。
【0052】この発明に係る単語列探索方法は、入力音声に対応する単語列の探索途中の部分列を表す仮説を複数の仮説格納手段にそれぞれ格納する仮説格納ステップと、これら複数の仮説格納手段に格納される全ての仮説の中から入力音声に対する尤度が最大の部分列を表す仮説を選択して、この仮説を基に単語列の探索を行う単語列探索ステップとを備えるものである。
【0053】この発明に係る単語列探索方法は、入力音声に対応する基本音節列を取得する基本音節列取得ステップを備え、仮説格納ステップにて、基本音節列の個数分設けた仮説格納手段に基本音節列に対応する単語列の探索における仮説を格納するものである。
【0054】この発明に係る単語列探索方法は、仮説格納ステップにて、仮説格納手段を単語列探索に使用する単語が登録された単語辞書を含んでなる複数の言語モデルの個数分設けて、各言語モデルをそれぞれ使用した単語列探索における仮説を格納するものである。
【0055】この発明に係る単語列探索方法は、仮説格納ステップにて、仮説格納手段を標準音節列及びその入力音声に対応する基本音節列に対する尤度からなる複数の差分モデルの個数分設けて、各差分モデルをそれぞれ使用した単語列探索における仮説を格納するものである。
【0056】この発明に係る単語列探索方法は、入力音声に対応する基本音節列を取得する基本音節列取得ステップを備え、仮説格納ステップにて、基本音節列、単語列探索に使用する単語が登録された単語辞書を含んでなる言語モデル、及び標準音節列及びその基本音節列に対する尤度からなる差分モデルのうちのいずれかを複数組み有し、仮説格納手段を複数組分設けて、基本音節列、言語モデル及び差分モデルの各組み合わせに基づいた単語列探索における仮説を格納するものである。
【0057】この発明に係る単語列探索方法は、仮説格納手段が、仮説の格納・取り出しが自在のスタックとして機能するものである。
【0058】この発明に係る記録媒体は、入力音声に対応する単語列の探索途中の部分列を表す仮説を複数の仮説格納手段にそれぞれ格納する仮説格納ステップと、これら複数の仮説格納手段に格納される全ての仮説の中から入力音声に対する尤度が最大の部分列を表す仮説を選択して、この仮説を基に単語列の探索を行う単語列探索ステップとをコンピュータに実現させる単語列探索プログラムを記録するものである。
【0059】
【発明の実施の形態】以下、この発明の実施の一形態を説明する。
実施の形態1.図1はこの発明の実施の形態1による音声認識装置の構成を示す図である。図において、2は入力音声10に対応する音節列41〜4Nを得る音節列取得手段で、音声分析手段11からの特徴ベクトル時系列12を入力し、音節ネットワーク3に従って、オートマトン制御1パスDPアルゴリズムに基づいて特徴ベクトル時系列12に対応する音節列の中で尤度の大きい上位N個の音節列41〜4Nを得る。3は音節ネットワークであって、基本単位列としての音節列を構成する音素の接続をネットワーク表現するもので、音素を接続するためのノードと音節を表すアークとから構成される。上記音節のアークは基本HMMの連鎖によって表される。また、音素間の調音結合の影響を考慮して、基本HMMとして音素環境依存のleft−to−right型3状態音素HMMを用いる。5は入力した音節列41〜4Nに対して差分モデル6と言語モデル7とを参照して単語列8を探索する単語列探索装置である。
【0060】6は差分モデルで、標準音節列と対応する音節列41〜4N及び標準音節列が音節列41〜4Nとして認識される尤度が記述されている。この尤度は標準音節列が音節列41〜4Nに対応づけられる確率の対数値としてある。7は言語モデルで、単語検索に用いられる単語の文字表記と標準的な発音を表す標準音節列との組みからなる単語辞書及びこの単語辞書に記述された単語が先行2単語を条件として出現する尤度値、即ち単語トライグラムが記憶されている。この単語トライグラムとは、上記単語辞書にある単語W1,W2,W3に対して尤度logP(W3|W1W2)の推定値を与える言語モデルである。8は入力音声10の認識結果として出力される単語列、10は認識対象である入力音声で、11は入力音声10を分析して特徴ベクトル時系列12に変換する音声分析手段である。41〜4Nは音節列取得手段2が取得した入力音声10に対応する音節列(基本音節列)である。
【0061】図2は実施の形態1による音声認識装置で使用されるデータ例を示す図であり、(a)は入力音声、(b)は(a)の入力音声に対応する音節列、(c)は差分モデル、(d)言語モデルに含まれる単語辞書である。図2(a)に示した入力音声「稲を刈る」に対して、音声分析手段11及び音節列取得手段2を介して得られる音節列の内容例が図2(b)である。また、図2(b)に示した音節列に対応する差分モデル6の内容例が図2(c)に示すものであり、標準音節列と標準音節列が図2(b)の音節列として認識される尤度とが記述されている。さらに、図2(b)に示した音節列に対応する単語辞書の内容例が図2(d)に示すものであり、入力音声「稲を刈る」に関連する単語の文字表記とその標準的な発音を表す標準音節列との組みからなる。
【0062】図3は図1中の単語列探索装置の構成を示す図である。図において、3a−1〜3a−Nは入力した音節列41〜4Nをそれぞれ一時記憶する制御手段500aが実行する単語列探索プログラムにおける音節列一時記憶機能で、制御手段500a内の不図示のメモリを使用して実現される。3bは単語列探索プログラムにおけるスタックK501〜K50Nの内容を初期化する単語列探索プログラムのスタック初期化機能で、3cは単語列探索プログラムにおける初期仮説を生成する初期仮説生成機能である。ここで、仮説とは入力音節列41〜4Nの始端から途中までをカバーする単語列候補をいい、属性として各音節列41〜4Nの始端から途中までに対応する単語列、終端時刻、及び評価値を有するものとする。また、空の単語列からなるものを初期の仮説とする。さらに、終端時刻とは、その仮説がカバーしている音節列の長さであり、入力音節列の長さをTとすると、終端時刻は0〜Tの範囲の整数値である。以降では説明の簡単のために入力音節列41〜4Nの長さを全てTとする。3dは単語列探索プログラムにおけるスタックK501〜K50Nに格納された仮説のうち評価値が最大の仮説を選択して取り出す仮説選択機能で、3eは単語列探索プログラムにおける単語列探索を終了させる終了処理機能である。
【0063】3fは制御手段500aが実行する単語列探索プログラムにおける仮説展開機能で、スコア計算機能3gで算出した評価値や言語モデル7から取り出した単語Wなどを用いて、仮説選択機能3dで取り出した仮説に対して新たな仮説を展開する。3gは言語モデル7から取り出した仮説の単語列に後続する単語の尤度や入力音節列が後続する単語の標準音節列として認識される尤度を算出し、これらから上記仮説の単語列とこれに後続する単語からなる単語列の評価値を算出するスコア計算機能、3hは仮説展開機能3fで求めた新たな仮説を、それを取り出したスタックK501〜K50Nのいずれかに格納する仮説格納機能で、3iは認識結果の単語列8を一時記憶する単語列一時記憶機能であり、制御手段500a内の不図示のメモリを使用して実現される。3jは差分モデル6を一時記憶する差分モデル一時記憶機能で、制御手段500a内の不図示のメモリを使用して実現される。3kは言語モデル7を一時記憶する言語モデル一時記憶機能で、制御手段500a内の不図示のメモリを使用して実現される。K501〜K50Nは単語列探索プログラムにおけるスタック(仮説格納手段)で、不図示のメモリによって実現されて、N個の入力音節列41〜4Nのそれぞれに対して設けられており、音節列41〜4Nの各単語列探索における仮説をそれぞれ出し入れする。500aは単語列探索装置5内の制御手段(単語列探索手段)で、この制御手段500aが実行する単語列探索プログラムによって単語列探索が制御される。また、制御手段500aとしては単語列探索プログラムを実行するコンピュータ装置などが考えられる。なお、図1と同一構成要素には同一符号を付して重複する説明を省略する。
【0064】次に動作について説明する。図4は図3中の単語列探索装置による単語列探索動作を示すフロー図であり、このフロー図に沿って単語列探索装置5の動作をより詳しく説明する。先ず、図4に示す動作に入る前に、音声分析手段11は入力音声10を分析して特徴ベクトル時系列12に変換する。音節列取得手段2はオートマトン制御1パスDPアルゴリズムに基づいて、音声分析手段11に変換された特徴ベクトル時系列12を入力し音節ネットワーク3に従う経路の中で、尤度の高い上位N個の最適な音節列41〜4Nを出力する。単語列探索装置5が音節列41〜4Nを入力すると、これらを音節列一時記憶機能3a−1〜3a−Nによって不図示のメモリにそれぞれ一時記憶する。
【0065】制御手段500aは音節列41〜4Nが音節列一時記憶機能3a−1〜3a−Nによってそれぞれ一時記憶されると、スタック初期化機能3bによりスタックK501〜K50Nの内容を初期化する(ステップST1)。図5は初期化後のスタックの内容を示す図である。図において、スタックの深さとは単語列探索処理において各スタックK501〜K50Nに逐次格納される仮説の個数を示している。このように、スタック初期化機能3bによって各スタックK501〜K50Nには仮説がない状態になっている。
【0066】スタックK501〜K50Nが初期化されると、初期仮説生成機能3cによって空の単語列からなる初期の仮説が作成される。初期仮説が生成されると、仮説格納機能3hによって初期仮説がスタックK501〜K50Nにそれぞれ格納される(ステップST2、仮説格納ステップ)。図6は初期仮説を格納したスタックの内容を示す図である。図において、[K501,[],0,f(0)]〜[K50N,[],0,f(0)]は仮説を[スタック番号,単語列,終端時刻,評価値]の4つのパラメータで表した際の初期仮説であり、空の単語列(図6中の[]で表す)、各仮説の終端時刻を0、評価値f(0)(=−5;音節列41〜4Nの各終端時刻Tを5とした場合)で構成されている。図6に示すように、この時点で各スタックK501〜K50Nには初期仮説がそれぞれひとつ存在する状態になる。なお、f(t)は探索を制御するヒューリスティクス関数で、具体的にはf(t)=−(T−t)(但し、Tは入力音節列の終端時刻(入力音節列の長さ))である。
【0067】次に、仮説選択機能3dによってスタックK501〜K50Nの中から最大の評価値の仮説が取り出される(ステップST3、単語列探索ステップ)。具体的には、仮説選択機能3dによってスタックK501〜K50Nに格納されている仮説の評価値を順番に調べて、スタックK501〜K50Nの中で評価値が最大の仮説を取り出す。この実施の形態1では、同一評価値の場合はスタック番号の若い方のスタックの仮説を選択する。図6に示すように、初期仮説では全て評価値が同一であるので、スタック番号の若いスタックK501に格納された初期仮説[K501,[],0,−5](以降、仮説hとする)が選択される。
【0068】ステップST3で取り出された仮説は、仮説展開機能3fによって仮説hの終端時刻Thと入力音節列の終端時刻Tとの比較が行われる(ステップST4、単語列探索ステップ)。このとき、選択された仮説hの終端時刻Thは0、入力音節列の終端時刻Tは5であり、仮説hの終端時刻Thが入力音節列の終端時刻Tに到達していないため、ステップST5に進む。
【0069】次に、ステップST5以下で選択された仮説hの展開を行う。ステップST5では、仮説展開機能3fによって上記仮説の単語列Wh(=[])に後続する単語が言語モデル7の単語辞書から1つ取り出される。ここで、取り出した単語をW1とする。以降、ステップST6からステップST9までの処理を単語辞書の任意の単語Wについて行う(なお、ここでは単語W1のみが後続し得る単語Wであるとして説明する)。
【0070】ステップST5で言語モデル7の単語辞書から単語W1が取り出されると、言語モデル一時記憶機能3kによって不図示のメモリに一時記憶する。この言語モデル一時記憶機能3kで一時記憶された内容を適宜取り出して、スコア計算機能3gによって仮説の単語列Whと取り出した単語W1との間で言語モデル7の尤度logP(W1|Wh)(=logP(W1|[]))が計算される(ステップST6、単語列探索ステップ)。
【0071】続いて、スコア計算機能3gによって時刻Th+1からTまでにおける仮説hの終端時刻T1について時刻をカウントし(ステップST7、単語列探索ステップ)、ステップST8からステップST9までの処理が実行される。具体的には、仮説hの終端時刻T1を、スタックK501に関係付けられている入力音節列41の終端時刻Tを上限として、T1=Th+1,Th+2,・・・,Tの範囲で、ステップST8からステップST9までの処理を実行する。
【0072】ステップST8(単語列探索ステップ)において、差分モデル6から単語W1に対応する標準音節列を取り出し、差分モデル一時記憶機能3jによって不図示のメモリに一時記憶する。この差分モデル一時記憶機能3jで記憶された内容を適宜取り出して、スコア計算機能3gによって以下に示す演算が行われる。先ず、入力音節列41の時刻Th+1から時刻T1までの音節の列を、上述したものと同様に式(1)で表す。
X=[X(Th+1),X(Th+2),・・・,X(T1)]・・・(1)
但し、T1はTh+1〜Tの範囲の整数で、X(t)は入力音節列の第t番目の音節とする。また、単語W1の標準音節列を式(2)に基づいて下記式で表す。
Y=[Y(1),Y(2),・・・,Y(J(W1))] ・・・(3)
但し、Y(t)は標準音節列の第t番目の音節であり、J(W1)は単語W1の標準音節列長である。
【0073】これら式(1)、式(3)を用いて、スコア計算機能3gによって差分モデル6が参照されて、標準音節列Yが音節列Xとして認識される差分モデル6の尤度logP(X|Y)が計算される。ここで、上記差分モデル6の尤度の計算はDPマッチングに基づいて行われる。
【0074】ステップST8にて差分モデル6の尤度が算出されると、仮説展開機能3fによって、単語列[W1]、終端時刻T1、評価値g(T1)=logP(X|Y)+logP(W1|[])+f(T1)からなる新たな仮説[K501,[W1],T1,g(T1)]が生成される。この新たな仮説は、仮説格納機能3hによってスタックK501に格納される(ステップST9、単語列探索ステップ)。ここで、f(t)は単語列探索を制御するヒューリスティクス関数であり、具体的には、f(t)=−(T−t)である。また、この関数は入力音節列の終端時刻t=Tで値0をとるため、時刻t=Tでの評価値f(T)は差分モデル6による尤度と言語モデル7による尤度の和(即ち、logP(X|Y)+logP(W1|[]))と一致する。
【0075】以上の処理にて、ステップST7からステップST9までの繰り返し部分の実行を終了する。図7は仮説の展開が進んだ段階におけるスタックの内容を示す図である。図に示すように、ステップST7からステップST9までの繰り返し部分が実行された段階で、スタックK501には、単語W1を後続させた仮説hの終端時刻T1が入力音節列41の終端時刻Tに一致するまでの仮説[K501,[W1],Th+1,g(Th+1)]、[K501,[W1],Th+2,g(Th+2)]、・・・、[K501,[W1],T,g(T)]が格納される。
【0076】上記ステップST5からステップST9までのループが終了すると、ステップST3に戻って、仮説選択機能3dによってスタックK501〜K50Nに置かれた仮説(図7参照)の中から、評価値が最大の仮説が選択される。このとき、スタックK501に格納される仮説[K501,[W1],3,−1]が選択される(これを仮説hとする)。
【0077】次に、ステップST4で、仮説選択機能3dによって選択された仮説hの終端時刻ThがスタックK501に関連付けられている音節列41の終端時刻Tに到達しているかを仮説展開機能3fによって調べる。この場合、選択された仮説hの終端時刻Th(=3)は、音節列41の終端時刻T(=5)に到達していないので、ステップST5に進み、仮説hの展開が行なわれる。ステップST5では、仮説展開機能3fによって上記仮説の単語列Wh(=[W1])に後続する単語が言語モデル7の単語辞書から1つ取り出される。ここで、取り出した単語をW2とする。以降、ステップST6〜ステップST9までの処理を単語辞書の任意の単語Wについて行う(なお、ここでは単語W2のみが後続し得る単語Wであるとして説明する)。
【0078】ステップST5で言語モデル7の単語辞書から単語W2が取り出されると、言語モデル一時記憶機能3kによって不図示のメモリに一時記憶する。この言語モデル一時記憶機能3kで一時記憶された内容を適宜取り出して、スコア計算機能3gによって仮説の単語列W1と取り出した単語W2との間で言語モデル7の尤度logP(W2|Wh)(=logP(W2|[W1]))が計算される(ステップST6、単語列探索ステップ)。
【0079】続いて、スコア計算機能3gによって時刻Th+1からTまでにおける仮説hの終端時刻T1について時刻をカウントし、スタックK501に関係付けられている入力音節列41の終端時刻Tを上限として、T1=Th+1,Th+2,・・・,T(=4、5)の範囲で、ステップST8からステップST9までの処理を実行する(ステップST7、単語列探索ステップ)。
【0080】ステップST8では、上記と同様に入力音節列の時刻Th+1から時刻T1までの音節列を式(1)で表す。
X=[X(Th+1),X(Th+2),・・・,X(T1)]・・・(1)
また、単語W2の標準音節列も式(2)に基づいて下記式(4)で表す。
Y=[Y(1),Y(2),・・・,Y(J(W2))] ・・・(4)
【0081】これら式(1)、式(4)を用いて、スコア計算機能3gによって差分モデル6が参照されて、標準音節列Yが音節列Xとして認識される差分モデル6の尤度logP(X|Y)が計算される。ここで、上記差分モデル6の尤度の計算はDPマッチングに基づいて行われる。但し、J(W2)は単語W2の標準音節列長であり、照合尤度の計算はDPマッチングに基づいて行われる。
【0082】ステップST8にて差分モデル6の尤度が算出されると、仮説展開機能3fによって、単語列[W1W2]、終端時刻T1、評価値g(T1)=logP(X|Y)+logP(W2|[W1])+f(T1)からなる新たな仮説[K501,[W1W2],T1,g(T1)]が生成される。この新たな仮説は、仮説格納機能3hによってスタックK501に格納される(ステップST9、単語列探索ステップ)。
【0083】以上の処理にて、ステップST7からステップST9までの繰り返し部分の実行を終了する。図8は仮説の展開が図7より進んだ段階におけるスタックの内容を示す図である。図に示すように、ステップST7からステップST9までの繰り返し部分が実行された段階で、スタックK501には、仮説[K501,[W1W2],Th+1,g(Th+1)]、[K501,[W1W2],Th+2,g(Th+2)]、・・・、[K501,[W1W2],T,g(T)]が格納される。
【0084】上記ステップST5からステップST9までのループが終了すると、ステップST3に戻って、仮説選択機能3dによってスタックK501〜K50Nに置かれた仮説(図8参照)の中から、評価値が最大の仮説が選択される。このとき、図8に示すように、スタックK501に格納される2つの仮説[K501,[W1],4,−2]と[K501,[W1W2],5,−2]の評価値がそれぞれ−2で同一の最大値をとっている。このような場合、実施の形態1では、同一スタック内に同一評価値の仮説が存在すると、終端時刻の大きい方を選択する。これにより、仮説[K501,[W1W2],5,−2](以降、仮説hとする)がスタックK501から選択される。
【0085】次に、ステップST4で、仮説選択機能3dによって選択された仮説hの終端時刻ThがスタックK501に関連付けられている音節列41の終端時刻Tに到達しているかを仮説展開機能3fによって調べる。この場合は、図8に示すように仮説hの終端時刻Thが5であり、スタックK501に関連づけられた音節列41の終端時刻Tに到達しているので、この仮説hは探索の一つの解となる。このようにして、仮説hの終端時刻Thが音節列41の終端時刻Tに到達すると、ステップST10に進む。
【0086】ステップST10では、この仮説hの単語列Wh(=[W1W2])を入力音声に対する認識結果の単語列8として単語列一時記憶機能3iによって不図示のメモリに記憶される。この単語列一時記憶機能3iによって認識結果の単語列が記憶されると、終了処理機能3eにより認識処理が終了する。
【0087】上記実施の形態1では、音節列41について仮説の選択及び展開が進行する場合について説明した。この場合、仮説の展開回数は、音節列41だけの展開回数で済んでいる。一方、従来では、音節列数をNとすると、N個の音節列の1つの音節列について、それぞれ単語列探索を適用して、尤度最大の単語列を求めているため、仮説の展開回数は1つの音節列の展開回数のほぼN倍となる。従って、この実施の形態1によれば、従来のほぼ1/Nの仮説の展開回数で済むことがわかる。
【0088】以上のように、この実施の形態1によれば、入力音声10に対応する複数の音節列41〜4Nに対してスタックK501〜K50Nをそれぞれ設け、これらスタックK501〜K50Nに格納される仮説のうち、評価値が最大となる部分列を有する仮説を選択、展開し、展開された仮説をもとのスタックに戻すようにしているので、従来のように単語列ごとにスタックを用いて単語列探索を行う場合に比べて、少ない時間で単語列を探索することができる。
【0089】実施の形態2.上記実施の形態1では複数の音節列の候補に対してスタックをそれぞれ設け、尤度最大の仮説を優先的に展開するものを示したが、この実施の形態2は1つの音節列に対して複数の言語モデルを用い、それぞれの言語モデルに対応してスタックを設けるものである。
【0090】図9はこの発明の実施の形態2による音声認識装置の構成を示す図である。図において、2aは入力音声10に対応する音節列4を得る音節列取得手段で、音声分析手段11からの特徴ベクトル時系列12を入力し、音節ネットワーク3に従って、オートマトン制御1パスDPアルゴリズムに基づいて特徴ベクトル時系列12に対応する音節列の中で尤度が最も大きい音節列4を得る。4は音節列取得手段2が取得した入力音声10に対応する尤度が最も大きい音節列(基本音節列)である。5aは入力した音節列4に対して差分モデル6と言語モデル71〜7Nとを参照して単語列8を探索する単語列探索装置である。71〜7Nはそれぞれ異なるトピックの解析済コーパスを用いて学習された言語モデルである。なお、図1と同一構成要素には同一符号を付して重複する説明を省略する。
【0091】図10は図9中の単語列探索装置の構成を示す図である。図において、3aは入力した音節列4を一時記憶する制御手段500bが実行する単語列探索プログラムにおける音節列一時記憶機能で、制御手段500b内の不図示のメモリを使用して実現される。3f−1は制御手段500bが実行する単語列探索プログラムにおける仮説展開機能で、スコア計算機能3g−1で算出した評価値や言語モデル71〜7Nから取り出した単語Wなどを用いて、仮説選択機能3dで取り出した仮説に対して新たな仮説を展開する。3g−1は言語モデル71〜7Nから取り出した仮説の単語列に後続する単語の尤度や入力音節列が後続する単語の標準音節列として認識される尤度を算出し、これらから上記仮説の単語列とこれに後続する単語からなる単語列の評価値を算出するスコア計算機能である。3k−1〜3k−Nは言語モデル71〜7Nを一時記憶する言語モデル一時記憶機能で、制御手段500b内の不図示のメモリを使用して実現される。500bは単語列探索装置5a内の制御手段(単語列探索手段)で、この制御手段500bが実行する単語列探索プログラムによって単語列探索が制御される。また、制御手段500bとしては単語列探索プログラムを実行するコンピュータ装置などが考えられる。なお、図3と同一構成要素には同一符号を付して重複する説明を省略する。
【0092】次に動作について説明する。図11は図10中の単語列探索装置による単語列探索動作を示すフロー図であり、このフロー図に沿って単語列探索装置5aの動作をより詳しく説明する。先ず、図11に示す動作に入る前に、音声分析手段11は入力音声10を分析して特徴ベクトル時系列12に変換する。音節列取得手段2aはオートマトン制御1パスDPアルゴリズムに基づいて、音声分析手段11に変換された特徴ベクトル時系列12を入力し音節ネットワーク3に従う経路の中で、尤度の最も高い音節列4を出力する。単語列探索装置5aが音節列4を入力すると、これらを音節列一時記憶機能3aによって不図示のメモリにそれぞれ一時記憶する。
【0093】制御手段500bは音節列4が音節列一時記憶機能3aによってそれぞれ一時記憶されると、スタック初期化機能3bにより言語モデル71〜7Nに対してスタックK501〜K50Nの内容を初期化する(ステップST1a)。図12は初期化後のスタックの内容を示す図である。図において、スタックの深さとは単語列探索処理において各スタックK501〜K50Nに逐次格納される仮説の個数を示している。このように、スタック初期化機能3bによって各スタックK501〜K50Nには仮説がない状態になっている。
【0094】スタックK501〜K50Nが初期化されると、初期仮説生成機能3cによって空の単語列からなる初期の仮説が作成される。初期仮説が生成されると、仮説格納機能3hによって初期仮説がスタックK501〜K50Nにそれぞれ格納される(ステップST2a、仮説格納ステップ)。図13は初期仮説を格納したスタックの内容を示す図である。図において、[K501,[],0,f(0)]〜[K50N,[],0,f(0)]は仮説を[スタック番号,単語列,終端時刻,評価値]の4つのパラメータで表した際の初期仮説であり、空の単語列(図13中の[]で表す)、各仮説の終端時刻を0、評価値f(0)(=−5;音節列4の各終端時刻Tを5とした場合)で構成されている。図13に示すように、この時点で各スタックK501〜K50Nには初期仮説がそれぞれひとつ存在する状態になる。なお、f(t)は探索を制御するヒューリスティクス関数で、具体的にはf(t)=−(T−t)(但し、Tは入力音節列の終端時刻(入力音節列の長さ))である。
【0095】次に、仮説選択機能3dによってスタックK501〜K50Nの中から最大の評価値の仮説が取り出される(ステップST3a、単語列探索ステップ)。具体的には、仮説選択機能3dによってスタックK501〜K50Nに格納されている仮説の評価値を順番に調べて、スタックK501〜K50Nの中で評価値が最大の仮説を取り出す。この実施の形態2では、同一評価値の場合はスタック番号の若い方のスタックの仮説を選択する。図13に示すように、初期仮説では全て評価値が同一であるので、スタック番号の若いスタックK501に格納された初期仮説[K501,[],0,−5](以降、仮説hとする)が選択される。
【0096】ステップST3aで取り出された仮説は、仮説展開機能3f−1によって仮説hの終端時刻Thと入力音節列の終端時刻Tとの比較が行われる(ステップST4、単語列探索ステップ)。このとき、選択された仮説hの終端時刻Thは0、入力音節列の終端時刻Tは5であり、仮説hの終端時刻Thが入力音節列の終端時刻Tに到達していないため、ステップST5aに進む。
【0097】次に、ステップST5a以下で選択された仮説hの展開を行う。ステップST5aでは、仮説展開機能3f−1によって上記仮説の単語列Wh(=[])に後続する単語が言語モデル71の単語辞書から1つ取り出される。ここで、取り出した単語をW1とする。以降、ステップST6aからステップST9aまでの処理を単語辞書の任意の単語Wについて行う(なお、ここでは単語W1のみが後続し得る単語Wであるとして説明する)。
【0098】ステップST5aで言語モデル71の単語辞書から単語W1が取り出されると、言語モデル一時記憶機能3k−1によって不図示のメモリに一時記憶する。この言語モデル一時記憶機能3k−1で一時記憶された内容を適宜取り出して、スコア計算機能3g−1によって仮説の単語列Whと取り出した単語W1との間で言語モデル71の尤度logP(W1|Wh)(=logP(W1|[]))が計算される(ステップST6a、単語列探索ステップ)。
【0099】続いて、スコア計算機能3g−1によって時刻Th+1からTまでにおける仮説hの終端時刻T1について時刻をカウントし(ステップST7a、単語列探索ステップ)、ステップST8aからステップST9aまでの処理が実行される。具体的には、仮説hの終端時刻T1を音節列4の終端時刻Tを上限として、T1=Th+1,Th+2,・・・,T(=0,1,2,3,4,5)の範囲で、ステップST8aからステップST9aまでの処理を実行する。
【0100】ステップST8a(単語列探索ステップ)において、差分モデル6から単語W1に対応する標準音節列を取り出し、差分モデル一時記憶機能3jによって不図示のメモリに一時記憶する。この差分モデル一時記憶機能3jで記憶された内容を適宜取り出してスコア計算機能3g−1によって以下に示す演算が行われる。先ず、入力音節列4の時刻Th+1から時刻T1までの音節の列を、上述したものと同様に式(1)で表す。
X=[X(Th+1),X(Th+2),・・・,X(T1)]・・・(1)
但し、T1はTh+1〜Tの範囲の整数で、X(t)は入力音節列の第t番目の音節とする。また、単語W1の標準音節列を式(2)に基づいて下記式で表す。
Y=[Y(1),Y(2),・・・,Y(J(W1))] ・・・(5)
但し、Y(t)は標準音節列の第t番目の音節であり、J(W1)は単語W1の標準音節列長である。
【0101】これら式(1)、式(5)を用いて、スコア計算機能3g−1によって差分モデル6が参照されて、標準音節列Yが音節列Xとして認識される差分モデル6の尤度logP(X|Y)が計算される。ここで、上記差分モデル6の尤度の計算はDPマッチングに基づいて行われる。
【0102】ステップST8aにて差分モデル6の尤度が算出されると、仮説展開機能3f−1によって、単語列[W1]、終端時刻T1、評価値g(T1)=logP(X|Y)+logP(W1|[])+f(T1)からなる新たな仮説[K501,[W1],T1,g(T1)]が生成される。この新たな仮説は、仮説格納機能3hによってスタックK501に格納される(ステップST9a、単語列探索ステップ)。ここで、f(t)は単語列探索を制御するヒューリスティクス関数であり、具体的には、f(t)=−(T−t)である。また、この関数は入力音節列の終端時刻t=Tで値0をとるため、時刻t=Tでの評価値f(T)は差分モデル6による尤度と言語モデル71による尤度の和(即ち、logP(X|Y)+logP(W1|[]))と一致する。
【0103】以上の処理にて、ステップST7aからステップST9aまでの繰り返し部分の実行を終了する。図14は仮説の展開が進んだ段階におけるスタックの内容を示す図である。図に示すように、ステップST7aからステップST9aまでの繰り返し部分が実行された段階で、スタックK501には、単語W1を後続させた仮説hの終端時刻T1が入力音節列4の終端時刻Tに一致するまでの仮説[K501,[W1],Th+1,g(Th+1)]、[K501,[W1],Th+2,g(Th+2)]、・・・、[K501,[W1],T,g(T)]が格納される。
【0104】上記ステップST5aからステップST9aまでのループが終了すると、ステップST3aに戻って、仮説選択機能3dによってスタックK501〜K50Nに置かれた仮説(図14参照)の中から、評価値が最大の仮説が選択される。このとき、スタックK501に格納される仮説[K501,[W1],3,−1](これを仮説hとする)が選択される。
【0105】次に、ステップST4aで、仮説選択機能3dによって選択された仮説hの終端時刻Thが音節列4の終端時刻Tに到達しているかを仮説展開機能3f−1によって調べる。この場合、選択された仮説hの終端時刻Th(=3)は、音節列4の終端時刻T(=5)に到達していないので、ステップST5aに進み、仮説hの展開が行なわれる。
【0106】ステップST5aでは、仮説展開機能3f−1によって上記仮説の単語列Wh(=[W1])に後続する単語が言語モデル71の単語辞書から1つ取り出される。ここで、取り出した単語をW2とする。以降、ステップST6a〜ステップST9aまでの処理を単語辞書の任意の単語Wについて行う(なお、ここでは単語W2のみが後続し得る単語Wであるとして説明する)。
【0107】ステップST5aで言語モデル71の単語辞書から単語W2が取り出されると、言語モデル一時記憶機能3k−1によって不図示のメモリに一時記憶する。この言語モデル一時記憶機能3k−1で一時記憶された内容を適宜取り出して、スコア計算機能3g−1によって仮説の単語列W1と取り出した単語W2との間で言語モデル71の尤度logP(W2|Wh)(=logP(W2|[W1]))が計算される(ステップST6a、単語列探索ステップ)。
【0108】続いて、スコア計算機能3g−1によって時刻Th+1からTまでにおける仮説hの終端時刻T1について時刻をカウントし、音節列4の終端時刻Tを上限として、T1=Th+1,Th+2,・・・,Tの範囲で、ステップST8aからステップST9aまでの処理を実行する(ステップST7a、単語列探索ステップ)。
【0109】ステップST8aでは、上記と同様に入力音節列の時刻Th+1から時刻T1までの音節列を式(1)で表す。
X=[X(Th+1),X(Th+2),・・・,X(T1)]・・・(1)
また、単語W2の標準音節列も式(2)に基づいて下記式(6)で表す。
Y=[Y(1),Y(2),・・・,Y(J(W2))] ・・・(6)
【0110】これら式(1)、式(6)を用いて、スコア計算機能3g−1によって差分モデル6が参照されて、標準音節列Yが音節列Xとして認識される差分モデル6の尤度logP(X|Y)が計算される。ここで、上記差分モデル6の尤度の計算はDPマッチングに基づいて行われる。但し、J(W2)は単語W2の標準音節列長であり、照合尤度の計算はDPマッチングに基づいて行われる。
【0111】ステップST8aにて差分モデル6の尤度が算出されると、仮説展開機能3f−1によって、単語列[W1W2]、終端時刻T1、評価値g(T1)=logP(X|Y)+logP(W2|[W1])+f(T1)からなる新たな仮説[K501,[W1W2],T1,g(T1)]が生成される。この新たな仮説は、仮説格納機能3hによってスタックK501に格納される(ステップST9a、単語列探索ステップ)。
【0112】以上の処理にて、ステップST7aからステップST9aまでの繰り返し部分の実行を終了する。図15は仮説の展開が図14より進んだ段階におけるスタックの内容を示す図である。図に示すように、ステップST7aからステップST9aまでの繰り返し部分が実行された段階で、スタックK501には、仮説[K501,[W1W2],Th+1,g(Th+1)]、[K501,[W1W2],Th+2,g(Th+2)]、・・・、[K501,[W1W2],T,g(T)]が格納される。
【0113】上記ステップST5aからステップST9aまでのループが終了すると、ステップST3aに戻って、仮説選択機能3dによってスタックK501〜K50Nに格納された仮説(図15参照)の中から、評価値が最大の仮説が選択される。このとき、図15に示すように、スタックK501に格納される2つの仮説[K501,[W1],4,−2]と[K501,[W1W2],5,−2]の評価値がそれぞれ−2で同一の最大値をとっている。このような場合、実施の形態2では、同一スタック内に同一評価値の仮説が存在すると、終端時刻の大きい方を選択する。これにより、仮説[K501,[W1W2],5,−2](以降、仮説hとする)がスタックK501から選択される。
【0114】次に、ステップST4aで、仮説選択機能3dによって選択された仮説hの終端時刻ThがスタックK501に関連付けられている音節列4の終端時刻Tに到達しているかを仮説展開機能3f−1によって調べる。この場合は、図15に示すように仮説hの終端時刻Thが5であり、音節列4の終端時刻Tに到達しているので、この仮説hは探索の一つの解となる。このようにして、仮説hの終端時刻Thが音節列4の終端時刻Tに到達すると、ステップST10aに進む。
【0115】ステップST10aでは、この仮説hの単語列Wh(=[W1W2])を入力音声に対する認識結果の単語列8として単語列一時記憶機能3iによって不図示のメモリに記憶される。この単語列一時記憶機能3iによって認識結果の単語列が記憶されると、終了処理機能3eにより認識処理が終了する。
【0116】上記実施の形態2では、言語モデル71についての仮説だけに対して、仮説の選択及び展開が進行する場合について説明した。この場合、仮説の展開回数は、言語モデル71だけの展開回数で済んでいる。一方、従来では、言語モデルの数をNとすると、N個の言語モデルのそれぞれについて、単語列探索を適用して、尤度が最大となる単語列を求めているため、仮説の展開回数は言語モデル1つ当りの展開回数のほぼN倍となる。従って、この実施の形態2によれば、従来のほぼ1/Nの仮説の展開回数で済むことがわかる。
【0117】以上のように、この実施の形態2によれば、複数の言語モデル71〜7Nに対してスタックK501〜K50Nをそれぞれ設け、これら複数のスタックK501〜K50Nに格納される仮説のうち、評価値が最大となる部分列を有する仮説を選択、展開し、展開された仮説をもとのスタックに戻すようにしているので、従来のように単語列ごとにスタックを用いて単語列探索を行う場合に比べて、少ない処理で単語列を探索することができる。
【0118】実施の形態3.この実施の形態3は、複数の差分モデルに対してスタックをそれぞれ設け、これら差分モデルに渡る尤度最大の単語列を探索するものである。
【0119】図16はこの発明の実施の形態3による音声認識装置の構成を示す図である。図において、5bは入力した音節列4に対して差分モデル61〜6Nと言語モデル7とを参照して単語列8を探索する単語列探索装置である。61〜6Nは差分モデルであって、不特定話者を対象とするため1つの音節列に対して学習音声の認識傾向で分類した異なる話者クラスタからそれぞれ作成される。なお、図1及び図9と同一構成要素には同一符号を付して重複する説明を省略する。
【0120】図17は図16中の単語列探索装置の構成を示す図である。図において、3f−2は制御手段500cが実行する単語列探索プログラムにおける仮説展開機能で、スコア計算機能3g−2で算出した評価値や差分モデル61〜6Nから取り出した単語Wなどを用いて、仮説選択機能3dで取り出した仮説に対して新たな仮説を展開する。3g−2は言語モデル7から取り出した仮説の単語列に後続する単語の尤度や入力音節列が後続する単語の標準音節列として認識される尤度を算出し、これらから上記仮説の単語列とこれに後続する単語からなる単語列の評価値を算出するスコア計算機能である。3j−1〜3j−Nは差分モデル61〜6Nを一時記憶する言語モデル一時記憶機能で、制御手段500c内の不図示のメモリを使用して実現される。500cは単語列探索装置5b内の制御手段(単語列探索手段)で、この制御手段500cが実行する単語列探索プログラムによって単語列探索が制御される。また、制御手段500cとしては単語列探索プログラムを実行するコンピュータ装置などが考えられる。なお、図3及び図10と同一構成要素には同一符号を付して重複する説明を省略する。
【0121】次に動作について説明する。図18は図17中の単語列探索装置による単語列探索動作を示すフロー図であり、このフロー図に沿って単語列探索装置5bの動作をより詳しく説明する。先ず、図18に示す動作に入る前に、音声分析手段11は入力音声10を分析して特徴ベクトル時系列12に変換する。音節列取得手段2aはオートマトン制御1パスDPアルゴリズムに基づいて、音声分析手段11に変換された特徴ベクトル時系列12を入力し音節ネットワーク3に従う経路の中で、尤度の最も高い音節列4を出力する。単語列探索装置5bが音節列4を入力すると、これらを音節列一時記憶機能3aによって不図示のメモリにそれぞれ一時記憶する。
【0122】制御手段500cは音節列4が音節列一時記憶機能3aによってそれぞれ一時記憶されると、スタック初期化機能3bにより差分モデル61〜6Nに対してスタックK501〜K50Nの内容を初期化する(ステップST1b)。図19は初期化後のスタックの内容を示す図である。図において、スタックの深さとは単語列探索処理において各スタックK501〜K50Nに逐次格納される仮説の個数を示している。このように、スタック初期化機能3bによって各スタックK501〜K50Nには仮説がない状態になっている。
【0123】スタックK501〜K50Nが初期化されると、初期仮説生成機能3cによって空の単語列からなる初期の仮説が作成される。初期仮説が生成されると、仮説格納機能3hによって初期仮説がスタックK501〜K50Nにそれぞれ格納される(ステップST2b、仮説格納ステップ)。図20は初期仮説を格納したスタックの内容を示す図である。図において、[K501,[],0,f(0)]〜[K50N,[],0,f(0)]は仮説を[スタック番号,単語列,終端時刻,評価値]の4つのパラメータで表した際の初期仮説であり、空の単語列(図20中の[]で表す)、各仮説の終端時刻を0、評価値f(0)(=−5;音節列4の各終端時刻Tを5とした場合)で構成されている。図20に示すように、この時点で各スタックK501〜K50Nには初期仮説がそれぞれひとつ存在する状態になる。なお、f(t)は探索を制御するヒューリスティクス関数で、具体的にはf(t)=−(T−t)(但し、Tは入力音節列の終端時刻(入力音節列の長さ))である。
【0124】次に、仮説選択機能3dによってスタックK501〜K50Nの中から最大の評価値の仮説が取り出される(ステップST3b、単語列探索ステップ)。具体的には、仮説選択機能3dによってスタックK501〜K50Nに格納されている仮説の評価値を順番に調べて、スタックK501〜K50Nの中で評価値が最大の仮説を取り出す。この実施の形態3では、同一評価値の場合はスタック番号の若い方のスタックの仮説を選択する。図20に示すように、初期仮説では全て評価値が同一であるので、スタック番号の若いスタックK501に格納された初期仮説[K501,[],0,−5](以降、仮説hとする)が選択される。
【0125】ステップST3bで取り出された仮説は、仮説展開機能3f−2によって仮説hの終端時刻Thと入力音節列の終端時刻Tとの比較が行われる(ステップST4b、単語列探索ステップ)。このとき、選択された仮説hの終端時刻Thは0、入力音節列の終端時刻Tは5であり、仮説hの終端時刻Thが入力音節列の終端時刻Tに到達していないため、ステップST5bに進む。
【0126】次に、ステップST5b以下で選択された仮説hの展開を行う。ステップST5bでは、仮説展開機能3f−2によって上記仮説の単語列Wh(=[])に後続する単語が言語モデル7の単語辞書から1つ取り出される。ここで、取り出した単語をW1とする。以降、ステップST6bからステップST9bまでの処理を単語辞書の任意の単語Wについて行う(なお、ここでは単語W1のみが後続し得る単語Wであるとして説明する)。
【0127】ステップST5bで言語モデル7の単語辞書から単語W1が取り出されると、言語モデル一時記憶機能3kによって不図示のメモリに一時記憶する。この言語モデル一時記憶機能3kで一時記憶された内容を適宜取り出して、スコア計算機能3g−2によって仮説の単語列Whと取り出した単語W1との間で言語モデル7の尤度logP(W1|Wh)(=logP(W1|[]))が計算される(ステップST6b、単語列探索ステップ)。
【0128】続いて、スコア計算機能3g−2によって時刻Th+1からTまでにおける仮説hの終端時刻T1について時刻をカウントし(ステップST7b、単語列探索ステップ)、ステップST8bからステップST9bまでの処理が実行される。具体的には、仮説hの終端時刻T1を音節列4の終端時刻Tを上限として、T1=Th+1,Th+2,・・・,T(=0,1,2,3,4,5)の範囲で、ステップST8bからステップST9bまでの処理を実行する。
【0129】ステップST8b(単語列探索ステップ)において、差分モデル61から単語W1に対応する標準音節列を取り出し、差分モデル一時記憶機能3j−1によって不図示のメモリに一時記憶する。この差分モデル一時記憶機能3j−1で記憶された内容を適宜取り出してスコア計算機能3g−2によって以下に示す演算が行われる。先ず、入力音節列4の時刻Th+1から時刻T1までの音節の列を、上述したものと同様に式(1)で表す。
X=[X(Th+1),X(Th+2),・・・,X(T1)]・・・(1)
但し、T1はTh+1〜Tの範囲の整数で、X(t)は入力音節列の第t番目の音節とする。また、単語W1の標準音節列を式(2)に基づいて下記式で表す。
Y=[Y(1),Y(2),・・・,Y(J(W1))] ・・・(7)
但し、Y(t)は標準音節列の第t番目の音節であり、J(W1)は単語W1の標準音節列長である。
【0130】これら式(1)、式(7)を用いて、スコア計算機能3g−2によって差分モデル61が参照されて、標準音節列Yが音節列Xとして認識される差分モデル61の尤度logP(X|Y)が計算される。ここで、上記差分モデル61の尤度の計算はDPマッチングに基づいて行われる。
【0131】ステップST8bにて差分モデル61の尤度が算出されると、仮説展開機能3f−2によって、単語列[W1]、終端時刻T1、評価値g(T1)=logP(X|Y)+logP(W1|[])+f(T1)からなる新たな仮説[K501,[W1],T1,g(T1)]が生成される。この新たな仮説は、仮説格納機能3hによってスタックK501に格納される(ステップST9a、単語列探索ステップ)。ここで、f(t)は単語列探索を制御するヒューリスティクス関数であり、具体的には、f(t)=−(T−t)である。また、この関数は入力音節列の終端時刻t=Tで値0をとるため、時刻t=Tでの評価値f(T)は差分モデル61による尤度と言語モデル7による尤度の和(即ち、logP(X|Y)+logP(W1|[]))と一致する。
【0132】以上の処理にて、ステップST7bからステップST9bまでの繰り返し部分の実行を終了する。図21は仮説の展開が進んだ段階におけるスタックの内容を示す図である。図に示すように、ステップST7bからステップST9bまでの繰り返し部分が実行された段階で、スタックK501には、単語W1を後続させた仮説hの終端時刻T1が入力音節列4の終端時刻Tに一致するまでの仮説[K501,[W1],Th+1,g(Th+1)]、[K501,[W1],Th+2,g(Th+2)]、・・・、[K501,[W1],T,g(T)]が格納される。
【0133】上記ステップST5bからステップST9bまでのループが終了すると、ステップST3bに戻って、仮説選択機能3dによってスタックK501〜K50Nに置かれた仮説(図21参照)の中から、評価値が最大の仮説が選択される。このとき、スタックK501に格納される仮説[K501,[W1],3,−1](これを仮説hとする)が選択される。
【0134】次に、ステップST4bで、仮説選択機能3dによって選択された仮説hの終端時刻Thが音節列4の終端時刻Tに到達しているかを仮説展開機能3f−2によって調べる。この場合、選択された仮説hの終端時刻Th(=3)は、音節列4の終端時刻T(=5)に到達していないので、ステップST5bに進み、仮説hの展開が行なわれる。
【0135】ステップST5bでは、仮説展開機能3f−2によって上記仮説の単語列Wh(=[W1])に後続する単語が言語モデル7の単語辞書から1つ取り出される。ここで、取り出した単語をW2とする。以降、ステップST6b〜ステップST9bまでの処理を単語辞書の任意の単語Wについて行う(なお、ここでは単語W2のみが後続し得る単語Wであるとして説明する)。
【0136】ステップST5bで言語モデル7の単語辞書から単語W2が取り出されると、言語モデル一時記憶機能3kによって不図示のメモリに一時記憶する。この言語モデル一時記憶機能3kで一時記憶された内容を適宜取り出して、スコア計算機能3g−2によって仮説の単語列W1と取り出した単語W2との間で言語モデル7の尤度logP(W2|Wh)(=logP(W2|[W1]))が計算される(ステップST6b、単語列探索ステップ)。
【0137】続いて、スコア計算機能3g−2によって時刻Th+1からTまでにおける仮説hの終端時刻T1について時刻をカウントし、音節列4の終端時刻Tを上限として、T1=Th+1,Th+2,・・・,Tの範囲で、ステップST8bからステップST9bまでの処理を実行する(ステップST7b、単語列探索ステップ)。
【0138】ステップST8bでは、上記と同様に入力音節列の時刻Th+1から時刻T1までの音節列を式(1)で表す。
X=[X(Th+1),X(Th+2),・・・,X(T1)]・・・(1)
また、単語W2の標準音節列も式(2)に基づいて下記式(8)で表す。
Y=[Y(1),Y(2),・・・,Y(J(W2))] ・・・(8)
【0139】これら式(1)、式(8)を用いて、スコア計算機能3g−2によって差分モデル61が参照されて、標準音節列Yが音節列Xとして認識される差分モデル61の尤度logP(X|Y)が計算される。ここで、上記差分モデル61の尤度の計算はDPマッチングに基づいて行われる。但し、J(W2)は単語W2の標準音節列長であり、照合尤度の計算はDPマッチングに基づいて行われる。
【0140】ステップST8bにて差分モデル61の尤度が算出されると、仮説展開機能3f−2によって、単語列[W1W2]、終端時刻T1、評価値g(T1)=logP(X|Y)+logP(W2|[W1])+f(T1)からなる新たな仮説[K501,[W1W2],T1,g(T1)]が生成される。この新たな仮説は、仮説格納機能3hによってスタックK501に格納される(ステップST9b、単語列探索ステップ)。
【0141】以上の処理にて、ステップST7bからステップST9bまでの繰り返し部分の実行を終了する。図22は仮説の展開が図21より進んだ段階におけるスタックの内容を示す図である。図に示すように、ステップST7bからステップST9bまでの繰り返し部分が実行された段階で、スタックK501には、仮説[K501,[W1W2],Th+1,g(Th+1)]、[K501,[W1W2],Th+2,g(Th+2)]、・・・、[K501,[W1W2],T,g(T)]が格納される。
【0142】上記ステップST5bからステップST9bまでのループが終了すると、ステップST3bに戻って、仮説選択機能3dによってスタックK501〜K50Nに格納された仮説(図22参照)の中から、評価値が最大の仮説が選択される。このとき、図22に示すように、スタックK501に格納される2つの仮説[K501,[W1],4,−2]と[K501,[W1W2],5,−2]の評価値がそれぞれ−2で同一の最大値をとっている。このような場合、実施の形態3では、同一スタック内に同一評価値の仮説が存在すると、終端時刻の大きい方を選択する。これにより、仮説[K501,[W1W2],5,−2](以降、仮説hとする)がスタックK501から選択される。
【0143】次に、ステップST4bで、仮説選択機能3dによって選択された仮説hの終端時刻ThがスタックK501に関連付けられている音節列4の終端時刻Tに到達しているかを仮説展開機能3f−2によって調べる。この場合は、図22に示すように仮説hの終端時刻Thが5であり、音節列4の終端時刻Tに到達しているので、この仮説hは探索の一つの解となる。このようにして、仮説hの終端時刻Thが音節列4の終端時刻Tに到達すると、ステップST10bに進む。
【0144】ステップST10bでは、この仮説hの単語列Wh(=[W1W2])を入力音声に対する認識結果の単語列8として単語列一時記憶機能3iによって不図示のメモリに記憶される。この単語列一時記憶機能3iによって認識結果の単語列が記憶されると、終了処理機能3eにより認識処理が終了する。
【0145】上記実施の形態3では、差分モデル61に対応する仮説だけに対して、仮説の選択及び展開が進行する場合について説明した。この場合、仮説の展開回数は、ほぼ差分モデル61だけの展開回数で済んでいる。一方、従来では、差分モデル数をNとすると、N個の差分モデルの一つの差分モデルについて、それぞれ単語列探索を適用して、尤度が最大となる単語列を求めていたため、仮説の展開回数は差分モデル1つ当りの展開回数のほぼN倍となる。従って、この実施の形態3によれば、従来のほぼ1/N回分の仮説の展開回数で済むことがわかる。
【0146】以上のように、この実施の形態3によれば、複数の差分モデル61〜6Nに対してスタックK501〜K50Nをそれぞれ設け、これら複数のスタックK501〜K50Nに格納される仮説のうち、評価値が最大となる部分列を有する仮説を選択、展開し、展開された仮説をもとのスタックに戻すようにしているので、従来のように単語列ごとにスタックを用いて単語列探索を行う場合に比べて、少ない処理で単語列を探索することができる。
【0147】実施の形態4.上記実施の形態1から3では、それぞれ異なる複数の音節列、あるいは、それぞれ異なる複数の言語モデル、あるいは、それぞれ異なる複数の差分モデルについて複数のスタックを設けるものであるが、これら音節列、言語モデル、及び差分モデルのうちのいずれかを複数とした組み合わせについて、その複数分のスタックを設けて、これら複数のスタックに格納される仮説のうち、評価値が最大となる部分列を有する仮説を選択及び展開し、展開した仮説をもとのスタックに戻す構成としても、上記実施の形態1から3と同様の効果を得ることができる。
【0148】なお、上記実施の形態1から4に示した単語列探索装置を音声認識装置に適用することで、入力音声に対応する単語列を効率的に探索することができることから、音声認識の効率を向上させることができる。また、上記実施の形態1から4に示した単語列探索装置における単語列探索プログラムをコンピュータ読み取り可能な記録媒体に記録することで、上記実施の形態1から4の効果を奏する単語列探索装置をコンピュータに実現させることができる。
【0149】
【発明の効果】以上のように、この発明の単語列探索装置によれば、入力音声に対応する単語列の探索途中の部分列を表す仮説を格納する複数の仮説格納手段と、これら複数の仮説格納手段に格納される全ての仮説の中から上記入力音声に対する尤度が最大の部分列を表す仮説を選択して、この仮説を基に単語列の探索を行う単語列探索手段とを備えるので、単語列探索の処理量を低減することができ、効率的に単語列を探索する単語列探索装置を実現することができるという効果がある。
【0150】この発明の単語列探索装置によれば、仮説格納手段が入力音声に対応する複数の基本音節列の個数分設けられ、基本音節列に対応する単語列の探索における仮説を格納するので、複数の基本音節列に対して効率的に単語列探索を行う単語列探索装置を実現することができるという効果がある。
【0151】この発明の単語列探索装置によれば、仮説格納手段が単語列探索に使用する単語が登録された単語辞書を含んでなる複数の言語モデルの個数分設けられ、各言語モデルをそれぞれ使用した単語列探索における仮説を格納するので、複数言語モデルによる単語列探索を効率的に行う単語列探索装置を実現することができるという効果がある。
【0152】この発明の単語列探索装置によれば、仮説格納手段が標準音節列及びその入力音声に対応する基本音節列に対する尤度からなる複数の差分モデルの個数分設けられ、各差分モデルをそれぞれ使用した単語列探索における仮説を格納するので、複数差分モデルによる単語列探索を効率的に行う単語列探索装置を実現することができるという効果がある。
【0153】この発明の単語列探索装置によれば、入力音声に対応する基本音節列、単語列探索に使用する単語が登録された単語辞書を含んでなる言語モデル、及び標準音節列及びその基本音節列に対する尤度からなる差分モデルのうちのいずれかを複数組み有し、仮説格納手段を上記複数組分設けて、基本音節列、言語モデル及び差分モデルの各組み合わせに基づいた単語列探索における仮説を格納するので、単語列探索の入力の音節列、あるいは、単語列探索の参照する言語モデル、単語列探索の参照する差分モデルの少なくともいずれかが、複数存在するときに、単語列探索を効率的に行う単語列探索装置を実現することができるという効果がある。
【0154】この発明の単語列探索装置によれば、仮説格納手段が、仮説の格納・取り出しが自在のスタックとして機能するので、単語列探索における処理量を低減することができ、効率的に単語列を探索する単語列探索装置を実現することができるという効果がある。
【0155】この発明に係る音声認識装置は、認識対象の音声を入力する音声入力手段と、入力音声に対応する基本音節列を取得する音節列取得手段と、この音節列取得手段が取得した基本音節列に基づいて入力音声に対応する単語列を探索する上記単語列探索装置とを備えるので、音節認識結果から効率的に単語列の探索を行う音声認識装置を提供することができるという効果がある。
【0156】この発明の単語列探索方法によれば、入力音声に対応する単語列の探索途中の部分列を表す仮説を複数の仮説格納手段にそれぞれ格納する仮説格納ステップと、これら複数の仮説格納手段に格納される全ての仮説の中から入力音声に対する尤度が最大の部分列を表す仮説を選択して、この仮説を基に単語列の探索を行う単語列探索ステップとを備えるので、単語列探索の処理量を低減することができ、効率的に単語列を探索することができるという効果がある。
【0157】この発明の単語列探索方法によれば、入力音声に対応する基本音節列を取得する基本音節列取得ステップを備え、仮説格納ステップにて、基本音節列の個数分設けた仮説格納手段に基本音節列に対応する単語列の探索における仮説を格納するので、複数の基本音節列に対して効率的に単語列探索を行うことができるという効果がある。
【0158】この発明の単語列探索方法によれば、仮説格納ステップにて、仮説格納手段を単語列探索に使用する単語が登録された単語辞書を含んでなる複数の言語モデルの個数分設けて、各言語モデルをそれぞれ使用した単語列探索における仮説を格納するので、複数言語モデルによる単語列探索を効率的に行うことができるという効果がある。
【0159】この発明の単語列探索方法によれば、仮説格納ステップにて、仮説格納手段を標準音節列及びその入力音声に対応する基本音節列に対する尤度からなる複数の差分モデルの個数分設けて、各差分モデルをそれぞれ使用した単語列探索における仮説を格納するので、複数差分モデルによる単語列探索を効率的に行うことができるという効果がある。
【0160】この発明の単語列探索方法によれば、入力音声に対応する基本音節列を取得する基本音節列取得ステップを備え、仮説格納ステップにて、基本音節列、単語列探索に使用する単語が登録された単語辞書を含んでなる言語モデル、及び標準音節列及びその基本音節列に対する尤度からなる差分モデルのうちのいずれかを複数組み有し、仮説格納手段を複数組分設けて、基本音節列、言語モデル及び差分モデルの各組み合わせに基づいた単語列探索における仮説を格納するので、単語列探索の入力の音節列、あるいは、単語列探索の参照する言語モデル、単語列探索の参照する差分モデルの少なくともいずれかが、複数存在するときに、単語列探索を効率的に行うことができるという効果がある。
【0161】この発明の単語列探索方法によれば、仮説格納手段が、仮説の格納・取り出しが自在のスタックとして機能するので、単語列探索における処理量を低減することができ、効率的に単語列を探索することができるという効果がある。
【0162】この発明の記録媒体によれば、入力音声に対応する単語列の探索途中の部分列を表す仮説を複数の仮説格納手段にそれぞれ格納する仮説格納ステップと、これら複数の仮説格納手段に格納される全ての仮説の中から入力音声に対する尤度が最大の部分列を表す仮説を選択して、この仮説を基に単語列の探索を行う単語列探索ステップとをコンピュータに実現させる単語列探索プログラムを記録するので、単語列探索の処理量を低減することができ、効率的に単語列を探索する単語列探索装置をコンピュータに実現させることができるという効果がある。
【出願人】 【識別番号】000006013
【氏名又は名称】三菱電機株式会社
【出願日】 平成12年12月18日(2000.12.18)
【代理人】 【識別番号】100066474
【弁理士】
【氏名又は名称】田澤 博昭 (外1名)
【公開番号】 特開2002−182686(P2002−182686A)
【公開日】 平成14年6月26日(2002.6.26)
【出願番号】 特願2000−384298(P2000−384298)