このファイルは、3年春学期科目「音声情報処理」の授業において、口頭で説明する内容をテキスト(.txt)に書き起こしたものです。 事前に科目のHPにアクセスして「講義ノート」の PDF ファイルをダウンロードし、印刷しておいてください。このテキストには講義ノートの記述より多くの情報を含んでいます。講義ノートの行間に、テキストの説明を書きこんで行くことをお勧めします。最後にプリントを綴じれば、将来必要になったときに見返せる自分の「講義ノート」ができあがります。 「学生用ページ」「レポート提出システム」 から、その日の「宿題」レポートを提出してください。 〆切は 次回授業日の前日 23:59 です。 _/_/_/ 第十一回 音声認識(4) _/_/_/ 【講義ノート】音声認識システムの構成 (5) 左から音声波形が入力され、区間抽出され、分析処理によって「MFCC」の時系列に変換されます。 音響モデルは「音素HMM」を記憶しています。 文法あるいは言語モデルによって、発声可能な文の音素の並びに従って、音素HMMを結合し、文 HMMを作成します。 可能な全ての文HMMから、入力音声の特徴時系列が出力される確率を計算し、最大の確率を出力した「文」を認識結果とします。 この入力音声と音響モデルの照合に、最も多くの計算が必要になります。ここを効率的に計算するために、いろいろな「探索」の工夫が必要になります。 このとき「認識精度」と「処理速度」のバランスをとることが重要になります。 上の吹き出しに「入力音声と音響モデルの照合」とメモしましょう。 下の吹き出しに「認識精度と処理速度のバランス」とメモしましょう。 【講義ノート】技術各論>解の探索 ・文法によって許される全ての音響モデル系列の中から、  入力音声に対して最も適当なもの(最適解)を見つけ出す  - 音素同期探索と時間同期探索  - 認識精度と処理速度のトレードオフ設計 文法によって許される全ての音響モデル系列の中から、入力音声に対して最も適当なもの(最適解)を見つけ出す必要があります。 本日の講義では、代表的な2つの探索手法として「音素同期探索」と「時間同期探索」について説明します。 そこには、認識精度と処理速度に対するトレードオフ設計の違いがあります。 【講義ノート】技術各論>解の探索 (2) その前にちょっと、もっと基礎的なレベルで計算量を削減する話をします。 音声認識に先行して、システムはまず単語辞書を用いて、発声する可能性のある「単語ネットワーク」を「音素ネットワーク」に展開します。 「展開された音素ネットワーク」の左端及び右端の「#」は単語の境界を表す記号です。 この音素の部分に、音素HMMを配置して入力音声との確率計算をしていくわけです。 さてこの音素がつながったネットワークをよく見ると、最初の方、最後の方に共通の音素並びがあることがわかります。 配置された音素HMMごとに入力音声との確率計算をしますので、これは同じ計算を何回もすることになり、無駄な計算をすることになってしまいますね。そこで、 【講義ノート】技術各論>解の探索 (3) このように、音素ネットワークを束ねて、同じ音素並びにたいするHMM計算を一回で済むようにします。これが、音素ネットワークにおける音素の共有です。 次のページより述べる「音素同期探索」と「時間同期探索」のいずれも、この音素ネットワークにおける音素の共有をベースとしています。 【講義ノート】音素同期ビーム探索 (1) ではまず「音素同期ビーム探索」から説明していきましょう。このページ以降3ページにわたる図で探索の進行を表していきます。 図の上の方に、先ほど説明した、共通部分を束ねた音素ネットワークが書いてあります。このネットワークを左から右にたどることが、文法あるいは言語モデルによって認識の候補文の生成に対応します。 図の下の方に、一直線に「speech → time」と書いてあるのが、入力音声を表しています。 図の青色の線が処理の進行を示しています。このページの図は、まだ音声が発声されておらず、音素ネットワークの処理、入力音声の処理位置はいずれも「#」(語境界)にいます。 【講義ノート】音素同期ビーム探索 (2) 「音素同期」型の探索では、次のステップは、音素ネットワークを「一音素」進めたところになります。この段階で文仮説は2つに分かれ、青色の線と赤の線で表されています。 各々の文仮説と最もマッチする音声区間が選ばれます。同色の線で表しています。 この複数の文仮説は、音声認識の結果候補として、今のところ両方とも保持されています。 【講義ノート】音素同期ビーム探索 (3) ステップがさらに進んで、また音素ネットワークが「一音素」進みました。文仮説は3つに分かれ、青、赤、紫の線で表されています。各々の文仮説と最もマッチする音声区間を同色の線で表しています。 このようにステップが進むにつれ、同時に処理される文仮説の数はどんどん増えていきます。現実的な音声認識システムにおいて、計算資源に限界がありますので、文仮説が際限なく増えていくのは困ります。 そこで、この「同時に処理する文候補の数」を一定数に絞ってしまうことが考えられます。この探索の手法を「ビーム探索」、保持される候補数を「ビーム幅」といいます。 極端な例で説明します。ビーム幅を2とします。 図の例では、青、赤、紫の3つの文候補があり、各々に対応する音声区間があります。3つの文候補に対して、暫定的に計算されている確率(類似度)を比較し、確率の大きいもの2つを残し、他の候補を捨ててしまうのです。 ビーム幅2は説明のための極端な例です。実際には 100 以上の値が設定されます。 このとき、比較される文候補はすべて音素の数が揃っています。これを、 「音素同期ビーム探索」と呼んでいます。 音素同期ビーム探索では、音素HMMを途中で区切ったりせず、音素境界まで計算して、確率を比較しますので、確率の計算精度が高くなります。音素同期ビーム探索は後に述べる時間同期ビーム探索と比べて認識精度が良くなります。 音素同期ビーム探索には問題点もあります。音素を同期させるために、入力音声の処理時点が揃わなくなります。これは、入力音声が終了した後、残っている文候補の確率計算が全て終了するまで、処理が終わらないということで、ユーザの発話が終わってから認識処理が完了するまでに遅れが生じます。 音素同期ビーム探索は、認識精度は高いのですが、処理遅れが生じるため、リアルタイムの音声対話システムには向いていません。 認識精度と処理速度に対するトレードオフがあるのです。 【講義ノート】時間同期ビーム探索 (1) 次に、もう一方の「時間同期ビーム探索」を説明していきます。このページ以降3ページにわたる図で探索の進行を表していきます。 図の上の方に、音素ネットワーク 図の下の方に、入力音声があって 図の青色の線が処理の進行を示ます。この段階では音素同期の場合と一緒。 【講義ノート】時間同期ビーム探索 (2) 処理される入力音声の範囲を一定時間進めます。 認識処理に関わっている音声区間の時刻は揃っていますが、対応する音素ネットワークの処理位置はばらばらになります。 【講義ノート】時間同期ビーム探索 (3) さらに、処理される入力音声の範囲を一定時間進めます。 認識処理に関わっている音声区間の時刻は揃っています。この時刻を揃えた文候補を確率(類似度)で比較し、ビーム幅を超える文候補を捨てていきます。 これを「時間同期ビーム探索」と呼んでいます。 時間同期ビーム探索では、比較される文仮説の音素HMMの処理が途中のものを比較しますので、確率の計算精度は悪くなります。 時間同期ビーム探索は音素同期ビーム探索と比べて認識精度で不利です。このため、時間同期ビーム探索を行うときには、音素同期ビーム探索の十倍以上にビーム幅を広げることが行われています。 時間同期ビーム探索は、入力音声が終了した直後に、音声認識結果を出力することができます。リアルタイム性に優れているといえましょう。 認識精度と処理速度に対するトレードオフがあるのです。 --